scaffolding wiki module
This commit is contained in:
@@ -28,6 +28,8 @@ dependencies{
|
||||
implementation(project(":translations"))
|
||||
implementation(project(":user"))
|
||||
implementation(project(":web"))
|
||||
implementation(project(":wiki"))
|
||||
|
||||
implementation("de.srsoftware:configuration.json:1.0.3")
|
||||
implementation("de.srsoftware:tools.slf4j2syslog:1.0.1") // this provides a slf4j implementation that forwards to System.Logger
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import de.srsoftware.umbrella.bookmarks.BookmarkApi;
|
||||
import de.srsoftware.umbrella.company.CompanyModule;
|
||||
import de.srsoftware.umbrella.core.ModuleRegistry;
|
||||
import de.srsoftware.umbrella.core.Util;
|
||||
import de.srsoftware.umbrella.core.api.WikiService;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.documents.DocumentApi;
|
||||
import de.srsoftware.umbrella.items.ItemApi;
|
||||
@@ -30,6 +31,8 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import de.srsoftware.umbrella.wiki.WikiModule;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class Application {
|
||||
@@ -79,6 +82,7 @@ public class Application {
|
||||
new TaskLegacy(registry, config).bindPath("/legacy/task").on(server);
|
||||
new TimeModule(registry, config).bindPath("/api/time").on(server);
|
||||
new WebHandler(registry).bindPath("/").on(server);
|
||||
new WikiModule(registry, config).bindPath("/api/wiki").on(server);
|
||||
|
||||
server.setExecutor(Executors.newFixedThreadPool(threads));
|
||||
server.start();
|
||||
|
||||
@@ -18,7 +18,7 @@ public class ModuleRegistry {
|
||||
private TimeService timeService;
|
||||
private Translator translator;
|
||||
private UserService userService;
|
||||
|
||||
private WikiService wikiService;
|
||||
|
||||
|
||||
public ModuleRegistry add(Object service) {
|
||||
@@ -36,6 +36,7 @@ public class ModuleRegistry {
|
||||
case TimeService ts: timeService = ts; break;
|
||||
case Translator tr: translator = tr; break;
|
||||
case UserService us: userService = us; break;
|
||||
case WikiService ws: wikiService = ws; break;
|
||||
case null: break;
|
||||
default: System.getLogger(getClass().getSimpleName()).log(System.Logger.Level.WARNING,"Trying to add untracked class {0} to {1}",service.getClass().getSimpleName(),getClass().getSimpleName());
|
||||
}
|
||||
@@ -93,4 +94,6 @@ public class ModuleRegistry {
|
||||
public UserService userService(){
|
||||
return userService;
|
||||
}
|
||||
|
||||
public WikiService wikiService() { return wikiService; };
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
package de.srsoftware.umbrella.core.api;
|
||||
|
||||
public interface WikiService {
|
||||
}
|
||||
@@ -18,3 +18,4 @@ include("time")
|
||||
include("translations")
|
||||
include("user")
|
||||
include("web")
|
||||
include("wiki")
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.wiki;
|
||||
|
||||
public class Constants {
|
||||
private Constants(){}
|
||||
|
||||
public static final String CONFIG_DATABASE = "umbrella.modules.wiki.database";
|
||||
}
|
||||
24
wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java
Normal file
24
wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java
Normal file
@@ -0,0 +1,24 @@
|
||||
package de.srsoftware.umbrella.wiki;
|
||||
|
||||
import de.srsoftware.umbrella.core.BaseDb;
|
||||
|
||||
import java.sql.Connection;
|
||||
|
||||
public class SqliteDb extends BaseDb implements WikiDb {
|
||||
private static final System.Logger LOG = System.getLogger("TaskDb");
|
||||
private static final int INITIAL_DB_VERSION = 1;
|
||||
|
||||
public SqliteDb(Connection connection) {
|
||||
super(connection);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int createTables() {
|
||||
int currentVersion = createSettingsTable();
|
||||
switch (currentVersion){
|
||||
case 0: ; // TODO
|
||||
}
|
||||
|
||||
return setCurrentVersion(3);
|
||||
}
|
||||
}
|
||||
16
wiki/src/main/java/de/srsoftware/umbrella/wiki/WikiDb.java
Normal file
16
wiki/src/main/java/de/srsoftware/umbrella/wiki/WikiDb.java
Normal file
@@ -0,0 +1,16 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.wiki;
|
||||
|
||||
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Permission;
|
||||
import de.srsoftware.umbrella.core.model.Task;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface WikiDb {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package de.srsoftware.umbrella.wiki;
|
||||
|
||||
import de.srsoftware.configuration.Configuration;
|
||||
import de.srsoftware.umbrella.core.BaseHandler;
|
||||
import de.srsoftware.umbrella.core.ModuleRegistry;
|
||||
import de.srsoftware.umbrella.core.api.WikiService;
|
||||
|
||||
import static de.srsoftware.umbrella.core.ConnectionProvider.connect;
|
||||
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.missingFieldException;
|
||||
import static de.srsoftware.umbrella.wiki.Constants.CONFIG_DATABASE;
|
||||
|
||||
public class WikiModule extends BaseHandler implements WikiService {
|
||||
private final WikiDb wikiDb;
|
||||
|
||||
public WikiModule(ModuleRegistry registry, Configuration config) {
|
||||
super(registry);
|
||||
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingFieldException(CONFIG_DATABASE));
|
||||
wikiDb = new SqliteDb(connect(dbFile));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user