introduced ModuleRegistry to easy inter-module dependencies

This commit is contained in:
2025-08-09 13:43:10 +02:00
parent 1d569b4962
commit 5d506ac0f9
25 changed files with 347 additions and 255 deletions

View File

@@ -10,13 +10,13 @@ import de.srsoftware.configuration.JsonConfig;
import de.srsoftware.tools.ColorLogger;
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.exceptions.UmbrellaException;
import de.srsoftware.umbrella.documents.DocumentApi;
import de.srsoftware.umbrella.items.ItemApi;
import de.srsoftware.umbrella.legacy.LegacyApi;
import de.srsoftware.umbrella.markdown.MarkdownApi;
import de.srsoftware.umbrella.message.MessageApi;
import de.srsoftware.umbrella.message.MessageSystem;
import de.srsoftware.umbrella.notes.NoteModule;
import de.srsoftware.umbrella.project.ProjectModule;
@@ -57,23 +57,24 @@ public class Application {
config.get("umbrella.plantuml").map(Object::toString).map(File::new).filter(File::exists).ifPresent(Util::setPlantUmlJar);
var translationModule = new Translations();
var messageSystem = new MessageSystem(translationModule,config);
var server = HttpServer.create(new InetSocketAddress(port), 0);
var userModule = new UserModule(config,messageSystem);
var tagModule = new TagModule(config,userModule);
var bookmarkApi = new BookmarkApi(config,tagModule);
var companyModule = new CompanyModule(config, userModule);
var documentApi = new DocumentApi(companyModule, translationModule, config);
var itemApi = new ItemApi(config,companyModule);
var legacyApi = new LegacyApi(userModule.userDb(),config);
var markdownApi = new MarkdownApi(userModule);
var messageApi = new MessageApi(messageSystem);
var notesModule = new NoteModule(config,userModule);
var projectModule = new ProjectModule(config,companyModule,tagModule);
var taskModule = new TaskModule(config,projectModule,tagModule,notesModule);
var timeModule = new TimeModule(config,taskModule);
var registry = new ModuleRegistry();
var translationModule = new Translations(registry);
var postBox = new MessageSystem(registry,config);
var userModule = new UserModule(registry,config);
var tagModule = new TagModule(registry,config);
var bookmarkApi = new BookmarkApi(registry,config);
var companyModule = new CompanyModule(registry, config);
var documentApi = new DocumentApi(registry, config);
var itemApi = new ItemApi(registry, config);
var legacyApi = new LegacyApi(registry,config);
var markdownApi = new MarkdownApi(registry);
var notesModule = new NoteModule(registry,config);
var projectModule = new ProjectModule(registry, config);
var taskModule = new TaskModule(registry, config);
var timeModule = new TimeModule(registry, config);
var webHandler = new WebHandler();
bookmarkApi .bindPath("/api/bookmark") .on(server);
@@ -81,7 +82,6 @@ public class Application {
companyModule .bindPath("/api/company") .on(server);
itemApi .bindPath("/api/items") .on(server);
markdownApi .bindPath("/api/markdown") .on(server);
messageApi .bindPath("/api/messages") .on(server);
notesModule .bindPath("/api/notes") .on(server);
projectModule .bindPath("/api/project") .on(server);
tagModule .bindPath("/api/tags") .on(server);