You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2018/10/24 10:37:22 UTC

[sling-parent] 01/01: SLING-8008 separate parent pom for bundles

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

kwin pushed a commit to branch feature/SLING-8008_new-parent-for-bundles
in repository https://gitbox.apache.org/repos/asf/sling-parent.git

commit 1f6402b60111672edb614f8f3cdf44634029a7ed
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Oct 24 12:37:10 2018 +0200

    SLING-8008 separate parent pom for bundles
---
 pom.xml                         | 1282 +--------------------------------------
 sling-bundle-parent/pom.xml     |  271 +++++++++
 pom.xml => sling-parent/pom.xml |  240 +-------
 3 files changed, 287 insertions(+), 1506 deletions(-)

diff --git a/pom.xml b/pom.xml
index 398e876..4b50a40 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,1289 +15,35 @@
     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/maven-v4_0_0.xsd">
+<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>
-        <groupId>org.apache</groupId>
-        <artifactId>apache</artifactId>
-        <version>21</version>
-        <relativePath />
-    </parent>
-
     <groupId>org.apache.sling</groupId>
-    <artifactId>sling</artifactId>
+    <artifactId>sling-parent-reactor</artifactId>
     <packaging>pom</packaging>
     <version>35-SNAPSHOT</version>
 
-    <name>Apache Sling (Parent)</name>
-    <description>The parent project for Apache Sling</description>
-    <inceptionYear>2007</inceptionYear>
-
-    <url>http://sling.apache.org</url>
-
-    <issueManagement>
-        <system>Jira</system>
-        <url>http://issues.apache.org/jira/browse/SLING</url>
-    </issueManagement>
-
-
-    <properties>
-        <site.jira.version.id>12313945</site.jira.version.id>
-        <site.javadoc.exclude />
-        <organization.logo>http://sling.apache.org/site/media.data/logo.png</organization.logo>
-        <!--
-            Java API and class file compliance. This property supports
-            one of three values:
-              - 6: Java 6
-              - 7: Java 7
-              - 8: Java 8 (default)
-              - 9: Java 9
-        -->
-        <sling.java.version>8</sling.java.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <surefire.plugin.version>2.20.1</surefire.plugin.version>
-    </properties>
-
-    <scm>
-        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-parent.git</connection>
-        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-parent.git</developerConnection>
-        <url>https://gitbox.apache.org/repos/asf?p=sling-parent.git</url>
-      <tag>HEAD</tag>
-  </scm>
-
-
-    <reporting>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>javadoc</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-                <configuration>
-                    <stylesheet>maven</stylesheet>
-                    <excludePackageNames>*.impl:*.internal:${site.javadoc.exclude}</excludePackageNames>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-report-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-changes-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>jira-report</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-                <configuration>
-                    <fixVersionIds>${site.jira.version.id}</fixVersionIds>
-                </configuration>
-            </plugin>
-        </plugins>
-    </reporting>
+    <name>Apache Sling Parent Reactor</name>
+    <description>The reactor pom to build all Sling parents</description>
 
