Skip to content

Commit 8251b41

Browse files
committed
Merge branch 'develop' of https://github.com/Dokyeongyun/DBMonitoring into fx-220306-osDiskMonitoring
2 parents 2de59c8 + de89c8e commit 8251b41

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2829
-847
lines changed
Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,51 @@
11
package root.applications;
22

3-
import java.io.File;
4-
53
import javafx.application.Application;
6-
import javafx.fxml.FXMLLoader;
4+
import javafx.scene.Parent;
75
import javafx.scene.Scene;
8-
import javafx.scene.layout.AnchorPane;
9-
import javafx.scene.text.Font;
106
import javafx.stage.Stage;
117
import root.core.repository.constracts.PropertyRepository;
128
import root.core.repository.implement.PropertyRepositoryImpl;
9+
import root.javafx.Controller.HomeController;
10+
import root.javafx.Controller.LeftMenuController;
11+
import root.javafx.DI.DependencyInjection;
1312

1413
public class Program extends Application {
1514

15+
public static Stage stage;
16+
1617
PropertyRepository propRepo = PropertyRepositoryImpl.getInstance();
1718

1819
@Override
1920
public void start(Stage primaryStage) throws Exception {
2021

22+
stage = primaryStage;
23+
24+
setUpDependecyInjector();
25+
2126
// configuration load
2227
propRepo.loadCombinedConfiguration();
2328

2429
// fxml load
2530
System.setProperty("prism.lcdtext", "false"); // ¾ÈƼ¾Ù¸®¾î½Ì (Font ºÎµå·´°Ô)
2631

27-
String[] fontFiles = new File("./src/main/resources/font").list();
28-
for(String font : fontFiles) {
29-
Font.loadFont(getClass().getResourceAsStream("./src/main/resources/font/" + font), 10);
30-
}
31-
32-
FXMLLoader homeloader = new FXMLLoader();
33-
homeloader.setLocation(getClass().getResource("/fxml/Home.fxml"));
34-
AnchorPane homePane = homeloader.load();
35-
36-
Scene scene = new Scene(homePane, 1200, 650);
37-
scene.getStylesheets().add(getClass().getResource("/css/javaFx.css").toExternalForm());
38-
32+
Parent root = DependencyInjection.load("/fxml/Home.fxml");
3933
primaryStage.setTitle("DB Monitoring Window Program");
40-
primaryStage.setScene(scene);
34+
primaryStage.setScene(new Scene(root, 1200, 650));
4135
primaryStage.show();
42-
4336
}
4437

4538
public static void main(String[] args) {
39+
if(System.getProperty("resourceBaseDir") == null) {
40+
System.setProperty("resourceBaseDir", "");
41+
}
42+
4643
launch(args);
4744
}
45+
46+
private void setUpDependecyInjector() {
47+
// save the factory in the injector
48+
DependencyInjection.addInjectionMethod(HomeController.class, param -> {return new HomeController();});
49+
DependencyInjection.addInjectionMethod(LeftMenuController.class, param -> {return new LeftMenuController();});
50+
}
4851
}

