Add custom context type for dependency injection.
[Sone.git] / src / main / java / net / pterodactylus / sone / main / SonePlugin.java
index 42eeb45..5b27282 100644 (file)
@@ -34,6 +34,7 @@ import net.pterodactylus.sone.database.memory.MemoryDatabase;
 import net.pterodactylus.sone.fcp.FcpInterface;
 import net.pterodactylus.sone.freenet.PluginStoreConfigurationBackend;
 import net.pterodactylus.sone.freenet.plugin.PluginConnector;
+import net.pterodactylus.sone.freenet.wot.Context;
 import net.pterodactylus.sone.freenet.wot.IdentityManager;
 import net.pterodactylus.sone.freenet.wot.WebOfTrustConnector;
 import net.pterodactylus.sone.web.WebInterface;
@@ -51,7 +52,6 @@ import com.google.inject.Injector;
 import com.google.inject.Singleton;
 import com.google.inject.TypeLiteral;
 import com.google.inject.matcher.Matchers;
-import com.google.inject.name.Names;
 import com.google.inject.spi.InjectionListener;
 import com.google.inject.spi.TypeEncounter;
 import com.google.inject.spi.TypeListener;
@@ -195,7 +195,13 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr
                        }
                }
 
-               final Configuration startConfiguration = oldConfiguration;
+               final Configuration startConfiguration;
+               if ((newConfiguration != null) && (oldConfiguration != newConfiguration)) {
+                       logger.log(Level.INFO, "Setting configuration to file-based configuration.");
+                       startConfiguration = newConfiguration;
+               } else {
+                       startConfiguration = oldConfiguration;
+               }
                final EventBus eventBus = new EventBus();
 
                /* Freenet injector configuration. */
@@ -219,10 +225,10 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr
                                bind(Configuration.class).toInstance(startConfiguration);
                                bind(FreenetInterface.class).in(Singleton.class);
                                bind(PluginConnector.class).in(Singleton.class);
+                               bind(Context.class).toInstance(new Context("Sone"));
                                bind(WebOfTrustConnector.class).in(Singleton.class);
                                bind(WebOfTrustUpdater.class).in(Singleton.class);
                                bind(IdentityManager.class).in(Singleton.class);
-                               bind(String.class).annotatedWith(Names.named("WebOfTrustContext")).toInstance("Sone");
                                bind(SonePlugin.class).toInstance(SonePlugin.this);
                                bind(FcpInterface.class).in(Singleton.class);
                                bind(Database.class).to(MemoryDatabase.class);
@@ -264,10 +270,6 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr
 
                        /* start core! */
                        core.start();
-                       if ((newConfiguration != null) && (oldConfiguration != newConfiguration)) {
-                               logger.log(Level.INFO, "Setting configuration to file-based configuration.");
-                               core.setConfiguration(newConfiguration);
-                       }
                        webInterface.start();
                        webInterface.setFirstStart(firstStart);
                        webInterface.setNewConfig(newConfig);