mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 00:15:44 +01:00
added modules to overrides
This commit is contained in:
@@ -33,6 +33,10 @@ package sonia.scm;
|
|||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- 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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
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");
|
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 ----------------------------------------------------------
|
//~--- 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
|
* Method description
|
||||||
*
|
*
|
||||||
@@ -230,6 +284,18 @@ public class ClassOverrides implements Iterable<ClassOverride>
|
|||||||
|
|
||||||
//~--- set methods ----------------------------------------------------------
|
//~--- set methods ----------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method description
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param moduleClasses
|
||||||
|
*/
|
||||||
|
public void setModuleClasses(List<Class<? extends Module>> moduleClasses)
|
||||||
|
{
|
||||||
|
this.moduleClasses = moduleClasses;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method description
|
* Method description
|
||||||
*
|
*
|
||||||
@@ -243,6 +309,10 @@ public class ClassOverrides implements Iterable<ClassOverride>
|
|||||||
|
|
||||||
//~--- fields ---------------------------------------------------------------
|
//~--- fields ---------------------------------------------------------------
|
||||||
|
|
||||||
|
/** Field description */
|
||||||
|
@XmlElement(name = "module")
|
||||||
|
private List<Class<? extends Module>> moduleClasses;
|
||||||
|
|
||||||
/** Field description */
|
/** Field description */
|
||||||
@XmlElement(name = "override")
|
@XmlElement(name = "override")
|
||||||
private List<ClassOverride> overrides;
|
private List<ClassOverride> overrides;
|
||||||
|
|||||||
@@ -134,11 +134,13 @@ public class ScmContextListener extends GuiceServletContextListener
|
|||||||
|
|
||||||
pluginLoader.processExtensions(bindExtProcessor);
|
pluginLoader.processExtensions(bindExtProcessor);
|
||||||
|
|
||||||
|
ClassOverrides overrides = ClassOverrides.findOverrides();
|
||||||
ScmServletModule main = new ScmServletModule(pluginLoader,
|
ScmServletModule main = new ScmServletModule(pluginLoader,
|
||||||
bindExtProcessor);
|
bindExtProcessor, overrides);
|
||||||
List<Module> moduleList =
|
List<Module> moduleList = new ArrayList<Module>();
|
||||||
new ArrayList<Module>(bindExtProcessor.getModuleSet());
|
|
||||||
|
|
||||||
|
moduleList.addAll(bindExtProcessor.getModuleSet());
|
||||||
|
moduleList.addAll(overrides.getModules());
|
||||||
moduleList.add(0, main);
|
moduleList.add(0, main);
|
||||||
injector = Guice.createInjector(moduleList);
|
injector = Guice.createInjector(moduleList);
|
||||||
|
|
||||||
|
|||||||
@@ -193,13 +193,15 @@ public class ScmServletModule extends ServletModule
|
|||||||
*
|
*
|
||||||
* @param pluginLoader
|
* @param pluginLoader
|
||||||
* @param bindExtProcessor
|
* @param bindExtProcessor
|
||||||
|
* @param overrides
|
||||||
*/
|
*/
|
||||||
ScmServletModule(PluginLoader pluginLoader,
|
ScmServletModule(PluginLoader pluginLoader,
|
||||||
BindingExtensionProcessor bindExtProcessor)
|
BindingExtensionProcessor bindExtProcessor,
|
||||||
|
ClassOverrides overrides)
|
||||||
{
|
{
|
||||||
this.pluginLoader = pluginLoader;
|
this.pluginLoader = pluginLoader;
|
||||||
this.bindExtProcessor = bindExtProcessor;
|
this.bindExtProcessor = bindExtProcessor;
|
||||||
this.overrides = ClassOverrides.findOverrides();
|
this.overrides = overrides;
|
||||||
}
|
}
|
||||||
|
|
||||||
//~--- methods --------------------------------------------------------------
|
//~--- methods --------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user