X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FSonePlugin.java;h=61bd6ce455654d8ba4e3dcbcc5c8e5534a1f19c1;hp=17340b8dde6312ad9fbaf159bdd644fc4ae65fe0;hb=ff7d6b4652e7ff3c035cf89516b134daf5f756b7;hpb=3a7092e48f27cba6286946442783f539ad73a911 diff --git a/src/main/java/net/pterodactylus/sone/main/SonePlugin.java b/src/main/java/net/pterodactylus/sone/main/SonePlugin.java index 17340b8..61bd6ce 100644 --- a/src/main/java/net/pterodactylus/sone/main/SonePlugin.java +++ b/src/main/java/net/pterodactylus/sone/main/SonePlugin.java @@ -1,5 +1,5 @@ /* - * Sone - SonePlugin.java - Copyright © 2010–2013 David Roden + * Sone - SonePlugin.java - Copyright © 2010–2016 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -45,7 +45,6 @@ import com.google.common.eventbus.EventBus; import com.google.inject.AbstractModule; import com.google.inject.Guice; 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.spi.InjectionListener; @@ -75,9 +74,10 @@ import freenet.support.api.Bucket; */ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, FredPluginBaseL10n, FredPluginThreadless, FredPluginVersioned { + private static final Logger soneLogger = getLogger("net.pterodactylus.sone"); + static { /* initialize logging. */ - Logger soneLogger = getLogger("net.pterodactylus.sone"); soneLogger.setUseParentHandlers(false); soneLogger.addHandler(new Handler() { private final LoadingCache> classCache = CacheBuilder.newBuilder() @@ -87,7 +87,7 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr return Class.forName(key); } }); - + @Override public void publish(LogRecord logRecord) { int recordLevel = logRecord.getLevel().intValue(); @@ -116,12 +116,12 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr } /** The version. */ - public static final Version VERSION = new Version(0, 9, 2); + private static final Version VERSION = new Version(0, 9, 6); /** The current year at time of release. */ - private static final int YEAR = 2015; + private static final int YEAR = 2016; private static final String SONE_HOMEPAGE = "USK@nwa8lHa271k2QvJ8aa0Ov7IHAV-DFOCFgmDt3X6BpCI,DuQSUZiI~agF8c-6tjsFFGuZ8eICrzWCILB60nT8KKo,AQACAAE/sone/"; - private static final int LATEST_EDITION = 69; + private static final int LATEST_EDITION = 73; /** The logger. */ private static final Logger logger = getLogger(SonePlugin.class.getName()); @@ -175,6 +175,10 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr return l10n; } + public static String getPluginVersion() { + return VERSION.toString(); + } + public static int getYear() { return YEAR; } @@ -183,6 +187,10 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr return SONE_HOMEPAGE + LATEST_EDITION; } + public static long getLatestEdition() { + return LATEST_EDITION; + } + // // FREDPLUGIN METHODS // @@ -250,6 +258,13 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr bind(Context.class).toInstance(context); bind(getOptionalContextTypeLiteral()).toInstance(of(context)); bind(SonePlugin.class).toInstance(SonePlugin.this); + bind(Version.class).toInstance(VERSION); + if (startConfiguration.getBooleanValue("Developer.LoadFromFilesystem").getValue(false)) { + String path = startConfiguration.getStringValue("Developer.FilesystemPath").getValue(null); + if (path != null) { + bind(Loaders.class).toInstance(new DebugLoaders(path)); + } + } bindListener(Matchers.any(), new TypeListener() { @Override @@ -306,6 +321,14 @@ public class SonePlugin implements FredPlugin, FredPluginFCP, FredPluginL10n, Fr webOfTrustConnector.stop(); } catch (Throwable t1) { logger.log(Level.SEVERE, "Error while shutting down!", t1); + } finally { + deregisterLoggerHandlers(); + } + } + + private void deregisterLoggerHandlers() { + for (Handler handler : soneLogger.getHandlers()) { + soneLogger.removeHandler(handler); } }