From 80febf94248c2fe04950643cb2495b52eb549357 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 25 Jun 2019 09:49:52 +0200 Subject: [PATCH] added modules, classloading and view packages to sonia.scm.lifecycle --- .../src/main/java/sonia/scm/SCMContext.java | 2 -- .../repository/TempSCMContextProvider.java | 26 ------------------- .../lifecycle/BootstrapContextListener.java | 18 +++++++++---- .../java/sonia/scm/lifecycle/LifeCycle.java | 9 +++++++ .../sonia/scm/lifecycle/PluginBootstrap.java | 1 + .../BootstrapClassLoader.java | 2 +- .../ClassLoaderLifeCycle.java | 9 ++++--- .../{ => classloading}/LoggingAdapter.java | 2 +- .../ApplicationModuleProvider.java | 10 +++---- .../{ => modules}/BootstrapModule.java | 5 ++-- .../modules}/ClassOverride.java | 3 ++- .../modules}/ClassOverrides.java | 2 +- .../modules}/CloseableModule.java | 2 +- .../modules}/EagerSingletonModule.java | 5 ++-- .../{ => modules}/InjectionLifeCycle.java | 14 +++++----- .../{ => modules}/ModuleProvider.java | 2 +- .../{ => lifecycle/modules}/MoreMatchers.java | 2 +- .../ResteasyAllInOneServletDispatcher.java | 2 +- .../modules}/ResteasyModule.java | 2 +- .../modules}/ScmEventBusModule.java | 2 +- .../modules}/ScmInitializerModule.java | 4 ++- .../modules}/ScmSecurityModule.java | 4 +-- .../modules}/ScmServletModule.java | 13 +++++++--- .../ServletContextListenerHolder.java | 2 +- .../{ => modules}/ServletContextModule.java | 4 +-- .../{ => modules}/UpdateStepModule.java | 6 ++--- .../scm/lifecycle/{ => view}/SingleView.java | 10 ++++--- .../{ => view}/SingleViewServlet.java | 2 +- .../sonia/scm/lifecycle/{ => view}/View.java | 2 +- .../lifecycle/{ => view}/ViewController.java | 2 +- .../sonia/scm/plugin/PluginProcessor.java | 2 +- .../sonia/scm/plugin/PluginsInternal.java | 2 +- .../update/MigrationWizardModuleProvider.java | 2 +- .../src/main/resources/logback.default.xml | 2 +- .../sonia/scm/StaticResourceServletTest.java | 2 +- .../ClassLoaderLifeCycleTest.java | 2 +- .../modules}/CloseableModuleTest.java | 2 +- .../modules}/EagerSingletonModuleTest.java | 3 ++- .../{ => modules}/InjectionLifeCycleTest.java | 7 ++--- .../modules}/MoreMatchersTest.java | 2 +- .../modules}/ScmEventBusModuleTest.java | 2 +- .../modules}/ScmInitializerModuleTest.java | 4 ++- .../ServletContextListenerHolderTest.java | 2 +- .../ServletContextModuleTest.java | 2 +- .../{ => view}/SingleViewServletTest.java | 2 +- .../lifecycle/{ => view}/SingleViewTest.java | 3 ++- .../sonia/scm/plugin/PluginProcessorTest.java | 2 +- 47 files changed, 105 insertions(+), 107 deletions(-) create mode 100644 scm-webapp/src/main/java/sonia/scm/lifecycle/LifeCycle.java rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => classloading}/BootstrapClassLoader.java (87%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => classloading}/ClassLoaderLifeCycle.java (95%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => classloading}/LoggingAdapter.java (95%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => modules}/ApplicationModuleProvider.java (87%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => modules}/BootstrapModule.java (96%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ClassOverride.java (98%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ClassOverrides.java (99%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/CloseableModule.java (98%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/EagerSingletonModule.java (96%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => modules}/InjectionLifeCycle.java (86%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => modules}/ModuleProvider.java (79%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/MoreMatchers.java (98%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ResteasyAllInOneServletDispatcher.java (98%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ResteasyModule.java (93%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ScmEventBusModule.java (98%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ScmInitializerModule.java (96%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ScmSecurityModule.java (98%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ScmServletModule.java (97%) rename scm-webapp/src/main/java/sonia/scm/{ => lifecycle/modules}/ServletContextListenerHolder.java (98%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => modules}/ServletContextModule.java (73%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => modules}/UpdateStepModule.java (79%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => view}/SingleView.java (91%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => view}/SingleViewServlet.java (98%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => view}/View.java (89%) rename scm-webapp/src/main/java/sonia/scm/lifecycle/{ => view}/ViewController.java (82%) rename scm-webapp/src/test/java/sonia/scm/lifecycle/{ => classloading}/ClassLoaderLifeCycleTest.java (98%) rename scm-webapp/src/test/java/sonia/scm/{ => lifecycle/modules}/CloseableModuleTest.java (94%) rename scm-webapp/src/test/java/sonia/scm/{ => lifecycle/modules}/EagerSingletonModuleTest.java (93%) rename scm-webapp/src/test/java/sonia/scm/lifecycle/{ => modules}/InjectionLifeCycleTest.java (96%) rename scm-webapp/src/test/java/sonia/scm/{ => lifecycle/modules}/MoreMatchersTest.java (96%) rename scm-webapp/src/test/java/sonia/scm/{ => lifecycle/modules}/ScmEventBusModuleTest.java (95%) rename scm-webapp/src/test/java/sonia/scm/{ => lifecycle/modules}/ScmInitializerModuleTest.java (86%) rename scm-webapp/src/test/java/sonia/scm/{ => lifecycle/modules}/ServletContextListenerHolderTest.java (98%) rename scm-webapp/src/test/java/sonia/scm/lifecycle/{ => modules}/ServletContextModuleTest.java (97%) rename scm-webapp/src/test/java/sonia/scm/lifecycle/{ => view}/SingleViewServletTest.java (98%) rename scm-webapp/src/test/java/sonia/scm/lifecycle/{ => view}/SingleViewTest.java (97%) diff --git a/scm-core/src/main/java/sonia/scm/SCMContext.java b/scm-core/src/main/java/sonia/scm/SCMContext.java index f2c1af81d0..5af5d9f7d9 100644 --- a/scm-core/src/main/java/sonia/scm/SCMContext.java +++ b/scm-core/src/main/java/sonia/scm/SCMContext.java @@ -94,8 +94,6 @@ public final class SCMContext { provider = new BasicContextProvider(); } - - provider.init(); } } } diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/TempSCMContextProvider.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/TempSCMContextProvider.java index 0a0064ad44..32cf7b171c 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/TempSCMContextProvider.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/repository/TempSCMContextProvider.java @@ -50,32 +50,6 @@ import java.nio.file.Path; public class TempSCMContextProvider implements SCMContextProvider { - /** - * Method description - * - * - * @throws IOException - */ - @Override - public void close() throws IOException - { - - // do nothing - } - - /** - * Method description - * - */ - @Override - public void init() - { - - // do nothing - } - - //~--- get methods ---------------------------------------------------------- - /** * Method description * diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextListener.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextListener.java index 3c3cfc2eaa..f7f932634a 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextListener.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextListener.java @@ -36,11 +36,19 @@ import com.google.inject.Module; import com.google.inject.servlet.GuiceServletContextListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sonia.scm.CloseableModule; -import sonia.scm.EagerSingletonModule; +import sonia.scm.lifecycle.classloading.ClassLoaderLifeCycle; +import sonia.scm.lifecycle.modules.ApplicationModuleProvider; +import sonia.scm.lifecycle.modules.BootstrapModule; +import sonia.scm.lifecycle.modules.CloseableModule; +import sonia.scm.lifecycle.modules.EagerSingletonModule; import sonia.scm.SCMContext; -import sonia.scm.ScmEventBusModule; -import sonia.scm.ScmInitializerModule; +import sonia.scm.lifecycle.modules.InjectionLifeCycle; +import sonia.scm.lifecycle.modules.ModuleProvider; +import sonia.scm.lifecycle.modules.ScmEventBusModule; +import sonia.scm.lifecycle.modules.ScmInitializerModule; +import sonia.scm.lifecycle.modules.ServletContextModule; +import sonia.scm.lifecycle.modules.UpdateStepModule; +import sonia.scm.lifecycle.view.SingleView; import sonia.scm.plugin.PluginLoader; import sonia.scm.update.MigrationWizardModuleProvider; import sonia.scm.update.UpdateEngine; @@ -68,7 +76,7 @@ public class BootstrapContextListener extends GuiceServletContextListener { LOG.info("start scm-manager initialization"); context = sce.getServletContext(); - classLoaderLifeCycle.init(); + classLoaderLifeCycle.initialize(); super.contextInitialized(sce); Injector injector = (Injector) context.getAttribute(Injector.class.getName()); diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/LifeCycle.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/LifeCycle.java new file mode 100644 index 0000000000..c5b386808b --- /dev/null +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/LifeCycle.java @@ -0,0 +1,9 @@ +package sonia.scm.lifecycle; + +public interface LifeCycle { + + void initialize(); + + void shutdown(); + +} diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/PluginBootstrap.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/PluginBootstrap.java index 5f6272ab38..e19d41cc69 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/PluginBootstrap.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/PluginBootstrap.java @@ -6,6 +6,7 @@ import com.google.common.io.Files; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sonia.scm.SCMContext; +import sonia.scm.lifecycle.classloading.ClassLoaderLifeCycle; import sonia.scm.migration.UpdateException; import sonia.scm.plugin.DefaultPluginLoader; import sonia.scm.plugin.Plugin; diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapClassLoader.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/BootstrapClassLoader.java similarity index 87% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapClassLoader.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/BootstrapClassLoader.java index 0cc1d84536..64d9b75d36 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapClassLoader.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/BootstrapClassLoader.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.classloading; /** * This ClassLoader is mainly a wrapper around the web application class loader and its goal is to make it easier to diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/ClassLoaderLifeCycle.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java similarity index 95% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/ClassLoaderLifeCycle.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java index a5979948f1..6f9a8610c4 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/ClassLoaderLifeCycle.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycle.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.classloading; import com.google.common.annotations.VisibleForTesting; import org.slf4j.Logger; @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventor; import se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventorFactory; import se.jiderhamn.classloader.leak.prevention.cleanup.MBeanCleanUp; +import sonia.scm.lifecycle.LifeCycle; import sonia.scm.plugin.ChildFirstPluginClassLoader; import sonia.scm.plugin.DefaultPluginClassLoader; @@ -21,7 +22,7 @@ import static com.google.common.base.Preconditions.checkState; /** * Creates and shutdown SCM-Manager ClassLoaders. */ -public final class ClassLoaderLifeCycle { +public final class ClassLoaderLifeCycle implements LifeCycle { private static final Logger LOG = LoggerFactory.getLogger(ClassLoaderLifeCycle.class); @@ -46,7 +47,7 @@ public final class ClassLoaderLifeCycle { this.webappClassLoader = initAndAppend(webappClassLoader); } - void init() { + public void initialize() { bootstrapClassLoader = initAndAppend(new BootstrapClassLoader(webappClassLoader)); } @@ -72,7 +73,7 @@ public final class ClassLoaderLifeCycle { return initAndAppend(pluginClassLoader); } - void shutdown() { + public void shutdown() { LOG.info("shutdown classloader infrastructure"); ClassLoaderAndPreventor clap = classLoaders.poll(); while (clap != null) { diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/LoggingAdapter.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/LoggingAdapter.java similarity index 95% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/LoggingAdapter.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/LoggingAdapter.java index 00a28f62d2..d4dbde2ef1 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/LoggingAdapter.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/classloading/LoggingAdapter.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.classloading; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/ApplicationModuleProvider.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ApplicationModuleProvider.java similarity index 87% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/ApplicationModuleProvider.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ApplicationModuleProvider.java index f918714dc0..62793da0f6 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/ApplicationModuleProvider.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ApplicationModuleProvider.java @@ -1,15 +1,11 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.modules; import com.google.common.base.Throwables; import com.google.inject.Module; import org.apache.shiro.guice.web.ShiroWebModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sonia.scm.ClassOverrides; -import sonia.scm.ResteasyModule; import sonia.scm.SCMContext; -import sonia.scm.ScmSecurityModule; -import sonia.scm.ScmServletModule; import sonia.scm.Stage; import sonia.scm.api.v2.resources.MapperModule; import sonia.scm.debug.DebugModule; @@ -21,14 +17,14 @@ import javax.servlet.ServletContext; import java.util.ArrayList; import java.util.List; -class ApplicationModuleProvider implements ModuleProvider { +public class ApplicationModuleProvider implements ModuleProvider { private static final Logger LOG = LoggerFactory.getLogger(ApplicationModuleProvider.class); private final ServletContext servletContext; private final PluginLoader pluginLoader; - ApplicationModuleProvider(ServletContext servletContext, PluginLoader pluginLoader) { + public ApplicationModuleProvider(ServletContext servletContext, PluginLoader pluginLoader) { this.servletContext = servletContext; this.pluginLoader = pluginLoader; } diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/BootstrapModule.java similarity index 96% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/BootstrapModule.java index 010381e112..ce48583f9e 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/BootstrapModule.java @@ -1,10 +1,9 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.modules; import com.google.inject.AbstractModule; import com.google.inject.throwingproviders.ThrowingProviderBinder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sonia.scm.ClassOverrides; import sonia.scm.SCMContext; import sonia.scm.SCMContextProvider; import sonia.scm.io.DefaultFileSystem; @@ -32,7 +31,7 @@ public class BootstrapModule extends AbstractModule { private final ClassOverrides overrides; private final PluginLoader pluginLoader; - BootstrapModule(PluginLoader pluginLoader) { + public BootstrapModule(PluginLoader pluginLoader) { this.overrides = ClassOverrides.findOverrides(pluginLoader.getUberClassLoader()); this.pluginLoader = pluginLoader; } diff --git a/scm-webapp/src/main/java/sonia/scm/ClassOverride.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ClassOverride.java similarity index 98% rename from scm-webapp/src/main/java/sonia/scm/ClassOverride.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ClassOverride.java index 8741ce85af..779a62b6e0 100644 --- a/scm-webapp/src/main/java/sonia/scm/ClassOverride.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ClassOverride.java @@ -30,12 +30,13 @@ */ -package sonia.scm; +package sonia.scm.lifecycle.modules; //~--- non-JDK imports -------------------------------------------------------- import com.google.common.base.MoreObjects; import com.google.common.base.Objects; +import sonia.scm.Validateable; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; diff --git a/scm-webapp/src/main/java/sonia/scm/ClassOverrides.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ClassOverrides.java similarity index 99% rename from scm-webapp/src/main/java/sonia/scm/ClassOverrides.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ClassOverrides.java index b727a75fc0..d37bb989b7 100644 --- a/scm-webapp/src/main/java/sonia/scm/ClassOverrides.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ClassOverrides.java @@ -31,7 +31,7 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; //~--- non-JDK imports -------------------------------------------------------- diff --git a/scm-webapp/src/main/java/sonia/scm/CloseableModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/CloseableModule.java similarity index 98% rename from scm-webapp/src/main/java/sonia/scm/CloseableModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/CloseableModule.java index dd03ff3e30..981de6e2e0 100644 --- a/scm-webapp/src/main/java/sonia/scm/CloseableModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/CloseableModule.java @@ -1,4 +1,4 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.inject.AbstractModule; import com.google.inject.TypeLiteral; diff --git a/scm-webapp/src/main/java/sonia/scm/EagerSingletonModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/EagerSingletonModule.java similarity index 96% rename from scm-webapp/src/main/java/sonia/scm/EagerSingletonModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/EagerSingletonModule.java index 3540006061..4feee1c4a6 100644 --- a/scm-webapp/src/main/java/sonia/scm/EagerSingletonModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/EagerSingletonModule.java @@ -29,7 +29,7 @@ */ -package sonia.scm; +package sonia.scm.lifecycle.modules; //~--- non-JDK imports -------------------------------------------------------- @@ -41,6 +41,7 @@ import com.google.inject.spi.TypeEncounter; import com.google.inject.spi.TypeListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import sonia.scm.EagerSingleton; import java.util.Set; @@ -63,7 +64,7 @@ public class EagerSingletonModule extends AbstractModule { * * @param injector injector for initialization */ - public void initialize(Injector injector) { + void initialize(Injector injector) { for (Class clazz : eagerSingletons) { LOG.info("initialize eager singleton {}", clazz.getName()); injector.getInstance(clazz); diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionLifeCycle.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/InjectionLifeCycle.java similarity index 86% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionLifeCycle.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/InjectionLifeCycle.java index 8cbab48d9c..0322bdd71b 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionLifeCycle.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/InjectionLifeCycle.java @@ -1,31 +1,29 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.modules; import com.google.inject.Binding; import com.google.inject.Injector; import com.google.inject.Key; -import sonia.scm.CloseableModule; import sonia.scm.Default; -import sonia.scm.EagerSingletonModule; -import sonia.scm.ServletContextListenerHolder; +import sonia.scm.lifecycle.LifeCycle; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import java.util.Optional; -class InjectionLifeCycle { +public class InjectionLifeCycle implements LifeCycle { private final Injector injector; - InjectionLifeCycle(Injector injector) { + public InjectionLifeCycle(Injector injector) { this.injector = injector; } - void initialize() { + public void initialize() { initializeEagerSingletons(); initializeServletContextListeners(); } - void shutdown() { + public void shutdown() { destroyServletContextListeners(); closeRegisteredCloseables(); } diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/ModuleProvider.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ModuleProvider.java similarity index 79% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/ModuleProvider.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ModuleProvider.java index af80a8dd94..93517b21a1 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/ModuleProvider.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ModuleProvider.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.modules; import com.google.inject.Module; diff --git a/scm-webapp/src/main/java/sonia/scm/MoreMatchers.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/MoreMatchers.java similarity index 98% rename from scm-webapp/src/main/java/sonia/scm/MoreMatchers.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/MoreMatchers.java index 40fe6ee476..04283dcb43 100644 --- a/scm-webapp/src/main/java/sonia/scm/MoreMatchers.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/MoreMatchers.java @@ -1,4 +1,4 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.inject.TypeLiteral; import com.google.inject.matcher.AbstractMatcher; diff --git a/scm-webapp/src/main/java/sonia/scm/ResteasyAllInOneServletDispatcher.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ResteasyAllInOneServletDispatcher.java similarity index 98% rename from scm-webapp/src/main/java/sonia/scm/ResteasyAllInOneServletDispatcher.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ResteasyAllInOneServletDispatcher.java index 25345da04c..6196fd7065 100644 --- a/scm-webapp/src/main/java/sonia/scm/ResteasyAllInOneServletDispatcher.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ResteasyAllInOneServletDispatcher.java @@ -1,4 +1,4 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.inject.Injector; import org.jboss.resteasy.plugins.guice.ModuleProcessor; diff --git a/scm-webapp/src/main/java/sonia/scm/ResteasyModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ResteasyModule.java similarity index 93% rename from scm-webapp/src/main/java/sonia/scm/ResteasyModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ResteasyModule.java index 352efc28ab..eac4926a57 100644 --- a/scm-webapp/src/main/java/sonia/scm/ResteasyModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ResteasyModule.java @@ -1,4 +1,4 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.common.collect.ImmutableMap; import com.google.inject.servlet.ServletModule; diff --git a/scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmEventBusModule.java similarity index 98% rename from scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmEventBusModule.java index c231e8ccfd..a4916be318 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmEventBusModule.java @@ -29,7 +29,7 @@ */ -package sonia.scm; +package sonia.scm.lifecycle.modules; //~--- non-JDK imports -------------------------------------------------------- diff --git a/scm-webapp/src/main/java/sonia/scm/ScmInitializerModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmInitializerModule.java similarity index 96% rename from scm-webapp/src/main/java/sonia/scm/ScmInitializerModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmInitializerModule.java index 458dadf1b1..b3a4cb6209 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmInitializerModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmInitializerModule.java @@ -29,7 +29,7 @@ */ -package sonia.scm; +package sonia.scm.lifecycle.modules; //~--- non-JDK imports -------------------------------------------------------- @@ -40,6 +40,8 @@ import com.google.inject.spi.TypeEncounter; import com.google.inject.spi.TypeListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import sonia.scm.Initable; +import sonia.scm.SCMContext; /** * Initializes all instances which are implementing the {@link Initable} interface. diff --git a/scm-webapp/src/main/java/sonia/scm/ScmSecurityModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmSecurityModule.java similarity index 98% rename from scm-webapp/src/main/java/sonia/scm/ScmSecurityModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmSecurityModule.java index 3598967588..a77f603210 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmSecurityModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmSecurityModule.java @@ -31,7 +31,7 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; //~--- non-JDK imports -------------------------------------------------------- @@ -48,8 +48,6 @@ import org.slf4j.LoggerFactory; import sonia.scm.plugin.ExtensionProcessor; -import static org.apache.shiro.guice.web.ShiroWebModule.ROLES; - //~--- JDK imports ------------------------------------------------------------ import javax.servlet.ServletContext; diff --git a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmServletModule.java similarity index 97% rename from scm-webapp/src/main/java/sonia/scm/ScmServletModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmServletModule.java index 63a9116716..944a2e9a01 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmServletModule.java @@ -31,7 +31,7 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.inject.Provider; @@ -41,6 +41,10 @@ import com.google.inject.servlet.ServletModule; import com.google.inject.throwingproviders.ThrowingProviderBinder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import sonia.scm.Default; +import sonia.scm.PushStateDispatcher; +import sonia.scm.PushStateDispatcherProvider; +import sonia.scm.Undecorated; import sonia.scm.api.rest.ObjectMapperProvider; import sonia.scm.cache.CacheManager; import sonia.scm.cache.GuavaCacheManager; @@ -200,9 +204,10 @@ public class ScmServletModule extends ServletModule bind(NamespaceStrategy.class).toProvider(NamespaceStrategyProvider.class); // bind repository provider - ThrowingProviderBinder.create(binder()).bind( - RepositoryProvider.class, Repository.class).to( - DefaultRepositoryProvider.class).in(RequestScoped.class); + ThrowingProviderBinder.create(binder()) + .bind(RepositoryProvider.class, Repository.class) + .to(DefaultRepositoryProvider.class) + .in(RequestScoped.class); // bind event api bind(ScmEventBus.class).toInstance(ScmEventBus.getInstance()); diff --git a/scm-webapp/src/main/java/sonia/scm/ServletContextListenerHolder.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ServletContextListenerHolder.java similarity index 98% rename from scm-webapp/src/main/java/sonia/scm/ServletContextListenerHolder.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ServletContextListenerHolder.java index 5d2aefb8d7..cebdcd33b0 100644 --- a/scm-webapp/src/main/java/sonia/scm/ServletContextListenerHolder.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ServletContextListenerHolder.java @@ -30,7 +30,7 @@ */ -package sonia.scm; +package sonia.scm.lifecycle.modules; //~--- non-JDK imports -------------------------------------------------------- diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ServletContextModule.java similarity index 73% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ServletContextModule.java index 46689bc8a2..6173d0a83f 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ServletContextModule.java @@ -1,11 +1,11 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.modules; import com.google.inject.servlet.ServletModule; import sonia.scm.Default; import javax.servlet.ServletContext; -class ServletContextModule extends ServletModule { +public class ServletContextModule extends ServletModule { @Override protected void configureServlets() { diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/UpdateStepModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/UpdateStepModule.java similarity index 79% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/UpdateStepModule.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/modules/UpdateStepModule.java index eeffe19dde..964af69c02 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/UpdateStepModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/UpdateStepModule.java @@ -1,15 +1,15 @@ -package sonia.scm.lifecycle; +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; -class UpdateStepModule extends AbstractModule { +public class UpdateStepModule extends AbstractModule { private final PluginLoader pluginLoader; - UpdateStepModule(PluginLoader pluginLoader) { + public UpdateStepModule(PluginLoader pluginLoader) { this.pluginLoader = pluginLoader; } diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/SingleView.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/view/SingleView.java similarity index 91% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/SingleView.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/view/SingleView.java index 6099d55357..3ac5d71e70 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/SingleView.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/view/SingleView.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.view; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; @@ -10,6 +10,8 @@ import sonia.scm.Default; import sonia.scm.SCMContext; import sonia.scm.SCMContextProvider; import sonia.scm.StaticResourceServlet; +import sonia.scm.lifecycle.modules.ModuleProvider; +import sonia.scm.lifecycle.modules.ServletContextModule; import sonia.scm.template.MustacheTemplateEngine; import sonia.scm.template.TemplateEngine; import sonia.scm.template.TemplateEngineFactory; @@ -18,12 +20,12 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Collection; -final class SingleView { +public final class SingleView { private SingleView() { } - static SingleViewModuleProvider error(Throwable throwable) { + public static SingleViewModuleProvider error(Throwable throwable) { String error = Throwables.getStackTraceAsString(throwable); ViewController controller = new SimpleViewController("/templates/error.mustache", request -> { @@ -36,7 +38,7 @@ final class SingleView { return new SingleViewModuleProvider(controller); } - static SingleViewModuleProvider view(String template, int sc) { + public static SingleViewModuleProvider view(String template, int sc) { ViewController controller = new SimpleViewController(template, request -> { Object model = ImmutableMap.of( "contextPath", request.getContextPath() diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/SingleViewServlet.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/view/SingleViewServlet.java similarity index 98% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/SingleViewServlet.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/view/SingleViewServlet.java index 7bdce4201d..f93228e2bc 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/SingleViewServlet.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/view/SingleViewServlet.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.view; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/View.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/view/View.java similarity index 89% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/View.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/view/View.java index f30a6698ba..a89d682e04 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/View.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/view/View.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.view; class View { diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/ViewController.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/view/ViewController.java similarity index 82% rename from scm-webapp/src/main/java/sonia/scm/lifecycle/ViewController.java rename to scm-webapp/src/main/java/sonia/scm/lifecycle/view/ViewController.java index 78e7eee7a6..3111d11651 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/ViewController.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/view/ViewController.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.view; import javax.servlet.http.HttpServletRequest; diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/PluginProcessor.java b/scm-webapp/src/main/java/sonia/scm/plugin/PluginProcessor.java index c54e368d45..c7d669ee63 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/PluginProcessor.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/PluginProcessor.java @@ -41,7 +41,7 @@ import com.google.common.collect.Sets; import com.google.common.hash.Hashing; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sonia.scm.lifecycle.ClassLoaderLifeCycle; +import sonia.scm.lifecycle.classloading.ClassLoaderLifeCycle; import sonia.scm.plugin.ExplodedSmp.PathTransformer; import javax.xml.bind.JAXBContext; diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/PluginsInternal.java b/scm-webapp/src/main/java/sonia/scm/plugin/PluginsInternal.java index e248c43c9a..52d192da32 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/PluginsInternal.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/PluginsInternal.java @@ -41,7 +41,7 @@ import com.google.common.io.Files; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sonia.scm.lifecycle.ClassLoaderLifeCycle; +import sonia.scm.lifecycle.classloading.ClassLoaderLifeCycle; import sonia.scm.util.IOUtil; //~--- JDK imports ------------------------------------------------------------ diff --git a/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardModuleProvider.java b/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardModuleProvider.java index 996df7f061..ea8f5f7b7d 100644 --- a/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardModuleProvider.java +++ b/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardModuleProvider.java @@ -2,7 +2,7 @@ package sonia.scm.update; import com.google.inject.Injector; import com.google.inject.Module; -import sonia.scm.lifecycle.ModuleProvider; +import sonia.scm.lifecycle.modules.ModuleProvider; import sonia.scm.update.repository.XmlRepositoryV1UpdateStep; import java.util.Collection; diff --git a/scm-webapp/src/main/resources/logback.default.xml b/scm-webapp/src/main/resources/logback.default.xml index 8ffdca87db..bf907b1962 100644 --- a/scm-webapp/src/main/resources/logback.default.xml +++ b/scm-webapp/src/main/resources/logback.default.xml @@ -62,7 +62,7 @@ - + diff --git a/scm-webapp/src/test/java/sonia/scm/StaticResourceServletTest.java b/scm-webapp/src/test/java/sonia/scm/StaticResourceServletTest.java index 98d784d558..8fb61df75d 100644 --- a/scm-webapp/src/test/java/sonia/scm/StaticResourceServletTest.java +++ b/scm-webapp/src/test/java/sonia/scm/StaticResourceServletTest.java @@ -36,7 +36,7 @@ class StaticResourceServletTest { doReturn("/scm").when(request).getContextPath(); doReturn("/scm/resource.txt").when(request).getRequestURI(); doReturn(context).when(request).getServletContext(); - URL resource = Resources.getResource("sonia/scm/boot/resource.txt"); + URL resource = Resources.getResource("sonia/scm/lifecycle/resource.txt"); doReturn(resource).when(context).getResource("/resource.txt"); doReturn(stream).when(response).getOutputStream(); diff --git a/scm-webapp/src/test/java/sonia/scm/lifecycle/ClassLoaderLifeCycleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycleTest.java similarity index 98% rename from scm-webapp/src/test/java/sonia/scm/lifecycle/ClassLoaderLifeCycleTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycleTest.java index b1d1bc82ee..12d947389a 100644 --- a/scm-webapp/src/test/java/sonia/scm/lifecycle/ClassLoaderLifeCycleTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/classloading/ClassLoaderLifeCycleTest.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.classloading; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/scm-webapp/src/test/java/sonia/scm/CloseableModuleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/CloseableModuleTest.java similarity index 94% rename from scm-webapp/src/test/java/sonia/scm/CloseableModuleTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/modules/CloseableModuleTest.java index 682eaa45ba..e7df410dc4 100644 --- a/scm-webapp/src/test/java/sonia/scm/CloseableModuleTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/CloseableModuleTest.java @@ -1,4 +1,4 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.inject.Guice; import com.google.inject.Injector; diff --git a/scm-webapp/src/test/java/sonia/scm/EagerSingletonModuleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/EagerSingletonModuleTest.java similarity index 93% rename from scm-webapp/src/test/java/sonia/scm/EagerSingletonModuleTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/modules/EagerSingletonModuleTest.java index 820016fbbd..76cd8f1dcb 100644 --- a/scm-webapp/src/test/java/sonia/scm/EagerSingletonModuleTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/EagerSingletonModuleTest.java @@ -1,9 +1,10 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; import org.junit.jupiter.api.Test; +import sonia.scm.EagerSingleton; import javax.inject.Inject; import javax.inject.Singleton; diff --git a/scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionLifeCycleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/InjectionLifeCycleTest.java similarity index 96% rename from scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionLifeCycleTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/modules/InjectionLifeCycleTest.java index c2ff62bd1b..296af8e235 100644 --- a/scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionLifeCycleTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/InjectionLifeCycleTest.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.modules; import com.google.common.base.Strings; import com.google.inject.AbstractModule; @@ -10,10 +10,11 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import sonia.scm.CloseableModule; +import sonia.scm.lifecycle.modules.CloseableModule; import sonia.scm.Default; import sonia.scm.EagerSingleton; -import sonia.scm.EagerSingletonModule; +import sonia.scm.lifecycle.modules.EagerSingletonModule; +import sonia.scm.lifecycle.modules.InjectionLifeCycle; import javax.inject.Inject; import javax.inject.Singleton; diff --git a/scm-webapp/src/test/java/sonia/scm/MoreMatchersTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/MoreMatchersTest.java similarity index 96% rename from scm-webapp/src/test/java/sonia/scm/MoreMatchersTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/modules/MoreMatchersTest.java index 67c2e59a4e..baab583461 100644 --- a/scm-webapp/src/test/java/sonia/scm/MoreMatchersTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/MoreMatchersTest.java @@ -1,4 +1,4 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.inject.TypeLiteral; import com.google.inject.matcher.Matcher; diff --git a/scm-webapp/src/test/java/sonia/scm/ScmEventBusModuleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ScmEventBusModuleTest.java similarity index 95% rename from scm-webapp/src/test/java/sonia/scm/ScmEventBusModuleTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ScmEventBusModuleTest.java index 951a299248..fc6635bb91 100644 --- a/scm-webapp/src/test/java/sonia/scm/ScmEventBusModuleTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ScmEventBusModuleTest.java @@ -1,4 +1,4 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.github.legman.Subscribe; import com.google.inject.Guice; diff --git a/scm-webapp/src/test/java/sonia/scm/ScmInitializerModuleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ScmInitializerModuleTest.java similarity index 86% rename from scm-webapp/src/test/java/sonia/scm/ScmInitializerModuleTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ScmInitializerModuleTest.java index 2491c5c43c..8edcd2b6fc 100644 --- a/scm-webapp/src/test/java/sonia/scm/ScmInitializerModuleTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ScmInitializerModuleTest.java @@ -1,8 +1,10 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.inject.Guice; import com.google.inject.Injector; import org.junit.jupiter.api.Test; +import sonia.scm.Initable; +import sonia.scm.SCMContextProvider; import static org.assertj.core.api.Assertions.assertThat; diff --git a/scm-webapp/src/test/java/sonia/scm/ServletContextListenerHolderTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ServletContextListenerHolderTest.java similarity index 98% rename from scm-webapp/src/test/java/sonia/scm/ServletContextListenerHolderTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ServletContextListenerHolderTest.java index e87af165a7..8c78b067fa 100644 --- a/scm-webapp/src/test/java/sonia/scm/ServletContextListenerHolderTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ServletContextListenerHolderTest.java @@ -1,4 +1,4 @@ -package sonia.scm; +package sonia.scm.lifecycle.modules; import com.google.inject.AbstractModule; import com.google.inject.Guice; diff --git a/scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextModuleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ServletContextModuleTest.java similarity index 97% rename from scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextModuleTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ServletContextModuleTest.java index 314dab1088..0684ec6d6d 100644 --- a/scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextModuleTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/modules/ServletContextModuleTest.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.modules; import com.google.inject.Guice; import com.google.inject.Injector; diff --git a/scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewServletTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/view/SingleViewServletTest.java similarity index 98% rename from scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewServletTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/view/SingleViewServletTest.java index e20e7ed6b3..3bdd83577e 100644 --- a/scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewServletTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/view/SingleViewServletTest.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.view; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/view/SingleViewTest.java similarity index 97% rename from scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewTest.java rename to scm-webapp/src/test/java/sonia/scm/lifecycle/view/SingleViewTest.java index c5e89ffe45..d3186f040b 100644 --- a/scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewTest.java +++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/view/SingleViewTest.java @@ -1,4 +1,4 @@ -package sonia.scm.lifecycle; +package sonia.scm.lifecycle.view; import com.google.inject.Guice; import com.google.inject.Injector; @@ -10,6 +10,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import sonia.scm.StaticResourceServlet; +import sonia.scm.lifecycle.modules.ModuleProvider; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; diff --git a/scm-webapp/src/test/java/sonia/scm/plugin/PluginProcessorTest.java b/scm-webapp/src/test/java/sonia/scm/plugin/PluginProcessorTest.java index c1cec2ec70..8b352b8e68 100644 --- a/scm-webapp/src/test/java/sonia/scm/plugin/PluginProcessorTest.java +++ b/scm-webapp/src/test/java/sonia/scm/plugin/PluginProcessorTest.java @@ -42,7 +42,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import sonia.scm.lifecycle.ClassLoaderLifeCycle; +import sonia.scm.lifecycle.classloading.ClassLoaderLifeCycle; import static org.hamcrest.Matchers.*;