You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2022/01/18 00:07:16 UTC

[sling-org-apache-sling-app-cms] branch master updated: SLING-11069 - Updating dependencies and resolving the broken error handler when updating the servlet resolver version

This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git


The following commit(s) were added to refs/heads/master by this push:
     new 85fcda2  SLING-11069 - Updating dependencies and resolving the broken error handler when updating the servlet resolver version
85fcda2 is described below

commit 85fcda2e6af700a8c9bea29d3fe6cf17ebc7777f
Author: Dan Klco <kl...@adobe.com>
AuthorDate: Mon Jan 17 19:07:06 2022 -0500

    SLING-11069 - Updating dependencies and resolving the broken error handler when updating the servlet resolver version
---
 .../servlets/CmsDefaultErrorHandlerServlet.java}   |  88 ++-
 .../apache/sling/cms/core/models/package-info.java |   2 +-
 .../models/PublishableResourceImplTest.java        |   2 +-
 .../CmsDefaultErrorHandlerServletTest.java         | 185 +++++
 feature/pom.xml                                    |  83 +-
 feature/src/main/assembly/standalone.xml           |  14 +
 feature/src/main/features/base.json                | 713 +++++++++--------
 feature/src/main/features/boot.json                | 270 +++----
 feature/src/main/features/caconfig.json            |  45 +-
 feature/src/main/features/cms/composum.json        |   4 +
 feature/src/main/features/cms/dependencies.json    | 270 +++----
 feature/src/main/features/cms/feature.json         |  52 +-
 feature/src/main/features/discovery.json           |  65 +-
 feature/src/main/features/distribution.json        |  96 +--
 feature/src/main/features/event.json               |  39 +-
 feature/src/main/features/groovy.json              | 228 +++---
 feature/src/main/features/healthcheck.json         | 220 +++---
 feature/src/main/features/maintenance.json         |   2 +-
 .../src/main/features/models-jacksonexporter.json  |  39 +-
 feature/src/main/features/oak/oak_base.json        | 427 +++++-----
 feature/src/main/features/scripting.json           | 225 +++---
 feature/src/main/features/validation.json          |  43 +-
 pom.xml                                            | 878 ++++++++++-----------
 rules.xml                                          |  49 ++
 ui/bnd.bnd                                         |   2 +-
 .../libs/sling/servlet/errorhandler/Throwable.jsp  |  17 -
 .../libs/sling/servlet/errorhandler/default.jsp    |  18 -
 27 files changed, 2165 insertions(+), 1911 deletions(-)

diff --git a/core/src/main/java/org/apache/sling/cms/core/models/ErrorHandler.java b/core/src/main/java/org/apache/sling/cms/core/internal/servlets/CmsDefaultErrorHandlerServlet.java
similarity index 77%
rename from core/src/main/java/org/apache/sling/cms/core/models/ErrorHandler.java
rename to core/src/main/java/org/apache/sling/cms/core/internal/servlets/CmsDefaultErrorHandlerServlet.java
index f89e904..9a92ddf 100644
--- a/core/src/main/java/org/apache/sling/cms/core/models/ErrorHandler.java
+++ b/core/src/main/java/org/apache/sling/cms/core/internal/servlets/CmsDefaultErrorHandlerServlet.java
@@ -14,13 +14,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sling.cms.core.models;
+package org.apache.sling.cms.core.internal.servlets;
 
+import java.io.IOException;
 import java.util.Collections;
+import java.util.Optional;
 
-import javax.inject.Inject;
-import javax.inject.Named;
 import javax.servlet.RequestDispatcher;
+import javax.servlet.Servlet;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.jackrabbit.JcrConstants;
@@ -34,30 +37,27 @@ import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
 import org.apache.sling.api.wrappers.SlingHttpServletRequestWrapper;
 import org.apache.sling.cms.CMSUtils;
 import org.apache.sling.cms.Site;
 import org.apache.sling.cms.SiteManager;
-import org.apache.sling.models.annotations.Default;
-import org.apache.sling.models.annotations.Model;
-import org.apache.sling.models.annotations.Optional;
-import org.apache.sling.models.annotations.injectorspecific.OSGiService;
-import org.apache.sling.models.annotations.injectorspecific.RequestAttribute;
-import org.apache.sling.models.annotations.injectorspecific.Self;
-import org.apache.sling.models.annotations.injectorspecific.SlingObject;
-import org.osgi.annotation.versioning.ProviderType;
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Sling Model for retrieving an error handler based on the specified Sling
- * Request. Checks if the specified resource is contained within a Sling site
- * and if so, will display the error page found at
- * [site-root]/errors/[error-code] or [site-root]/errors/default
+ * Servlet which includes the content of the page when the page is accessed.
  */
