X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FSonePlugin.java;h=a3cb38502c9b6e36e941aad047025def177bc059;hb=0d9ddd8ae192ab749c224a14e9420306b3e719ed;hp=f2cf128f22beabcf531da6a7362a33433c0c129d;hpb=18ada47554280f444bb829dafc4d40926312066e;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/main/SonePlugin.java b/src/main/java/net/pterodactylus/sone/main/SonePlugin.java index f2cf128..a3cb385 100644 --- a/src/main/java/net/pterodactylus/sone/main/SonePlugin.java +++ b/src/main/java/net/pterodactylus/sone/main/SonePlugin.java @@ -26,6 +26,7 @@ import net.pterodactylus.sone.core.*; import net.pterodactylus.sone.fcp.*; import net.pterodactylus.sone.freenet.wot.*; import net.pterodactylus.sone.web.*; +import net.pterodactylus.sone.web.notification.NotificationHandler; import freenet.l10n.BaseL10n.*; import freenet.l10n.*; @@ -34,8 +35,10 @@ import freenet.support.*; import freenet.support.api.*; import com.google.common.annotations.*; +import com.google.common.eventbus.*; import com.google.common.cache.*; import com.google.inject.*; +import com.google.inject.Module; import com.google.inject.name.*; import kotlin.jvm.functions.*; @@ -50,12 +53,13 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr static { /* initialize logging. */ soneLogger.setUseParentHandlers(false); + soneLogger.setLevel(Level.ALL); soneLogger.addHandler(new Handler() { private final LoadingCache> classCache = CacheBuilder.newBuilder() .build(new CacheLoader>() { @Override public Class load(String key) throws Exception { - return Class.forName(key); + return SonePlugin.class.getClassLoader().loadClass(key); } }); @@ -193,18 +197,22 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr /* create the web interface. */ webInterface = injector.getInstance(WebInterface.class); + NotificationHandler notificationHandler = injector.getInstance(NotificationHandler.class); /* start core! */ core.start(); + + /* start the web interface! */ webInterface.start(); webInterface.setFirstStart(injector.getInstance(Key.get(Boolean.class, Names.named("FirstStart")))); webInterface.setNewConfig(injector.getInstance(Key.get(Boolean.class, Names.named("NewConfig")))); + notificationHandler.start(); } @VisibleForTesting protected Injector createInjector() { FreenetModule freenetModule = new FreenetModule(pluginRespirator); - AbstractModule soneModule = new SoneModule(this); + AbstractModule soneModule = new SoneModule(this, new EventBus()); Module webInterfaceModule = new WebInterfaceModule(); return createInjector(freenetModule, soneModule, webInterfaceModule);