working on document list

This commit is contained in:
2025-07-09 00:27:06 +02:00
parent 58f69689e2
commit 5b5e6a9387
22 changed files with 1914 additions and 26 deletions

View File

@@ -1,9 +1,10 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.backend;
import static de.srsoftware.umbrella.core.Constants.UMBRELLA;
import static de.srsoftware.umbrella.core.Constants.*;
import static de.srsoftware.umbrella.core.Util.mapLogLevel;
import static java.lang.System.Logger.Level.INFO;
import static java.text.MessageFormat.format;
import com.sun.net.httpserver.HttpServer;
import de.srsoftware.configuration.JsonConfig;
@@ -11,6 +12,7 @@ import de.srsoftware.tools.ColorLogger;
import de.srsoftware.umbrella.core.ConnectionProvider;
import de.srsoftware.umbrella.core.UmbrellaException;
import de.srsoftware.umbrella.documents.DocumentApi;
import de.srsoftware.umbrella.documents.SqliteDb;
import de.srsoftware.umbrella.legacy.LegacyApi;
import de.srsoftware.umbrella.message.MessageApi;
import de.srsoftware.umbrella.message.MessageSystem;
@@ -46,26 +48,28 @@ public class Application {
configureLogging(config);
var port = config.get("umbrella.http.port", 8080);
var threads = config.get("umbrella.threads", 16);
var docDbFile = config.get("umbrella.database.documents",config.file().getParent()+"/documents.db");
var userDbFile = config.get("umbrella.database.user", config.file().getParent()+"/umbrella.db");
var loginDbFile = config.get("umbrella.database.login_services",config.file().getParent()+"/umbrella.db");
var messageDbFile = config.get("umbrella.database.messages", config.file().getParent()+"/umbrella.db");
var connectionProvider = new ConnectionProvider();
var documentDb = new SqliteDb(connectionProvider.get(docDbFile));
var messageDb = new SqliteMessageDb(connectionProvider.get(messageDbFile));
var userDb = new SqliteDB(connectionProvider.get(userDbFile));
var loginServiceDb = new SqliteDB(connectionProvider.get(loginDbFile));
var moduleConfig = config.subset("umbrella.modules").orElseThrow(() -> new RuntimeException(format(ERROR_MISSING_CONFIG,"umbrella.modules")));
var translationModule = new Translations();
var messageSystem = new MessageSystem(messageDb,translationModule,config.subset("umbrella.modules.message").orElseThrow());
var messageSystem = new MessageSystem(messageDb,translationModule,moduleConfig.subset("message").orElseThrow(() -> new RuntimeException(format(ERROR_MISSING_CONFIG,"umbrella.modules.message"))));
var server = HttpServer.create(new InetSocketAddress(port), 0);
server.setExecutor(Executors.newFixedThreadPool(threads));
new LegacyApi(userDb,config).bindPath("/legacy").on(server);
new DocumentApi().bindPath("/api/document").on(server);
new MessageApi(messageSystem).bindPath("/api/messages").on(server);
translationModule.bindPath("/api/translations").on(server);
new UserModule(userDb,loginServiceDb,messageSystem).bindPath("/api/user").on(server);
new WebHandler().bindPath("/").on(server);
var userModule = new UserModule(userDb,loginServiceDb,messageSystem);
new LegacyApi(userDb,config) .bindPath("/legacy") .on(server);
new DocumentApi(documentDb, userModule, moduleConfig) .bindPath("/api/document") .on(server);
new MessageApi(messageSystem).bindPath("/api/messages") .on(server);
translationModule .bindPath("/api/translations").on(server);
userModule .bindPath("/api/user") .on(server);
new WebHandler() .bindPath("/") .on(server);
server.start();
LOG.log(INFO,"Started web server at {0}",port);
}