diff --git a/scm-webapp/src/main/java/sonia/scm/MigrationEngine.java b/scm-webapp/src/main/java/sonia/scm/UpdateEngine.java similarity index 68% rename from scm-webapp/src/main/java/sonia/scm/MigrationEngine.java rename to scm-webapp/src/main/java/sonia/scm/UpdateEngine.java index 41db9f15d8..2fb86b9731 100644 --- a/scm-webapp/src/main/java/sonia/scm/MigrationEngine.java +++ b/scm-webapp/src/main/java/sonia/scm/UpdateEngine.java @@ -5,16 +5,16 @@ import sonia.scm.migration.UpdateStep; import javax.inject.Inject; import java.util.Set; -public class MigrationEngine { +public class UpdateEngine { private final Set steps; @Inject - public MigrationEngine(Set steps) { + public UpdateEngine(Set steps) { this.steps = steps; } - public void migrate() { + public void update() { steps.forEach(UpdateStep::doUpdate); } } diff --git a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java b/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java index 538725fbbc..d8a64444e7 100644 --- a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java +++ b/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java @@ -39,7 +39,7 @@ import com.google.inject.Module; import com.google.inject.assistedinject.FactoryModuleBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sonia.scm.MigrationEngine; +import sonia.scm.UpdateEngine; import sonia.scm.SCMContext; import sonia.scm.ScmContextListener; import sonia.scm.Stage; @@ -152,14 +152,7 @@ public class BootstrapContextListener implements ServletContextListener { Injector bootstrapInjector = Guice.createInjector(bootstrapModule, scmContextListenerModule); - - Injector migrationInjector = bootstrapInjector.createChildInjector(new UpdateStepModule(pluginLoader)); - - MigrationEngine stepEngine = migrationInjector.getInstance(MigrationEngine.class); - stepEngine.migrate(); - - - + processUpdates(pluginLoader, bootstrapInjector); contextListener = bootstrapInjector.getInstance(ScmContextListener.Factory.class).create(cl, plugins); } catch (IOException ex) { @@ -177,6 +170,13 @@ public class BootstrapContextListener implements ServletContextListener { } } + private void processUpdates(DefaultPluginLoader pluginLoader, Injector bootstrapInjector) { + Injector updateInjector = bootstrapInjector.createChildInjector(new UpdateStepModule(pluginLoader)); + + UpdateEngine updateEngine = updateInjector.getInstance(UpdateEngine.class); + updateEngine.update(); + } + private boolean isCorePluginExtractionDisabled() { return Boolean.getBoolean("sonia.scm.boot.disable-core-plugin-extraction"); }