James Moger
2014-07-03 1c301ba07b13c1cd941c44805ee09d1ac8759bd5
src/main/java/com/gitblit/manager/PluginManager.java
@@ -37,7 +37,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ro.fortsoft.pf4j.DefaultExtensionFinder;
import ro.fortsoft.pf4j.DefaultPluginManager;
import ro.fortsoft.pf4j.ExtensionFinder;
import ro.fortsoft.pf4j.PluginClassLoader;
import ro.fortsoft.pf4j.PluginState;
import ro.fortsoft.pf4j.PluginStateEvent;
@@ -103,7 +105,33 @@
   public PluginManager start() {
      File dir = runtimeManager.getFileOrFolder(Keys.plugins.folder, "${baseFolder}/plugins");
      dir.mkdirs();
      pf4j = new DefaultPluginManager(dir);
      pf4j = new DefaultPluginManager(dir) {
         @Override
          protected ExtensionFinder createExtensionFinder() {
             DefaultExtensionFinder extensionFinder = new DefaultExtensionFinder(this) {
                @Override
               protected ExtensionFactory createExtensionFactory() {
                   return new ExtensionFactory() {
                      @Override
                      public Object create(Class<?> extensionType) {
                         // instantiate && inject the extension
                         logger.debug("Create instance for extension '{}'", extensionType.getName());
                         try {
                            return runtimeManager.getInjector().getInstance(extensionType);
                         } catch (Exception e) {
                            logger.error(e.getMessage(), e);
                         }
                         return null;
                      }
                   };
                }
             };
              addPluginStateListener(extensionFinder);
              return extensionFinder;
          }
      };
      try {
         Version systemVersion = Version.createVersion(Constants.getVersion());