scaffolding wiki module
This commit is contained in:
@@ -28,6 +28,8 @@ dependencies{
|
|||||||
implementation(project(":translations"))
|
implementation(project(":translations"))
|
||||||
implementation(project(":user"))
|
implementation(project(":user"))
|
||||||
implementation(project(":web"))
|
implementation(project(":web"))
|
||||||
|
implementation(project(":wiki"))
|
||||||
|
|
||||||
implementation("de.srsoftware:configuration.json:1.0.3")
|
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
|
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.company.CompanyModule;
|
||||||
import de.srsoftware.umbrella.core.ModuleRegistry;
|
import de.srsoftware.umbrella.core.ModuleRegistry;
|
||||||
import de.srsoftware.umbrella.core.Util;
|
import de.srsoftware.umbrella.core.Util;
|
||||||
|
import de.srsoftware.umbrella.core.api.WikiService;
|
||||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||||
import de.srsoftware.umbrella.documents.DocumentApi;
|
import de.srsoftware.umbrella.documents.DocumentApi;
|
||||||
import de.srsoftware.umbrella.items.ItemApi;
|
import de.srsoftware.umbrella.items.ItemApi;
|
||||||
@@ -30,6 +31,8 @@ import java.io.File;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
|
import de.srsoftware.umbrella.wiki.WikiModule;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
public class Application {
|
public class Application {
|
||||||
@@ -79,6 +82,7 @@ public class Application {
|
|||||||
new TaskLegacy(registry, config).bindPath("/legacy/task").on(server);
|
new TaskLegacy(registry, config).bindPath("/legacy/task").on(server);
|
||||||
new TimeModule(registry, config).bindPath("/api/time").on(server);
|
new TimeModule(registry, config).bindPath("/api/time").on(server);
|
||||||
new WebHandler(registry).bindPath("/").on(server);
|
new WebHandler(registry).bindPath("/").on(server);
|
||||||
|
new WikiModule(registry, config).bindPath("/api/wiki").on(server);
|
||||||
|
|
||||||
server.setExecutor(Executors.newFixedThreadPool(threads));
|
server.setExecutor(Executors.newFixedThreadPool(threads));
|
||||||
server.start();
|
server.start();
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class ModuleRegistry {
|
|||||||
private TimeService timeService;
|
private TimeService timeService;
|
||||||
private Translator translator;
|
private Translator translator;
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
private WikiService wikiService;
|
||||||
|
|
||||||
|
|
||||||
public ModuleRegistry add(Object service) {
|
public ModuleRegistry add(Object service) {
|
||||||
@@ -36,6 +36,7 @@ public class ModuleRegistry {
|
|||||||
case TimeService ts: timeService = ts; break;
|
case TimeService ts: timeService = ts; break;
|
||||||
case Translator tr: translator = tr; break;
|
case Translator tr: translator = tr; break;
|
||||||
case UserService us: userService = us; break;
|
case UserService us: userService = us; break;
|
||||||
|
case WikiService ws: wikiService = ws; break;
|
||||||
case null: 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());
|
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(){
|
public UserService userService(){
|
||||||
return 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("translations")
|
||||||
include("user")
|
include("user")
|
||||||
include("web")
|
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