added modules, classloading and view packages to sonia.scm.lifecycle

This commit is contained in:
Sebastian Sdorra
2019-06-25 09:49:52 +02:00
parent 6efa6ff29f
commit 80febf9424
47 changed files with 105 additions and 107 deletions

View File

@@ -0,0 +1,24 @@
package sonia.scm.lifecycle.modules;
import com.google.inject.AbstractModule;
import com.google.inject.multibindings.Multibinder;
import sonia.scm.migration.UpdateStep;
import sonia.scm.plugin.PluginLoader;
public class UpdateStepModule extends AbstractModule {
private final PluginLoader pluginLoader;
public UpdateStepModule(PluginLoader pluginLoader) {
this.pluginLoader = pluginLoader;
}
@Override
protected void configure() {
Multibinder<UpdateStep> updateStepBinder = Multibinder.newSetBinder(binder(), UpdateStep.class);
pluginLoader
.getExtensionProcessor()
.byExtensionPoint(UpdateStep.class)
.forEach(stepClass -> updateStepBinder.addBinding().to(stepClass));
}
}