preparing journal module

This commit is contained in:
2025-12-22 15:12:25 +01:00
parent c05f5110e4
commit a4fffbe91b
9 changed files with 74 additions and 1 deletions

7
journal/build.gradle.kts Normal file
View File

@@ -0,0 +1,7 @@
description = "Umbrella : Journal"
dependencies{
implementation(project(":bus"))
implementation(project(":core"))
}

View File

@@ -0,0 +1,6 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.journal;
public class Constants {
public static final String CONFIG_DATABASE = "umbrella.modules.journal.database";
}

View File

@@ -0,0 +1,4 @@
package de.srsoftware.umbrella.journal;
public interface JournalDb {
}

View File

@@ -0,0 +1,29 @@
package de.srsoftware.umbrella.journal;
import de.srsoftware.configuration.Configuration;
import de.srsoftware.umbrella.core.BaseHandler;
import de.srsoftware.umbrella.core.ModuleRegistry;
import de.srsoftware.umbrella.messagebus.EventListener;
import de.srsoftware.umbrella.messagebus.events.Event;
import static de.srsoftware.umbrella.core.ConnectionProvider.connect;
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.missingFieldException;
import static de.srsoftware.umbrella.journal.Constants.CONFIG_DATABASE;
public class JournalModule extends BaseHandler implements EventListener {
private final SqliteDb journalDb;
public JournalModule(Configuration config){
super();
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingFieldException(CONFIG_DATABASE))
journalDb = new SqliteDb(connect(dbFile));
ModuleRegistry.add(this);
}
@Override
public void onEvent(Event event) {
}
}

View File

@@ -0,0 +1,21 @@
package de.srsoftware.umbrella.journal;
import de.srsoftware.umbrella.core.BaseDb;
import java.sql.Connection;
public class SqliteDb extends BaseDb implements JournalDb{
public SqliteDb(Connection connection) {
super(connection);
}
protected int createTables() {
int currentVersion = createSettingsTable();
switch (currentVersion){
case 0:
createJournalTable();
}
return setCurrentVersion(1);
}
}