-@ProviderType
-@Model(adaptables = SlingHttpServletRequest.class)
-public class ErrorHandler {
+@Component(service = Servlet.class, property = {
+        "sling.servlet.paths=sling/servlet/errorhandler/default",
+        "sling.servlet.prefix=-1",
+        Constants.SERVICE_RANKING + ":Integer=1"
+})
+public class CmsDefaultErrorHandlerServlet extends SlingSafeMethodsServlet {
 
     private static class GetRequest extends SlingHttpServletRequestWrapper {
 
@@ -116,13 +116,13 @@ public class ErrorHandler {
 
     }
 
+    private static final Logger log = LoggerFactory.getLogger(CmsDefaultErrorHandlerServlet.class);
+
     /**
      * The page to fall back to if there is not an error page for the specific code
      */
     public static final String DEFAULT_ERROR_PAGE = "default";
 
-    private static final Logger log = LoggerFactory.getLogger(ErrorHandler.class);
-
     /**
      * Service User Name for the Error Handler
      */
@@ -138,21 +138,29 @@ public class ErrorHandler {
      */
     public static final String SLING_CMS_ERROR_PATH = "/static/sling-cms/errorhandling/";
 
-    private Resource handler;
+    private final ResourceResolverFactory factory;
 
-    private final SlingHttpServletRequest slingRequest;
-    private final SlingHttpServletResponse slingResponse;
+    @Activate
+    public CmsDefaultErrorHandlerServlet(@Reference ResourceResolverFactory factory) {
+        this.factory = factory;
+    }
 
-    @Inject
-    public ErrorHandler(@Self SlingHttpServletRequest slingRequest, @SlingObject SlingHttpServletResponse slingResponse,
-            @RequestAttribute @Named(SlingConstants.ERROR_STATUS) @Optional @Default(intValues = HttpServletResponse.SC_INTERNAL_SERVER_ERROR) Integer errorCode,
-            @OSGiService ResourceResolverFactory factory) {
-        this.slingRequest = slingRequest;
-        this.slingResponse = slingResponse;
+    @Override
+    public void service(ServletRequest req, ServletResponse res)
+            throws IOException {
+        if (req instanceof SlingHttpServletRequest) {
+            handleError((SlingHttpServletRequest) req, (SlingHttpServletResponse) res);
+        } else {
+            log.error("Unable to handle request, not an instance of SlingHttpServletRequest: {}", req);
+        }
+    }
+
+    private void handleError(SlingHttpServletRequest slingRequest, SlingHttpServletResponse slingResponse) {
 
         Resource resource = slingRequest.getResource();
         ResourceResolver resolver = slingRequest.getResourceResolver();
 
+        int errorCode = getErrorCode(slingRequest, resolver);
         log.debug("Calculating error handling scripts for resource {} and error code {}", resource, errorCode);
 
         if (slingRequest.getAttribute(SlingConstants.ERROR_EXCEPTION) != null) {
@@ -160,15 +168,14 @@ public class ErrorHandler {
                     slingRequest.getAttribute(SlingConstants.ERROR_EXCEPTION));
         }
 
-        calculateErrorCode(resolver, factory, errorCode);
-
+        Resource handler = null;
         try {
             SiteManager siteMgr = resource.adaptTo(SiteManager.class);
             if (siteMgr != null && siteMgr.getSite() != null) {
                 Site site = siteMgr.getSite();
                 log.debug("Checking for error pages in the site {}", site.getPath());
 
-                handler = site.getResource().getChild(SITE_ERRORS_SUBPATH + errorCode.toString());
+                handler = site.getResource().getChild(SITE_ERRORS_SUBPATH + errorCode);
                 if (handler == null) {
                     handler = site.getResource().getChild(SITE_ERRORS_SUBPATH + DEFAULT_ERROR_PAGE);
                 }
@@ -184,7 +191,7 @@ public class ErrorHandler {
 
         if (handler == null) {
             log.debug("Using Sling CMS default error pages");
-            handler = resolver.getResource(SLING_CMS_ERROR_PATH + errorCode.toString());
+            handler = resolver.getResource(SLING_CMS_ERROR_PATH + errorCode);
             if (handler == null) {
                 handler = resolver.getResource(SLING_CMS_ERROR_PATH + DEFAULT_ERROR_PAGE);
             }
@@ -196,17 +203,19 @@ public class ErrorHandler {
         slingResponse.setContentType("text/html");
         slingResponse.setStatus(errorCode);
 
-        doInclude();
+        doInclude(slingRequest, slingResponse, handler);
 
         log.debug("Error handler initialized successfully!");
     }
 
-    private void calculateErrorCode(ResourceResolver resolver, ResourceResolverFactory factory, Integer errorCode) {
+    private int getErrorCode(SlingHttpServletRequest slingRequest, ResourceResolver resolver) {
+
+        int errorCode = Optional.ofNullable(slingRequest.getAttribute(SlingConstants.ERROR_STATUS))
+                .map(val -> Integer.parseInt(val.toString())).orElse(500);
         if (errorCode == HttpServletResponse.SC_NOT_FOUND) {
             log.debug("Validating the resource does not exist for all users");
             ResourceResolver adminResolver = null;
             try {
-
                 adminResolver = factory.getServiceResourceResolver(
                         Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, SERVICE_USER_NAME));
                 Resource pResource = adminResolver.resolve(slingRequest, slingRequest.getResource().getPath());
@@ -225,9 +234,11 @@ public class ErrorHandler {
                 }
             }
         }
+        return errorCode;
     }
 
-    private void doInclude() {
+    private void doInclude(SlingHttpServletRequest slingRequest, SlingHttpServletResponse slingResponse,
+            Resource handler) {
 
         Resource handlerContent = handler.getChild(JcrConstants.JCR_CONTENT);
         if (handlerContent != null) {
@@ -242,7 +253,7 @@ public class ErrorHandler {
                 try {
                     dispatcher.include(new GetRequest(slingRequest), slingResponse);
                 } catch (Exception e) {
-                    log.debug("Exception swallowed while including error page", e);
+                    log.error("Exception swallowed while including error page", e);
                 }
             } else {
                 log.warn("Failed to get request dispatcher for handler {}", handler.getPath());
@@ -251,5 +262,4 @@ public class ErrorHandler {
             log.warn("Error hander {} content is null", handler);
         }
     }
-
 }
diff --git a/core/src/main/java/org/apache/sling/cms/core/models/package-info.java b/core/src/main/java/org/apache/sling/cms/core/models/package-info.java
index 7613608..b12001c 100644
--- a/core/src/main/java/org/apache/sling/cms/core/models/package-info.java
+++ b/core/src/main/java/org/apache/sling/cms/core/models/package-info.java
@@ -20,7 +20,7 @@
 /**
  * Package with all of the core models used to support the Sling reference CMS
  */
-@Version("4.0.0")
+@Version("5.0.0")
 package org.apache.sling.cms.core.models;
 
 import org.osgi.annotation.versioning.Version;
diff --git a/core/src/test/java/org/apache/sling/cms/core/internal/models/PublishableResourceImplTest.java b/core/src/test/java/org/apache/sling/cms/core/internal/models/PublishableResourceImplTest.java
index 7e8b8e0..814b310 100644
--- a/core/src/test/java/org/apache/sling/cms/core/internal/models/PublishableResourceImplTest.java
+++ b/core/src/test/java/org/apache/sling/cms/core/internal/models/PublishableResourceImplTest.java
@@ -58,7 +58,7 @@ public class PublishableResourceImplTest {
         assertNotNull(publishableResource.getProperties());
         assertEquals("/index", publishableResource.getPublishedPath());
         assertEquals("https://sling.apache.org/index", publishableResource.getPublishedUrl());
-        assertEquals(context.currentResource(), publishableResource.getResource());
+        assertEquals(context.currentResource().getPath(), publishableResource.getResource().getPath());
         assertNotNull(publishableResource.getSite());
     }
 
diff --git a/core/src/test/java/org/apache/sling/cms/core/internal/servlets/CmsDefaultErrorHandlerServletTest.java b/core/src/test/java/org/apache/sling/cms/core/internal/servlets/CmsDefaultErrorHandlerServletTest.java
new file mode 100644
index 0000000..5dc3c75
--- /dev/null
+++ b/core/src/test/java/org/apache/sling/cms/core/internal/servlets/CmsDefaultErrorHandlerServletTest.java
@@ -0,0 +1,185 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.cms.core.internal.servlets;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+
+import org.apache.sling.api.SlingConstants;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.request.RequestDispatcherOptions;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.apache.sling.api.wrappers.SlingHttpServletRequestWrapper;
+import org.apache.sling.cms.Site;
+import org.apache.sling.cms.SiteManager;
+import org.apache.sling.servlethelpers.MockRequestDispatcherFactory;
+import org.apache.sling.testing.mock.sling.junit.SlingContext;
+import org.apache.sling.testing.mock.sling.servlet.MockSlingHttpServletResponse;
+import org.jetbrains.annotations.NotNull;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+public class CmsDefaultErrorHandlerServletTest {
+
+    @Rule
+    public final SlingContext context = new SlingContext();
+
+    private CmsDefaultErrorHandlerServlet servlet;
+
+    private ResourceResolverFactory factory;
+
+    private MockRequestDispatcherFactory requestDispatcherFactory;
+
+    private @NotNull MockSlingHttpServletResponse spiedResponse;
+
+    private RequestDispatcher requestDispatcher;
+
+    @Before
+    public void before() {
+        factory = mock(ResourceResolverFactory.class);
+        servlet = new CmsDefaultErrorHandlerServlet(factory);
+
+        requestDispatcherFactory = mock(MockRequestDispatcherFactory.class);
+        context.request().setRequestDispatcherFactory(requestDispatcherFactory);
+
+        requestDispatcher = mock(RequestDispatcher.class);
+        when(requestDispatcherFactory.getRequestDispatcher(any(Resource.class), any(RequestDispatcherOptions.class)))
+                .thenReturn(requestDispatcher);
+
+        spiedResponse = spy(context.response());
+
+    }
+
+    @Test
+    public void testDefault() throws IOException, ServletException {
+
+        context.create().resource("/static/sling-cms/errorhandling/default");
+        context.create()
+                .resource("/static/sling-cms/errorhandling/default/jcr:content");
+
+        servlet.service(context.request(), spiedResponse);
+
+        verify(spiedResponse).reset();
+        verify(spiedResponse).setContentType("text/html");
+        verify(spiedResponse).setStatus(500);
+
+        verify(requestDispatcherFactory).getRequestDispatcher(
+                argThat((Resource res) -> "/static/sling-cms/errorhandling/default/jcr:content".equals(res.getPath())),
+                any(RequestDispatcherOptions.class));
+        verify(requestDispatcher).include(any(SlingHttpServletRequestWrapper.class),
+                any(SlingHttpServletResponse.class));
+    }
+
+    @Test
+    public void testErrorCodeSet() throws IOException, ServletException {
+
+        context.create().resource("/static/sling-cms/errorhandling/403");
+        context.create()
+                .resource("/static/sling-cms/errorhandling/403/jcr:content");
+
+        context.request().setAttribute(SlingConstants.ERROR_STATUS, 403);
+
+        servlet.service(context.request(), spiedResponse);
+
+        verify(spiedResponse).reset();
+        verify(spiedResponse).setContentType("text/html");
+        verify(spiedResponse).setStatus(403);
+
+        verify(requestDispatcherFactory).getRequestDispatcher(
+                argThat((Resource res) -> "/static/sling-cms/errorhandling/403/jcr:content".equals(res.getPath())),
+                any(RequestDispatcherOptions.class));
+        verify(requestDispatcher).include(any(SlingHttpServletRequestWrapper.class),
+                any(SlingHttpServletResponse.class));
+    }
+
+    @Test
+    public void testSiteErrorPage() throws IOException, ServletException {
+
+        Resource siteResource = context.create().resource("/content/site");
+        context.create().resource("/content/site/errors/default");
+        context.create()
+                .resource("/content/site/errors/default/jcr:content");
+
+        context.request().setAttribute(SlingConstants.ERROR_STATUS, 403);
+        Resource resource = mock(Resource.class);
+        context.request().setResource(resource);
+
+        SiteManager siteManager = mock(SiteManager.class);
+        Site site = mock(Site.class);
+        when(site.getResource()).thenReturn(siteResource);
+        when(site.getPath()).thenReturn("/content/site");
+        when(siteManager.getSite()).thenReturn(site);
+        when(resource.adaptTo(SiteManager.class)).thenReturn(siteManager);
+
+        servlet.service(context.request(), spiedResponse);
+
+        verify(spiedResponse).reset();
+        verify(spiedResponse).setContentType("text/html");
+        verify(spiedResponse).setStatus(403);
+
+        verify(requestDispatcherFactory).getRequestDispatcher(
+                argThat((Resource res) -> "/content/site/errors/default/jcr:content".equals(res.getPath())),
+                any(RequestDispatcherOptions.class));
+        verify(requestDispatcher).include(any(SlingHttpServletRequestWrapper.class),
+                any(SlingHttpServletResponse.class));
+    }
+
+
+    @Test
+    public void testSiteNoErrorPages() throws IOException, ServletException {
+
+        Resource siteResource = context.create().resource("/content/site");
+        context.create().resource("/static/sling-cms/errorhandling/403");
+        context.create()
+                .resource("/static/sling-cms/errorhandling/403/jcr:content");
+
+        context.request().setAttribute(SlingConstants.ERROR_STATUS, 403);
+        Resource resource = mock(Resource.class);
+        context.request().setResource(resource);
+
+        SiteManager siteManager = mock(SiteManager.class);
+        Site site = mock(Site.class);
+        when(site.getResource()).thenReturn(siteResource);
+        when(site.getPath()).thenReturn("/content/site");
+        when(siteManager.getSite()).thenReturn(site);
+        when(resource.adaptTo(SiteManager.class)).thenReturn(siteManager);
+
+        servlet.service(context.request(), spiedResponse);
+
+        verify(spiedResponse).reset();
+        verify(spiedResponse).setContentType("text/html");
+        verify(spiedResponse).setStatus(403);
+
+        verify(requestDispatcherFactory).getRequestDispatcher(
+                argThat((Resource res) -> "/static/sling-cms/errorhandling/403/jcr:content".equals(res.getPath())),
+                any(RequestDispatcherOptions.class));
+        verify(requestDispatcher).include(any(SlingHttpServletRequestWrapper.class),
+                any(SlingHttpServletResponse.class));
+    }
+
+}
diff --git a/feature/pom.xml b/feature/pom.xml
index 385e610..edc1a25 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
         Licensed to the Apache Software Foundation (ASF) under one or more contributor license
         agreements. See the NOTICE file distributed with this work for additional information
@@ -11,23 +11,19 @@
         and limitations under the License.
     -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <artifactId>org.apache.sling.cms</artifactId>
         <groupId>org.apache.sling</groupId>
         <version>1.1.1-SNAPSHOT</version>
     </parent>
-
     <artifactId>org.apache.sling.cms.feature</artifactId>
     <name>Apache Sling - CMS Feature Model</name>
-
     <properties>
         <IT.expected.bundles.count>240</IT.expected.bundles.count>
         <bnd.baseline.skip>true</bnd.baseline.skip>
         <run.sling.smoke.test>true</run.sling.smoke.test>
     </properties>
-
     <build>
         <plugins>
             <plugin>
@@ -176,9 +172,7 @@
                     <finalName>org.apache.sling.cms-${project.version}</finalName>
                     <archive>
                         <manifest>
-                            <mainClass>
-                                org.apache.sling.cms.feature.Main
-                            </mainClass>
+                            <mainClass>org.apache.sling.cms.feature.Main</mainClass>
                             <classpathPrefix>lib/</classpathPrefix>
                             <addClasspath>true</addClasspath>
                         </manifest>
@@ -196,9 +190,7 @@
                     <arguments>-Drun.sling.smoke.test=false</arguments>
                 </configuration>
             </plugin>
-
         </plugins>
-
         <pluginManagement>
             <plugins>
                 <plugin>
@@ -216,7 +208,6 @@
             </plugins>
         </pluginManagement>
     </build>
-
     <profiles>
         <profile>
             <id>run-smoke-test</id>
@@ -300,7 +291,6 @@
             </build>
         </profile>
     </profiles>
-
     <dependencies>
         <dependency>
             <groupId>junit</groupId>
@@ -322,7 +312,72 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.launcher</artifactId>
-            <version>1.1.16</version>
+            <version>1.2.0</version>
+            <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.io</artifactId>
+            <version>1.3.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-cli</groupId>
+            <artifactId>commons-cli</artifactId>
+            <version>1.5.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.cm.json</artifactId>
+            <version>1.0.6</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.json</groupId>
+            <artifactId>javax.json-api</artifactId>
+            <version>1.1.4</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish</groupId>
+            <artifactId>javax.json</artifactId>
+            <version>1.1.4</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.util.converter</artifactId>
+            <version>1.0.8</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.util.function</artifactId>
+            <version>1.2.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-text</artifactId>
+            <version>1.9</version>
+            <scope>compile</scope>
+         </dependency>
+         <dependency>
+             <groupId>org.apache.commons</groupId>
+             <artifactId>commons-lang3</artifactId>
+             <version>3.12.0</version>
+             <scope>compile</scope>
+          </dependency>
     </dependencies>
-</project>
+</project>
\ No newline at end of file
diff --git a/feature/src/main/assembly/standalone.xml b/feature/src/main/assembly/standalone.xml
index c379615..c6a3612 100644
--- a/feature/src/main/assembly/standalone.xml
+++ b/feature/src/main/assembly/standalone.xml
@@ -22,10 +22,24 @@
         <dependencySet>
             <includes>
                 <include>org.apache.sling:org.apache.sling.feature.launcher</include>
+                <include>commons-cli:commons-cli</include>
+                <include>org.slf4j:slf4j-api</include>
+                <include>org.slf4j:slf4j-simple</include>
+                <include>org.apache.sling:org.apache.sling.feature.io</include>
+                <include>org.apache.sling:org.apache.sling.feature</include>
+                <include>org.apache.felix:org.apache.felix.cm.json</include>
+                <include>javax.json:javax.json-api</include>
+                <include>org.glassfish:javax.json</include>
+                <include>org.osgi:org.osgi.util.converter</include>
+                <include>org.osgi:org.osgi.util.function</include>
+                <include>org.apache.commons:commons-text</include>
+                <include>org.apache.commons:commons-lang3</include>
             </includes>
+            <scope>compile</scope>
             <outputDirectory>/</outputDirectory>
             <useProjectArtifact>true</useProjectArtifact>
             <unpack>true</unpack>
+            <useTransitiveDependencies>true</useTransitiveDependencies>
         </dependencySet>
     </dependencySets>
 
diff --git a/feature/src/main/features/base.json b/feature/src/main/features/base.json
index e297c49..9d9e69e 100644
--- a/feature/src/main/features/base.json
+++ b/feature/src/main/features/base.json
@@ -1,360 +1,355 @@
-
 {
-    "bundles":[
-        {
-            "id":"commons-codec:commons-codec:1.15",
-            "start-order":"5"
-        },
-        {
-            "id":"commons-collections:commons-collections:3.2.2",
-            "start-order":"15"
-        },
-        {
-            "id":"jakarta.activation:jakarta.activation-api:jar:2.0.1",
-            "start-order":"15"
-        },
-        {
-            "id":"jakarta.mail:jakarta.mail-api:2.0.1",
-            "start-order":"20"
-        },
-        {
-            "id":"com.sun.mail:javax.mail:jar:1.6.2",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.commons:commons-collections4:4.4",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.commons:commons-math:2.2",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.geronimo.bundles:jstl:${jstl-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.httpcomponents:httpclient-osgi:${httpclient-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.httpcomponents:httpcore-osgi:4.4.14",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.adapter:2.1.10",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.auth.form:1.0.20",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.bundleresource.impl:2.3.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.commons.classloader:1.4.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.commons.compiler:2.4.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.commons.fsclassloader:1.0.14",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.commons.mime:2.2.2",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.commons.scheduler:2.7.12",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.commons.threads:3.2.20",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.engine:${org-apache-sling-engine-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.fsresource:2.1.16",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.i18n:2.5.16",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.installer.factory.packages:1.0.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.installer.hc:2.0.2",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.models.api:${org-apache-sling-models-api-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.models.impl:1.4.16",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.resourceresolver:1.8.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.serviceusermapper:1.5.4",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.servlets.get:2.1.40",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.servlets.post:2.4.6",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.servlets.resolver:2.9.2",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.xss:2.2.12",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.metatype:1.2.4",
-            "start-order":"4"
-        },
-        {
-            "id":"commons-fileupload:commons-fileupload:1.4",
-            "start-order":"5"
-        },
-        {
-            "id":"commons-io:commons-io:${commons-io-version}",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.aries.jmx:org.apache.aries.jmx.api:1.1.5",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.aries.jmx:org.apache.aries.jmx.core:1.1.8",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.aries.jmx:org.apache.aries.jmx.whiteboard:1.2.0",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.bundlerepository:2.0.10",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.http.jetty:4.1.8",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.http.servlet-api:1.1.2",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.http.whiteboard:4.0.0",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.inventory:1.0.6",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.prefs:1.1.0",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.api:${org-apache-sling-api-version}",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.auth.core:1.5.6",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.extensions.threaddump:0.2.2",
-            "start-order":"5"
-        },
-        {
-            "id":"io.dropwizard.metrics:metrics-core:3.2.6",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.commons.metrics:1.2.8",
-            "start-order":"5"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.http.sslfilter:1.2.6",
-            "start-order":"10"
-        },
-        {
-            "id":"org.apache.pdfbox:fontbox:${pdfbox-version}",
-            "start-order":"10"
-        },
-        {
-            "id":"org.apache.pdfbox:jempbox:1.8.16",
-            "start-order":"10"
-        },
-        {
-            "id":"org.apache.pdfbox:pdfbox:${pdfbox-version}",
-            "start-order":"10"
-        },
-        {
-            "id":"org.apache.tika:tika-core:${tika-version}",
-            "start-order":"10"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.resource.filter:1.0.0",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.provisioning.model:1.8.6",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.repoinit.parser:1.6.8",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.repoinit:1.1.34",
-            "start-order":"20"
-        }
-    ],
-    "configurations":{
-        "org.apache.sling.commons.log.LogManager":{
-            "org.apache.sling.commons.log.packagingDataEnabled":true,
-            "org.apache.sling.commons.log.pattern":"%d{dd.MM.yyyy HH:mm:ss.SSS} *%level* [%thread] %logger %msg%n",
-            "org.apache.sling.commons.log.level":"info",
-            "org.apache.sling.commons.log.file":"logs/error.log",
-            "org.apache.sling.commons.log.file.number:Integer":"7",
-            "org.apache.sling.commons.log.file.size":"'.'yyyy-MM-dd"
-        },
-        "org.apache.sling.engine.impl.log.RequestLogger":{
-            "access.log.enabled":true,
-            "request.log.outputtype:Integer":"0",
-            "access.log.output":"log.access",
-            "request.log.output":"log.request",
-            "request.log.enabled":true,
-            "access.log.outputtype:Integer":"0"
-        },
-        "org.apache.sling.jcr.davex.impl.servlets.SlingDavExServlet":{
-            "alias":"/server"
-        },
-        "org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet":{
-            "dav.root":"/dav"
-        },
-        "org.apache.sling.commons.log.LogManager.factory.config~access.log":{
-            "org.apache.sling.commons.log.pattern":"%msg%n",
-            "org.apache.sling.commons.log.names":[
-                "log.access"
-            ],
-            "org.apache.sling.commons.log.level":"info",
-            "org.apache.sling.commons.log.file":"logs/access.log"
-        },
-        "org.apache.sling.commons.log.LogManager.factory.config~request.log":{
-            "org.apache.sling.commons.log.pattern":"%msg%n",
-            "org.apache.sling.commons.log.names":[
-                "log.request"
-            ],
-            "org.apache.sling.commons.log.level":"info",
-            "org.apache.sling.commons.log.file":"logs/request.log"
-        },
-        "org.apache.jackrabbit.vault.packaging.impl.PackagingImpl":{
-            "authIdsForRootInstallation":[
-                "sling-package-install"
-            ],
-            "packageRoots":[
-                "/etc/packages"
-            ],
-            "authIdsForHookExecution":[
-                "sling-package-install"
-            ]
-        },
-        "org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling":{
-            "whitelist.bundles":[
-                "org.apache.sling.discovery.commons",
-                "org.apache.sling.discovery.base",
-                "org.apache.sling.discovery.oak",
-                "org.apache.sling.extensions.webconsolesecurityprovider",
-                "org.apache.sling.i18n",
-                "org.apache.sling.jcr.base",
-                "org.apache.sling.jcr.contentloader",
-                "org.apache.sling.jcr.jackrabbit.usermanager",
-                "org.apache.sling.jcr.oak.server",
-                "org.apache.sling.jcr.repoinit",
-                "org.apache.sling.servlets.post",
-                "org.apache.sling.serviceuser.webconsole"
-            ],
-            "whitelist.name":"sling"
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~i18n":{
-            "user.mapping":[
-                "org.apache.sling.i18n=[sling-readall]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~installer-packages":{
-            "user.mapping":[
-                "org.apache.sling.installer.factory.packages=[sling-package-install]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~jcr-install":{
-            "user.mapping":[
-                "org.apache.sling.installer.provider.jcr=[sling-readall,sling-jcr-install]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~jcr-resource":{
-            "user.mapping":[
-                "org.apache.sling.jcr.resource:validation=[sling-readall]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~observation":{
-            "user.mapping":[
-                "org.apache.sling.jcr.resource:observation=[sling-readall]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~resourceresolver":{
-            "user.mapping":[
-                "org.apache.sling.resourceresolver:mapping=[sling-readall]",
-                "org.apache.sling.resourceresolver:hierarchy=[sling-readall]",
-                "org.apache.sling.resourceresolver:observation=[sling-readall]",
-                "org.apache.sling.resourceresolver:console=[sling-readall]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~servletsresolver":{
-            "user.mapping":[
-                "org.apache.sling.servlets.resolver:console=[sling-readall]",
-                "org.apache.sling.servlets.resolver:scripts=[sling-search-path-reader]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~xss":{
-            "user.mapping":[
-                "org.apache.sling.xss=[sling-xss]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~jcr-usermanager":{
-            "user.mapping":[
-                "org.apache.sling.jcr.jackrabbit.usermanager=[sling-jcr-usermanager]"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~jcr-contentloader":{
-            "user.mapping":[
-                "org.apache.sling.jcr.contentloader=[sling-jcr-content-loader]"
-            ]
-        }
-    },
-    "repoinit:TEXT|true":"@file"
-}
+  "bundles":[
+    {
+      "id":"commons-codec:commons-codec:1.15",
+      "start-order":"5"
+    },
+    {
+      "id":"commons-collections:commons-collections:3.2.2",
+      "start-order":"15"
+    },
+    {
+      "id":"jakarta.activation:jakarta.activation-api:2.0.1",
+      "start-order":"15"
+    },
+    {
+      "id":"jakarta.mail:jakarta.mail-api:2.0.1",
+      "start-order":"20"
+    },
+    {
+      "id":"com.sun.mail:javax.mail:1.6.2",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.commons:commons-collections4:4.4",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.commons:commons-math:2.2",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.geronimo.bundles:jstl:${jstl-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.httpcomponents:httpclient-osgi:${httpclient-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.httpcomponents:httpcore-osgi:4.4.15",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.adapter:2.2.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.auth.form:1.0.24",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.bundleresource.impl:2.3.4",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.classloader:1.4.4",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.compiler:2.4.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.fsclassloader:1.0.14",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.mime:2.2.2",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.scheduler:2.7.12",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.threads:3.2.22",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.engine:${org-apache-sling-engine-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.fsresource:2.2.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.i18n:2.5.18",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.installer.factory.packages:1.0.4",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.models.api:${org-apache-sling-models-api-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.models.impl:1.5.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.resourceresolver:1.8.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.serviceusermapper:1.5.4",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.servlets.get:2.1.44",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.servlets.post:2.5.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.servlets.resolver:2.9.2",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.xss:2.2.18",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.metatype:1.2.4",
+      "start-order":"4"
+    },
+    {
+      "id":"commons-fileupload:commons-fileupload:1.4",
+      "start-order":"5"
+    },
+    {
+      "id":"commons-io:commons-io:${commons-io-version}",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.aries.jmx:org.apache.aries.jmx.api:1.1.5",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.aries.jmx:org.apache.aries.jmx.core:1.1.8",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.aries.jmx:org.apache.aries.jmx.whiteboard:1.2.0",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.bundlerepository:2.0.10",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.http.jetty:4.1.14",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.http.servlet-api:1.1.4",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.http.whiteboard:4.0.0",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.inventory:1.1.0",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.prefs:1.1.0",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.api:${org-apache-sling-api-version}",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.auth.core:1.5.6",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.extensions.threaddump:0.2.2",
+      "start-order":"5"
+    },
+    {
+      "id":"io.dropwizard.metrics:metrics-core:3.2.6",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.metrics:1.2.8",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.http.sslfilter:1.2.6",
+      "start-order":"10"
+    },
+    {
+      "id":"org.apache.pdfbox:fontbox:${pdfbox-version}",
+      "start-order":"10"
+    },
+    {
+      "id":"org.apache.pdfbox:jempbox:1.8.16",
+      "start-order":"10"
+    },
+    {
+      "id":"org.apache.pdfbox:pdfbox:${pdfbox-version}",
+      "start-order":"10"
+    },
+    {
+      "id":"org.apache.tika:tika-core:${tika-version}",
+      "start-order":"10"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.resource.filter:1.0.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.provisioning.model:1.8.6",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.repoinit.parser:1.6.10",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.repoinit:1.1.36",
+      "start-order":"20"
+    }
+  ],
+  "configurations":{
+    "org.apache.sling.commons.log.LogManager":{
+      "org.apache.sling.commons.log.packagingDataEnabled":true,
+      "org.apache.sling.commons.log.pattern":"%d{dd.MM.yyyy HH:mm:ss.SSS} *%level* [%thread] %logger %msg%n",
+      "org.apache.sling.commons.log.level":"info",
+      "org.apache.sling.commons.log.file":"logs/error.log",
+      "org.apache.sling.commons.log.file.number:Integer":7,
+      "org.apache.sling.commons.log.file.size":"'.'yyyy-MM-dd"
+    },
+    "org.apache.sling.engine.impl.log.RequestLogger":{
+      "access.log.enabled":true,
+      "request.log.outputtype:Integer":0,
+      "access.log.output":"log.access",
+      "request.log.output":"log.request",
+      "request.log.enabled":true,
+      "access.log.outputtype:Integer":0
+    },
+    "org.apache.sling.jcr.davex.impl.servlets.SlingDavExServlet":{
+      "alias":"/server"
+    },
+    "org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet":{
+      "dav.root":"/dav"
+    },
+    "org.apache.sling.commons.log.LogManager.factory.config~access.log":{
+      "org.apache.sling.commons.log.pattern":"%msg%n",
+      "org.apache.sling.commons.log.names":[
+        "log.access"
+      ],
+      "org.apache.sling.commons.log.level":"info",
+      "org.apache.sling.commons.log.file":"logs/access.log"
+    },
+    "org.apache.sling.commons.log.LogManager.factory.config~request.log":{
+      "org.apache.sling.commons.log.pattern":"%msg%n",
+      "org.apache.sling.commons.log.names":[
+        "log.request"
+      ],
+      "org.apache.sling.commons.log.level":"info",
+      "org.apache.sling.commons.log.file":"logs/request.log"
+    },
+    "org.apache.jackrabbit.vault.packaging.impl.PackagingImpl":{
+      "authIdsForRootInstallation":[
+        "sling-package-install"
+      ],
+      "packageRoots":[
+        "/etc/packages"
+      ],
+      "authIdsForHookExecution":[
+        "sling-package-install"
+      ]
+    },
+    "org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling":{
+      "whitelist.bundles":[
+        "org.apache.sling.discovery.commons",
+        "org.apache.sling.discovery.base",
+        "org.apache.sling.discovery.oak",
+        "org.apache.sling.extensions.webconsolesecurityprovider",
+        "org.apache.sling.i18n",
+        "org.apache.sling.jcr.base",
+        "org.apache.sling.jcr.contentloader",
+        "org.apache.sling.jcr.jackrabbit.usermanager",
+        "org.apache.sling.jcr.oak.server",
+        "org.apache.sling.jcr.repoinit",
+        "org.apache.sling.servlets.post",
+        "org.apache.sling.serviceuser.webconsole"
+      ],
+      "whitelist.name":"sling"
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~i18n":{
+      "user.mapping":[
+        "org.apache.sling.i18n=[sling-readall]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~installer-packages":{
+      "user.mapping":[
+        "org.apache.sling.installer.factory.packages=[sling-package-install]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~jcr-install":{
+      "user.mapping":[
+        "org.apache.sling.installer.provider.jcr=[sling-readall,sling-jcr-install]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~jcr-resource":{
+      "user.mapping":[
+        "org.apache.sling.jcr.resource:validation=[sling-readall]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~observation":{
+      "user.mapping":[
+        "org.apache.sling.jcr.resource:observation=[sling-readall]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~resourceresolver":{
+      "user.mapping":[
+        "org.apache.sling.resourceresolver:mapping=[sling-readall]",
+        "org.apache.sling.resourceresolver:hierarchy=[sling-readall]",
+        "org.apache.sling.resourceresolver:observation=[sling-readall]",
+        "org.apache.sling.resourceresolver:console=[sling-readall]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~servletsresolver":{
+      "user.mapping":[
+        "org.apache.sling.servlets.resolver:console=[sling-readall]",
+        "org.apache.sling.servlets.resolver:scripts=[sling-search-path-reader]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~xss":{
+      "user.mapping":[
+        "org.apache.sling.xss=[sling-xss]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~jcr-usermanager":{
+      "user.mapping":[
+        "org.apache.sling.jcr.jackrabbit.usermanager=[sling-jcr-usermanager]"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~jcr-contentloader":{
+      "user.mapping":[
+        "org.apache.sling.jcr.contentloader=[sling-jcr-content-loader]"
+      ]
+    }
+  },
+  "repoinit:TEXT|true":"@file"
+}
\ No newline at end of file
diff --git a/feature/src/main/features/boot.json b/feature/src/main/features/boot.json
index ce4d451..c10fa04 100644
--- a/feature/src/main/features/boot.json
+++ b/feature/src/main/features/boot.json
@@ -1,136 +1,136 @@
 {
-    "bundles": [
-        {
-            "id": "org.apache.felix:org.apache.felix.cm.json:1.0.6",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.aries:org.apache.aries.util:1.1.3",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.commons:commons-lang3:${commons-lang3-version}",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.felix:org.apache.felix.configadmin:1.9.20",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.felix:org.apache.felix.converter:1.0.14",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.felix:org.apache.felix.eventadmin:1.6.2",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.geronimo.specs:geronimo-annotation_1.3_spec:1.3",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.geronimo.specs:geronimo-atinject_1.0_spec:${geronimo-atinject_1-0_spec-version}",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:1.1.3",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.servicemix.bundles:org.apache.servicemix.bundles.jaxb-impl:2.2.11_1",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.servicemix.bundles:org.apache.servicemix.bundles.saaj-impl:1.5.1_1",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.servicemix.specs:org.apache.servicemix.specs.jaxb-api-2.2:2.9.0",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.servicemix.specs:org.apache.servicemix.specs.jaxws-api-2.2:2.9.0",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.servicemix.specs:org.apache.servicemix.specs.saaj-api-1.3:2.9.0",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.commons.johnzon:${org-apache-sling-commons-johnzon-version}",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.commons.log:5.1.12",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.commons.logservice:1.1.0",
-            "start-order":"1"
-        },
-        {
-            "id":"org.apache.felix:org.apache.felix.log:1.2.4",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.commons.osgi:2.4.2",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.installer.core:3.11.4",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.installer.factory.configuration:1.3.4",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.installer.provider.file:1.3.0",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.javax.activation:0.2.0",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.settings:1.4.2",
-            "start-order": "1"
-        },
-        {
-            "id": "org.jvnet.staxex:stax-ex:1.8.3",
-            "start-order": "1"
-        },
-        {
-            "id": "org.osgi:org.osgi.service.log:1.5.0",
-            "start-order": "1"
-        },
-        {
-            "id": "org.osgi:org.osgi.util.function:1.1.0",
-            "start-order": "1"
-        },
-        {
-            "id": "org.osgi:org.osgi.util.promise:1.1.1",
-            "start-order": "1"
-        },
-        {
-            "id": "org.osgi:org.osgi.util.pushstream:1.0.1",
-            "start-order": "1"
-        },
-        {
-            "id": "org.slf4j:jcl-over-slf4j:${slf4j-version}",
-            "start-order": "1"
-        },
-        {
-            "id": "org.slf4j:log4j-over-slf4j:${slf4j-version}",
-            "start-order": "1"
-        },
-        {
-            "id": "org.slf4j:slf4j-api:${slf4j-version}",
-            "start-order": "1"
-        },
-        {
-            "id": "org.apache.felix:org.apache.felix.scr:2.1.26",
-            "start-order": "1"
-        }
-    ]
-}
+  "bundles":[
+    {
+      "id":"org.apache.felix:org.apache.felix.cm.json:1.0.6",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.aries:org.apache.aries.util:1.1.3",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.commons:commons-lang3:${commons-lang3-version}",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.configadmin:1.9.22",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.converter:1.0.18",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.eventadmin:1.6.2",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.geronimo.specs:geronimo-annotation_1.3_spec:1.3",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.geronimo.specs:geronimo-atinject_1.0_spec:${geronimo-atinject_1-0_spec-version}",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:1.1.3",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.jaxb-impl:2.2.11_1",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.saaj-impl:1.5.1_1",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.servicemix.specs:org.apache.servicemix.specs.jaxb-api-2.2:2.9.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.servicemix.specs:org.apache.servicemix.specs.jaxws-api-2.2:2.9.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.servicemix.specs:org.apache.servicemix.specs.saaj-api-1.3:2.9.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.johnzon:${org-apache-sling-commons-johnzon-version}",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.log:5.4.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.logservice:1.1.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.log:1.2.6",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.osgi:2.4.2",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.installer.core:3.12.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.installer.factory.configuration:1.4.2",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.installer.provider.file:1.3.4",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.javax.activation:0.3.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.settings:1.4.2",
+      "start-order":"1"
+    },
+    {
+      "id":"org.jvnet.staxex:stax-ex:1.8.3",
+      "start-order":"1"
+    },
+    {
+      "id":"org.osgi:org.osgi.service.log:1.5.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.osgi:org.osgi.util.function:1.2.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.osgi:org.osgi.util.promise:1.2.0",
+      "start-order":"1"
+    },
+    {
+      "id":"org.osgi:org.osgi.util.pushstream:1.0.2",
+      "start-order":"1"
+    },
+    {
+      "id":"org.slf4j:jcl-over-slf4j:${slf4j-version}",
+      "start-order":"1"
+    },
+    {
+      "id":"org.slf4j:log4j-over-slf4j:${slf4j-version}",
+      "start-order":"1"
+    },
+    {
+      "id":"org.slf4j:slf4j-api:${slf4j-version}",
+      "start-order":"1"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.scr:2.1.30",
+      "start-order":"1"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/feature/src/main/features/caconfig.json b/feature/src/main/features/caconfig.json
index 444e5a9..5d3573d 100644
--- a/feature/src/main/features/caconfig.json
+++ b/feature/src/main/features/caconfig.json
@@ -1,25 +1,24 @@
-
 {
-    "bundles":[
-        {
-            "id":"org.apache.sling:org.apache.sling.caconfig.api:${org-apache-sling-caconfig-api-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.caconfig.impl:1.5.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.caconfig.spi:1.3.4",
-            "start-order":"20"
-        }
-    ],
-    "configurations":{
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-caconfig":{
-            "user.mapping":[
-                "org.apache.sling.caconfig.impl=[sling-readall]"
-            ]
-        }
+  "bundles":[
+    {
+      "id":"org.apache.sling:org.apache.sling.caconfig.api:${org-apache-sling-caconfig-api-version}",
+      "start-order":"20"
     },
-    "repoinit:TEXT|true": "@file"
-}
+    {
+      "id":"org.apache.sling:org.apache.sling.caconfig.impl:1.6.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.caconfig.spi:1.4.0",
+      "start-order":"20"
+    }
+  ],
+  "configurations":{
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-caconfig":{
+      "user.mapping":[
+        "org.apache.sling.caconfig.impl=[sling-readall]"
+      ]
+    }
+  },
+  "repoinit:TEXT|true":"@file"
+}
\ No newline at end of file
diff --git a/feature/src/main/features/cms/composum.json b/feature/src/main/features/cms/composum.json
index b77803c..421eca0 100644
--- a/feature/src/main/features/cms/composum.json
+++ b/feature/src/main/features/cms/composum.json
@@ -2,6 +2,10 @@
 {
     "bundles":[
         {
+            "id": "org.apache.servicemix.bundles:org.apache.servicemix.bundles.commons-httpclient:3.1_7",
+            "start-order": "20"
+        },
+        {
             "id":"com.composum.nodes:composum-nodes-commons:${composum-nodes-version}",
             "start-order":"20"
         },
diff --git a/feature/src/main/features/cms/dependencies.json b/feature/src/main/features/cms/dependencies.json
index 6d52e1b..94b29eb 100644
--- a/feature/src/main/features/cms/dependencies.json
+++ b/feature/src/main/features/cms/dependencies.json
@@ -1,137 +1,137 @@
 {
-    "bundles": [
-        {
-            "id": "com.github.livesense:org.liveSense.fragment.sun.misc:1.0.5",
-            "start-order": "5"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.launchpad.api:1.2.0",
-            "start-order": "5"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.launchpad.startupmanager:1.0.0",
-            "start-order": "5"
-        },
-        {
-            "id": "com.vladsch.flexmark:flexmark-osgi:0.62.2",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.cocoon:cocoon-serializers-charsets:${cocoon-serializers-charsets-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.commons:commons-compress:1.20",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.commons:commons-csv:1.8",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.commons:commons-math3:3.6.1",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.jackrabbit:oak-auth-external:${oak-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.jackrabbit:oak-auth-ldap:${oak-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.servicemix.bundles:org.apache.servicemix.bundles.xmlbeans:3.1.0_2",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.fileoptim:${org-apache-sling-fileoptim-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.resourcemerger:1.4.0",
-            "start-order": "15"
-        },
-        {
-            "id": "org.jsoup:jsoup:${jsoup-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "com.sun.mail:jakarta.mail:2.0.1",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.commons:commons-text:${commons-text-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.servicemix.bundles:org.apache.servicemix.bundles.jasypt:1.9.3_1",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.servicemix.bundles:org.apache.servicemix.bundles.poi:4.1.2_2",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.commons.crypto:1.1.0",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.commons.html:1.1.0",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.commons.messaging.mail:2.0.0",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.commons.messaging:1.0.2",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.rewriter:1.3.0",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.aries.spifly:org.apache.aries.spifly.dynamic.bundle:1.3.2",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.tika:tika-bundle:${tika-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.security:1.1.20",
-            "start-order": "20"
-        }
-    ],
-    "configurations": {
-        "org.apache.sling.servlets.get.DefaultGetServlet": {
-            "index.files": [
-                "index",
-                "index.html"
-            ],
-            "aliases": [
-                ""
-            ],
-            "enable.html": false,
-            "json.maximumresults:Integer": "200",
-            "enable.txt": false,
-            "enable.xml": false,
-            "index": false,
-            "enable.json": true,
-            "ecmaSuport": true
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.rewriter": {
-            "user.mapping": [
-                "org.apache.sling.rewriter=[sling-readall]"
-            ]
-        },
-        "org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~serviceuser-webconsole": {
-            "whitelist.bundles": [
-                "org.apache.sling.serviceuser.webconsole"
-            ],
-            "whitelist.name": "org.apache.sling.serviceuser.webconsole"
-        }
+  "bundles":[
+    {
+      "id":"com.github.livesense:org.liveSense.fragment.sun.misc:1.0.5",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.launchpad.api:1.2.0",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.launchpad.startupmanager:1.0.0",
+      "start-order":"5"
+    },
+    {
+      "id":"com.vladsch.flexmark:flexmark-osgi:0.62.2",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.cocoon:cocoon-serializers-charsets:${cocoon-serializers-charsets-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.commons:commons-compress:1.20",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.commons:commons-csv:1.9.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.commons:commons-math3:3.6.1",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-auth-external:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-auth-ldap:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.xmlbeans:3.1.0_2",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.fileoptim:${org-apache-sling-fileoptim-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.resourcemerger:1.4.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.jsoup:jsoup:${jsoup-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"com.sun.mail:jakarta.mail:2.0.1",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.commons:commons-text:${commons-text-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.jasypt:1.9.3_1",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.poi:4.1.2_2",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.crypto:1.1.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.html:1.1.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.messaging.mail:2.0.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.commons.messaging:1.0.2",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.rewriter:1.3.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.aries.spifly:org.apache.aries.spifly.dynamic.bundle:1.3.4",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.tika:tika-bundle:${tika-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.security:1.1.22",
+      "start-order":"20"
     }
-}
+  ],
+  "configurations":{
+    "org.apache.sling.servlets.get.DefaultGetServlet":{
+      "index.files":[
+        "index",
+        "index.html"
+      ],
+      "aliases":[
+        ""
+      ],
+      "enable.html":false,
+      "json.maximumresults:Integer":200,
+      "enable.txt":false,
+      "enable.xml":false,
+      "index":false,
+      "enable.json":true,
+      "ecmaSuport":true
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.rewriter":{
+      "user.mapping":[
+        "org.apache.sling.rewriter=[sling-readall]"
+      ]
+    },
+    "org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~serviceuser-webconsole":{
+      "whitelist.bundles":[
+        "org.apache.sling.serviceuser.webconsole"
+      ],
+      "whitelist.name":"org.apache.sling.serviceuser.webconsole"
+    }
+  }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/cms/feature.json b/feature/src/main/features/cms/feature.json
index c8a8818..9c64e38 100644
--- a/feature/src/main/features/cms/feature.json
+++ b/feature/src/main/features/cms/feature.json
@@ -1,28 +1,28 @@
 {
-    "bundles": [
-        {
-            "id": "org.apache.sling:org.apache.sling.feature:1.2.20",
-            "start-order": "20"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.feature.io:1.3.0",
-            "start-order": "20"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.feature.r2f:0.0.2",
-            "start-order": "20"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.feature.diff:0.0.6",
-            "start-order": "20"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.feature.inventoryprinter:1.0.2",
-            "start-order": "20"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.installer.factory.feature:0.5.0",
-            "start-order": "20"
-        }
-    ]
+  "bundles":[
+    {
+      "id":"org.apache.sling:org.apache.sling.feature:1.2.30",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.feature.io:1.3.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.feature.r2f:0.0.2",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.feature.diff:0.0.6",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.feature.inventoryprinter:1.0.2",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.installer.factory.feature:0.6.0",
+      "start-order":"20"
+    }
+  ]
 }
\ No newline at end of file
diff --git a/feature/src/main/features/discovery.json b/feature/src/main/features/discovery.json
index 9a8bf34..2a4a0b1 100644
--- a/feature/src/main/features/discovery.json
+++ b/feature/src/main/features/discovery.json
@@ -1,35 +1,34 @@
-
 {
-    "bundles":[
-        {
-            "id":"org.apache.sling:org.apache.sling.discovery.api:1.0.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.discovery.base:2.0.8",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.discovery.commons:1.0.20",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.discovery.oak:1.2.30",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.discovery.support:1.0.6",
-            "start-order":"20"
-        }
-    ],
-    "configurations":{
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.discovery":{
-            "user.mapping":[
-                "org.apache.sling.discovery.commons=[sling-discovery]",
-                "org.apache.sling.discovery.base=[sling-discovery]",
-                "org.apache.sling.discovery.oak=[sling-discovery]"
-            ]
-        }
+  "bundles":[
+    {
+      "id":"org.apache.sling:org.apache.sling.discovery.api:1.0.4",
+      "start-order":"20"
     },
-    "repoinit:TEXT|true": "@file"
-}
+    {
+      "id":"org.apache.sling:org.apache.sling.discovery.base:2.0.10",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.discovery.commons:1.0.24",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.discovery.oak:1.2.34",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.discovery.support:1.0.6",
+      "start-order":"20"
+    }
+  ],
+  "configurations":{
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.discovery":{
+      "user.mapping":[
+        "org.apache.sling.discovery.commons=[sling-discovery]",
+        "org.apache.sling.discovery.base=[sling-discovery]",
+        "org.apache.sling.discovery.oak=[sling-discovery]"
+      ]
+    }
+  },
+  "repoinit:TEXT|true":"@file"
+}
\ No newline at end of file
diff --git a/feature/src/main/features/distribution.json b/feature/src/main/features/distribution.json
index a44f2fd..966d50f 100644
--- a/feature/src/main/features/distribution.json
+++ b/feature/src/main/features/distribution.json
@@ -1,50 +1,50 @@
 {
-    "bundles": [
-        {
-            "id": "org.apache.sling:org.apache.sling.distribution.api:0.5.0",
-            "start-order": "20"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.distribution.core:0.4.2",
-            "start-order": "20"
-        }
-    ],
-    "configurations": {
-        "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~agent": {
-            "provider.roots": "/libs/sling/distribution/settings/agents",
-            "kind": "agent"
-        },
-        "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~exporter": {
-            "provider.roots": "/libs/sling/distribution/settings/exporters",
-            "kind": "exporter"
-        },
-        "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~importer": {
-            "provider.roots": "/libs/sling/distribution/settings/importers",
-            "kind": "importer"
-        },
-        "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~agent": {
-            "provider.roots": "/libs/sling/distribution/services/agents",
-            "kind": "agent"
-        },
-        "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~exporter": {
-            "provider.roots": "/libs/sling/distribution/services/exporter",
-            "kind": "exporter"
-        },
-        "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~importer": {
-            "provider.roots": "/libs/sling/distribution/services/importer",
-            "kind": "importer"
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~distribution": {
-            "user.mapping": [
-                "org.apache.sling.distribution.core=sling-package-install"
-            ]
-        },
-        "org.apache.sling.distribution.agent.impl.PrivilegeDistributionRequestAuthorizationStrategyFactory~default": {
-            "name": "default",
-            "jcrPrivilege": "sling:publish"
-        }
-    },
-    "repoinit:TEXT|true": [
-        "register privilege sling:publish"
-    ]
+  "bundles":[
+    {
+      "id":"org.apache.sling:org.apache.sling.distribution.api:0.5.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.distribution.core:0.4.8",
+      "start-order":"20"
+    }
+  ],
+  "configurations":{
+    "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~agent":{
+      "provider.roots":"/libs/sling/distribution/settings/agents",
+      "kind":"agent"
+    },
+    "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~exporter":{
+      "provider.roots":"/libs/sling/distribution/settings/exporters",
+      "kind":"exporter"
+    },
+    "org.apache.sling.distribution.resources.impl.DistributionConfigurationResourceProviderFactory~importer":{
+      "provider.roots":"/libs/sling/distribution/settings/importers",
+      "kind":"importer"
+    },
+    "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~agent":{
+      "provider.roots":"/libs/sling/distribution/services/agents",
+      "kind":"agent"
+    },
+    "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~exporter":{
+      "provider.roots":"/libs/sling/distribution/services/exporter",
+      "kind":"exporter"
+    },
+    "org.apache.sling.distribution.resources.impl.DistributionServiceResourceProviderFactory~importer":{
+      "provider.roots":"/libs/sling/distribution/services/importer",
+      "kind":"importer"
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~distribution":{
+      "user.mapping":[
+        "org.apache.sling.distribution.core=sling-package-install"
+      ]
+    },
+    "org.apache.sling.distribution.agent.impl.PrivilegeDistributionRequestAuthorizationStrategyFactory~default":{
+      "name":"default",
+      "jcrPrivilege":"sling:publish"
+    }
+  },
+  "repoinit:TEXT|true":[
+    "register privilege sling:publish"
+  ]
 }
\ No newline at end of file
diff --git a/feature/src/main/features/event.json b/feature/src/main/features/event.json
index da8d8f4..216140f 100644
--- a/feature/src/main/features/event.json
+++ b/feature/src/main/features/event.json
@@ -1,22 +1,21 @@
-
 {
-    "bundles":[
-        {
-            "id":"org.apache.sling:org.apache.sling.event.dea:1.1.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.event:4.2.18",
-            "start-order":"20"
-        }
-    ],
-    "configurations":{
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.event":{
-            "user.mapping":[
-                "org.apache.sling.event=[sling-event]",
-                "org.apache.sling.event.dea=[sling-event]"
-            ]
-        }
+  "bundles":[
+    {
+      "id":"org.apache.sling:org.apache.sling.event.dea:1.1.4",
+      "start-order":"20"
     },
-    "repoinit:TEXT|true": "@file"
-}
+    {
+      "id":"org.apache.sling:org.apache.sling.event:4.2.24",
+      "start-order":"20"
+    }
+  ],
+  "configurations":{
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.event":{
+      "user.mapping":[
+        "org.apache.sling.event=[sling-event]",
+        "org.apache.sling.event.dea=[sling-event]"
+      ]
+    }
+  },
+  "repoinit:TEXT|true":"@file"
+}
\ No newline at end of file
diff --git a/feature/src/main/features/groovy.json b/feature/src/main/features/groovy.json
index cfe515a..8813ca4 100644
--- a/feature/src/main/features/groovy.json
+++ b/feature/src/main/features/groovy.json
@@ -1,116 +1,116 @@
 {
-    "bundles": [
-        {
-            "id": "org.ow2.asm:asm:${asm-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.ow2.asm:asm-analysis:${asm-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.ow2.asm:asm-commons:${asm-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.ow2.asm:asm-tree:${asm-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.ow2.asm:asm-util:${asm-version}",
-            "start-order": "15"
-        },
-        {
-            "id": "org.apache.aries.spifly:org.apache.aries.spifly.dynamic.bundle:1.3.2",
-            "start-order": "15"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-ant:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-astbuilder:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-cli-picocli:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-console:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-datetime:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-docgenerator:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-groovydoc:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-groovysh:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-jmx:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-json:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-jsr223:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-macro:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-nio:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-servlet:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-sql:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-swing:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-templates:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-test:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-test-junit5:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-testng:${groovy-version}",
-            "start-order": "20"
-        },
-        {
-            "id": "org.codehaus.groovy:groovy-xml:${groovy-version}",
-            "start-order": "20"
-        }
-    ]
+  "bundles":[
+    {
+      "id":"org.ow2.asm:asm:${asm-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.ow2.asm:asm-analysis:${asm-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.ow2.asm:asm-commons:${asm-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.ow2.asm:asm-tree:${asm-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.ow2.asm:asm-util:${asm-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.aries.spifly:org.apache.aries.spifly.dynamic.bundle:1.3.4",
+      "start-order":"15"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-ant:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-astbuilder:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-cli-picocli:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-console:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-datetime:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-docgenerator:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-groovydoc:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-groovysh:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-jmx:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-json:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-jsr223:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-macro:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-nio:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-servlet:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-sql:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-swing:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-templates:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-test:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-test-junit5:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-testng:${groovy-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.codehaus.groovy:groovy-xml:${groovy-version}",
+      "start-order":"20"
+    }
+  ]
 }
\ No newline at end of file
diff --git a/feature/src/main/features/healthcheck.json b/feature/src/main/features/healthcheck.json
index 1331704..4e0b860 100644
--- a/feature/src/main/features/healthcheck.json
+++ b/feature/src/main/features/healthcheck.json
@@ -1,112 +1,112 @@
 {
-    "bundles": [
-        {
-            "id": "org.apache.felix:org.apache.felix.healthcheck.api:2.0.4",
-            "start-order": "5"
-        },
-        {
-            "id": "org.apache.felix:org.apache.felix.healthcheck.core:2.0.8",
-            "start-order": "5"
-        },
-        {
-            "id": "org.apache.felix:org.apache.felix.healthcheck.generalchecks:2.0.6",
-            "start-order": "5"
-        },
-        {
-            "id": "org.apache.felix:org.apache.felix.healthcheck.webconsoleplugin:2.0.2",
-            "start-order": "5"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.hc.api:1.0.4",
-            "start-order": "20"
-        },
-        {
-            "id": "org.apache.sling:org.apache.sling.hc.support:1.0.6",
-            "start-order": "20"
-        }
-    ],
-    "configurations": {
-        "org.apache.felix.hc.generalchecks.BundlesStartedCheck": {
-            "hc.tags": [
-                "bundles"
-            ]
-        },
-        "org.apache.felix.hc.generalchecks.CpuCheck": {
-            "hc.tags": [
-                "cpu",
-                "system-resources"
-            ],
-            "cpuPercentageThresholdWarn": 95
-        },
-        "org.apache.felix.hc.generalchecks.DiskSpaceCheck": {
-            "hc.tags": [
-                "diskspace",
-                "system-resources"
-            ],
-            "diskPaths": [
-                "."
-            ]
-        },
-        "org.apache.felix.hc.generalchecks.FrameworkStartCheck": {
-            "hc.tags": [
-                "systemalive"
-            ],
-            "targetStartLevel:Integer":"30"
-        },
-        "org.apache.felix.hc.generalchecks.MemoryCheck": {
-            "hc.tags": [
-                "memory",
-                "system-resources"
-            ],
-            "heapUsedPercentageThresholdCritical": 100,
-            "heapUsedPercentageThresholdWarn": 95
-        },
-        "org.apache.felix.hc.generalchecks.ServicesCheck": {
-            "hc.tags": [
-                "systemalive"
-            ],
-            "services.list": [
-                "org.apache.sling.jcr.api.SlingRepository",
-                "org.apache.sling.engine.auth.Authenticator",
-                "org.apache.sling.api.resource.ResourceResolverFactory",
-                "org.apache.sling.api.servlets.ServletResolver",
-                "javax.script.ScriptEngineManager"
-            ]
-        },
-        "org.apache.felix.hc.generalchecks.ThreadUsageCheck": {
-            "hc.tags": [
-                "threads",
-                "cpu",
-                "system-resources"
-            ]
-        },
-        "org.apache.felix.hc.core.impl.filter.ServiceUnavailableFilter~startupandshutdown": {
-            "osgi.http.whiteboard.filter.regex": "(?!/system/).*",
-            "avoid404DuringStartup": true,
-            "service.ranking:Integer": "2147483647",
-            "includeExecutionResult": false,
-            "osgi.http.whiteboard.context.select": "(osgi.http.whiteboard.context.name=*)",
-            "tags": [
-                "systemalive"
-            ],
-            "autoDisableFilter": true,
-            "responseTextFor503": "classpath:org.apache.sling.cms.ui:/content/startup/index.html"
-        },
-        "org.apache.sling.jcr.contentloader.hc.BundleContentLoadedCheck~default": {
-            "tags": [
-                "systemalive"
-            ],
-            "includesRegex": ".*",
-            "useCriticalForNotLoaded": true,
-            "excludesRegex": ""
-        },
-        "org.apache.felix.hc.core.impl.servlet.HealthCheckExecutorServlet~default": {
-            "servletPath": "/system/health"
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~hc-support": {
-            "user.mapping": [
-                "org.apache.sling.hc.support=sling-readall"
-            ]
-        }
+  "bundles":[
+    {
+      "id":"org.apache.felix:org.apache.felix.healthcheck.api:2.0.4",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.healthcheck.core:2.0.12",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.healthcheck.generalchecks:3.0.0",
+      "start-order":"5"
+    },
+    {
+      "id":"org.apache.felix:org.apache.felix.healthcheck.webconsoleplugin:2.0.2",
+      "start-order":"5"
     }
-}
+  ],
+  "configurations":{
+    "org.apache.felix.hc.core.impl.monitor.HealthCheckMonitor~systemready":{
+      "tags":[
+        "systemalive"
+      ],
+      "intervalInSec":"5",
+      "registerHealthyMarkerService":true,
+      "registerUnhealthyMarkerService":true
+    },
+    "org.apache.felix.hc.generalchecks.BundlesStartedCheck":{
+      "hc.tags":[
+        "bundles"
+      ]
+    },
+    "org.apache.felix.hc.generalchecks.CpuCheck":{
+      "hc.tags":[
+        "cpu",
+        "system-resources"
+      ],
+      "cpuPercentageThresholdWarn":95
+    },
+    "org.apache.felix.hc.generalchecks.DiskSpaceCheck":{
+      "hc.tags":[
+        "diskspace",
+        "system-resources"
+      ],
+      "diskPaths":[
+        "."
+      ]
+    },
+    "org.apache.felix.hc.generalchecks.FrameworkStartCheck":{
+      "hc.tags":[
+        "systemalive"
+      ],
+      "targetStartLevel:Integer":30
+    },
+    "org.apache.felix.hc.generalchecks.MemoryCheck":{
+      "hc.tags":[
+        "memory",
+        "system-resources"
+      ],
+      "heapUsedPercentageThresholdCritical":100,
+      "heapUsedPercentageThresholdWarn":95
+    },
+    "org.apache.felix.hc.generalchecks.ServicesCheck":{
+      "hc.tags":[
+        "systemalive"
+      ],
+      "services.list":[
+        "org.apache.sling.jcr.api.SlingRepository",
+        "org.apache.sling.engine.auth.Authenticator",
+        "org.apache.sling.api.resource.ResourceResolverFactory",
+        "org.apache.sling.api.servlets.ServletResolver",
+        "javax.script.ScriptEngineManager"
+      ]
+    },
+    "org.apache.felix.hc.generalchecks.ThreadUsageCheck":{
+      "hc.tags":[
+        "threads",
+        "cpu",
+        "system-resources"
+      ]
+    },
+    "org.apache.felix.hc.core.impl.filter.ServiceUnavailableFilter~startupandshutdown":{
+      "osgi.http.whiteboard.filter.regex":"(?!/system/).*",
+      "avoid404DuringStartup":true,
+      "service.ranking:Integer":2147483647,
+      "includeExecutionResult":false,
+      "osgi.http.whiteboard.context.select":"(osgi.http.whiteboard.context.name=*)",
+      "tags":[
+        "systemalive"
+      ],
+      "autoDisableFilter":true,
+      "responseTextFor503":"classpath:org.apache.sling.cms.ui:/content/startup/index.html"
+    },
+    "org.apache.sling.jcr.contentloader.hc.BundleContentLoadedCheck~default":{
+      "tags":[
+        "systemalive"
+      ],
+      "includesRegex":".*",
+      "useCriticalForNotLoaded":true,
+      "excludesRegex":""
+    },
+    "org.apache.felix.hc.core.impl.servlet.HealthCheckExecutorServlet~default":{
+      "servletPath":"/system/health"
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~hc-support":{
+      "user.mapping":[
+        "org.apache.sling.hc.support=sling-readall"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/maintenance.json b/feature/src/main/features/maintenance.json
index 6fd3e12..4decbc9 100644
--- a/feature/src/main/features/maintenance.json
+++ b/feature/src/main/features/maintenance.json
@@ -1,5 +1,5 @@
 {
     "prototype": {
-        "id": "org.apache.sling:org.apache.sling.jcr.maintenance:slingosgifeature:default:1.0.0"
+        "id": "org.apache.sling:org.apache.sling.jcr.maintenance:slingosgifeature:default:1.0.2"
     }
 }
diff --git a/feature/src/main/features/models-jacksonexporter.json b/feature/src/main/features/models-jacksonexporter.json
index ec1181e..7228c25 100644
--- a/feature/src/main/features/models-jacksonexporter.json
+++ b/feature/src/main/features/models-jacksonexporter.json
@@ -1,21 +1,20 @@
-
 {
-    "bundles":[
-        {
-            "id":"com.fasterxml.jackson.core:jackson-annotations:${jackson-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"com.fasterxml.jackson.core:jackson-core:${jackson-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"com.fasterxml.jackson.core:jackson-databind:${jackson-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.models.jacksonexporter:1.0.8",
-            "start-order":"20"
-        }
-    ]
-}
+  "bundles":[
+    {
+      "id":"com.fasterxml.jackson.core:jackson-annotations:${jackson-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"com.fasterxml.jackson.core:jackson-core:${jackson-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"com.fasterxml.jackson.core:jackson-databind:${jackson-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.models.jacksonexporter:1.1.2",
+      "start-order":"20"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/feature/src/main/features/oak/oak_base.json b/feature/src/main/features/oak/oak_base.json
index 58759d3..3e9c340 100644
--- a/feature/src/main/features/oak/oak_base.json
+++ b/feature/src/main/features/oak/oak_base.json
@@ -1,216 +1,215 @@
-
 {
-    "bundles":[
-        {
-            "id":"org.apache.felix:org.apache.felix.jaas:1.0.2",
-            "start-order":"10"
-        },
-        {
-            "id":"com.google.guava:guava:${guava-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:jackrabbit-data:${jackrabbit-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:jackrabbit-jcr-commons:${jackrabbit-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:jackrabbit-jcr-rmi:${jackrabbit-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:jackrabbit-spi-commons:${jackrabbit-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:jackrabbit-spi:${jackrabbit-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:jackrabbit-webdav:${jackrabbit-version}",
-            "start-order":"15"
-        },        
-        {
-            "id":"org.apache.jackrabbit:oak-api:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-blob-plugins:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-blob:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-commons:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-core-spi:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-core:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-jackrabbit-api:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-jcr:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-lucene:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-query-spi:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-security-spi:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-segment-tar:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-store-composite:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-store-document:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-store-spi:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.jackrabbit:oak-authorization-principalbased:${oak-version}",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.api:2.4.0",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.base:3.1.6",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.davex:1.3.10",
-            "start-order":"15"
-        },        
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.jcr-wrapper:2.0.0",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.registration:1.0.6",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.webdav:2.3.8",
-            "start-order":"15"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.oak.server:1.2.10",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.resource:3.0.22",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.installer.provider.jcr:3.3.0",
-            "start-order":"20"
-        },    
-        {
-            "id":"org.apache.jackrabbit.vault:org.apache.jackrabbit.vault:3.4.6",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.contentloader:2.4.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.jackrabbit.accessmanager:3.0.8",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.jcr.jackrabbit.usermanager:2.2.16",
-            "start-order":"20"
-        }
-    ],
-    "configurations":{
-        "org.apache.felix.jaas.ConfigurationSpi":{
-            "jaas.defaultRealmName":"jackrabbit.oak",
-            "jaas.configProviderName":"FelixJaasProvider"
-        },
-        "org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl":{
-            "org.apache.jackrabbit.oak.authentication.configSpiName":"FelixJaasProvider"
-        },
-        "org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName":{
-            "length:Integer":"21"
-        },
-        "org.apache.jackrabbit.oak.security.user.UserConfigurationImpl":{
-            "groupsPath":"/home/groups",
-            "defaultDepth":"1",
-            "importBehavior":"besteffort",
-            "usersPath":"/home/users"
-        },
-        "org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl":{
-            "importBehavior":"besteffort"
-        },
-        "org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider":{
-            "userPrivilegeNames":[
-                "jcr:all"
-            ],
-            "groupPrivilegeNames":[
-                "jcr:read"
-            ],
-            "enabledActions":[
-                "org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction"
-            ]
-        },
-        "org.apache.felix.jaas.Configuration.factory~GuestLoginModule":{
-            "jaas.controlFlag":"optional",
-            "jaas.classname":"org.apache.jackrabbit.oak.spi.security.authentication.GuestLoginModule",
-            "jaas.ranking:Integer":"300"
-        },
-        "org.apache.felix.jaas.Configuration.factory~LoginModuleImpl":{
-            "jaas.controlFlag":"required",
-            "jaas.classname":"org.apache.jackrabbit.oak.security.authentication.user.LoginModuleImpl"
-        },
-        "org.apache.felix.jaas.Configuration.factory~TokenLoginModule":{
-            "jaas.controlFlag":"sufficient",
-            "jaas.classname":"org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule",
-            "jaas.ranking:Integer":"200"
-        },
-        "org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedAuthorizationConfiguration":{
-            "enableAggregationFilter":true
-        },
-        "org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.FilterProviderImpl":{
-            "path":"/home/users/system/sling"
-        },
-        "org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration":{
-            "requiredServicePids":[
-                "org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl",
-                "org.apache.jackrabbit.oak.security.principal.PrincipalConfigurationImpl",
-                "org.apache.jackrabbit.oak.security.authentication.token.TokenConfigurationImpl",
-                "org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider",
-                "org.apache.jackrabbit.oak.security.authorization.restriction.RestrictionProviderImpl",
-                "org.apache.jackrabbit.oak.security.user.UserAuthenticationFactoryImpl",
-                "org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedAuthorizationConfiguration"
-            ]
-         }
+  "bundles":[
+    {
+      "id":"org.apache.felix:org.apache.felix.jaas:1.0.2",
+      "start-order":"10"
+    },
+    {
+      "id":"com.google.guava:guava:${guava-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:jackrabbit-data:${jackrabbit-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:jackrabbit-jcr-commons:${jackrabbit-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:jackrabbit-jcr-rmi:${jackrabbit-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:jackrabbit-spi-commons:${jackrabbit-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:jackrabbit-spi:${jackrabbit-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:jackrabbit-webdav:${jackrabbit-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-api:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-blob-plugins:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-blob:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-commons:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-core-spi:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-core:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-jackrabbit-api:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-jcr:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-lucene:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-query-spi:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-security-spi:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-segment-tar:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-store-composite:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-store-document:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-store-spi:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.jackrabbit:oak-authorization-principalbased:${oak-version}",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.api:2.4.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.base:3.1.10",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.davex:1.3.10",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.jcr-wrapper:2.0.0",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.registration:1.0.6",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.webdav:2.3.8",
+      "start-order":"15"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.oak.server:1.2.10",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.resource:3.1.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.installer.provider.jcr:3.3.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.jackrabbit.vault:org.apache.jackrabbit.vault:3.5.8",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.contentloader:2.5.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.jackrabbit.accessmanager:3.0.10",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.jcr.jackrabbit.usermanager:2.2.16",
+      "start-order":"20"
     }
-}
+  ],
+  "configurations":{
+    "org.apache.felix.jaas.ConfigurationSpi":{
+      "jaas.defaultRealmName":"jackrabbit.oak",
+      "jaas.configProviderName":"FelixJaasProvider"
+    },
+    "org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl":{
+      "org.apache.jackrabbit.oak.authentication.configSpiName":"FelixJaasProvider"
+    },
+    "org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName":{
+      "length:Integer":21
+    },
+    "org.apache.jackrabbit.oak.security.user.UserConfigurationImpl":{
+      "groupsPath":"/home/groups",
+      "defaultDepth":"1",
+      "importBehavior":"besteffort",
+      "usersPath":"/home/users"
+    },
+    "org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl":{
+      "importBehavior":"besteffort"
+    },
+    "org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider":{
+      "userPrivilegeNames":[
+        "jcr:all"
+      ],
+      "groupPrivilegeNames":[
+        "jcr:read"
+      ],
+      "enabledActions":[
+        "org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction"
+      ]
+    },
+    "org.apache.felix.jaas.Configuration.factory~GuestLoginModule":{
+      "jaas.controlFlag":"optional",
+      "jaas.classname":"org.apache.jackrabbit.oak.spi.security.authentication.GuestLoginModule",
+      "jaas.ranking:Integer":300
+    },
+    "org.apache.felix.jaas.Configuration.factory~LoginModuleImpl":{
+      "jaas.controlFlag":"required",
+      "jaas.classname":"org.apache.jackrabbit.oak.security.authentication.user.LoginModuleImpl"
+    },
+    "org.apache.felix.jaas.Configuration.factory~TokenLoginModule":{
+      "jaas.controlFlag":"sufficient",
+      "jaas.classname":"org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule",
+      "jaas.ranking:Integer":200
+    },
+    "org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedAuthorizationConfiguration":{
+      "enableAggregationFilter":true
+    },
+    "org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.FilterProviderImpl":{
+      "path":"/home/users/system/sling"
+    },
+    "org.apache.jackrabbit.oak.security.internal.SecurityProviderRegistration":{
+      "requiredServicePids":[
+        "org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl",
+        "org.apache.jackrabbit.oak.security.principal.PrincipalConfigurationImpl",
+        "org.apache.jackrabbit.oak.security.authentication.token.TokenConfigurationImpl",
+        "org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider",
+        "org.apache.jackrabbit.oak.security.authorization.restriction.RestrictionProviderImpl",
+        "org.apache.jackrabbit.oak.security.user.UserAuthenticationFactoryImpl",
+        "org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedAuthorizationConfiguration"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/scripting.json b/feature/src/main/features/scripting.json
index 2aa28ef..ac4a6fb 100644
--- a/feature/src/main/features/scripting.json
+++ b/feature/src/main/features/scripting.json
@@ -1,115 +1,114 @@
-
 {
-    "bundles":[
-        {
-            "id":"org.antlr:antlr4-runtime:4.9.2",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.rhino:1.7.13_1",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.api:${org-apache-sling-scripting-api-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.spi:1.0.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.core:2.3.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.el-api:1.0.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.javascript:3.1.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.jsp-api:1.0.2",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.jsp.taglib:${org-apache-sling-scripting-jsp-taglib-version}",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.jsp:2.5.4",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.sightly.compiler.java:1.2.2-1.4.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.sightly.compiler:1.2.12-1.4.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.sightly.js.provider:1.2.6",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.sightly.repl:1.0.6",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.sightly.runtime:1.2.6-1.4.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.sightly:1.4.14-1.4.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.freemarker:1.0.4",
-            "start-order":"20"
-        },
-        {
-            "id": "org.freemarker:freemarker:2.3.31",
-            "start-order": "20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.scripting.thymeleaf:2.0.2",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.thymeleaf:3.0.12.RELEASE_1",
-            "start-order":"20"
-        },
-        {
-            "id":"org.attoparser:attoparser:2.0.5.RELEASE",
-            "start-order":"20"
-        },
-        {
-            "id":"org.unbescape:unbescape:1.1.6.RELEASE",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.ognl:3.2.18_1",
-            "start-order":"20"
-        },
-        {
-            "id":"org.javassist:javassist:3.27.0-GA",
-            "start-order":"20"
-        }
-    ],
-    "configurations":{
-        "org.apache.sling.scripting.core.impl.ScriptCacheImpl":{
-            "org.apache.sling.scripting.cache.additional_extensions":[
-                "js"
-            ]
-        },
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~scripting":{
-            "user.mapping":[
-                "org.apache.sling.scripting.core=[sling-search-path-reader]",
-                "org.apache.sling.scripting.sightly.js.provider=[sling-search-path-reader]",
-                "org.apache.sling.scripting.thymeleaf=[sling-search-path-reader]"
-            ]
-        }
+  "bundles":[
+    {
+      "id":"org.antlr:antlr4-runtime:4.9.3",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.rhino:1.7.13_1",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.api:${org-apache-sling-scripting-api-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.spi:1.0.4",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.core:2.4.2",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.el-api:1.0.4",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.javascript:3.1.4",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.jsp-api:1.0.2",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.jsp.taglib:${org-apache-sling-scripting-jsp-taglib-version}",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.jsp:2.5.4",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.sightly.compiler.java:1.2.2-1.4.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.sightly.compiler:1.2.14-1.4.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.sightly.js.provider:1.2.6",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.sightly.repl:1.0.10",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.sightly.runtime:1.2.6-1.4.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.sightly:1.4.14-1.4.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.freemarker:1.0.4",
+      "start-order":"20"
+    },
+    {
+      "id":"org.freemarker:freemarker:2.3.31",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.scripting.thymeleaf:2.0.2",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.thymeleaf:3.0.14.RELEASE_1",
+      "start-order":"20"
+    },
+    {
+      "id":"org.attoparser:attoparser:2.0.5.RELEASE",
+      "start-order":"20"
+    },
+    {
+      "id":"org.unbescape:unbescape:1.1.6.RELEASE",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.ognl:3.3.0_1",
+      "start-order":"20"
+    },
+    {
+      "id":"org.javassist:javassist:3.28.0-GA",
+      "start-order":"20"
     }
-}
+  ],
+  "configurations":{
+    "org.apache.sling.scripting.core.impl.ScriptCacheImpl":{
+      "org.apache.sling.scripting.cache.additional_extensions":[
+        "js"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~scripting":{
+      "user.mapping":[
+        "org.apache.sling.scripting.core=[sling-search-path-reader]",
+        "org.apache.sling.scripting.sightly.js.provider=[sling-search-path-reader]",
+        "org.apache.sling.scripting.thymeleaf=[sling-search-path-reader]"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/validation.json b/feature/src/main/features/validation.json
index 4d241b3..fada1c9 100644
--- a/feature/src/main/features/validation.json
+++ b/feature/src/main/features/validation.json
@@ -1,24 +1,23 @@
-
 {
-    "bundles":[
-        {
-            "id":"org.apache.sling:org.apache.sling.models.validation-impl:1.0.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.validation.api:1.0.0",
-            "start-order":"20"
-        },
-        {
-            "id":"org.apache.sling:org.apache.sling.validation.core:1.0.4",
-            "start-order":"20"
-        }
-    ],
-    "configurations":{
-        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~validation":{
-            "user.mapping":[
-                "org.apache.sling.validation.core=[sling-search-path-reader]"
-            ]
-        }
+  "bundles":[
+    {
+      "id":"org.apache.sling:org.apache.sling.models.validation-impl:1.1.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.validation.api:1.0.0",
+      "start-order":"20"
+    },
+    {
+      "id":"org.apache.sling:org.apache.sling.validation.core:1.0.4",
+      "start-order":"20"
     }
-}
+  ],
+  "configurations":{
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~validation":{
+      "user.mapping":[
+        "org.apache.sling.validation.core=[sling-search-path-reader]"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 9ff57cc..983b820 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,452 +5,436 @@
     in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
     the License for the specific language governing permissions and limitations under the License. -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-bundle-parent</artifactId>
+    <version>43</version>
+  </parent>
+  <artifactId>org.apache.sling.cms</artifactId>
+  <name>Apache Sling - CMS</name>
+  <description>An Apache Sling Reference CMS Application</description>
+  <version>1.1.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <properties>
+    <sling.protocol>http</sling.protocol>
+    <sling.host>localhost</sling.host>
+    <sling.port>8080</sling.port>
+    <sling.username>admin</sling.username>
+    <sling.password>admin</sling.password>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <sling.cms.java.version>11</sling.cms.java.version>
+    <maven.compiler.source>1.${sling.cms.java.version}</maven.compiler.source>
+    <maven.compiler.target>${maven.compiler.source}</maven.compiler.target>
+    <!-- Common Versions -->
+    <cms-version>${project.parent.version}</cms-version>
+    <asm-version>9.2</asm-version>
+    <cocoon-serializers-charsets-version>1.0.2</cocoon-serializers-charsets-version>
+    <commons-io-version>2.11.0</commons-io-version>
+    <commons-lang3-version>3.12.0</commons-lang3-version>
+    <commons-text-version>1.9</commons-text-version>
+    <composum-nodes-version>2.7.1</composum-nodes-version>
+    <geronimo-atinject_1-0_spec-version>1.2</geronimo-atinject_1-0_spec-version>
+    <groovy-version>3.0.9</groovy-version>
+    <httpclient-version>4.5.13</httpclient-version>
+    <jackrabbit-version>2.21.9</jackrabbit-version>
+    <jackson-version>2.13.1</jackson-version>
+    <javax-annotation-api-version>1.3.2</javax-annotation-api-version>
+    <jsoup-version>1.14.3</jsoup-version>
+    <jsp-api-version>2.0</jsp-api-version>
+    <jstl-version>1.2_1</jstl-version>
+    <mockito-core-version>4.2.0</mockito-core-version>
+    <oak-version>1.42.0</oak-version>
+    <org-apache-sling-api-version>2.24.0</org-apache-sling-api-version>
+    <org-apache-sling-caconfig-api-version>1.3.0</org-apache-sling-caconfig-api-version>
+    <org-apache-sling-commons-johnzon-version>1.2.14</org-apache-sling-commons-johnzon-version>
+    <org-apache-sling-engine-version>2.8.0</org-apache-sling-engine-version>
+    <org-apache-sling-fileoptim-version>0.9.4</org-apache-sling-fileoptim-version>
+    <org-apache-sling-models-api-version>1.4.0</org-apache-sling-models-api-version>
+    <org-apache-sling-scripting-api-version>2.2.0</org-apache-sling-scripting-api-version>
+    <org-apache-sling-scripting-jsp-taglib-version>2.4.0</org-apache-sling-scripting-jsp-taglib-version>
+    <org-apache-sling-testing-sling-mock-junit4-version>3.2.2</org-apache-sling-testing-sling-mock-junit4-version>
+    <org.apache.felix.webconsole-version>4.7.2</org.apache.felix.webconsole-version>
+    <osgi-annotation-version>8.0.1</osgi-annotation-version>
+    <guava-version>15.0</guava-version>
+    <pdfbox-version>2.0.25</pdfbox-version>
+    <servlet-api-version>2.5</servlet-api-version>
+    <slf4j-version>1.7.33</slf4j-version>
+    <tika-version>1.28</tika-version>
+  </properties>
+  <modules>
+    <module>api</module>
+    <module>core</module>
+    <module>login</module>
+    <module>ui</module>
+    <module>reference</module>
+    <module>feature</module>
+    <module>archetype</module>
+    <module>it</module>
+  </modules>
+  <scm>
+    <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git</connection>
+    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git</developerConnection>
+    <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-app-cms.git</url>
+    <tag>HEAD</tag>
+  </scm>
+  <dependencyManagement>
+    <dependencies>
+      <!-- Other Apache Dependencies -->
+      <dependency>
+        <groupId>org.apache.cocoon</groupId>
+        <artifactId>cocoon-serializers-charsets</artifactId>
+        <version>${cocoon-serializers-charsets-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.webconsole</artifactId>
+        <version>${org.apache.felix.webconsole-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geronimo.bundles</groupId>
+        <artifactId>jstl</artifactId>
+        <version>${jstl-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.geronimo.specs</groupId>
+        <artifactId>geronimo-atinject_1.0_spec</artifactId>
+        <version>${geronimo-atinject_1-0_spec-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpclient</artifactId>
+        <version>${httpclient-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.jackrabbit</groupId>
+        <artifactId>oak-jackrabbit-api</artifactId>
+        <version>${oak-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.jackrabbit</groupId>
+        <artifactId>jackrabbit-jcr-commons</artifactId>
+        <version>${jackrabbit-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.jackrabbit</groupId>
+        <artifactId>oak-core</artifactId>
+        <version>${oak-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.jackrabbit</groupId>
+        <artifactId>oak-jcr</artifactId>
+        <version>${oak-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <!-- Sling Dependencies -->
+      <dependency>
         <groupId>org.apache.sling</groupId>
-        <artifactId>sling-bundle-parent</artifactId>
-        <version>43</version>
-        <relativePath />
-    </parent>
-
-    <artifactId>org.apache.sling.cms</artifactId>
-    <name>Apache Sling - CMS</name>
-    <description>An Apache Sling Reference CMS Application</description>
-    <version>1.1.1-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <properties>
-        <sling.protocol>http</sling.protocol>
-        <sling.host>localhost</sling.host>
-        <sling.port>8080</sling.port>
-        <sling.username>admin</sling.username>
-        <sling.password>admin</sling.password>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <sling.cms.java.version>11</sling.cms.java.version>
-        <maven.compiler.source>1.${sling.cms.java.version}</maven.compiler.source>
-        <maven.compiler.target>${maven.compiler.source}</maven.compiler.target>
-
-        <!-- Common Versions -->
-        <cms-version>${project.parent.version}</cms-version>
-        <asm-version>9.1</asm-version>
-        <cocoon-serializers-charsets-version>1.0.2</cocoon-serializers-charsets-version>
-        <commons-io-version>2.11.0</commons-io-version>
-        <commons-lang3-version>3.12.0</commons-lang3-version>
-        <commons-text-version>1.9</commons-text-version>
-        <composum-nodes-version>2.6.6</composum-nodes-version>
-        <geronimo-atinject_1-0_spec-version>1.2</geronimo-atinject_1-0_spec-version>
-        <groovy-version>3.0.7</groovy-version>
-        <httpclient-version>4.5.13</httpclient-version>
-        <jackrabbit-version>2.21.8</jackrabbit-version>
-        <jackson-version>2.12.2</jackson-version>
-        <javax-annotation-api-version>1.3.2</javax-annotation-api-version>
-        <jsoup-version>1.14.3</jsoup-version>
-        <jsp-api-version>2.0</jsp-api-version>
-        <jstl-version>1.2_1</jstl-version>
-        <mockito-core-version>3.6.28</mockito-core-version>
-        <oak-version>1.40.0</oak-version>
-        <org-apache-sling-api-version>2.24.0</org-apache-sling-api-version>
-        <org-apache-sling-caconfig-api-version>1.2.0</org-apache-sling-caconfig-api-version>
-        <org-apache-sling-commons-johnzon-version>1.2.6</org-apache-sling-commons-johnzon-version>
-        <org-apache-sling-engine-version>2.7.10</org-apache-sling-engine-version>
-        <org-apache-sling-fileoptim-version>0.9.4</org-apache-sling-fileoptim-version>
-        <org-apache-sling-models-api-version>1.3.8</org-apache-sling-models-api-version>
-        <org-apache-sling-scripting-api-version>2.2.0</org-apache-sling-scripting-api-version>
-        <org-apache-sling-scripting-jsp-taglib-version>2.4.0</org-apache-sling-scripting-jsp-taglib-version>
-        <org-apache-sling-testing-sling-mock-junit4-version>2.6.2</org-apache-sling-testing-sling-mock-junit4-version>
-        <org.apache.felix.webconsole-version>4.7.0</org.apache.felix.webconsole-version>
-        <osgi-annotation-version>8.0.0</osgi-annotation-version>
-        <guava-version>15.0</guava-version>
-        <pdfbox-version>2.0.24</pdfbox-version>
-        <servlet-api-version>2.5</servlet-api-version>
-        <slf4j-version>1.7.25</slf4j-version>
-        <tika-version>1.26</tika-version>
-    </properties>
-
-    <modules>
-        <module>api</module>
-        <module>core</module>
-        <module>login</module>
-        <module>ui</module>
-        <module>reference</module>
-        <module>feature</module>
-        <module>archetype</module>
-        <module>it</module>
-    </modules>
-
-    <scm>
-        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git</connection>
-        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git</developerConnection>
-        <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-app-cms.git</url>
-        <tag>HEAD</tag>
-    </scm>
-
-    <dependencyManagement>
-        <dependencies>
-
-            <!-- Other Apache Dependencies -->
-            <dependency>
-                <groupId>org.apache.cocoon</groupId>
-                <artifactId>cocoon-serializers-charsets</artifactId>
-                <version>${cocoon-serializers-charsets-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>org.apache.felix.webconsole</artifactId>
-                <version>${org.apache.felix.webconsole-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.bundles</groupId>
-                <artifactId>jstl</artifactId>
-                <version>${jstl-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.geronimo.specs</groupId>
-                <artifactId>geronimo-atinject_1.0_spec</artifactId>
-                <version>${geronimo-atinject_1-0_spec-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.httpcomponents</groupId>
-                <artifactId>httpclient</artifactId>
-                <version>${httpclient-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.jackrabbit</groupId>
-                <artifactId>oak-jackrabbit-api</artifactId>
-                <version>${oak-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.jackrabbit</groupId>
-                <artifactId>jackrabbit-jcr-commons</artifactId>
-                <version>${jackrabbit-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.jackrabbit</groupId>
-                <artifactId>oak-core</artifactId>
-                <version>${oak-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.jackrabbit</groupId>
-                <artifactId>oak-jcr</artifactId>
-                <version>${oak-version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Sling Dependencies -->
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.api</artifactId>
-                <version>${org-apache-sling-api-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.caconfig.api</artifactId>
-                <version>${org-apache-sling-caconfig-api-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.commons.classloader</artifactId>
-                <version>1.4.4</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.commons.messaging</artifactId>
-                <version>1.0.2</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.commons.messaging.mail</artifactId>
-                <version>2.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.commons.johnzon</artifactId>
-                <version>${org-apache-sling-commons-johnzon-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <artifactId>org.apache.sling.discovery.api</artifactId>
-                <groupId>org.apache.sling</groupId>
-                <version>1.0.4</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.distribution.api</artifactId>
-                <version>0.5.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.engine</artifactId>
-                <version>${org-apache-sling-engine-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.event.api</artifactId>
-                <version>1.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.fileoptim</artifactId>
-                <version>${org-apache-sling-fileoptim-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.i18n</artifactId>
-                <version>2.5.16</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.jcr.resource</artifactId>
-                <version>3.0.22</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.models.api</artifactId>
-                <version>${org-apache-sling-models-api-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.rewriter</artifactId>
-                <version>1.3.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.scripting.api</artifactId>
-                <version>${org-apache-sling-scripting-api-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.scripting.jsp.taglib</artifactId>
-                <version>${org-apache-sling-scripting-jsp-taglib-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.servlets.post</artifactId>
-                <version>2.4.6</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Utilities / Misc -->
-            <dependency>
-                <groupId>com.github.jknack</groupId>
-                <artifactId>handlebars</artifactId>
-                <version>4.3.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>com.google.guava</groupId>
-                <artifactId>guava</artifactId>
-                <version>${guava-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>jakarta.activation</groupId>
-                <artifactId>jakarta.activation-api</artifactId>
-                <version>2.0.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>jakarta.mail</groupId>
-                <artifactId>jakarta.mail-api</artifactId>
-                <version>2.0.1</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.mail</groupId>
-                <artifactId>javax.mail</artifactId>
-                <version>1.6.2</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>${commons-io-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.annotation</groupId>
-                <artifactId>javax.annotation-api</artifactId>
-                <version>${javax-annotation-api-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>jsp-api</artifactId>
-                <version>${jsp-api-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-                <version>${servlet-api-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-lang3</artifactId>
-                <version>${commons-lang3-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-math</artifactId>
-                <version>2.2</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-text</artifactId>
-                <version>${commons-text-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.jetbrains</groupId>
-                <artifactId>annotations</artifactId>
-                <version>20.1.0</version>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.annotation</artifactId>
-                <version>${osgi-annotation-version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Document Processing Dependencies -->
-            <dependency>
-                <artifactId>jsoup</artifactId>
-                <groupId>org.jsoup</groupId>
-                <version>${jsoup-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>net.coobird</groupId>
-                <artifactId>thumbnailator</artifactId>
-                <version>0.4.14</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.pdfbox</groupId>
-                <artifactId>pdfbox</artifactId>
-                <version>${pdfbox-version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.poi</groupId>
-                <artifactId>poi-ooxml</artifactId>
-                <version>5.1.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.poi</groupId>
-                <artifactId>poi-scratchpad</artifactId>
-                <version>5.1.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.tika</groupId>
-                <artifactId>tika-core</artifactId>
-                <version>${tika-version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Testing Dependencies -->
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.testing.sling-mock.junit4</artifactId>
-                <version>${org-apache-sling-testing-sling-mock-junit4-version}</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.mockito</groupId>
-                <artifactId>mockito-core</artifactId>
-                <version>${mockito-core-version}</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.testing.sling-mock-oak</artifactId>
-                <version>2.1.10-1.16.0</version>
-                <scope>test</scope>
-            </dependency>
-
-        </dependencies>
-    </dependencyManagement>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <!-- Used by maven-remote-resources-plugin -->
-                        <exclude>src/main/appended-resources/META-INF/*</exclude>
-                        <!-- Generated by maven-remote-resources-plugin -->
-                        <exclude>velocity.log</exclude>
-                        <!-- don't check anything in target -->
-                        <exclude>target/*</exclude>
-                        <!-- Fixing issues with deleted modules -->
-                        <exclude>**/target/*</exclude>
-                        <exclude>**/target/**/*</exclude>
-                        <exclude>vagrant/**/*</exclude>
-                        <exclude>node/**/*</exclude>
-                        <exclude>node_modules/**/*</exclude>
-                        <exclude>**/node_modules/**/*</exclude>
-                    </excludes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-
-
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>animal-sniffer-maven-plugin</artifactId>
-                    <configuration>
-                        <signature>
-                            <groupId>org.codehaus.mojo.signature</groupId>
-                            <artifactId>java1${sling.cms.java.version}</artifactId>
-                            <version>1.0</version>
-                        </signature>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
+        <artifactId>org.apache.sling.api</artifactId>
+        <version>${org-apache-sling-api-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.caconfig.api</artifactId>
+        <version>${org-apache-sling-caconfig-api-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.commons.classloader</artifactId>
+        <version>1.4.4</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.commons.messaging</artifactId>
+        <version>1.0.2</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.commons.messaging.mail</artifactId>
+        <version>2.0.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.commons.johnzon</artifactId>
+        <version>${org-apache-sling-commons-johnzon-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <artifactId>org.apache.sling.discovery.api</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>1.0.4</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.distribution.api</artifactId>
+        <version>0.5.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.engine</artifactId>
+        <version>${org-apache-sling-engine-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.event.api</artifactId>
+        <version>1.0.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.fileoptim</artifactId>
+        <version>${org-apache-sling-fileoptim-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.i18n</artifactId>
+        <version>2.5.18</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.jcr.resource</artifactId>
+        <version>3.1.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.models.api</artifactId>
+        <version>${org-apache-sling-models-api-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.rewriter</artifactId>
+        <version>1.3.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.scripting.api</artifactId>
+        <version>${org-apache-sling-scripting-api-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.scripting.jsp.taglib</artifactId>
+        <version>${org-apache-sling-scripting-jsp-taglib-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.servlets.post</artifactId>
+        <version>2.5.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <!-- Utilities / Misc -->
+      <dependency>
+        <groupId>com.github.jknack</groupId>
+        <artifactId>handlebars</artifactId>
+        <version>4.3.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.google.guava</groupId>
+        <artifactId>guava</artifactId>
+        <version>${guava-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>jakarta.activation</groupId>
+        <artifactId>jakarta.activation-api</artifactId>
+        <version>2.0.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>jakarta.mail</groupId>
+        <artifactId>jakarta.mail-api</artifactId>
+        <version>2.0.1</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.sun.mail</groupId>
+        <artifactId>javax.mail</artifactId>
+        <version>1.6.2</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>${commons-io-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>javax.annotation</groupId>
+        <artifactId>javax.annotation-api</artifactId>
+        <version>${javax-annotation-api-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>jsp-api</artifactId>
+        <version>${jsp-api-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>servlet-api</artifactId>
+        <version>${servlet-api-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-lang3</artifactId>
+        <version>${commons-lang3-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-math</artifactId>
+        <version>2.2</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-text</artifactId>
+        <version>${commons-text-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.jetbrains</groupId>
+        <artifactId>annotations</artifactId>
+        <version>23.0.0</version>
+        <scope>compile</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>osgi.annotation</artifactId>
+        <version>${osgi-annotation-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <!-- Document Processing Dependencies -->
+      <dependency>
+        <artifactId>jsoup</artifactId>
+        <groupId>org.jsoup</groupId>
+        <version>${jsoup-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>net.coobird</groupId>
+        <artifactId>thumbnailator</artifactId>
+        <version>0.4.16</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.pdfbox</groupId>
+        <artifactId>pdfbox</artifactId>
+        <version>${pdfbox-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.poi</groupId>
+        <artifactId>poi-ooxml</artifactId>
+        <version>5.2.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.poi</groupId>
+        <artifactId>poi-scratchpad</artifactId>
+        <version>5.2.0</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.tika</groupId>
+        <artifactId>tika-core</artifactId>
+        <version>${tika-version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <!-- Testing Dependencies -->
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.testing.sling-mock.junit4</artifactId>
+        <version>${org-apache-sling-testing-sling-mock-junit4-version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>${mockito-core-version}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.testing.sling-mock-oak</artifactId>
+        <version>3.1.2-1.40.0</version>
+        <scope>test</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <!-- Used by maven-remote-resources-plugin -->
+            <exclude>src/main/appended-resources/META-INF/*</exclude>
+            <!-- Generated by maven-remote-resources-plugin -->
+            <exclude>velocity.log</exclude>
+            <!-- don't check anything in target -->
+            <exclude>target/*</exclude>
+            <!-- Fixing issues with deleted modules -->
+            <exclude>**/target/*</exclude>
+            <exclude>**/target/**/*</exclude>
+            <exclude>vagrant/**/*</exclude>
+            <exclude>node/**/*</exclude>
+            <exclude>node_modules/**/*</exclude>
+            <exclude>**/node_modules/**/*</exclude>
+          </excludes>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>verify</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>animal-sniffer-maven-plugin</artifactId>
+          <configuration>
+            <signature>
+              <groupId>org.codehaus.mojo.signature</groupId>
+              <artifactId>java1${sling.cms.java.version}</artifactId>
+              <version>1.0</version>
+            </signature>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+</project>
 
-</project>
\ No newline at end of file
diff --git a/rules.xml b/rules.xml
new file mode 100644
index 0000000..e7c887c
--- /dev/null
+++ b/rules.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional
+    information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except
+    in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to
+    in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
+    the License for the specific language governing permissions and limitations under the License. -->
+<ruleset comparisonMethod="maven" xmlns="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0 https://www.mojohaus.org/versions-maven-plugin/xsd/rule-2.0.0.xsd">
+    <ignoreVersions>
+        <ignoreVersion type="regex">.*-alpha.*</ignoreVersion>
+        <ignoreVersion type="regex">.*-beta.*</ignoreVersion>
+        <ignoreVersion type="regex">.*-RC.*</ignoreVersion>
+        <ignoreVersion type="regex">.*b.*</ignoreVersion>
+    </ignoreVersions>
+    <rules>
+        <rule groupId="com.google.guava" artifactId="guava" comparisonMethod="maven">
+            <ignoreVersions>
+                <ignoreVersion type="regex">1[6|7|8|9]\..*</ignoreVersion>
+                <ignoreVersion type="regex">2\d\..*</ignoreVersion>
+                <ignoreVersion type="regex">3\d\..*</ignoreVersion>
+            </ignoreVersions>
+        </rule>
+        <rule groupId="commons-collections" artifactId="commons-collections" comparisonMethod="maven">
+            <ignoreVersions>
+                <ignoreVersion type="regex">\d{8}.*</ignoreVersion>
+            </ignoreVersions>
+        </rule>
+        <rule groupId="io.dropwizard.metrics" artifactId="metrics-core" comparisonMethod="maven">
+            <ignoreVersions>
+                <ignoreVersion type="regex">4.*</ignoreVersion>
+            </ignoreVersions>
+        </rule>
+        <rule groupId="javax.servlet" artifactId="javax.servlet-api" comparisonMethod="maven">
+            <ignoreVersions>
+                <ignoreVersion type="regex">4.*</ignoreVersion>
+            </ignoreVersions>
+        </rule>
+        <rule groupId="org.apache.servicemix.bundles" artifactId="org.apache.servicemix.bundles.xmlbeans" comparisonMethod="maven">
+            <ignoreVersions>
+                <ignoreVersion type="regex">4.*</ignoreVersion>
+                <ignoreVersion type="regex">5.*</ignoreVersion>
+            </ignoreVersions>
+        </rule>
+        <rule groupId="org.jvnet.staxex" artifactId="stax-ex" comparisonMethod="maven">
+            <ignoreVersions>
+                <ignoreVersion type="regex">2.*</ignoreVersion>
+            </ignoreVersions>
+        </rule>
+    </rules>
+</ruleset>
\ No newline at end of file
diff --git a/ui/bnd.bnd b/ui/bnd.bnd
index 88e58e9..d562761 100644
--- a/ui/bnd.bnd
+++ b/ui/bnd.bnd
@@ -1,3 +1,3 @@
 Sling-Nodetypes: SLING-INF/nodetypes/nodetypes.cnd
-Sling-Initial-Content: jcr_root;overwriteProperties=true;overwrite=false;ignoreImportProviders:=xml,jcr_root/conf/global;overwrite=true;ignoreImportProviders:=xml;path:=/conf/global,jcr_root/etc/clientlibs;overwrite=true;ignoreImportProviders:=xml;path:=/etc/clientlibs,jcr_root/etc/taxonomy;overwrite:=false;uninstall:=true;path:=/etc/taxonomy,jcr_root/oak%3Aindex;overwrite:=false;uninstall:=true;path:=/oak:index,jcr_root/libs/sling/servlet/errorhandler;overwriteProperties:=true;overwrite [...]
+Sling-Initial-Content: jcr_root;overwriteProperties=true;overwrite=false;ignoreImportProviders:=xml,jcr_root/conf/global;overwrite=true;ignoreImportProviders:=xml;path:=/conf/global,jcr_root/etc/clientlibs;overwrite=true;ignoreImportProviders:=xml;path:=/etc/clientlibs,jcr_root/etc/taxonomy;overwrite:=false;uninstall:=true;path:=/etc/taxonomy,jcr_root/oak%3Aindex;overwrite:=false;uninstall:=true;path:=/oak:index,jcr_root/libs/sling-cms;overwrite:=true;uninstall:=true;path:=/libs/sling-cm [...]
 -includeresource: target/frontend/dist
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/servlet/errorhandler/Throwable.jsp b/ui/src/main/resources/jcr_root/libs/sling/servlet/errorhandler/Throwable.jsp
deleted file mode 100644
index 8439fa8..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling/servlet/errorhandler/Throwable.jsp
+++ /dev/null
@@ -1,17 +0,0 @@
-<%-- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- */ --%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@include file="/libs/sling-cms/global.jsp"%><sling:adaptTo var="errorHandler" adaptable="${slingRequest}" adaptTo="org.apache.sling.cms.core.models.ErrorHandler" />
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/servlet/errorhandler/default.jsp b/ui/src/main/resources/jcr_root/libs/sling/servlet/errorhandler/default.jsp
deleted file mode 100644
index 55f605a..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling/servlet/errorhandler/default.jsp
+++ /dev/null
@@ -1,18 +0,0 @@
-<%-- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */ --%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@include file="/libs/sling-cms/global.jsp"%><sling:adaptTo var="errorHandler" adaptable="${slingRequest}" adaptTo="org.apache.sling.cms.core.models.ErrorHandler" />
\ No newline at end of file