Browse Source

scaffolding wiki module

module/wiki
Stephan Richter 2 months ago
parent
commit
45b236cb58
  1. 2
      backend/build.gradle.kts
  2. 4
      backend/src/main/java/de/srsoftware/umbrella/backend/Application.java
  3. 5
      core/src/main/java/de/srsoftware/umbrella/core/ModuleRegistry.java
  4. 4
      core/src/main/java/de/srsoftware/umbrella/core/api/WikiService.java
  5. 1
      settings.gradle.kts
  6. 8
      wiki/src/main/java/de/srsoftware/umbrella/wiki/Constants.java
  7. 24
      wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java
  8. 16
      wiki/src/main/java/de/srsoftware/umbrella/wiki/WikiDb.java
  9. 20
      wiki/src/main/java/de/srsoftware/umbrella/wiki/WikiModule.java

2
backend/build.gradle.kts

@ -28,6 +28,8 @@ dependencies{ @@ -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
}

4
backend/src/main/java/de/srsoftware/umbrella/backend/Application.java

@ -12,6 +12,7 @@ import de.srsoftware.umbrella.bookmarks.BookmarkApi; @@ -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; @@ -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 { @@ -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();

5
core/src/main/java/de/srsoftware/umbrella/core/ModuleRegistry.java

@ -18,7 +18,7 @@ public class ModuleRegistry { @@ -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 { @@ -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 { @@ -93,4 +94,6 @@ public class ModuleRegistry {
public UserService userService(){
return userService;
}
public WikiService wikiService() { return wikiService; };
}

4
core/src/main/java/de/srsoftware/umbrella/core/api/WikiService.java

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
package de.srsoftware.umbrella.core.api;
public interface WikiService {
}

1
settings.gradle.kts

@ -18,3 +18,4 @@ include("time") @@ -18,3 +18,4 @@ include("time")
include("translations")
include("user")
include("web")
include("wiki")

8
wiki/src/main/java/de/srsoftware/umbrella/wiki/Constants.java

@ -0,0 +1,8 @@ @@ -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

@ -0,0 +1,24 @@ @@ -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

@ -0,0 +1,16 @@ @@ -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 {
}

20
wiki/src/main/java/de/srsoftware/umbrella/wiki/WikiModule.java

@ -0,0 +1,20 @@ @@ -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));
}
}
Loading…
Cancel
Save