diff --git a/scm-core/src/main/java/sonia/scm/boot/RestartEvent.java b/scm-core/src/main/java/sonia/scm/lifecycle/RestartEvent.java
similarity index 99%
rename from scm-core/src/main/java/sonia/scm/boot/RestartEvent.java
rename to scm-core/src/main/java/sonia/scm/lifecycle/RestartEvent.java
index 9aab8d18ae..1978cb9d7c 100644
--- a/scm-core/src/main/java/sonia/scm/boot/RestartEvent.java
+++ b/scm-core/src/main/java/sonia/scm/lifecycle/RestartEvent.java
@@ -29,7 +29,7 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
//~--- non-JDK imports --------------------------------------------------------
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/ApplicationModuleProvider.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/ApplicationModuleProvider.java
similarity index 98%
rename from scm-webapp/src/main/java/sonia/scm/boot/ApplicationModuleProvider.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/ApplicationModuleProvider.java
index 04ae39a52f..f918714dc0 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/ApplicationModuleProvider.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/ApplicationModuleProvider.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.base.Throwables;
import com.google.inject.Module;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapClassLoader.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapClassLoader.java
similarity index 91%
rename from scm-webapp/src/main/java/sonia/scm/boot/BootstrapClassLoader.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapClassLoader.java
index cc7b807137..0cc1d84536 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapClassLoader.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapClassLoader.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
/**
* 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/boot/BootstrapContextFilter.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextFilter.java
similarity index 99%
rename from scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextFilter.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextFilter.java
index dcfc9cd178..ffb7631922 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextFilter.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextFilter.java
@@ -29,7 +29,7 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
//~--- non-JDK imports --------------------------------------------------------
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextListener.java
similarity index 99%
rename from scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextListener.java
index 939e8f9f6c..3c3cfc2eaa 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapContextListener.java
@@ -27,7 +27,7 @@
*/
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.collect.ImmutableList;
import com.google.inject.Guice;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapModule.java
similarity index 99%
rename from scm-webapp/src/main/java/sonia/scm/boot/BootstrapModule.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapModule.java
index 57c05b9d21..010381e112 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapModule.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/BootstrapModule.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.inject.AbstractModule;
import com.google.inject.throwingproviders.ThrowingProviderBinder;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/ClassLoaderLifeCycle.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/ClassLoaderLifeCycle.java
similarity index 99%
rename from scm-webapp/src/main/java/sonia/scm/boot/ClassLoaderLifeCycle.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/ClassLoaderLifeCycle.java
index be1d4d3653..a5979948f1 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/ClassLoaderLifeCycle.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/ClassLoaderLifeCycle.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.annotations.VisibleForTesting;
import org.slf4j.Logger;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/InjectionContextRestartStrategy.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionContextRestartStrategy.java
similarity index 98%
rename from scm-webapp/src/main/java/sonia/scm/boot/InjectionContextRestartStrategy.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionContextRestartStrategy.java
index d0b25ba5a9..683507c563 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/InjectionContextRestartStrategy.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionContextRestartStrategy.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.annotations.VisibleForTesting;
import org.slf4j.Logger;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/InjectionLifeCycle.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionLifeCycle.java
similarity index 98%
rename from scm-webapp/src/main/java/sonia/scm/boot/InjectionLifeCycle.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionLifeCycle.java
index eda7a7575b..8cbab48d9c 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/InjectionLifeCycle.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/InjectionLifeCycle.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.inject.Binding;
import com.google.inject.Injector;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/LoggingAdapter.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/LoggingAdapter.java
similarity index 97%
rename from scm-webapp/src/main/java/sonia/scm/boot/LoggingAdapter.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/LoggingAdapter.java
index cc7f6befea..00a28f62d2 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/LoggingAdapter.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/LoggingAdapter.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/ModuleProvider.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/ModuleProvider.java
similarity index 82%
rename from scm-webapp/src/main/java/sonia/scm/boot/ModuleProvider.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/ModuleProvider.java
index d58cb264dd..af80a8dd94 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/ModuleProvider.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/ModuleProvider.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.inject.Module;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/PluginBootstrap.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/PluginBootstrap.java
similarity index 99%
rename from scm-webapp/src/main/java/sonia/scm/boot/PluginBootstrap.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/PluginBootstrap.java
index c84e69beb9..5f6272ab38 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/PluginBootstrap.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/PluginBootstrap.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.base.Charsets;
import com.google.common.collect.ImmutableList;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/RestartServlet.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/RestartServlet.java
similarity index 99%
rename from scm-webapp/src/main/java/sonia/scm/boot/RestartServlet.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/RestartServlet.java
index c7177cc459..6e70216a5c 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/RestartServlet.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/RestartServlet.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/RestartStrategy.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/RestartStrategy.java
similarity index 95%
rename from scm-webapp/src/main/java/sonia/scm/boot/RestartStrategy.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/RestartStrategy.java
index fa1fd052c6..769351a850 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/RestartStrategy.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/RestartStrategy.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
/**
* Strategy for restarting SCM-Manager.
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/ServletContextCleaner.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextCleaner.java
similarity index 92%
rename from scm-webapp/src/main/java/sonia/scm/boot/ServletContextCleaner.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextCleaner.java
index baf5199304..be386f4ac6 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/ServletContextCleaner.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextCleaner.java
@@ -1,12 +1,10 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.collect.ImmutableSet;
-import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.ServletContext;
-import javax.ws.rs.ext.RuntimeDelegate;
import java.util.Enumeration;
import java.util.Set;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/ServletContextModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextModule.java
similarity index 91%
rename from scm-webapp/src/main/java/sonia/scm/boot/ServletContextModule.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextModule.java
index fdea45f1a4..46689bc8a2 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/ServletContextModule.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/ServletContextModule.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.inject.servlet.ServletModule;
import sonia.scm.Default;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/SetupContextListener.java
similarity index 98%
rename from scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/SetupContextListener.java
index 59002c2d08..bbc0dce120 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/SetupContextListener.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/SetupContextListener.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.annotations.VisibleForTesting;
import org.apache.shiro.authc.credential.PasswordService;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/SingleView.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/SingleView.java
similarity index 99%
rename from scm-webapp/src/main/java/sonia/scm/boot/SingleView.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/SingleView.java
index 10cc42e4f2..c8adf63bf9 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/SingleView.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/SingleView.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/SingleViewServlet.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/SingleViewServlet.java
similarity index 98%
rename from scm-webapp/src/main/java/sonia/scm/boot/SingleViewServlet.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/SingleViewServlet.java
index 3621105976..7bdce4201d 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/SingleViewServlet.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/SingleViewServlet.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/StaticResourceServlet.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/StaticResourceServlet.java
similarity index 98%
rename from scm-webapp/src/main/java/sonia/scm/boot/StaticResourceServlet.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/StaticResourceServlet.java
index cac801ec60..51562b822a 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/StaticResourceServlet.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/StaticResourceServlet.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.github.sdorra.webresources.CacheControl;
import com.github.sdorra.webresources.WebResourceSender;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/UpdateStepModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/UpdateStepModule.java
similarity index 95%
rename from scm-webapp/src/main/java/sonia/scm/boot/UpdateStepModule.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/UpdateStepModule.java
index f5f74058b1..eeffe19dde 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/UpdateStepModule.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/UpdateStepModule.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.inject.AbstractModule;
import com.google.inject.multibindings.Multibinder;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/Versions.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/Versions.java
similarity index 98%
rename from scm-webapp/src/main/java/sonia/scm/boot/Versions.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/Versions.java
index 6da19fedca..b482c8f8e9 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/Versions.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/Versions.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.annotations.VisibleForTesting;
import org.slf4j.Logger;
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/View.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/View.java
similarity index 90%
rename from scm-webapp/src/main/java/sonia/scm/boot/View.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/View.java
index 6e1f93bd3f..f30a6698ba 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/View.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/View.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
class View {
diff --git a/scm-webapp/src/main/java/sonia/scm/boot/ViewController.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/ViewController.java
similarity index 84%
rename from scm-webapp/src/main/java/sonia/scm/boot/ViewController.java
rename to scm-webapp/src/main/java/sonia/scm/lifecycle/ViewController.java
index 26f463f9c2..78e7eee7a6 100644
--- a/scm-webapp/src/main/java/sonia/scm/boot/ViewController.java
+++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/ViewController.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
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 f75329cf65..c54e368d45 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.boot.ClassLoaderLifeCycle;
+import sonia.scm.lifecycle.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 07d0fe4ee9..e248c43c9a 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.boot.ClassLoaderLifeCycle;
+import sonia.scm.lifecycle.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 41c4cbf07b..996df7f061 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.boot.ModuleProvider;
+import sonia.scm.lifecycle.ModuleProvider;
import sonia.scm.update.repository.XmlRepositoryV1UpdateStep;
import java.util.Collection;
diff --git a/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardServlet.java b/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardServlet.java
index 479778852b..2386b0dbd7 100644
--- a/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardServlet.java
+++ b/scm-webapp/src/main/java/sonia/scm/update/MigrationWizardServlet.java
@@ -7,7 +7,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import sonia.scm.boot.RestartEvent;
+import sonia.scm.lifecycle.RestartEvent;
import sonia.scm.event.ScmEventBus;
import sonia.scm.update.repository.MigrationStrategy;
import sonia.scm.update.repository.MigrationStrategyDao;
diff --git a/scm-webapp/src/main/java/sonia/scm/web/i18n/I18nServlet.java b/scm-webapp/src/main/java/sonia/scm/web/i18n/I18nServlet.java
index b98ecd10ba..8236504543 100644
--- a/scm-webapp/src/main/java/sonia/scm/web/i18n/I18nServlet.java
+++ b/scm-webapp/src/main/java/sonia/scm/web/i18n/I18nServlet.java
@@ -11,7 +11,7 @@ import lombok.extern.slf4j.Slf4j;
import sonia.scm.NotFoundException;
import sonia.scm.SCMContext;
import sonia.scm.Stage;
-import sonia.scm.boot.RestartEvent;
+import sonia.scm.lifecycle.RestartEvent;
import sonia.scm.cache.Cache;
import sonia.scm.cache.CacheManager;
import sonia.scm.filter.WebElement;
diff --git a/scm-webapp/src/main/resources/logback.default.xml b/scm-webapp/src/main/resources/logback.default.xml
index 8cd5bd450e..8ffdca87db 100644
--- a/scm-webapp/src/main/resources/logback.default.xml
+++ b/scm-webapp/src/main/resources/logback.default.xml
@@ -93,7 +93,7 @@
-
+
diff --git a/scm-webapp/src/main/webapp/WEB-INF/web.xml b/scm-webapp/src/main/webapp/WEB-INF/web.xml
index e69eb9fb2a..802c0c53e9 100644
--- a/scm-webapp/src/main/webapp/WEB-INF/web.xml
+++ b/scm-webapp/src/main/webapp/WEB-INF/web.xml
@@ -43,7 +43,7 @@
BootstrapFilter
- sonia.scm.boot.BootstrapContextFilter
+ sonia.scm.lifecycle.BootstrapContextFilter
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/ClassLoaderLifeCycleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/ClassLoaderLifeCycleTest.java
similarity index 98%
rename from scm-webapp/src/test/java/sonia/scm/boot/ClassLoaderLifeCycleTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/ClassLoaderLifeCycleTest.java
index df42b2eac5..b1d1bc82ee 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/ClassLoaderLifeCycleTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/ClassLoaderLifeCycleTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -11,7 +11,6 @@ import java.io.Closeable;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
-import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/InjectionContextRestartStrategyTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionContextRestartStrategyTest.java
similarity index 98%
rename from scm-webapp/src/test/java/sonia/scm/boot/InjectionContextRestartStrategyTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionContextRestartStrategyTest.java
index 81e7faa6d5..355dca4a16 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/InjectionContextRestartStrategyTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionContextRestartStrategyTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.github.legman.Subscribe;
import org.junit.jupiter.api.BeforeEach;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/InjectionLifeCycleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionLifeCycleTest.java
similarity index 99%
rename from scm-webapp/src/test/java/sonia/scm/boot/InjectionLifeCycleTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionLifeCycleTest.java
index cbd6ff9e06..c2ff62bd1b 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/InjectionLifeCycleTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/InjectionLifeCycleTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.base.Strings;
import com.google.inject.AbstractModule;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/RestartServletTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/RestartServletTest.java
similarity index 99%
rename from scm-webapp/src/test/java/sonia/scm/boot/RestartServletTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/RestartServletTest.java
index eac4a12340..c55e0b2b01 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/RestartServletTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/RestartServletTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.github.legman.Subscribe;
import com.google.common.base.Charsets;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/ServletContextCleanerTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextCleanerTest.java
similarity index 98%
rename from scm-webapp/src/test/java/sonia/scm/boot/ServletContextCleanerTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextCleanerTest.java
index c9d8c594b4..7e8eff15bb 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/ServletContextCleanerTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextCleanerTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.collect.ImmutableSet;
import org.junit.Test;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/ServletContextModuleTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextModuleTest.java
similarity index 98%
rename from scm-webapp/src/test/java/sonia/scm/boot/ServletContextModuleTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextModuleTest.java
index 8539a94a2f..314dab1088 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/ServletContextModuleTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/ServletContextModuleTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.inject.Guice;
import com.google.inject.Injector;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/SetupContextListenerTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/SetupContextListenerTest.java
similarity index 99%
rename from scm-webapp/src/test/java/sonia/scm/boot/SetupContextListenerTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/SetupContextListenerTest.java
index 8912589480..0a37361f9c 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/SetupContextListenerTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/SetupContextListenerTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.collect.Lists;
import org.apache.shiro.authc.credential.PasswordService;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/SingleViewServletTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewServletTest.java
similarity index 98%
rename from scm-webapp/src/test/java/sonia/scm/boot/SingleViewServletTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewServletTest.java
index 6da9536392..e20e7ed6b3 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/SingleViewServletTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewServletTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/SingleViewTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewTest.java
similarity index 99%
rename from scm-webapp/src/test/java/sonia/scm/boot/SingleViewTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewTest.java
index b669d2c824..ae957ca833 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/SingleViewTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/SingleViewTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.inject.Guice;
import com.google.inject.Injector;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/StaticResourceServletTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/StaticResourceServletTest.java
similarity index 98%
rename from scm-webapp/src/test/java/sonia/scm/boot/StaticResourceServletTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/StaticResourceServletTest.java
index 9d7235c97c..a4f51944c3 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/StaticResourceServletTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/StaticResourceServletTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import com.google.common.io.Resources;
import org.junit.jupiter.api.Test;
diff --git a/scm-webapp/src/test/java/sonia/scm/boot/VersionsTest.java b/scm-webapp/src/test/java/sonia/scm/lifecycle/VersionsTest.java
similarity index 98%
rename from scm-webapp/src/test/java/sonia/scm/boot/VersionsTest.java
rename to scm-webapp/src/test/java/sonia/scm/lifecycle/VersionsTest.java
index e5aa8fe3d1..ca42b5894d 100644
--- a/scm-webapp/src/test/java/sonia/scm/boot/VersionsTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/lifecycle/VersionsTest.java
@@ -1,4 +1,4 @@
-package sonia.scm.boot;
+package sonia.scm.lifecycle;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
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 5a38cacd3f..c1cec2ec70 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.boot.ClassLoaderLifeCycle;
+import sonia.scm.lifecycle.ClassLoaderLifeCycle;
import static org.hamcrest.Matchers.*;
diff --git a/scm-webapp/src/test/java/sonia/scm/web/i18n/I18nServletTest.java b/scm-webapp/src/test/java/sonia/scm/web/i18n/I18nServletTest.java
index 468efe3ecd..f177d44e63 100644
--- a/scm-webapp/src/test/java/sonia/scm/web/i18n/I18nServletTest.java
+++ b/scm-webapp/src/test/java/sonia/scm/web/i18n/I18nServletTest.java
@@ -16,7 +16,7 @@ import org.mockito.MockSettings;
import org.mockito.internal.creation.MockSettingsImpl;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.junit.MockitoJUnitRunner;
-import sonia.scm.boot.RestartEvent;
+import sonia.scm.lifecycle.RestartEvent;
import sonia.scm.cache.Cache;
import sonia.scm.cache.CacheManager;
import sonia.scm.event.ScmEventBus;
diff --git a/scm-webapp/src/test/resources/sonia/scm/boot/resource.txt b/scm-webapp/src/test/resources/sonia/scm/lifecycle/resource.txt
similarity index 100%
rename from scm-webapp/src/test/resources/sonia/scm/boot/resource.txt
rename to scm-webapp/src/test/resources/sonia/scm/lifecycle/resource.txt