+    <modules>
+        <module>sling-parent</module>
+        <module>sling-bundle-parent</module>
+    </modules>
 
     <build>
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-                <executions>
-                     <execution>
-                        <id>enforce-property-values</id>
-                        <goals>
-                          <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                          <rules>
-                            <requireProperty>
-                              <property>sling.java.version</property>
-                              <regex>[6-9]</regex>
-                              <regexMessage>The property "sling.java.version" may only have one of the following values: 6, 7, 8 or 9.</regexMessage>
-                            </requireProperty>
-                          </rules>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>enforce-java</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <!-- Require Java 8 or higher for building (as bnd since version 4.0 only supports Java 8, https://github.com/bndtools/bnd/wiki/Changes-in-4.0.0) -->
-                                <requireJavaVersion>
-                                    <message>
-                                        Apache Sling must be compiled with Java 8 or higher
-                                    </message>
-                                    <version>1.8.0</version>
-                                </requireJavaVersion>
-                                <requireMavenVersion>
-                                    <version>3.3.9</version>
-                                </requireMavenVersion>
-                            </rules>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>ban-maven-scr-plugin</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <bannedPlugins>
-                                    <excludes>
-                                        <exclude>org.apache.felix:maven-scr-plugin</exclude>
-                                    </excludes>
-                                    <message>Felix SCR annotations and the maven-scr-plugin are no longer supported - please migrate to OSGi annotations or stick with Sling Parent 29.</message>
-                                </bannedPlugins>
-                            </rules>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- Attach sources for all builds -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <inherited>true</inherited>
-                <executions>
-                    <execution>
-                        <id>attach-sources</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>ianal-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>verify-legal-files</id>
-                        <goals>
-                            <goal>verify-legal-files</goal>
-                        </goals>
-                        <configuration>
-                            <!-- Fail the build if any artifacts are missing legal files -->
-                            <strict>true</strict>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!--
-                 override the default remote-resources configuration from the Apache pom
-                 to include our custom NOTICE file
-            -->
-            <plugin>
-                <artifactId>maven-remote-resources-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>remote-resources-custom-notice</id>
-                        <goals>
-                            <goal>process</goal>
-                        </goals>
-                        <configuration>
-                            <resourceBundles>
-                                <resourceBundle>org.apache.sling:apache-sling-jar-resource-bundle:1.0.0</resourceBundle>
-                                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
-                            </resourceBundles>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.apache.maven.release</groupId>
-                        <artifactId>maven-release-oddeven-policy</artifactId>
-                        <version>2.5.3</version>
-                    </dependency>
-                </dependencies>
-                <configuration>
-                    <projectVersionPolicyId>OddEvenVersionPolicy</projectVersionPolicyId>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <version>3.0.0-M1</version>
                 <configuration>
-                    <excludes combine.children="append">
-                        <!--  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>
-                        <!-- files in markdown format -->
-                        <exclude>**/*.md</exclude>
-                        <!-- Ignore files generated bei IDE plugins e.g. maven-eclipse-plugin -->
-                        <exclude>maven-eclipse.xml</exclude>
-                        <exclude>.*</exclude>
-                        <exclude>.*/**</exclude>
-                        <!-- Exclude all JSON files -->
-                        <exclude>**/*.json</exclude>
-                        <!-- Generated for release source archives -->
-                        <exclude>DEPENDENCIES</exclude>
-                        <!-- .rej files from svn/patch -->
-                        <exclude>**/*.rej</exclude>
-                        <!-- Exclude Java crash log files -->
-                        <exclude>hs_err_*.log</exclude>
-                        <!-- Lucene index details (Oak 1.6) -->
-                        <exclude>**/repository/index/*/index-details.txt</exclude>
-                        <!-- bnd -->
-                        <exclude>bnd.bnd</exclude>
-                    </excludes>
+                    <!--  don't deploy reactor module itself -->
+                    <skip>true</skip>
                 </configuration>
-                <executions>
-                    <execution>
-                        <id>rat-check</id>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
-
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.0.0-M1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.7.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.0.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-changes-plugin</artifactId>
-                    <version>2.12.1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>maven-sling-plugin</artifactId>
-                    <version>2.3.6</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>maven-jspc-plugin</artifactId>
-                    <version>2.0.8</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>maven-jcrocm-plugin</artifactId>
-                    <version>2.0.4-incubator</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>3.0.1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>3.0.2</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-deploy-plugin</artifactId>
-                    <version>2.8.2</version>
-                    <configuration>
-                        <retryFailedDeploymentCount>10</retryFailedDeploymentCount>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>3.5.0</version>
-                    <inherited>true</inherited>
-                    <configuration>
-                        <outputDirectory>${basedir}/target/classes</outputDirectory>
-                        <obrRepository>NONE</obrRepository>
-                        <!-- Export SCR metadata to classpath to have them available in unit tests -->
-                        <exportScr>true</exportScr>
-                        <instructions>
-                            <Bundle-Category>sling</Bundle-Category>
-                            <Bundle-DocURL>
-                                http://sling.apache.org
-                            </Bundle-DocURL>
-                            <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
-                            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        </instructions>
-                    </configuration>
-                    <executions>
-                        <execution>
-                            <id>baseline</id>
-                            <goals>
-                                <goal>baseline</goal>
-                            </goals>
-                        </execution>
-                        <!-- Configure extra execution of 'manifest' in process-classes phase to make sure SCR metadata is generated before unit test runs -->
-                        <execution>
-                            <id>scr-metadata</id>
-                            <goals>
-                                <goal>manifest</goal>
-                            </goals>
-                            <configuration>
-                                <supportIncrementalBuild>true</supportIncrementalBuild>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
-                    <groupId>biz.aQute.bnd</groupId>
-                    <artifactId>bnd-maven-plugin</artifactId>
-                    <version>4.0.0</version>
-                    <executions>
-                        <execution>
-                            <id>bnd-process</id>
-                            <goals>
-                                <goal>bnd-process</goal>
-                            </goals>
-                            <configuration>
-                                <bnd><![CDATA[
-Bundle-Category: sling
-
-Bundle-Description: ${project.description}
-
-Bundle-DocURL: https://sling.apache.org
-
-Bundle-License: Apache License, Version 2.0
-
-Bundle-Vendor: The Apache Software Foundation
-
-# export all versioned packages by default
-# overwrite with "${removeall;${packages;VERSIONED};${packages;CONDITIONAL}}" in your project,
-# in case you have conditional packages (compare with https://github.com/bndtools/bnd/issues/2131)
-# this currently cannot be done globally, as bnd 4.0 doesn't support empty package groups in macro 
-# removeall (https://groups.google.com/d/msg/bndtools-users/d8K2FTzJdeQ/JeVbVvncAAAJ)
--exportcontents: ${packages;VERSIONED}
-
-# overwrite timestamp format used as qualifier for snapshots to make the resolution higher (i.e. make them differ for each build), 
-# compare with https://www.mail-archive.com/dev@sling.apache.org/msg76177.html
--snapshot: ${tstamp;yyyyMMddHHmmssSSS}
-                                ]]></bnd>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
-                    <groupId>biz.aQute.bnd</groupId>
-                    <artifactId>bnd-baseline-maven-plugin</artifactId>
-                    <version>4.0.0</version>
-                    <executions>
-                        <execution>
-                            <id>bnd-baseline</id>
-                            <goals>
-                                <goal>baseline</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <version>3.0.2</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-war-plugin</artifactId>
-                    <version>3.2.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>slingstart-maven-plugin</artifactId>
-                    <version>1.7.16</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.cargo</groupId>
-                    <artifactId>cargo-maven2-plugin</artifactId>
-                    <version>1.6.6</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>ianal-maven-plugin</artifactId>
-                    <version>1.0-alpha-1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.groovy.maven</groupId>
-                    <artifactId>gmaven-plugin</artifactId>
-                    <version>1.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>animal-sniffer-maven-plugin</artifactId>
-                    <version>1.16</version>
-                    <configuration>
-                        <signature>
-                            <groupId>org.codehaus.mojo.signature</groupId>
-                            <artifactId>java1${sling.java.version}</artifactId>
-                            <version>1.0</version>
-                        </signature>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-antrun-plugin</artifactId>
-                    <version>1.8</version>
-                    <dependencies>
-                        <!-- declare dependencies here rather than where needed to
-                             circumvent http://jira.codehaus.org/browse/MANTRUN-51
-                        -->
-                        <dependency>
-                            <groupId>org.apache.ant</groupId>
-                            <artifactId>ant-apache-regexp</artifactId>
-                            <version>1.7.1</version>
-                            <scope>runtime</scope>
-                        </dependency>
-                        <dependency>
-                            <groupId>jakarta-regexp</groupId>
-                            <artifactId>jakarta-regexp</artifactId>
-                            <version>1.4</version>
-                        </dependency>
-                    </dependencies>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>3.0.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>emma-maven-plugin</artifactId>
-                    <version>1.0-alpha-3</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.jacoco</groupId>
-                    <artifactId>jacoco-maven-plugin</artifactId>
-                    <version>0.7.9</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>${surefire.plugin.version}</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-report-plugin</artifactId>
-                    <version>${surefire.plugin.version}</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-failsafe-plugin</artifactId>
-                    <version>2.20.1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.servicemix.tooling</groupId>
-                    <artifactId>depends-maven-plugin</artifactId>
-                    <version>1.4.0</version>
-                    <executions>
-                        <execution>
-                            <id>generate-depends-file</id>
-                            <goals>
-                                <goal>generate-depends-file</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-            </plugins>
-        </pluginManagement>
     </build>
 
-    <profiles>
-        <profile>
-            <!-- pick up manifest generated by bnd-maven-plugin -->
-            <id>bundle</id>
-            <activation>
-                <file>
-                    <exists>bnd.bnd</exists>
-                </file>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-jar-plugin</artifactId>
-                        <configuration>
-                            <archive>
-                                <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-                            </archive>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <!--
-                Use this profile to install the OSGi bundle
-                automatically, during development
-            -->
-            <id>autoInstallBundle</id>
-            <activation>
-                <activeByDefault>false</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.sling</groupId>
-                        <artifactId>maven-sling-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>install-bundle</id>
-                                <goals>
-                                    <goal>install</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>emma</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>emma-maven-plugin</artifactId>
-                        <inherited>true</inherited>
-                        <executions>
-                            <execution>
-                                <phase>prepare-package</phase>
-                                <goals>
-                                    <goal>instrument</goal>
-                                </goals>
-                                <configuration>
-                                    <metadataFile>${user.dir}/coverage.em</metadataFile>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.felix</groupId>
-                        <artifactId>maven-bundle-plugin</artifactId>
-                        <inherited>true</inherited>
-                        <executions>
-                            <execution>
-                                <id>emma-bundle</id>
-                                <goals>
-                                    <goal>bundle</goal>
-                                </goals>
-                                <phase>package</phase>
-                                <configuration>
-                                    <classifier>emma</classifier>
-                                    <outputDirectory>${basedir}/target/generated-classes/emma/classes</outputDirectory>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>emma-report</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.groovy.maven</groupId>
-                        <artifactId>gmaven-plugin</artifactId>
-                        <executions>
-                            <!-- store the project's source dir in a comma-delimited list for the emma report. -->
-                            <execution>
-                                <id>save-bundle-metadata</id>
-                                <goals>
-                                    <goal>execute</goal>
-                                </goals>
-                                <phase>validate</phase>
-                                <configuration>
-                                    <source>
-                                        if (!session.executionProperties.sourceDirs) {
-                                            session.executionProperties.sourceDirs = "${basedir}/src/main/java"
-                                        } else {
-                                            session.executionProperties.sourceDirs += ",${basedir}/src/main/java"
-                                        }
-                                    </source>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>jacoco-report</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.jacoco</groupId>
-                        <artifactId>jacoco-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>prepare-agent</id>
-                                <goals>
-                                    <goal>prepare-agent</goal>
-                                </goals>
-                                <configuration>
-                                    <destFile>${project.build.directory}/jacoco-unit.exec</destFile>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>prepare-agent-integration</id>
-                                <goals>
-                                    <goal>prepare-agent-integration</goal>
-                                </goals>
-                                <configuration>
-                                    <destFile>${project.build.directory}/jacoco-it.exec</destFile>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>report</id>
-                                <goals>
-                                    <goal>report</goal>
-                                </goals>
-                                <configuration>
-                                    <dataFile>${project.build.directory}/jacoco-unit.exec</dataFile>
-                                    <outputDirectory> ${project.reporting.outputDirectory}/jacoco-unit</outputDirectory>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>report-integration</id>
-                                <goals>
-                                    <goal>report-integration</goal>
-                                </goals>
-                                <configuration>
-                                    <dataFile>${project.build.directory}/jacoco-it.exec</dataFile>
-                                    <outputDirectory> ${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>merge-unit-and-it</id>
-                                <phase>post-integration-test</phase>
-                                <goals>
-                                    <goal>merge</goal>
-                                </goals>
-                                <configuration>
-                                    <destFile>${project.build.directory}/jacoco-merged.exec</destFile>
-                                    <fileSets>
-                                        <fileSet>
-                                            <directory>${project.build.directory}</directory>
-                                            <includes>
-                                                <include>jacoco-unit.exec</include>
-                                                <include>jacoco-it.exec</include>
-                                            </includes>
-                                        </fileSet>
-                                    </fileSets>
-                                </configuration>
-                            </execution>
-                            <execution>
-                                <id>report-merged</id>
-                                <phase>verify</phase>
-                                <goals>
-                                    <goal>report</goal>
-                                </goals>
-                                <configuration>
-                                    <dataFile>${project.build.directory}/jacoco-merged.exec</dataFile>
-                                    <outputDirectory> ${project.reporting.outputDirectory}/jacoco-merged</outputDirectory>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-        <profile>
-            <id>jdk8-or-lower</id>
-            <activation>
-                <!-- syntax according to http://maven.apache.org/enforcer/enforcer-rules/versionRanges.html -->
-                <jdk>(,9)</jdk>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-compiler-plugin</artifactId>
-                        <configuration>
-                            <source>1.${sling.java.version}</source>
-                            <target>1.${sling.java.version}</target>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>animal-sniffer-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                     </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>jdk9-or-higher</id>
-            <activation>
-                <!-- syntax according to http://maven.apache.org/enforcer/enforcer-rules/versionRanges.html -->
-                <jdk>[9,)</jdk>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-compiler-plugin</artifactId>
-                        <configuration>
-                            <!-- 
-                            release sets API classpath, source and target, see 
-                            https://docs.oracle.com/javase/9/tools/javac.htm#GUID-AEEC9F07-CB49-4E96-8BC7-BCC2C7F725C9__GUID-D343F6B4-3FDD-43A8-AD24-43DD70214471 
-                            and http://openjdk.java.net/jeps/247 -->
-                            <release>${sling.java.version}</release>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <!-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
-        <profile>
-            <id>only-eclipse</id>
-            <activation>
-                <property>
-                    <name>m2e.version</name>
-                </property>
-            </activation>
-            <build>
-                <pluginManagement>
-                    <plugins>
-                        <plugin>
-                            <groupId>org.eclipse.m2e</groupId>
-                            <artifactId>lifecycle-mapping</artifactId>
-                            <version>1.0.0</version>
-                            <configuration>
-                                <lifecycleMappingMetadata>
-                                    <pluginExecutions>
-                                        <pluginExecution>
-                                        <pluginExecutionFilter>
-                                            <groupId>
-                                                org.apache.maven.plugins
-                                            </groupId>
-                                            <artifactId>
-                                                maven-dependency-plugin
-                                            </artifactId>
-                                            <versionRange>
-                                                [2.2,)
-                                            </versionRange>
-                                            <goals>
-                                                <goal>copy-dependencies</goal>
-                                                <goal>unpack</goal>
-                                            </goals>
-                                        </pluginExecutionFilter>
-                                        <action>
-                                             <ignore />
-                                        </action>
-                                    </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.codehaus.groovy.maven
-                                                </groupId>
-                                                <artifactId>
-                                                    gmaven-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [1.0,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>compile</goal>
-                                                    <goal>testCompile</goal>
-                                                    <goal>execute</goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.codehaus.mojo
-                                                </groupId>
-                                                <artifactId>
-                                                    build-helper-maven-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [1.5,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>
-                                                        reserve-network-port
-                                                    </goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.sling
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-launchpad-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [2.0.10,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>prepare-package</goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.sling
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-jcrocm-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [2.0.4-incubator,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>ocm</goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.sling
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-sling-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [2.1.0,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>generate-adapter-metadata</goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.maven.plugins
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-dependency-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [2.2,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>
-                                                        unpack-dependencies
-                                                    </goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.maven.plugins
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-jar-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [2.3.1,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>
-                                                        jar
-                                                    </goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.sling
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-jspc-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [2.0.4,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>
-                                                        jspc
-                                                    </goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    net.alchim31.maven
-                                                </groupId>
-                                                <artifactId>
-                                                    yuicompressor-maven-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [1.3.0,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>
-                                                        compress
-                                                    </goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.scala-tools
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-scala-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [2.15.2,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>
-                                                        compile
-                                                    </goal>
-                                                    <goal>
-                                                        testCompile
-                                                    </goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.maven.plugins
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-enforcer-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [1.3.1,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>
-                                                        enforce
-                                                    </goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.maven.plugins
-                                                </groupId>
-                                                <artifactId>
-                                                    maven-remote-resources-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [1.5,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>
-                                                        process
-                                                    </goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                        <pluginExecution>
-                                            <pluginExecutionFilter>
-                                                <groupId>
-                                                    org.apache.avro
-                                                </groupId>
-                                                <artifactId>
-                                                    avro-maven-plugin
-                                                </artifactId>
-                                                <versionRange>
-                                                    [1.7.7,)
-                                                </versionRange>
-                                                <goals>
-                                                    <goal>schema</goal>
-                                                </goals>
-                                            </pluginExecutionFilter>
-                                            <action>
-                                                <ignore />
-                                            </action>
-                                        </pluginExecution>
-                                    </pluginExecutions>
-                                </lifecycleMappingMetadata>
-                            </configuration>
-                        </plugin>
-                    </plugins>
-                </pluginManagement>
-            </build>
-        </profile>
-    </profiles>
-
-    <mailingLists>
-        <mailingList>
-            <name>Apache Sling Development List</name>
-            <subscribe>
-                dev-subscribe@sling.apache.org
-            </subscribe>
-            <unsubscribe>
-                dev-unsubscribe@sling.apache.org
-            </unsubscribe>
-            <post>dev at sling.apache.org</post>
-            <archive>
-                http://mail-archives.apache.org/mod_mbox/sling-dev/
-            </archive>
-            <otherArchives>
-                <otherArchive>
-                    http://sling-dev.markmail.org/
-                </otherArchive>
-                <otherArchive>
-                    http://www.mail-archive.com/dev@sling.apache.org/
-                </otherArchive>
-            </otherArchives>
-        </mailingList>
-        <mailingList>
-            <name>Apache Sling Source Control List</name>
-            <subscribe>
-                commits-subscribe@sling.apache.org
-            </subscribe>
-            <unsubscribe>
-                commits-unsubscribe@sling.apache.org
-            </unsubscribe>
-            <archive>
-                http://mail-archives.apache.org/mod_mbox/sling-commits/
-            </archive>
-            <otherArchives>
-                <otherArchive>
-                    http://sling-commits.markmail.org/
-                </otherArchive>
-                <otherArchive>
-                    http://www.mail-archive.com/commits@sling.apache.org/
-                </otherArchive>
-            </otherArchives>
-        </mailingList>
-    </mailingLists>
-
-    <!-- Please visit our website for the current information about the
-         Apache Sling project team. (see #SLING-1120 why we don't include
-         the list here) -->
-    <developers>
-        <developer>
-            <name>Apache Sling Project</name>
-            <id>sling</id>
-            <url>http://sling.apache.org/site/project-team.html</url>
-        </developer>
-    </developers>
-
-    <dependencyManagement>
-
-        <!-- OSGi -->
-        <dependencies>
-            <!-- Aggregates (rather use individual artifacts referenced below) -->
-            <!-- Core R6 -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.core</artifactId>
-                <version>6.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <!-- Compendium R6 -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.cmpn</artifactId>
-                <version>6.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <!-- individual OSGi spec API artifacts (preferred), all part of OSGi R6   -->
-            <!-- Configuration Admin 1.5 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/cm/package-summary.html) -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.cm</artifactId>
-                <version>1.5.0</version>
-            </dependency>
-            <!-- Service Component 1.3 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/package-summary.html) -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.component</artifactId>
-                <version>1.3.0</version>
-            </dependency>
-            <!--  Event Admin 1.3.1 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/event/package-summary.html) -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.event</artifactId>
-                <version>1.3.1</version>
-            </dependency>
-
-            <!-- Web Application API -->
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>javax.servlet-api</artifactId>
-                <version>3.1.0</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- dependency injection annotations -->
-            <dependency>
-                <groupId>javax.inject</groupId>
-                <artifactId>javax.inject</artifactId>
-                <version>1</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- JCR API -->
-            <dependency>
-                <groupId>javax.jcr</groupId>
-                <artifactId>jcr</artifactId>
-                <version>2.0</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Basic Logging -->
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>1.7.25</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- OSGi annotations (OSGi R6) -->
-            <!-- https://osgi.org/javadoc/r6/annotation/ -->
-           <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.annotation.versioning</artifactId>
-                <version>1.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <!-- https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.component.annotations</artifactId>
-                <version>1.3.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <!-- https://osgi.org/javadoc/r6/cmpn/org/osgi/service/metatype/annotations/package-summary.html -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.metatype.annotations</artifactId>
-                <version>1.3.0</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Jetbrains annotations for null-analysis (SLING-7798) -->
-            <dependency>
-                <groupId>org.jetbrains</groupId>
-                <artifactId>annotations</artifactId>
-                <version>16.0.2</version>                
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Basic dependencies for Unit Tests -->
-            <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>4.12</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.jmock</groupId>
-                <artifactId>jmock-junit4</artifactId>
-                <version>2.8.2</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-simple</artifactId>
-                <version>1.7.25</version>
-                <scope>test</scope>
-            </dependency>
-
-        </dependencies>
-    </dependencyManagement>
-
-    <distributionManagement>
-        <site>
-            <id>apache.sling.site</id>
-            <url>
-                scp://people.apache.org/www/sling.apache.org/generated
-            </url>
-        </site>
-    </distributionManagement>
-
-    <pluginRepositories>
-        <pluginRepository>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>http://repository.apache.org/snapshots</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-        </pluginRepository>
-    </pluginRepositories>
-
-</project>
+</project>
\ No newline at end of file
diff --git a/sling-bundle-parent/pom.xml b/sling-bundle-parent/pom.xml
new file mode 100644
index 0000000..07f45ef
--- /dev/null
+++ b/sling-bundle-parent/pom.xml
@@ -0,0 +1,271 @@
+<?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.
+-->
+<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>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling</artifactId>
+        <version>35-SNAPSHOT</version>
+        <relativePath>../sling-parent</relativePath>
+    </parent>
+
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-bundle-parent</artifactId>
+    <packaging>pom</packaging>
+
+    <name>Apache Sling (Bundle Parent)</name>
+    <description>The parent project for Apache Sling bundle modules</description>
+
+    <properties>
+        <bnd.version>4.1.0</bnd.version>
+    </properties>
+
+    <build>
+        <pluginManagement>
+            <plugins>
+
+                <plugin>
+                    <groupId>org.apache.sling</groupId>
+                    <artifactId>maven-sling-plugin</artifactId>
+                    <version>2.3.6</version>
+                </plugin>
+                <plugin>
+                    <groupId>biz.aQute.bnd</groupId>
+                    <artifactId>bnd-maven-plugin</artifactId>
+                    <version>${bnd.version}</version>
+                    <executions>
+                        <execution>
+                            <id>bnd-process</id>
+                            <goals>
+                                <goal>bnd-process</goal>
+                            </goals>
+                            <configuration>
+                                <bnd><![CDATA[
+Bundle-Category: sling
+
+Bundle-Description: ${project.description}
+
+Bundle-DocURL: https://sling.apache.org
+
+Bundle-License: Apache License, Version 2.0
+
+Bundle-Vendor: The Apache Software Foundation
+
+# export all versioned packages by default
+-exportcontents: ${packages;VERSIONED}
+
+# overwrite timestamp format used as qualifier for snapshots to make the resolution higher (i.e. make them differ for each build), 
+# compare with https://www.mail-archive.com/dev@sling.apache.org/msg76177.html
+-snapshot: ${tstamp;yyyyMMddHHmmssSSS}
+                                ]]></bnd>
+                            </configuration>
+                        </execution>
+                    </executions>
+                </plugin>
+                <plugin>
+                    <groupId>biz.aQute.bnd</groupId>
+                    <artifactId>bnd-baseline-maven-plugin</artifactId>
+                    <version>${bnd.version}</version>
+                    <executions>
+                        <execution>
+                            <id>bnd-baseline</id>
+                            <goals>
+                                <goal>baseline</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <configuration>
+                        <archive>
+                            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+                        </archive>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>ban-maven-scr-plugin</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <bannedPlugins>
+                                    <excludes>
+                                        <exclude>org.apache.felix:maven-scr-plugin</exclude>
+                                        <exclude>org.apache.felix:maven-bundle-plugin</exclude>
+                                    </excludes>
+                                    <message>Felix SCR annotations and the maven-scr-plugin are no longer supported - please migrate to OSGi
+                                        annotations or stick with Sling Parent 29.</message>
+                                </bannedPlugins>
+                            </rules>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>ban-maven-bundle-plugin</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <bannedPlugins>
+                                    <excludes>
+                                        <exclude>org.apache.felix:maven-bundle-plugin</exclude>
+                                    </excludes>
+                                    <message>The maven-bundle-plugin is no longer supported - please migrate to bnd-maven-plugin or stick
+                                        with Sling Parent 34.</message>
+                                </bannedPlugins>
+                            </rules>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>enforce-java</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <!-- Require Java 8 or higher for building (as bnd since version 4.0 only supports Java 8, https://github.com/bndtools/bnd/wiki/Changes-in-4.0.0) -->
+                                <requireJavaVersion>
+                                    <message>
+                                        Apache Sling must be compiled with Java 8 or higher as the bnd-maven-plugin requires that.
+                                    </message>
+                                    <version>1.8.0</version>
+                                </requireJavaVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-maven-plugin</artifactId>
+            </plugin>
+             <plugin>
+                <groupId>biz.aQute.bnd</groupId>
+                <artifactId>bnd-baseline-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+
+    </build>
+
+    <profiles>
+        <profile>
+            <!--
+                Use this profile to install the OSGi bundle
+                automatically, during development
+            -->
+            <id>autoInstallBundle</id>
+            <activation>
+                <activeByDefault>false</activeByDefault>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.sling</groupId>
+                        <artifactId>maven-sling-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>install-bundle</id>
+                                <goals>
+                                    <goal>install</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <dependencyManagement>
+
+        <!-- OSGi -->
+        <dependencies>
+            <!-- Aggregates (rather use individual artifacts referenced below) -->
+            <!-- Core R6 -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>osgi.core</artifactId>
+                <version>6.0.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <!-- Compendium R6 -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>osgi.cmpn</artifactId>
+                <version>6.0.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <!-- individual OSGi spec API artifacts (preferred), all part of OSGi Compendium R6 -->
+            <!-- Configuration Admin 1.5 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/cm/package-summary.html) -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.cm</artifactId>
+                <version>1.5.0</version>
+            </dependency>
+            <!-- Service Component 1.3 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/package-summary.html) -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.component</artifactId>
+                <version>1.3.0</version>
+            </dependency>
+            <!-- Event Admin 1.3.1 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/event/package-summary.html) -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.event</artifactId>
+                <version>1.3.1</version>
+            </dependency>
+
+            <!-- OSGi annotations (OSGi R6) -->
+            <!-- https://osgi.org/javadoc/r6/annotation/ -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.annotation.versioning</artifactId>
+                <version>1.0.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <!-- https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.component.annotations</artifactId>
+                <version>1.3.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <!-- https://osgi.org/javadoc/r6/cmpn/org/osgi/service/metatype/annotations/package-summary.html -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.metatype.annotations</artifactId>
+                <version>1.3.0</version>
+                <scope>provided</scope>
+            </dependency>
+
+        </dependencies>
+    </dependencyManagement>
+
+</project>
diff --git a/pom.xml b/sling-parent/pom.xml
similarity index 82%
copy from pom.xml
copy to sling-parent/pom.xml
index 398e876..37d0f88 100644
--- a/pom.xml
+++ b/sling-parent/pom.xml
@@ -129,41 +129,18 @@
                         </configuration>
                     </execution>
                     <execution>
-                        <id>enforce-java</id>
+                        <id>enforce-maven-version</id>
                         <goals>
                             <goal>enforce</goal>
                         </goals>
                         <configuration>
                             <rules>
-                                <!-- Require Java 8 or higher for building (as bnd since version 4.0 only supports Java 8, https://github.com/bndtools/bnd/wiki/Changes-in-4.0.0) -->
-                                <requireJavaVersion>
-                                    <message>
-                                        Apache Sling must be compiled with Java 8 or higher
-                                    </message>
-                                    <version>1.8.0</version>
-                                </requireJavaVersion>
                                 <requireMavenVersion>
                                     <version>3.3.9</version>
                                 </requireMavenVersion>
                             </rules>
                         </configuration>
                     </execution>
-                    <execution>
-                        <id>ban-maven-scr-plugin</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <bannedPlugins>
-                                    <excludes>
-                                        <exclude>org.apache.felix:maven-scr-plugin</exclude>
-                                    </excludes>
-                                    <message>Felix SCR annotations and the maven-scr-plugin are no longer supported - please migrate to OSGi annotations or stick with Sling Parent 29.</message>
-                                </bannedPlugins>
-                            </rules>
-                        </configuration>
-                    </execution>
                 </executions>
             </plugin>
 
@@ -333,94 +310,6 @@
                     </configuration>
                 </plugin>
                 <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>3.5.0</version>
-                    <inherited>true</inherited>
-                    <configuration>
-                        <outputDirectory>${basedir}/target/classes</outputDirectory>
-                        <obrRepository>NONE</obrRepository>
-                        <!-- Export SCR metadata to classpath to have them available in unit tests -->
-                        <exportScr>true</exportScr>
-                        <instructions>
-                            <Bundle-Category>sling</Bundle-Category>
-                            <Bundle-DocURL>
-                                http://sling.apache.org
-                            </Bundle-DocURL>
-                            <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
-                            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        </instructions>
-                    </configuration>
-                    <executions>
-                        <execution>
-                            <id>baseline</id>
-                            <goals>
-                                <goal>baseline</goal>
-                            </goals>
-                        </execution>
-                        <!-- Configure extra execution of 'manifest' in process-classes phase to make sure SCR metadata is generated before unit test runs -->
-                        <execution>
-                            <id>scr-metadata</id>
-                            <goals>
-                                <goal>manifest</goal>
-                            </goals>
-                            <configuration>
-                                <supportIncrementalBuild>true</supportIncrementalBuild>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
-                    <groupId>biz.aQute.bnd</groupId>
-                    <artifactId>bnd-maven-plugin</artifactId>
-                    <version>4.0.0</version>
-                    <executions>
-                        <execution>
-                            <id>bnd-process</id>
-                            <goals>
-                                <goal>bnd-process</goal>
-                            </goals>
-                            <configuration>
-                                <bnd><![CDATA[
-Bundle-Category: sling
-
-Bundle-Description: ${project.description}
-
-Bundle-DocURL: https://sling.apache.org
-
-Bundle-License: Apache License, Version 2.0
-
-Bundle-Vendor: The Apache Software Foundation
-
-# export all versioned packages by default
-# overwrite with "${removeall;${packages;VERSIONED};${packages;CONDITIONAL}}" in your project,
-# in case you have conditional packages (compare with https://github.com/bndtools/bnd/issues/2131)
-# this currently cannot be done globally, as bnd 4.0 doesn't support empty package groups in macro 
-# removeall (https://groups.google.com/d/msg/bndtools-users/d8K2FTzJdeQ/JeVbVvncAAAJ)
--exportcontents: ${packages;VERSIONED}
-
-# overwrite timestamp format used as qualifier for snapshots to make the resolution higher (i.e. make them differ for each build), 
-# compare with https://www.mail-archive.com/dev@sling.apache.org/msg76177.html
--snapshot: ${tstamp;yyyyMMddHHmmssSSS}
-                                ]]></bnd>
-                            </configuration>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
-                    <groupId>biz.aQute.bnd</groupId>
-                    <artifactId>bnd-baseline-maven-plugin</artifactId>
-                    <version>4.0.0</version>
-                    <executions>
-                        <execution>
-                            <id>bnd-baseline</id>
-                            <goals>
-                                <goal>baseline</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-dependency-plugin</artifactId>
                     <version>3.0.2</version>
@@ -511,7 +400,7 @@ Bundle-Vendor: The Apache Software Foundation
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-failsafe-plugin</artifactId>
-                    <version>2.20.1</version>
+                    <version>${surefire.plugin.version}</version>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.servicemix.tooling</groupId>
@@ -532,54 +421,6 @@ Bundle-Vendor: The Apache Software Foundation
 
     <profiles>
         <profile>
-            <!-- pick up manifest generated by bnd-maven-plugin -->
-            <id>bundle</id>
-            <activation>
-                <file>
-                    <exists>bnd.bnd</exists>
-                </file>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-jar-plugin</artifactId>
-                        <configuration>
-                            <archive>
-                                <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-                            </archive>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <!--
-                Use this profile to install the OSGi bundle
-                automatically, during development
-            -->
-            <id>autoInstallBundle</id>
-            <activation>
-                <activeByDefault>false</activeByDefault>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.sling</groupId>
-                        <artifactId>maven-sling-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>install-bundle</id>
-                                <goals>
-                                    <goal>install</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
             <id>emma</id>
             <build>
                 <plugins>
@@ -599,24 +440,6 @@ Bundle-Vendor: The Apache Software Foundation
                             </execution>
                         </executions>
                     </plugin>
-                    <plugin>
-                        <groupId>org.apache.felix</groupId>
-                        <artifactId>maven-bundle-plugin</artifactId>
-                        <inherited>true</inherited>
-                        <executions>
-                            <execution>
-                                <id>emma-bundle</id>
-                                <goals>
-                                    <goal>bundle</goal>
-                                </goals>
-                                <phase>package</phase>
-                                <configuration>
-                                    <classifier>emma</classifier>
-                                    <outputDirectory>${basedir}/target/generated-classes/emma/classes</outputDirectory>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
                 </plugins>
             </build>
         </profile>
@@ -1157,43 +980,7 @@ Bundle-Vendor: The Apache Software Foundation
 
     <dependencyManagement>
 
-        <!-- OSGi -->
         <dependencies>
-            <!-- Aggregates (rather use individual artifacts referenced below) -->
-            <!-- Core R6 -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.core</artifactId>
-                <version>6.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <!-- Compendium R6 -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.cmpn</artifactId>
-                <version>6.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <!-- individual OSGi spec API artifacts (preferred), all part of OSGi R6   -->
-            <!-- Configuration Admin 1.5 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/cm/package-summary.html) -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.cm</artifactId>
-                <version>1.5.0</version>
-            </dependency>
-            <!-- Service Component 1.3 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/package-summary.html) -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.component</artifactId>
-                <version>1.3.0</version>
-            </dependency>
-            <!--  Event Admin 1.3.1 (https://osgi.org/javadoc/r6/cmpn/org/osgi/service/event/package-summary.html) -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.event</artifactId>
-                <version>1.3.1</version>
-            </dependency>
-
             <!-- Web Application API -->
             <dependency>
                 <groupId>javax.servlet</groupId>
@@ -1226,29 +1013,6 @@ Bundle-Vendor: The Apache Software Foundation
                 <scope>provided</scope>
             </dependency>
 
-            <!-- OSGi annotations (OSGi R6) -->
-            <!-- https://osgi.org/javadoc/r6/annotation/ -->
-           <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.annotation.versioning</artifactId>
-                <version>1.0.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <!-- https://osgi.org/javadoc/r6/cmpn/org/osgi/service/component/annotations/package-summary.html -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.component.annotations</artifactId>
-                <version>1.3.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <!-- https://osgi.org/javadoc/r6/cmpn/org/osgi/service/metatype/annotations/package-summary.html -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.metatype.annotations</artifactId>
-                <version>1.3.0</version>
-                <scope>provided</scope>
-            </dependency>
-
             <!-- Jetbrains annotations for null-analysis (SLING-7798) -->
             <dependency>
                 <groupId>org.jetbrains</groupId>