Skip to content

Commit 4342b95

Browse files
authored
Merge pull request #256 from Dokyeongyun/ft-220522-repositoryModuleTest
Ft 220522 repository module test
2 parents 513589b + 8e3a454 commit 4342b95

19 files changed

+925
-381
lines changed

Core/src/main/java/root/core/repository/constracts/DBCheckRepository.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package root.core.repository.constracts;
22

3+
import java.sql.Connection;
34
import java.util.List;
45

56
import root.core.domain.ASMDiskUsage;
@@ -9,9 +10,9 @@
910
public interface DBCheckRepository {
1011
String getDBName();
1112

12-
Object getTran();
13+
Connection getTran();
1314

14-
void endTran(Object conn);
15+
void endTran(Connection conn);
1516

1617
List<ArchiveUsage> checkArchiveUsage();
1718

Core/src/main/java/root/core/repository/constracts/PropertyRepository.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313

1414
public interface PropertyRepository {
1515

16-
boolean isFileExist(String filePath);
17-
1816
PropertiesConfiguration getConfiguration(String config) throws PropertyNotLoadedException;
1917

2018
void save(String filePath, PropertiesConfiguration config);
@@ -37,8 +35,6 @@ public interface PropertyRepository {
3735

3836
String getCommonResource(String key);
3937

40-
int getIntegerCommonResource(String key);
41-
4238
String[] getCommonResources(String key);
4339

4440
String[] getDBMonitoringContents();
@@ -53,16 +49,12 @@ public interface PropertyRepository {
5349

5450
Map<String, String> getMonitoringPresetMap();
5551

56-
String getLastUseMonitoringPresetName();
57-
5852
String getLastUseMonitoringPresetName(String filePath);
5953

6054
String[] getMonitoringDBNames();
6155

6256
String[] getMonitoringServerNames();
6357

64-
boolean isMonitoringContent(String toggleId);
65-
6658
void createNewPropertiesFile(String filePath, String type);
6759

6860
JdbcConnectionInfo getJdbcConnectionInfo(String dbName);

Core/src/main/java/root/core/repository/constracts/ReportRepository.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44

55
public interface ReportRepository {
66

7-
<T> void writeReportFile(String filePath, String fileName, String fileExtension, List<T> monitoringResult,
8-
Class<T> clazz);
7+
<T> void writeReportFile(String fileName, String fileExtension, List<T> monitoringResult, Class<T> clazz);
98

109
List<String> getReportHeaders(Class<?> monitoringType, String alias);
11-
10+
1211
String getReportContentsInCsv(Class<?> monitoringType, String alias);
1312
}

Core/src/main/java/root/core/usecase/implement/DBCheckUsecaseImpl.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,9 @@ public void printArchiveUsageCheck() {
4747
System.out.println("\t▶ Archive Usage Check : SUCCESS\n");
4848
}
4949
});
50-
50+
5151
try {
52-
TextTable tt = new TextTable(
53-
new CsvTableModel(CsvUtils.toCsvString(result, ArchiveUsage.class)));
52+
TextTable tt = new TextTable(new CsvTableModel(CsvUtils.toCsvString(result, ArchiveUsage.class)));
5453
tt.printTable(System.out, 8);
5554
System.out.println();
5655
} catch (IOException e) {
@@ -63,8 +62,7 @@ public void printTableSpaceCheck() {
6362
List<TableSpaceUsage> result = dbCheckRepository.checkTableSpaceUsage();
6463
System.out.println("\t▶ TableSpace Usage Check");
6564
try {
66-
TextTable tt = new TextTable(
67-
new CsvTableModel(CsvUtils.toCsvString(result, TableSpaceUsage.class)));
65+
TextTable tt = new TextTable(new CsvTableModel(CsvUtils.toCsvString(result, TableSpaceUsage.class)));
6866
tt.printTable(System.out, 8);
6967
System.out.println();
7068
} catch (IOException e) {
@@ -77,8 +75,7 @@ public void printASMDiskCheck() {
7775
List<ASMDiskUsage> result = dbCheckRepository.checkASMDiskUsage();
7876
System.out.println("\t▶ ASM Disk Usage Check");
7977
try {
80-
TextTable tt = new TextTable(
81-
new CsvTableModel(CsvUtils.toCsvString(result, ASMDiskUsage.class)));
78+
TextTable tt = new TextTable(new CsvTableModel(CsvUtils.toCsvString(result, ASMDiskUsage.class)));
8279
tt.printTable(System.out, 8);
8380
System.out.println();
8481
} catch (IOException e) {
@@ -110,13 +107,13 @@ public void writeExcelArchiveUsageCheck() throws Exception {
110107
String fileName = "DB관리대장_종합_" + year + "." + DateUtils.getTwoDigitDate(month);
111108
String extension = ".xlsx";
112109
File file = new File(filePath + fileName + extension);
113-
114-
if(!file.exists()) {
110+
111+
if (!file.exists()) {
115112
file.getParentFile().mkdirs();
116113
DBManageExcel.createMonthlyReportInExcel(year, month);
117114
}
118-
119-
double archiveUsage = result.get(0).getUsedPercent();
115+
116+
double archiveUsage = result.get(0).getUsedPercent();
120117
Workbook workbook = ExcelSheet.getWorkbook(new FileInputStream(file), fileName + extension);
121118
Sheet sheet = workbook.getSheetAt(0);
122119
sheet.getRow(rowIndex).getCell(colIndex).setCellValue(archiveUsage + "%");
@@ -127,19 +124,19 @@ public void writeExcelArchiveUsageCheck() throws Exception {
127124
@Override
128125
public void writeCsvArchiveUsage() {
129126
List<ArchiveUsage> result = dbCheckRepository.checkArchiveUsage();
130-
reportRepository.writeReportFile("ArchiveUsage", dbCheckRepository.getDBName(), ".txt", result, ArchiveUsage.class);
127+
reportRepository.writeReportFile(dbCheckRepository.getDBName(), ".txt", result, ArchiveUsage.class);
131128
}
132129

133130
@Override
134131
public void writeCsvTableSpaceUsage() {
135132
List<TableSpaceUsage> result = dbCheckRepository.checkTableSpaceUsage();
136-
reportRepository.writeReportFile("TableSpaceUsage", dbCheckRepository.getDBName(), ".txt", result, TableSpaceUsage.class);
133+
reportRepository.writeReportFile(dbCheckRepository.getDBName(), ".txt", result, TableSpaceUsage.class);
137134
}
138135

139136
@Override
140137
public void writeCsvASMDiskUsage() {
141138
List<ASMDiskUsage> result = dbCheckRepository.checkASMDiskUsage();
142-
reportRepository.writeReportFile("ASMDiskUsage", dbCheckRepository.getDBName(), ".txt", result, ASMDiskUsage.class);
139+
reportRepository.writeReportFile(dbCheckRepository.getDBName(), ".txt", result, ASMDiskUsage.class);
143140
}
144141

145142
@Override

Core/src/main/java/root/core/usecase/implement/ServerMonitoringUsecaseImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,7 @@ public void writeCsvOSDiskUsage() throws Exception {
257257
os.setMonitoringDate(monitoringDate);
258258
os.setMonitoringTime(monitoringTime);
259259
}
260-
reportRepository.writeReportFile("OSDiskUsage", serverCheckRepository.getServerName(), ".txt", result,
261-
OSDiskUsage.class);
260+
reportRepository.writeReportFile(serverCheckRepository.getServerName(), ".txt", result, OSDiskUsage.class);
262261
}
263262

264263
@Override

Repository/.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
/build/
2-
/bin/
2+
/bin/
3+
/report
4+
/src/test/resources/dbconfig.txt
5+
/config

Repository/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ dependencies {
1616
// Apache Commons Library
1717
implementation 'commons-io:commons-io:2.8.0'
1818
implementation 'org.apache.commons:commons-configuration2:2.7'
19+
implementation 'org.apache.commons:commons-lang3:3.11'
20+
implementation 'commons-beanutils:commons-beanutils:1.9.4'
1921

2022
// Apache POI
2123
implementation 'org.apache.poi:poi:3.17'

Repository/src/main/java/root/repository/implement/DBCheckRepositoryImpl.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
import java.util.Date;
99
import java.util.List;
1010

11+
import lombok.extern.slf4j.Slf4j;
1112
import root.common.database.contracts.AbstractDatabase;
1213
import root.core.domain.ASMDiskUsage;
1314
import root.core.domain.ArchiveUsage;
1415
import root.core.domain.TableSpaceUsage;
1516
import root.core.repository.constracts.DBCheckRepository;
1617

18+
@Slf4j
1719
public class DBCheckRepositoryImpl implements DBCheckRepository {
1820
private AbstractDatabase db;
1921

@@ -32,9 +34,9 @@ public Connection getTran() {
3234
}
3335

3436
@Override
35-
public void endTran(Object conn) {
37+
public void endTran(Connection conn) {
3638
if (conn != null)
37-
db.freeConn((Connection) conn);
39+
db.freeConn(conn);
3840
}
3941

4042
@Override
@@ -73,7 +75,7 @@ public List<ArchiveUsage> checkArchiveUsage() {
7375
}
7476

7577
} catch (SQLException e) {
76-
e.printStackTrace();
78+
log.error(e.getMessage());
7779
} finally {
7880
this.endTran(conn);
7981
}
@@ -124,7 +126,7 @@ public List<TableSpaceUsage> checkTableSpaceUsage() {
124126
}
125127

126128
} catch (SQLException e) {
127-
e.printStackTrace();
129+
log.error(e.getMessage());
128130
} finally {
129131
this.endTran(conn);
130132
}
@@ -185,7 +187,7 @@ public List<ASMDiskUsage> checkASMDiskUsage() {
185187
}
186188

187189
} catch (SQLException e) {
188-
e.printStackTrace();
190+
log.error(e.getMessage());
189191
} finally {
190192
this.endTran(conn);
191193
}

Repository/src/main/java/root/repository/implement/LinuxServerMonitoringRepository.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,13 @@ public int getAlertLogFileLineCount(AlertLogCommand alc) {
3232
try {
3333
String command = String.format("cat %s | wc -l", alc.getReadFilePath());
3434
String executeResult = jsch.executeCommand(command);
35-
fileLineCnt = Integer.parseInt(executeResult);
35+
StringTokenizer st = new StringTokenizer(executeResult);
36+
String lastToken = "0";
37+
while (st.hasMoreTokens()) {
38+
lastToken = st.nextToken();
39+
}
40+
41+
fileLineCnt = Integer.parseInt(lastToken) + 1;
3642
} catch (Exception e) {
3743
log.error(e.getMessage());
3844
}

Repository/src/main/java/root/repository/implement/PropertyRepositoryImpl.java

Lines changed: 15 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,6 @@ public static PropertyRepository getInstance() {
6666

6767
/****************************************************************************/
6868

69-
@Override
70-
public boolean isFileExist(String filePath) {
71-
return new File(filePath).exists();
72-
}
73-
7469
/**
7570
* Configuration 객체를 반환한다. TODO 굳이 메서드를 Wrapping 해서 호출할 필요가 있을까..? Controller와
7671
* 의존성 제거목적으로 일단 이렇게 함..
@@ -87,12 +82,15 @@ public PropertiesConfiguration getConfiguration(String name) throws PropertyNotL
8782
throw new PropertyNotLoadedException("monitoringConfig properties file is not loaded");
8883
}
8984
return monitoringConfig;
85+
} else if (name.equals("commonConfig") || name.equals("rememberConfig")) {
86+
Configuration config = combinedConfig.getConfiguration(name);
87+
if (config == null) {
88+
throw new PropertyNotLoadedException(name + " properties file is not loaded");
89+
}
90+
return (PropertiesConfiguration) config;
9091
}
9192

92-
if (combinedConfig == null) {
93-
throw new PropertyNotLoadedException("combinedConfig properties file is not loaded");
94-
}
95-
return (PropertiesConfiguration) combinedConfig.getConfiguration(name);
93+
throw new PropertyNotLoadedException("there is no properties file");
9694
}
9795

9896
/**
@@ -137,9 +135,9 @@ public void save(String filePath, PropertiesConfiguration config) {
137135

138136
@Override
139137
public void saveDBConnectionInfo(String filePath, Map<String, JdbcConnectionInfo> dbConfig) {
138+
loadConnectionInfoConfig(filePath);
140139
PropertiesConfiguration config = connInfoConfig;
141140

142-
// TODO dbnames property..
143141
String dbNames = "";
144142
for (String dbName : dbConfig.keySet()) {
145143
dbNames += dbName + ",";
@@ -187,6 +185,7 @@ public void saveDBConnectionInfo(String filePath, Map<String, JdbcConnectionInfo
187185

188186
writer.writeln(layout.getCanonicalFooterCooment(true));
189187
writer.flush();
188+
writer.close();
190189

191190
log.info("[" + filePath + "] 파일 저장이 성공적으로 완료되었습니다.");
192191
} catch (Exception e) {
@@ -197,9 +196,9 @@ public void saveDBConnectionInfo(String filePath, Map<String, JdbcConnectionInfo
197196

198197
@Override
199198
public void saveServerConnectionInfo(String filePath, Map<String, JschConnectionInfo> serverConfig) {
199+
loadConnectionInfoConfig(filePath);
200200
PropertiesConfiguration config = connInfoConfig;
201201

202-
// TODO servernames property..
203202
String serverNames = "";
204203
for (String serverName : serverConfig.keySet()) {
205204
serverNames += serverName + ",";
@@ -248,6 +247,7 @@ public void saveServerConnectionInfo(String filePath, Map<String, JschConnection
248247

249248
writer.writeln(layout.getCanonicalFooterCooment(true));
250249
writer.flush();
250+
writer.close();
251251

252252
log.info("[" + filePath + "] 파일 저장이 성공적으로 완료되었습니다.");
253253
} catch (Exception e) {
@@ -289,7 +289,7 @@ private static PropertiesConfiguration load(String filePath) {
289289
try {
290290
return builder.getConfiguration();
291291
} catch (ConfigurationException e) {
292-
e.printStackTrace();
292+
log.error(e.getMessage());
293293
return null;
294294
}
295295
}
@@ -364,14 +364,6 @@ public String getCommonResource(String key) {
364364
return combinedConfig.getString(key);
365365
}
366366

367-
/**
368-
* commons.properties에서 값을 읽어 반환한다.
369-
*/
370-
@Override
371-
public int getIntegerCommonResource(String key) {
372-
return combinedConfig.getInt(key);
373-
}
374-
375367
/**
376368
* commons.properties에서 값을 읽어 반환한다.
377369
*/
@@ -442,16 +434,6 @@ public Map<String, String> getMonitoringPresetMap() {
442434
return presetMap;
443435
}
444436

445-
/**
446-
* 최근 사용한 Monitoring Preset 이름을 반환한다. 단, 최근 사용한 Preset이 없을 때, NULL을 반환한다.
447-
*
448-
* @return
449-
*/
450-
@Override
451-
public String getLastUseMonitoringPresetName() {
452-
return connInfoConfig.subset("monitoring.setting.preset.lastuse").getString("");
453-
}
454-
455437
/**
456438
* 최근 사용한 Monitoring Preset 이름을 반환한다. 단, 최근 사용한 Preset이 없을 때, NULL을 반환한다.
457439
*
@@ -461,7 +443,7 @@ public String getLastUseMonitoringPresetName() {
461443
@Override
462444
public String getLastUseMonitoringPresetName(String filePath) {
463445
load(filePath);
464-
return connInfoConfig.subset("monitoring.setting.preset.lastuse").getString("");
446+
return connInfoConfig.getString("monitoring.setting.preset.lastuse");
465447
}
466448

467449
/**
@@ -480,11 +462,6 @@ public String[] getMonitoringServerNames() {
480462
return connInfoConfig.getStringArray("servernames");
481463
}
482464

483-
@Override
484-
public boolean isMonitoringContent(String toggleId) {
485-
return monitoringConfig.containsKey(toggleId) == false ? true : monitoringConfig.getBoolean(toggleId);
486-
}
487-
488465
/**
489466
* 지정된 경로에 새로운 파일을 생성한다.
490467
*
@@ -519,7 +496,7 @@ public void createNewPropertiesFile(String filePath, String type) {
519496

520497
}
521498
} catch (IOException e) {
522-
e.printStackTrace();
499+
log.error(e.getMessage());
523500
}
524501
}
525502

@@ -554,6 +531,7 @@ public JschConnectionInfo getJschConnectionInfo(String serverName) {
554531
try {
555532
serverOS = ServerOS.valueOf(connInfoConfig.getString(serverName + ".server.os"));
556533
} catch (Exception e) {
534+
log.error(e.getMessage());
557535
}
558536
String serverPort = connInfoConfig.getString(serverName + ".server.port");
559537
String serverUserName = connInfoConfig.getString(serverName + ".server.username");

0 commit comments

Comments
 (0)