Skip to content

Commit ccb3954

Browse files
Merge pull request #24 from ChillyCheesy/dev
Dev
2 parents 800e11a + e6db48c commit ccb3954

File tree

142 files changed

+3388
-2156
lines changed

Some content is hidden

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

142 files changed

+3388
-2156
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,6 @@ out/
3535

3636
### VS Code ###
3737
.vscode/
38+
39+
### Mac ###
40+
.DS_Store

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ What is modulo...
4343
<dependency>
4444
<groupId>com.chillycheesy</groupId>
4545
<artifactId>modulo-api</artifactId>
46-
<version>0.1.2</version>
46+
<version>BINKS-0.3.0</version>
4747
</dependency>
4848
```
4949
* With Gradle add the following dependency to your build.gradle: *(recommended)*
5050
```gradle
5151
dependencies {
52-
implementation 'com.chillycheesy:modulo-api:0.1.2'
52+
implementation 'com.chillycheesy:modulo-api:BINKS-0.3.0'
5353
}
5454
```
5555
### Step 2:<a id="GettingStarted-2"></a>

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
modulo_modulename=ModuloServer
2-
modulo_version=BINKS-0.3.0
2+
modulo_version=BINKS-0.4.0

modulo-api/build.gradle

+5-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ sourceCompatibility = 16
99
targetCompatibility = JavaVersion.VERSION_16
1010

1111
dependencies {
12-
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3'
13-
implementation 'org.apache.tomcat.embed:tomcat-embed-websocket:9.0.39'
12+
api 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.3'
13+
api 'org.apache.tomcat.embed:tomcat-embed-websocket:9.0.39'
14+
api 'org.apache.tika:tika-core:1.26'
1415

1516
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
1617
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.2'
@@ -70,3 +71,5 @@ publishing {
7071
}
7172
}
7273
}
74+
75+
compileTestJava.options.compilerArgs << '-parameters'

modulo-api/src/main/java/com/chillycheesy/modulo/ModuloAPI.java

+11-26
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package com.chillycheesy.modulo;
22

3+
import com.chillycheesy.modulo.controllers.ControllerContainer;
34
import com.chillycheesy.modulo.events.EventContainer;
45
import com.chillycheesy.modulo.modules.ModuleContainer;
5-
import com.chillycheesy.modulo.pages.PageContainer;
6-
import com.chillycheesy.modulo.signals.SignalContainer;
76
import com.chillycheesy.modulo.utils.Logger;
87

98
/**
@@ -23,13 +22,9 @@ public class ModuloAPI {
2322
*/
2423
private static EventContainer event;
2524
/**
26-
* Signal section.
25+
* Controller container.
2726
*/
28-
private static SignalContainer signal;
29-
/**
30-
* Page manager.
31-
*/
32-
private static PageContainer page;
27+
private static ControllerContainer controller;
3328
/**
3429
* Logger section.
3530
*/
@@ -53,24 +48,6 @@ public static EventContainer getEvent() {
5348
return event = event == null ? new EventContainer() : event;
5449
}
5550

56-
/**
57-
* Getter for Signal logic section.
58-
*
59-
* @return The Signal section.
60-
*/
61-
public static SignalContainer getSignal() {
62-
return signal = signal == null ? new SignalContainer() : signal;
63-
}
64-
65-
/**
66-
* Getter for Signal logic section.
67-
*
68-
* @return The Signal section.
69-
*/
70-
public static PageContainer getPage() {
71-
return page = page == null ? new PageContainer() : page;
72-
}
73-
7451
/**
7552
* Getter for Logger logic section.
7653
*
@@ -80,4 +57,12 @@ public static Logger getLogger() {
8057
return logger = logger == null ? new Logger(getEvent()) : logger;
8158
}
8259

60+
/**
61+
* Getter for Controller logic section.
62+
*
63+
* @return The Controller section.
64+
*/
65+
public static ControllerContainer getController() {
66+
return controller = controller == null ? new ControllerContainer() : controller;
67+
}
8368
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.chillycheesy.modulo.config;
2+
3+
import com.chillycheesy.modulo.modules.Module;
4+
import com.chillycheesy.modulo.modules.ModuleEntityAdapter;
5+
6+
import java.util.Objects;
7+
8+
public class ConfigurableEntity extends ModuleEntityAdapter {
9+
10+
private static final String DEFAULT_CONFIG_PATH = "config.yml";
11+
12+
protected ConfigurationFactory configurationFactory;
13+
protected ConfigurationLoaderStrategy loaderStrategy;
14+
protected Configuration defaultConfiguration;
15+
16+
protected boolean autoSave = true;
17+
18+
public ConfigurableEntity(ConfigurationLoaderStrategy loaderStrategy) {
19+
this.loaderStrategy = loaderStrategy;
20+
}
21+
22+
public ConfigurableEntity() {
23+
this(new YamlConfigurationStrategy());
24+
}
25+
26+
@Override
27+
public void load(Module module) {
28+
configurationFactory = Objects.isNull(configurationFactory) ? new FileConfigurationFactory(module, DEFAULT_CONFIG_PATH) : configurationFactory;
29+
defaultConfiguration = Objects.isNull(defaultConfiguration) ? configurationFactory.createConfiguration(loaderStrategy) : defaultConfiguration;
30+
}
31+
32+
@Override
33+
public void stop() {
34+
if (autoSave) configurationFactory.saveConfiguration(defaultConfiguration, loaderStrategy);
35+
}
36+
37+
public void enableAutoSave(boolean autoSave) {
38+
this.autoSave = autoSave;
39+
}
40+
41+
public Configuration getConfiguration() {
42+
return defaultConfiguration;
43+
}
44+
45+
public void setConfigurationFactory(ConfigurationFactory configurationFactory) {
46+
this.configurationFactory = configurationFactory;
47+
}
48+
49+
public void setConfiguration(Configuration configuration) {
50+
this.defaultConfiguration = configuration;
51+
}
52+
53+
public ConfigurationFactory getConfigurationFactory() {
54+
return configurationFactory;
55+
}
56+
57+
public ConfigurationLoaderStrategy getLoaderStrategy() {
58+
return loaderStrategy;
59+
}
60+
}

modulo-api/src/main/java/com/chillycheesy/modulo/config/Configuration.java

+14-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ public Configuration(Map<String, Object> properties, Map<String, Object> default
1414
this.defaultProperties = defaultProperties;
1515
}
1616

17+
public Configuration(Configuration ...configurations) {
18+
this();
19+
for (Configuration configuration : configurations) {
20+
merge(configuration);
21+
}
22+
}
23+
1724
public Configuration() { this(new HashMap<>(), new HashMap<>()); }
1825

1926
public Object get(String key) {
@@ -256,9 +263,14 @@ public boolean isModified() {
256263
}
257264

258265
public void forEach(BiConsumer<String, String> setProperty) {
266+
forEach("", setProperty);
267+
}
268+
269+
public void forEach(String key, BiConsumer<String, String> setProperty) {
259270
getMergedProperties().entrySet().stream()
260-
.collect(Collectors.toMap(Map.Entry::getKey, e -> String.valueOf(e.getValue())))
261-
.forEach(setProperty);
271+
.filter(entry -> entry.getKey().startsWith(key))
272+
.collect(Collectors.toMap(keyEntry -> keyEntry.getKey().replaceFirst("properties\\.", ""), e -> String.valueOf(e.getValue())))
273+
.forEach(setProperty);
262274
}
263275

264276
@Override

modulo-api/src/main/java/com/chillycheesy/modulo/config/ConfigurationLoader.java

-64
This file was deleted.

0 commit comments

Comments
 (0)