src/main/java/root/core/batch/DBCheckBatch.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public DBCheckBatch(DBCheckUsecase dbCheckUsecase) {
1212
public void startBatchArchiveUsageCheck() {
1313
try {
1414
this.dbCheckUsecase.printArchiveUsageCheck();
15-
this.dbCheckUsecase.writeExcelArchiveUsageCheck();
15+
// this.dbCheckUsecase.writeExcelArchiveUsageCheck();
1616
this.dbCheckUsecase.writeCsvArchiveUsage();
1717
}catch(Exception e) {
1818
e.printStackTrace();
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package root.core.domain;
2+
3+
import java.util.List;
4+
import java.util.stream.Collectors;
5+
6+
import lombok.AllArgsConstructor;
7+
import lombok.Data;
8+
import root.core.domain.enums.MonitoringType;
9+
10+
@AllArgsConstructor
11+
@Data
12+
public class MonitoringYN {
13+
14+
private String monitoringAlias;
15+
private List<MonitoringTypeAndYN> monitoringTypeList;
16+
17+
public MonitoringYN(String monitoringAlias) {
18+
this.monitoringAlias = monitoringAlias;
19+
}
20+
21+
public List<MonitoringType> getDistinctMonitoringTypes() {
22+
return monitoringTypeList.stream().map(type -> type.getMonitoringType()).distinct()
23+
.collect(Collectors.toList());
24+
}
25+
26+
@AllArgsConstructor
27+
@Data
28+
public static class MonitoringTypeAndYN {
29+
private MonitoringType monitoringType;
30+
private boolean isMonitoring;
31+
}
32+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package root.core.domain.enums;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public enum MonitoringType {
7+
8+
ARCHIVE("DB", "Archive"), TABLE_SPACE("DB", "TableSpace"), ASM_DISK("DB", "ASM Disk"), OS_DISK("SERVER", "OS Disk"),
9+
ALERT_LOG("SERVER", "Alert Log");
10+
11+
private String category;
12+
private String name;
13+
14+
MonitoringType(String category, String name) {
15+
this.category = category;
16+
this.name = name;
17+
}
18+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package root.core.domain.enums;
2+
3+
import java.util.Collections;
4+
import java.util.Map;
5+
import java.util.Optional;
6+
import java.util.function.Function;
7+
import java.util.stream.Collectors;
8+
import java.util.stream.Stream;
9+
10+
import lombok.Getter;
11+
12+
@Getter
13+
public enum RoundingDigits {
14+
15+
ONE(1), TWO(2), THREE(3), FOUR(4), FIVE(5);
16+
17+
private int digits;
18+
19+
private RoundingDigits(int digits) {
20+
this.digits = digits;
21+
}
22+
23+
private static final Map<Integer, RoundingDigits> roundingDigitsMap = Collections.unmodifiableMap(
24+
Stream.of(values()).collect(Collectors.toMap(RoundingDigits::getDigits, Function.identity())));
25+
26+
public static RoundingDigits find(final int digits) {
27+
return Optional.ofNullable(roundingDigitsMap.get(digits)).orElse(TWO);
28+
}
29+
30+
public static RoundingDigits find(final String digits) {
31+
try {
32+
return find(Integer.parseInt(digits));
33+
} catch (NumberFormatException e) {
34+
return TWO;
35+
}
36+
}
37+
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public interface PropertyRepository {
5151

5252
String getLastUseMonitoringPresetName();
5353

54+
String getLastUseMonitoringPresetName(String filePath);
55+
5456
String[] getMonitoringDBNames();
5557

5658
String[] getMonitoringServerNames();
@@ -64,4 +66,6 @@ public interface PropertyRepository {
6466
JschConnectionInfo getJschConnectionInfo(String serverName);
6567

6668
AlertLogCommand getAlertLogCommand(String serverName);
69+
70+
String getMonitoringConfigResource(String key);
6771
}

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,17 @@ public Map<String, String> getMonitoringPresetMap() {
424424
public String getLastUseMonitoringPresetName() {
425425
return connInfoConfig.subset("monitoring.setting.preset.lastuse").getString("");
426426
}
427+
428+
/**
429+
* 최근 사용한 Monitoring Preset 이름을 반환한다. 단, 최근 사용한 Preset이 없을 때, NULL을 반환한다.
430+
*
431+
* @return
432+
*/
433+
@Override
434+
public String getLastUseMonitoringPresetName(String filePath) {
435+
load(filePath);
436+
return connInfoConfig.subset("monitoring.setting.preset.lastuse").getString("");
437+
}
427438

428439
/**
429440
* 모니터링할 DB명 배열을 반환한다.
@@ -535,4 +546,9 @@ public AlertLogCommand getAlertLogCommand(String serverName) {
535546
alertLogDateFormatRegex);
536547
return alc;
537548
}
549+
550+
@Override
551+
public String getMonitoringConfigResource(String key) {
552+
return monitoringConfig.getString(key);
553+
}
538554
}

src/main/java/root/core/service/contracts/PropertyService.java

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,98 @@
55

66
import root.core.domain.JdbcConnectionInfo;
77
import root.core.domain.JschConnectionInfo;
8+
import root.core.domain.MonitoringYN;
9+
import root.core.domain.enums.RoundingDigits;
10+
import root.core.domain.enums.UsageUIType;
11+
import root.utils.UnitUtils.FileSize;
812

913
public interface PropertyService {
1014

15+
/**
16+
* 접속정보 설정파일을 Load 한다.
17+
*
18+
* @param filePath
19+
*/
20+
void loadConnectionInfoConfig(String filePath);
21+
22+
/**
23+
* 모니터링 접속정보 설정파일의 경로를 반환한다.
24+
*
25+
* @return
26+
*/
27+
List<String> getConnectionInfoList();
28+
29+
/**
30+
* 최근 사용된 접속정보 설정파일의 경로를 반환한다.
31+
*
32+
* @return
33+
*/
34+
String getLastUseConnectionInfoFilePath();
35+
36+
/**
37+
* 모니터링 여부 설정파일을 Load 한다.
38+
*
39+
* @param filePath
40+
*/
41+
void loadMonitoringInfoConfig(String filePath);
42+
43+
/**
44+
* 최근 사용된 모니터링 여부 Preset 설정파일의 Preset명을 반환한다.
45+
*
46+
* @return
47+
*/
48+
String getLastUsePresetFileName(String filePath);
49+
50+
/**
51+
* 모니터링여부 Preset 설정파일을 읽어 DB 모니터링 여부 리스트를 반환한다.
52+
*
53+
* @param presetConfigFileName
54+
* @return
55+
*/
56+
List<MonitoringYN> getDBMonitoringYnList(String presetConfigFileName);
57+
58+
/**
59+
* 모니터링여부 Preset 설정파일을 읽어 Server 모니터링 여부 리스트를 반환한다.
60+
*
61+
* @param presetConfigFileName
62+
* @return
63+
*/
64+
List<MonitoringYN> getServerMonitoringYnList(String presetConfigFileName);
65+
1166
Map<String, String> getMonitoringPresetMap();
1267

1368
List<String> getMonitoringPresetFilePathList();
1469

1570
List<String> getMonitoringPresetNameList();
1671

1772
String getMonitoringPresetFilePath(String presetName);
18-
73+
1974
List<String> getMonitoringDBNameList();
2075

2176
List<String> getMonitoringServerNameList();
22-
77+
2378
List<JdbcConnectionInfo> getJdbcConnInfoList(List<String> dbNames);
2479

2580
List<JschConnectionInfo> getJschConnInfoList(List<String> serverNames);
81+
82+
/**
83+
* 기본값으로 설정된 FileSize 단위를 반환한다.
84+
*
85+
* @return
86+
*/
87+
FileSize getDefaultFileSizeUnit();
88+
89+
/**
90+
* 기본값으로 설정된 반올림 자릿수를 반환한다.
91+
*
92+
* @return
93+
*/
94+
RoundingDigits getDefaultRoundingDigits();
95+
96+
/**
97+
* 기본값으로 설정된 사용량 컬럼 UI 타입을 반환한다.
98+
*
99+
* @return
100+
*/
101+
UsageUIType getDefaultUsageUIType();
26102
}

0 commit comments

Comments
 (0)