mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 16:05:44 +01:00
added modules to overrides
This commit is contained in:
@@ -33,6 +33,10 @@ package sonia.scm;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.inject.Module;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -172,6 +176,8 @@ public class ClassOverrides implements Iterable<ClassOverride>
|
||||
logger.warn("could not append ClassOverride, because it is not valid");
|
||||
}
|
||||
}
|
||||
|
||||
getModuleClasses().addAll(overrides.getModuleClasses());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -188,6 +194,54 @@ public class ClassOverrides implements Iterable<ClassOverride>
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<Class<? extends Module>> getModuleClasses()
|
||||
{
|
||||
if (moduleClasses == null)
|
||||
{
|
||||
moduleClasses = new ArrayList<Class<? extends Module>>();
|
||||
}
|
||||
|
||||
return moduleClasses;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<? extends Module> getModules()
|
||||
{
|
||||
return Lists.transform(moduleClasses,
|
||||
new Function<Class<? extends Module>, Module>()
|
||||
{
|
||||
@Override
|
||||
public Module apply(Class<? extends Module> moduleClass)
|
||||
{
|
||||
Module module = null;
|
||||
|
||||
try
|
||||
{
|
||||
module = moduleClass.newInstance();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.error(
|
||||
"could not create module instance of ".concat(
|
||||
moduleClass.getName()), ex);
|
||||
}
|
||||
|
||||
return module;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
@@ -230,6 +284,18 @@ public class ClassOverrides implements Iterable<ClassOverride>
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
*
|
||||
* @param moduleClasses
|
||||
*/
|
||||
public void setModuleClasses(List<Class<? extends Module>> moduleClasses)
|
||||
{
|
||||
this.moduleClasses = moduleClasses;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
@@ -243,6 +309,10 @@ public class ClassOverrides implements Iterable<ClassOverride>
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
@XmlElement(name = "module")
|
||||
private List<Class<? extends Module>> moduleClasses;
|
||||
|
||||
/** Field description */
|
||||
@XmlElement(name = "override")
|
||||
private List<ClassOverride> overrides;
|
||||
|
||||
@@ -134,11 +134,13 @@ public class ScmContextListener extends GuiceServletContextListener
|
||||
|
||||
pluginLoader.processExtensions(bindExtProcessor);
|
||||
|
||||
ClassOverrides overrides = ClassOverrides.findOverrides();
|
||||
ScmServletModule main = new ScmServletModule(pluginLoader,
|
||||
bindExtProcessor);
|
||||
List<Module> moduleList =
|
||||
new ArrayList<Module>(bindExtProcessor.getModuleSet());
|
||||
bindExtProcessor, overrides);
|
||||
List<Module> moduleList = new ArrayList<Module>();
|
||||
|
||||
moduleList.addAll(bindExtProcessor.getModuleSet());
|
||||
moduleList.addAll(overrides.getModules());
|
||||
moduleList.add(0, main);
|
||||
injector = Guice.createInjector(moduleList);
|
||||
|
||||
|
||||
@@ -193,13 +193,15 @@ public class ScmServletModule extends ServletModule
|
||||
*
|
||||
* @param pluginLoader
|
||||
* @param bindExtProcessor
|
||||
* @param overrides
|
||||
*/
|
||||
ScmServletModule(PluginLoader pluginLoader,
|
||||
BindingExtensionProcessor bindExtProcessor)
|
||||
BindingExtensionProcessor bindExtProcessor,
|
||||
ClassOverrides overrides)
|
||||
{
|
||||
this.pluginLoader = pluginLoader;
|
||||
this.bindExtProcessor = bindExtProcessor;
|
||||
this.overrides = ClassOverrides.findOverrides();
|
||||
this.overrides = overrides;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user