You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2020/10/07 10:43:20 UTC

[sling-feature-converter-maven-plugin] branch master updated (d4acbba -> 846d209)

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

davidb pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git.


    from d4acbba  Update to latest feature model
     new 8e70884  SLING-9794 Content package artifacts found by maven plugin don't always have their 'file' attribute set
     new bda5a6a  Throw exception if artifact cannot be resolved, rather than ignoring it
     new 846d209  Merge pull request #1 from bosschaert/SLING-9794

The 23 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../cpconverter/maven/mojos/ContentPackage.java    | 69 +++++++++++++++++++---
 .../cpconverter/maven/mojos/ConvertCPMojo.java     | 14 ++++-
 2 files changed, 73 insertions(+), 10 deletions(-)


[sling-feature-converter-maven-plugin] 08/23: Preparation for the upcoming Release

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit f9128b0601d6a9366a4cb1dd04ab75b6e71a8047
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Fri Dec 20 15:40:06 2019 -0800

    Preparation for the upcoming Release
    
    This was mostly cleaning up the IT tests to make it easier to work with during the releease and in the future
---
 pom.xml                                            |  13 +-
 .../core/pom.xml                                   |  44 +--
 .../test => }/servlet/ByPathServletTest.java       |   0
 .../pom.xml                                        | 372 +--------------------
 .../ui.apps/pom.xml                                |  51 +--
 .../verify.bsh                                     |   9 +-
 .../core/pom.xml                                   |  43 +--
 .../fm.launcher/pom.xml                            |  29 +-
 .../package-with-single-bundle-target-mode/pom.xml | 371 +-------------------
 .../ui.apps/pom.xml                                |  49 +--
 .../verify.bsh                                     |   9 +-
 .../core/pom.xml                                   |  43 +--
 .../pom.xml                                        | 370 +-------------------
 .../ui.apps/pom.xml                                |  51 +--
 .../verify.bsh                                     |   9 +-
 src/it/setup-tests/ReadMe.md                       |   7 +
 src/it/setup-tests/invoker.properties              |  17 +
 .../pom.xml                                        | 216 ++----------
 src/site/markdown/usage.md.vm                      |  25 +-
 19 files changed, 180 insertions(+), 1548 deletions(-)

diff --git a/pom.xml b/pom.xml
index 718832c..255fe33 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>33</version>
+        <version>35</version>
         <relativePath />
     </parent>
 
@@ -34,11 +34,11 @@
     <properties>
         <sling.java.version>8</sling.java.version>
         <plexus-component-metadata.version>1.7.1</plexus-component-metadata.version>
-        <jackrabbit-spi-commons.version>2.19.1</jackrabbit-spi-commons.version>
-        <jackrabbit-api.version>2.19.3</jackrabbit-api.version>
+        <jackrabbit-spi-commons.version>2.18.4</jackrabbit-spi-commons.version>
+        <jackrabbit-api.version>2.18.4</jackrabbit-api.version>
         <javax.json.version>1.0.4</javax.json.version>
         <org.apache.jackrabbit.vault.version>3.2.8</org.apache.jackrabbit.vault.version>
-        <org.apache.sling.feature.cpconverter.version>0.0.1-SNAPSHOT</org.apache.sling.feature.cpconverter.version>
+        <org.apache.sling.feature.cpconverter.version>1.0.2</org.apache.sling.feature.cpconverter.version>
         <org.apache.sling.feature.modelconverter.version>1.0.8</org.apache.sling.feature.modelconverter.version>
         <org.apache.sling.feature.version>1.1.0</org.apache.sling.feature.version>
         <org.apache.sling.provisioning.model.version>1.8.4</org.apache.sling.provisioning.model.version>
@@ -122,6 +122,10 @@
                         <pomInclude>**/pom.xml</pomInclude>
                     </pomIncludes>
                     <postBuildHookScript>verify</postBuildHookScript>
+                    <scriptVariables>
+                        <plugin.group>${project.groupId}</plugin.group>
+                        <plugin.version>${project.version}</plugin.version>
+                    </scriptVariables>
                 </configuration>
                 <executions>
                     <execution>
@@ -230,6 +234,7 @@
         <dependency>
             <groupId>com.google.code.findbugs</groupId>
             <artifactId>jsr305</artifactId>
+            <version>3.0.2</version>
         </dependency>
 
         <!-- testing -->
diff --git a/src/it/package-with-single-bundle-no-parameters/core/pom.xml b/src/it/package-with-single-bundle-no-parameters/core/pom.xml
index cc7f813..59061a4 100644
--- a/src/it/package-with-single-bundle-no-parameters/core/pom.xml
+++ b/src/it/package-with-single-bundle-no-parameters/core/pom.xml
@@ -22,26 +22,17 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>sling-cpconverter-maven-plugin-test-no-param</artifactId>
         <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-no-param</artifactId>
         <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>sling-cpconverter-maven-plugin-test-no-param.core</artifactId>
+    <artifactId>sling-feature-converter-maven-plugin-test-no-param.core</artifactId>
     <packaging>bundle</packaging>
 
-    <name>CQ Converter Test - Core</name>
+    <name>Sling Feature Converter Maven Plugin Test No Parameter - Core</name>
     <description>
-        This is an empty OSGi Bundle which can be used
-        to compile and deploy OSGi Services to Sling.
-
-        This Bundle can be deployed using the Profile
-        "autoInstallBundle" but that should not be used
-        together with the "ui.apps" Profile "autoInstallAll"
-        as they are not deployed the same way and can lead
-        to undesired issues during deployment (bundle not
-        updated or not working at all).
+        Sling Feature Converter Maven Plugin Core Test Bundle with No Parameters
     </description>
 
     <build>
@@ -83,6 +74,7 @@
             </plugin>
         </plugins>
     </build>
+
     <dependencies>
         <dependency>
             <groupId>org.osgi</groupId>
@@ -97,15 +89,6 @@
             <artifactId>org.osgi.service.component.annotations</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.metatype.annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
         </dependency>
@@ -122,29 +105,12 @@
             <artifactId>org.apache.sling.models.api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.jackrabbit</groupId>
-            <artifactId>jackrabbit-api</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
-
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>
     </dependencies>
-
-    <!--
-        Attention: the autoInstallBundle was removed as deploying bundles directly and through a package is causing
-                   issues with updates and can prevent the latest code of a bundle being deployed.
-                   If you know what you are doing then you can use maven-sling-plugin directly from the Maven CLI.
-    -->
 </project>
diff --git a/src/it/package-with-single-bundle-no-parameters/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java b/src/it/package-with-single-bundle-no-parameters/core/src/test/java/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
similarity index 100%
rename from src/it/package-with-single-bundle-no-parameters/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
rename to src/it/package-with-single-bundle-no-parameters/core/src/test/java/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
diff --git a/src/it/package-with-single-bundle-no-parameters/pom.xml b/src/it/package-with-single-bundle-no-parameters/pom.xml
index 5ddd115..117b4c0 100644
--- a/src/it/package-with-single-bundle-no-parameters/pom.xml
+++ b/src/it/package-with-single-bundle-no-parameters/pom.xml
@@ -13,86 +13,28 @@
 <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>
-    <groupId>org.apache.sling</groupId>
-    <artifactId>sling-cpconverter-maven-plugin-test-no-param</artifactId>
-    <packaging>pom</packaging>
-    <version>1.0.0-SNAPSHOT</version>
-    <name>Apache Sling Features Maven plugin test - no parameter</name>
-    <description>This is just an Apache Sling Content Package Maven plugin test to convert a package with a single
-        bundle
-    </description>
-    <organization>
-        <name>The Apache Software Foundation</name>
-        <url>https://www.apache.org/</url>
-    </organization>
-    <licenses>
-        <license>
-            <name>Apache License, Version 2.0</name>
-            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-    <properties>
-        <interpolated_variable>true</interpolated_variable>
-        <osgi.framework.version>1.9.0</osgi.framework.version>
-        <sling.framework.install.incremental>true</sling.framework.install.incremental>
-        <sling.framework.install.startlevel>1</sling.framework.install.startlevel>
-        <sling.ignoreSystemProperties>true</sling.ignoreSystemProperties>
 
-        <sling.host>localhost</sling.host>
-        <sling.port>8080</sling.port>
-        <sling.user>admin</sling.user>
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
 
-        <sling.password>admin</sling.password>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <artifactId>sling-feature-converter-maven-plugin-test-no-param</artifactId>
+    <packaging>pom</packaging>
 
-        <release.plugin.version>2.5.3</release.plugin.version>
-        <source.plugin.version>3.0.1</source.plugin.version>
-        <resource.plugin.version>3.1.0</resource.plugin.version>
-        <jar.plugin.version>3.1.1</jar.plugin.version>
-        <enforcer.plugin.version>3.0.0-M2</enforcer.plugin.version>
-        <compiler.plugin.version>3.8.0</compiler.plugin.version>
-        <bundle.plugin.version>4.2.0</bundle.plugin.version>
-        <clean.plugin.version>3.1.0</clean.plugin.version>
-        <installer.plugin.version>3.0.0-M1</installer.plugin.version>
-        <surfire.plugin.version>3.0.0-M3</surfire.plugin.version>
-        <failsafe.plugin.version>3.0.0-M3</failsafe.plugin.version>
-        <deploy.plugin.version>3.0.0-M1</deploy.plugin.version>
-        <sling.plugin.version>2.4.0</sling.plugin.version>
-        <dependency.plugin.version>3.1.1</dependency.plugin.version>
-        <build.helper.plugin.version>3.0.0</build.helper.plugin.version>
-        <wcmio.plugin.version>1.6.18</wcmio.plugin.version>
-        <filevault-package.plugin.version>1.0.3</filevault-package.plugin.version>
+    <name>Apache Sling Features Converter Maven Plugin test - no parameter</name>
+    <description>
+        This is an Apache Sling Feature Converter Maven plugin test to convert a package with a single bundle
+    </description>
 
-        <osgi.core.version>7.0.0</osgi.core.version>
-        <osgi.annotation.version>7.0.0</osgi.annotation.version>
-        <org.osgi.service.component.annotations.version>1.4.0</org.osgi.service.component.annotations.version>
-        <org.osgi.service.metatype.annotations.version>1.4.0</org.osgi.service.metatype.annotations.version>
-        <org.osgi.compendium.version>5.0.0</org.osgi.compendium.version>
-        <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
-        <javax.inject.version>1</javax.inject.version>
-        <jcr.version>2.0</jcr.version>
-        <sling.models.api.version>1.3.6</sling.models.api.version>
-        <jetbrains.annotations.version>16.0.2</jetbrains.annotations.version>
-        <sling.settings.version>1.3.10</sling.settings.version>
-        <sling.commons.osgi.version>2.4.0</sling.commons.osgi.version>
-        <jackrabbit-api.version>2.16.3</jackrabbit-api.version>
-        <commons-lang.version>2.6</commons-lang.version>
-        <jmock-junit4.version>2.8.2</jmock-junit4.version>
-    </properties>
     <build>
         <plugins>
             <!-- Maven Release Plugin -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <scmCommentPrefix>[maven-scm] :</scmCommentPrefix>
-                    <preparationGoals>clean install</preparationGoals>
-                    <goals>install</goals>
-                    <releaseProfiles>release</releaseProfiles>
-                </configuration>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Source Plugin -->
             <plugin>
@@ -104,9 +46,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
-                <configuration>
-                    <encoding>UTF-8</encoding>
-                </configuration>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Jar Plugin -->
             <plugin>
@@ -117,299 +57,17 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>enforce-maven</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <requireMavenVersion>
-                                    <message>Project must be built with Maven 3.1.0 or higher</message>
-                                    <version>[3.1.0,)</version>
-                                </requireMavenVersion>
-                                <requireJavaVersion>
-                                    <message>Project must be compiled with Java 7 or higher</message>
-                                    <version>1.7.0</version>
-                                </requireJavaVersion>
-                            </rules>
-                        </configuration>
-                    </execution>
-                </executions>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Compiler Plugin -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>8</source>
-                    <target>8</target>
-                    <encoding>UTF-8</encoding>
-                </configuration>
+                <inherited>true</inherited>
             </plugin>
         </plugins>
-        <pluginManagement>
-            <plugins>
-                <!-- Maven Release Plugin -->
-                <plugin>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <version>${release.plugin.version}</version>
-                </plugin>
-                <!-- Maven Source Plugin -->
-                <plugin>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>${source.plugin.version}</version>
-                </plugin>
-                <!-- Maven Resources Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>${resource.plugin.version}</version>
-                </plugin>
-                <!-- Maven Jar Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>${jar.plugin.version}</version>
-                </plugin>
-                <!-- Maven Enforcer Plugin -->
-                <plugin>
-                    <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>${enforcer.plugin.version}</version>
-                </plugin>
-                <!-- Maven Compiler Plugin -->
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>${compiler.plugin.version}</version>
-                </plugin>
-
-                <!-- Maven Clean Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-clean-plugin</artifactId>
-                    <version>${clean.plugin.version}</version>
-                </plugin>
-                <!-- Maven Installer Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-install-plugin</artifactId>
-                    <version>${installer.plugin.version}</version>
-                </plugin>
-                <!-- Maven Surefire Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>${surfire.plugin.version}</version>
-                </plugin>
-                <!-- Maven Failsafe Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-failsafe-plugin</artifactId>
-                    <version>${failsafe.plugin.version}</version>
-                </plugin>
-                <!-- Maven Deploy Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-deploy-plugin</artifactId>
-                    <version>${deploy.plugin.version}</version>
-                </plugin>
-                <!-- Apache Sling Plugin -->
-                <plugin>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>maven-sling-plugin</artifactId>
-                    <version>${sling.plugin.version}</version>
-                </plugin>
-                <!-- Content Package Plugin -->
-                <plugin>
-                    <groupId>org.apache.jackrabbit</groupId>
-                    <artifactId>filevault-package-maven-plugin</artifactId>
-                    <version>${filevault-package.plugin.version}</version>
-                    <extensions>true</extensions>
-                    <configuration>
-                        <failOnMissingEmbed>true</failOnMissingEmbed>
-                        <force>true</force>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>io.wcm.maven.plugins</groupId>
-                    <artifactId>wcmio-content-package-maven-plugin</artifactId>
-                    <version>${wcmio.plugin.version}</version>
-                    <configuration>
-                        <serviceURL>http://${sling.host}:${sling.port}/bin/cpm/</serviceURL>
-                        <userId>${sling.user}</userId>
-                        <password>${sling.password}</password>
-                        <failOnMissingEmbed>true</failOnMissingEmbed>
-                        <force>true</force>
-                        <group>cpconverter</group>
-                    </configuration>
-                </plugin>
-                <!-- Apache Felix Bundle Plugin -->
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>${bundle.plugin.version}</version>
-                    <inherited>true</inherited>
-                </plugin>
-                <!-- Maven Dependency Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <version>${dependency.plugin.version}</version>
-                </plugin>
-                <!-- Build Helper Maven Plugin -->
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>${build.helper.plugin.version}</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
     </build>
 
-    <!-- ====================================================================== -->
-    <!-- D E P E N D E N C I E S                                                -->
-    <!-- ====================================================================== -->
-    <dependencyManagement>
-        <dependencies>
-            <!-- OSGi Dependencies -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.core</artifactId>
-                <version>${osgi.core.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- OSGi annotations: @Version, @ProviderType, @ConsumerType -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.annotation</artifactId>
-                <version>${osgi.annotation.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- OSGi annotations for DS and metatype -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.component.annotations</artifactId>
-                <version>${org.osgi.service.component.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.metatype.annotations</artifactId>
-                <version>${org.osgi.service.metatype.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Needs to be placed after 'org.osgi.service.component.annotations' otherwise field @Reference will not work -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.compendium</artifactId>
-                <version>${org.osgi.compendium.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Web Application API -->
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>javax.servlet-api</artifactId>
-                <version>${javax.servlet-api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- dependency injection annotations -->
-            <dependency>
-                <groupId>javax.inject</groupId>
-                <artifactId>javax.inject</artifactId>
-                <version>$[javax.inject.version</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- JCR API -->
-            <dependency>
-                <groupId>javax.jcr</groupId>
-                <artifactId>jcr</artifactId>
-                <version>${jcr.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Basic Logging -->
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>1.7.6</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>org.jetbrains</groupId>
-                <artifactId>annotations</artifactId>
-                <version>${jetbrains.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Apache Sling Dependencies -->
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.api</artifactId>
-                <version>2.9.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.settings</artifactId>
-                <version>${sling.settings.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.commons.osgi</artifactId>
-                <version>${sling.commons.osgi.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.models.api</artifactId>
-                <version>${sling.models.api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.jackrabbit</groupId>
-                <artifactId>jackrabbit-api</artifactId>
-                <version>${jackrabbit-api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Support -->
-            <dependency>
-                <groupId>commons-lang</groupId>
-                <artifactId>commons-lang</artifactId>
-                <version>${commons-lang.version}</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>${jmock-junit4.version}</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-simple</artifactId>
-                <version>1.7.6</version>
-                <scope>test</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
     <modules>
         <module>core</module>
         <module>ui.apps</module>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml
index 4ec8713..98bcaad 100644
--- a/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml
@@ -23,44 +23,29 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>sling-cpconverter-maven-plugin-test-no-param</artifactId>
         <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-no-param</artifactId>
         <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>sling-cpconverter-maven-plugin-test-no-param.ui.apps</artifactId>
+    <artifactId>sling-feature-converter-maven-plugin-test-no-param.ui.apps</artifactId>
     <packaging>content-package</packaging>
 
-    <name>CQ Converter Test - UI Apps</name>
+    <name>Sling Feature Converter Maven Plugin No Parameter Test - UI Apps</name>
     <description>
-        This is an empty JCR Package where the JCR Content
-        can be deployed with.
+        Sling Feature Converter Maven Plugin Core Test Content Bundle with No Parameter
     </description>
-    <!-- NOTE:
-        For a 'not all' package this JCR Package will embedd
-        the "core" bundle. It can be deployed with the
-        "autoInstallPackage" profile.
 
-        For an 'all' package this only provides the content
-        of the project which is deployed in the root with
-        the "autoInstallAll" profile.
-
-        It is advisable to deploy any bundles or packages
-        in one manner as deploying bundles inside a package
-        and through the System Console can lead to unexpected
-        and errorneous situations.
-    -->
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>sling-cpconverter-maven-plugin-test-no-param.core</artifactId>
+            <artifactId>sling-feature-converter-maven-plugin-test-no-param.core</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.cpconverter</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
+            <version>${org.apache.sling.feature.cpconverter.version}</version>
         </dependency>
     </dependencies>
 
@@ -75,7 +60,7 @@
                     <embeddeds>
                         <embedded>
                             <groupId>${project.groupId}</groupId>
-                            <artifactId>sling-cpconverter-maven-plugin-test-no-param.core</artifactId>
+                            <artifactId>sling-feature-converter-maven-plugin-test-no-param.core</artifactId>
                             <filter>true</filter>
                         </embedded>
                     </embeddeds>
@@ -99,26 +84,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <!-- ATTENTION: It is highly recomended not to deploy this with this Profile if this Package was or will be deployed with the All package -->
-        <profile>
-            <id>autoInstallPackage</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>io.wcm.maven.plugins</groupId>
-                        <artifactId>wcmio-content-package-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>install-package</id>
-                                <goals>
-                                    <goal>install</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
diff --git a/src/it/package-with-single-bundle-no-parameters/verify.bsh b/src/it/package-with-single-bundle-no-parameters/verify.bsh
index 88da15c..a8b39cd 100644
--- a/src/it/package-with-single-bundle-no-parameters/verify.bsh
+++ b/src/it/package-with-single-bundle-no-parameters/verify.bsh
@@ -19,10 +19,11 @@ import java.util.*;
 import org.codehaus.plexus.util.*;
 
     boolean check() {
-        String projectName = "sling-cpconverter-maven-plugin-test-no-param.ui.apps";
-        String projectCoreName = "sling-cpconverter-maven-plugin-test-no-param.core";
-        String projectVersion = "1.0.0-SNAPSHOT";
-        String projectGroup = "org.apache.sling";
+        String projectName = "sling-feature-converter-maven-plugin-test-no-param.ui.apps";
+        String projectCoreName = "sling-feature-converter-maven-plugin-test-no-param.core";
+        // These are <scriptVariables/> provided by the plugin POM
+        String projectVersion = plugin.version;
+        String projectGroup = plugin.group;
         String projectGroupPath = projectGroup.replaceAll("\\.", "/");
 
         File targetFolder = new File(basedir, "ui.apps/target");
diff --git a/src/it/package-with-single-bundle-target-mode/core/pom.xml b/src/it/package-with-single-bundle-target-mode/core/pom.xml
index e9a550d..5dc538c 100644
--- a/src/it/package-with-single-bundle-target-mode/core/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/core/pom.xml
@@ -22,26 +22,17 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>sling-cpconverter-maven-plugin-test-target-mode</artifactId>
         <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-target-mode</artifactId>
         <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>sling-cpconverter-maven-plugin-test-target-mode.core</artifactId>
+    <artifactId>sling-feature-converter-maven-plugin-test-target-mode.core</artifactId>
     <packaging>bundle</packaging>
 
-    <name>CQ Converter Test - Core</name>
+    <name>Sling Feature Converter Maven Plugin Test Target Mode - Core</name>
     <description>
-        This is an empty OSGi Bundle which can be used
-        to compile and deploy OSGi Services to Sling.
-
-        This Bundle can be deployed using the Profile
-        "autoInstallBundle" but that should not be used
-        together with the "ui.apps" Profile "autoInstallAll"
-        as they are not deployed the same way and can lead
-        to undesired issues during deployment (bundle not
-        updated or not working at all).
+        Sling Feature Converter Maven Plugin Core Test Bundle in Target Mode
     </description>
 
     <build>
@@ -97,15 +88,6 @@
             <artifactId>org.osgi.service.component.annotations</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.metatype.annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
         </dependency>
@@ -122,29 +104,12 @@
             <artifactId>org.apache.sling.models.api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.jackrabbit</groupId>
-            <artifactId>jackrabbit-api</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
-
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>
     </dependencies>
-
-    <!--
-        Attention: the autoInstallBundle was removed as deploying bundles directly and through a package is causing
-                   issues with updates and can prevent the latest code of a bundle being deployed.
-                   If you know what you are doing then you can use maven-sling-plugin directly from the Maven CLI.
-    -->
 </project>
diff --git a/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml b/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
index ee2a9c9..2c80ae7 100644
--- a/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
@@ -23,45 +23,30 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>sling-cpconverter-maven-plugin-test-target-mode</artifactId>
         <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-target-mode</artifactId>
         <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>sling-cpconverter-maven-plugin-test-target-mode.fm.launcher</artifactId>
+    <artifactId>sling-feature-converter-maven-plugin-test-target-mode.fm.launcher</artifactId>
     <packaging>jar</packaging>
 
-    <name>CQ Converter Test - UI Apps</name>
+    <name>Sling Feature Converter Maven Plugin Target Mode Test - FM Launcher</name>
     <description>
-        This is an empty JCR Package where the JCR Content
-        can be deployed with.
+        Sling Feature Converter Maven Plugin Core Test FM Launcher in Target Model
     </description>
-    <!-- NOTE:
-        For a 'not all' package this JCR Package will embedd
-        the "core" bundle. It can be deployed with the
-        "autoInstallPackage" profile.
 
-        For an 'all' package this only provides the content
-        of the project which is deployed in the root with
-        the "autoInstallAll" profile.
-
-        It is advisable to deploy any bundles or packages
-        in one manner as deploying bundles inside a package
-        and through the System Console can lead to unexpected
-        and errorneous situations.
-    -->
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>sling-cpconverter-maven-plugin-test-target-mode.ui.apps</artifactId>
+            <artifactId>sling-feature-converter-maven-plugin-test-target-mode.ui.apps</artifactId>
             <version>${project.version}</version>
             <type>zip</type>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.cpconverter</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
+            <version>${org.apache.sling.feature.cpconverter.version}</version>
         </dependency>
     </dependencies>
 
@@ -86,7 +71,7 @@
                             <contentPackages>
                                 <contentPackage>
                                     <groupId>${project.groupId}</groupId>
-                                    <artifactId>sling-cpconverter-maven-plugin-test-target-mode.ui.apps</artifactId>
+                                    <artifactId>sling-feature-converter-maven-plugin-test-target-mode.ui.apps</artifactId>
                                 </contentPackage>
                             </contentPackages>
                         </configuration>
diff --git a/src/it/package-with-single-bundle-target-mode/pom.xml b/src/it/package-with-single-bundle-target-mode/pom.xml
index c671441..f2d73b3 100644
--- a/src/it/package-with-single-bundle-target-mode/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/pom.xml
@@ -13,86 +13,29 @@
 <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>
-    <groupId>org.apache.sling</groupId>
-    <artifactId>sling-cpconverter-maven-plugin-test-target-mode</artifactId>
-    <packaging>pom</packaging>
-    <version>1.0.0-SNAPSHOT</version>
-    <name>Apache Sling Features Maven plugin test - target mode</name>
-    <description>This is just an Apache Sling Content Package Maven plugin test to convert a package with a single
-        bundle
-    </description>
-    <organization>
-        <name>The Apache Software Foundation</name>
-        <url>https://www.apache.org/</url>
-    </organization>
-    <licenses>
-        <license>
-            <name>Apache License, Version 2.0</name>
-            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-    <properties>
-        <interpolated_variable>true</interpolated_variable>
-        <osgi.framework.version>1.9.0</osgi.framework.version>
-        <sling.framework.install.incremental>true</sling.framework.install.incremental>
-        <sling.framework.install.startlevel>1</sling.framework.install.startlevel>
-        <sling.ignoreSystemProperties>true</sling.ignoreSystemProperties>
 
-        <sling.host>localhost</sling.host>
-        <sling.port>8080</sling.port>
-        <sling.user>admin</sling.user>
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
 
-        <sling.password>admin</sling.password>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <artifactId>sling-feature-converter-maven-plugin-test-target-mode</artifactId>
+    <packaging>pom</packaging>
+
+    <name>Apache Sling Features Converter Maven Plugin test - target mode</name>
+    <description>
+        This is an Apache Sling Feature Converter Maven plugin to convert a package with a single bundle
+    </description>
 
-        <release.plugin.version>2.5.3</release.plugin.version>
-        <source.plugin.version>3.0.1</source.plugin.version>
-        <resource.plugin.version>3.1.0</resource.plugin.version>
-        <jar.plugin.version>3.1.1</jar.plugin.version>
-        <enforcer.plugin.version>3.0.0-M2</enforcer.plugin.version>
-        <compiler.plugin.version>3.8.0</compiler.plugin.version>
-        <bundle.plugin.version>4.2.0</bundle.plugin.version>
-        <clean.plugin.version>3.1.0</clean.plugin.version>
-        <installer.plugin.version>3.0.0-M1</installer.plugin.version>
-        <surfire.plugin.version>3.0.0-M3</surfire.plugin.version>
-        <failsafe.plugin.version>3.0.0-M3</failsafe.plugin.version>
-        <deploy.plugin.version>3.0.0-M1</deploy.plugin.version>
-        <sling.plugin.version>2.4.0</sling.plugin.version>
-        <dependency.plugin.version>3.1.1</dependency.plugin.version>
-        <build.helper.plugin.version>3.0.0</build.helper.plugin.version>
-        <wcmio.plugin.version>1.6.18</wcmio.plugin.version>
-        <filevault-package.plugin.version>1.0.3</filevault-package.plugin.version>
 
-        <osgi.core.version>7.0.0</osgi.core.version>
-        <osgi.annotation.version>7.0.0</osgi.annotation.version>
-        <org.osgi.service.component.annotations.version>1.4.0</org.osgi.service.component.annotations.version>
-        <org.osgi.service.metatype.annotations.version>1.4.0</org.osgi.service.metatype.annotations.version>
-        <org.osgi.compendium.version>5.0.0</org.osgi.compendium.version>
-        <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
-        <javax.inject.version>1</javax.inject.version>
-        <jcr.version>2.0</jcr.version>
-        <sling.models.api.version>1.3.6</sling.models.api.version>
-        <jetbrains.annotations.version>16.0.2</jetbrains.annotations.version>
-        <sling.settings.version>1.3.10</sling.settings.version>
-        <sling.commons.osgi.version>2.4.0</sling.commons.osgi.version>
-        <jackrabbit-api.version>2.16.3</jackrabbit-api.version>
-        <commons-lang.version>2.6</commons-lang.version>
-        <jmock-junit4.version>2.8.2</jmock-junit4.version>
-    </properties>
     <build>
         <plugins>
             <!-- Maven Release Plugin -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <scmCommentPrefix>[maven-scm] :</scmCommentPrefix>
-                    <preparationGoals>clean install</preparationGoals>
-                    <goals>install</goals>
-                    <releaseProfiles>release</releaseProfiles>
-                </configuration>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Source Plugin -->
             <plugin>
@@ -104,9 +47,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
-                <configuration>
-                    <encoding>UTF-8</encoding>
-                </configuration>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Jar Plugin -->
             <plugin>
@@ -117,299 +58,17 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>enforce-maven</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <requireMavenVersion>
-                                    <message>Project must be built with Maven 3.1.0 or higher</message>
-                                    <version>[3.1.0,)</version>
-                                </requireMavenVersion>
-                                <requireJavaVersion>
-                                    <message>Project must be compiled with Java 7 or higher</message>
-                                    <version>1.7.0</version>
-                                </requireJavaVersion>
-                            </rules>
-                        </configuration>
-                    </execution>
-                </executions>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Compiler Plugin -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>8</source>
-                    <target>8</target>
-                    <encoding>UTF-8</encoding>
-                </configuration>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <!-- Maven Release Plugin -->
-                <plugin>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <version>${release.plugin.version}</version>
-                </plugin>
-                <!-- Maven Source Plugin -->
-                <plugin>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>${source.plugin.version}</version>
-                </plugin>
-                <!-- Maven Resources Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>${resource.plugin.version}</version>
-                </plugin>
-                <!-- Maven Jar Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>${jar.plugin.version}</version>
-                </plugin>
-                <!-- Maven Enforcer Plugin -->
-                <plugin>
-                    <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>${enforcer.plugin.version}</version>
-                </plugin>
-                <!-- Maven Compiler Plugin -->
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>${compiler.plugin.version}</version>
-                </plugin>
-
-                <!-- Maven Clean Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-clean-plugin</artifactId>
-                    <version>${clean.plugin.version}</version>
-                </plugin>
-                <!-- Maven Installer Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-install-plugin</artifactId>
-                    <version>${installer.plugin.version}</version>
-                </plugin>
-                <!-- Maven Surefire Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>${surfire.plugin.version}</version>
-                </plugin>
-                <!-- Maven Failsafe Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-failsafe-plugin</artifactId>
-                    <version>${failsafe.plugin.version}</version>
-                </plugin>
-                <!-- Maven Deploy Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-deploy-plugin</artifactId>
-                    <version>${deploy.plugin.version}</version>
-                </plugin>
-                <!-- Apache Sling Plugin -->
-                <plugin>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>maven-sling-plugin</artifactId>
-                    <version>${sling.plugin.version}</version>
-                </plugin>
-                <!-- Content Package Plugin -->
-                <plugin>
-                    <groupId>org.apache.jackrabbit</groupId>
-                    <artifactId>filevault-package-maven-plugin</artifactId>
-                    <version>${filevault-package.plugin.version}</version>
-                    <extensions>true</extensions>
-                    <configuration>
-                        <failOnMissingEmbed>true</failOnMissingEmbed>
-                        <force>true</force>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>io.wcm.maven.plugins</groupId>
-                    <artifactId>wcmio-content-package-maven-plugin</artifactId>
-                    <version>${wcmio.plugin.version}</version>
-                    <configuration>
-                        <serviceURL>http://${sling.host}:${sling.port}/bin/cpm/</serviceURL>
-                        <userId>${sling.user}</userId>
-                        <password>${sling.password}</password>
-                        <failOnMissingEmbed>true</failOnMissingEmbed>
-                        <force>true</force>
-                        <group>cpconverter</group>
-                    </configuration>
-                </plugin>
-                <!-- Apache Felix Bundle Plugin -->
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>${bundle.plugin.version}</version>
                     <inherited>true</inherited>
                 </plugin>
-                <!-- Maven Dependency Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <version>${dependency.plugin.version}</version>
-                </plugin>
-                <!-- Build Helper Maven Plugin -->
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>${build.helper.plugin.version}</version>
-                </plugin>
             </plugins>
-        </pluginManagement>
     </build>
 
-    <!-- ====================================================================== -->
-    <!-- D E P E N D E N C I E S                                                -->
-    <!-- ====================================================================== -->
-    <dependencyManagement>
-        <dependencies>
-            <!-- OSGi Dependencies -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.core</artifactId>
-                <version>${osgi.core.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- OSGi annotations: @Version, @ProviderType, @ConsumerType -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.annotation</artifactId>
-                <version>${osgi.annotation.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- OSGi annotations for DS and metatype -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.component.annotations</artifactId>
-                <version>${org.osgi.service.component.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.metatype.annotations</artifactId>
-                <version>${org.osgi.service.metatype.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Needs to be placed after 'org.osgi.service.component.annotations' otherwise field @Reference will not work -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.compendium</artifactId>
-                <version>${org.osgi.compendium.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Web Application API -->
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>javax.servlet-api</artifactId>
-                <version>${javax.servlet-api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- dependency injection annotations -->
-            <dependency>
-                <groupId>javax.inject</groupId>
-                <artifactId>javax.inject</artifactId>
-                <version>$[javax.inject.version</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- JCR API -->
-            <dependency>
-                <groupId>javax.jcr</groupId>
-                <artifactId>jcr</artifactId>
-                <version>${jcr.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Basic Logging -->
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>1.7.6</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>org.jetbrains</groupId>
-                <artifactId>annotations</artifactId>
-                <version>${jetbrains.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Apache Sling Dependencies -->
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.api</artifactId>
-                <version>2.9.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.settings</artifactId>
-                <version>${sling.settings.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.commons.osgi</artifactId>
-                <version>${sling.commons.osgi.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.models.api</artifactId>
-                <version>${sling.models.api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.jackrabbit</groupId>
-                <artifactId>jackrabbit-api</artifactId>
-                <version>${jackrabbit-api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Support -->
-            <dependency>
-                <groupId>commons-lang</groupId>
-                <artifactId>commons-lang</artifactId>
-                <version>${commons-lang.version}</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>${jmock-junit4.version}</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-simple</artifactId>
-                <version>1.7.6</version>
-                <scope>test</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
     <modules>
         <module>core</module>
         <module>ui.apps</module>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml
index 393a432..dffa003 100644
--- a/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml
@@ -23,44 +23,29 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>sling-cpconverter-maven-plugin-test-target-mode</artifactId>
         <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-target-mode</artifactId>
         <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>sling-cpconverter-maven-plugin-test-target-mode.ui.apps</artifactId>
+    <artifactId>sling-feature-converter-maven-plugin-test-target-mode.ui.apps</artifactId>
     <packaging>content-package</packaging>
 
     <name>CQ Converter Test - UI Apps</name>
     <description>
-        This is an empty JCR Package where the JCR Content
-        can be deployed with.
+        Sling Feature Converter Maven Plugin Core Test Content Bundle in Target Mode
     </description>
-    <!-- NOTE:
-        For a 'not all' package this JCR Package will embedd
-        the "core" bundle. It can be deployed with the
-        "autoInstallPackage" profile.
 
-        For an 'all' package this only provides the content
-        of the project which is deployed in the root with
-        the "autoInstallAll" profile.
-
-        It is advisable to deploy any bundles or packages
-        in one manner as deploying bundles inside a package
-        and through the System Console can lead to unexpected
-        and errorneous situations.
-    -->
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>sling-cpconverter-maven-plugin-test-target-mode.core</artifactId>
+            <artifactId>sling-feature-converter-maven-plugin-test-target-mode.core</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.cpconverter</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
+            <version>${org.apache.sling.feature.cpconverter.version}</version>
         </dependency>
     </dependencies>
 
@@ -75,7 +60,7 @@
                     <embeddeds>
                         <embedded>
                             <groupId>${project.groupId}</groupId>
-                            <artifactId>sling-cpconverter-maven-plugin-test-target-mode.core</artifactId>
+                            <artifactId>sling-feature-converter-maven-plugin-test-target-mode.core</artifactId>
                             <filter>true</filter>
                         </embedded>
                     </embeddeds>
@@ -83,26 +68,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <!-- ATTENTION: It is highly recomended not to deploy this with this Profile if this Package was or will be deployed with the All package -->
-        <profile>
-            <id>autoInstallPackage</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>io.wcm.maven.plugins</groupId>
-                        <artifactId>wcmio-content-package-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>install-package</id>
-                                <goals>
-                                    <goal>install</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
diff --git a/src/it/package-with-single-bundle-target-mode/verify.bsh b/src/it/package-with-single-bundle-target-mode/verify.bsh
index 28993ab..91cbfc5 100644
--- a/src/it/package-with-single-bundle-target-mode/verify.bsh
+++ b/src/it/package-with-single-bundle-target-mode/verify.bsh
@@ -19,10 +19,11 @@ import java.util.*;
 import org.codehaus.plexus.util.*;
 
     boolean check() {
-        String projectName = "sling-cpconverter-maven-plugin-test-target-mode.ui.apps";
-        String projectCoreName = "sling-cpconverter-maven-plugin-test-target-mode.core";
-        String projectVersion = "1.0.0-SNAPSHOT";
-        String projectGroup = "org.apache.sling";
+        String projectName = "sling-feature-converter-maven-plugin-test-target-mode.ui.apps";
+        String projectCoreName = "sling-feature-converter-maven-plugin-test-target-mode.core";
+        // These are <scriptVariables/> provided by the plugin POM
+        String projectVersion = plugin.version;
+        String projectGroup = plugin.group;
         String projectGroupPath = projectGroup.replaceAll("\\.", "/");
 
         File cpTargetFolder = new File(basedir, "ui.apps/target");
diff --git a/src/it/package-with-single-bundle-with-parameters/core/pom.xml b/src/it/package-with-single-bundle-with-parameters/core/pom.xml
index 1fc3757..86dfd70 100644
--- a/src/it/package-with-single-bundle-with-parameters/core/pom.xml
+++ b/src/it/package-with-single-bundle-with-parameters/core/pom.xml
@@ -22,26 +22,17 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>sling-cpconverter-maven-plugin-test-with-param</artifactId>
         <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-with-param</artifactId>
         <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>sling-cpconverter-maven-plugin-test-with-param.core</artifactId>
+    <artifactId>sling-feature-converter-maven-plugin-test-with-param.core</artifactId>
     <packaging>bundle</packaging>
 
-    <name>CQ Converter Test - Core</name>
+    <name>Sling Feature Converter Maven Plugin Test With Parameter - Core</name>
     <description>
-        This is an empty OSGi Bundle which can be used
-        to compile and deploy OSGi Services to Sling.
-
-        This Bundle can be deployed using the Profile
-        "autoInstallBundle" but that should not be used
-        together with the "ui.apps" Profile "autoInstallAll"
-        as they are not deployed the same way and can lead
-        to undesired issues during deployment (bundle not
-        updated or not working at all).
+        Sling Feature Converter Maven Plugin Core Test Bundle With Parameters
     </description>
 
     <build>
@@ -97,15 +88,6 @@
             <artifactId>org.osgi.service.component.annotations</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.metatype.annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.compendium</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
         </dependency>
@@ -122,29 +104,12 @@
             <artifactId>org.apache.sling.models.api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.jackrabbit</groupId>
-            <artifactId>jackrabbit-api</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
-
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
         </dependency>
     </dependencies>
-
-    <!--
-        Attention: the autoInstallBundle was removed as deploying bundles directly and through a package is causing
-                   issues with updates and can prevent the latest code of a bundle being deployed.
-                   If you know what you are doing then you can use maven-sling-plugin directly from the Maven CLI.
-    -->
 </project>
diff --git a/src/it/package-with-single-bundle-with-parameters/pom.xml b/src/it/package-with-single-bundle-with-parameters/pom.xml
index 5df12ef..d80277a 100644
--- a/src/it/package-with-single-bundle-with-parameters/pom.xml
+++ b/src/it/package-with-single-bundle-with-parameters/pom.xml
@@ -13,86 +13,28 @@
 <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>
-    <groupId>org.apache.sling</groupId>
-    <artifactId>sling-cpconverter-maven-plugin-test-with-param</artifactId>
-    <packaging>pom</packaging>
-    <version>1.0.0-SNAPSHOT</version>
-    <name>Apache Sling Features Maven plugin test - with parameter</name>
-    <description>This is just an Apache Sling Content Package Maven plugin test to convert a package with a single
-        bundle
-    </description>
-    <organization>
-        <name>The Apache Software Foundation</name>
-        <url>https://www.apache.org/</url>
-    </organization>
-    <licenses>
-        <license>
-            <name>Apache License, Version 2.0</name>
-            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
-            <distribution>repo</distribution>
-        </license>
-    </licenses>
-    <properties>
-        <interpolated_variable>true</interpolated_variable>
-        <osgi.framework.version>1.9.0</osgi.framework.version>
-        <sling.framework.install.incremental>true</sling.framework.install.incremental>
-        <sling.framework.install.startlevel>1</sling.framework.install.startlevel>
-        <sling.ignoreSystemProperties>true</sling.ignoreSystemProperties>
 
-        <sling.host>localhost</sling.host>
-        <sling.port>8080</sling.port>
-        <sling.user>admin</sling.user>
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-parent</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
 
-        <sling.password>admin</sling.password>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    <artifactId>sling-feature-converter-maven-plugin-test-with-param</artifactId>
+    <packaging>pom</packaging>
 
-        <release.plugin.version>2.5.3</release.plugin.version>
-        <source.plugin.version>3.0.1</source.plugin.version>
-        <resource.plugin.version>3.1.0</resource.plugin.version>
-        <jar.plugin.version>3.1.1</jar.plugin.version>
-        <enforcer.plugin.version>3.0.0-M2</enforcer.plugin.version>
-        <compiler.plugin.version>3.8.0</compiler.plugin.version>
-        <bundle.plugin.version>4.2.0</bundle.plugin.version>
-        <clean.plugin.version>3.1.0</clean.plugin.version>
-        <installer.plugin.version>3.0.0-M1</installer.plugin.version>
-        <surfire.plugin.version>3.0.0-M3</surfire.plugin.version>
-        <failsafe.plugin.version>3.0.0-M3</failsafe.plugin.version>
-        <deploy.plugin.version>3.0.0-M1</deploy.plugin.version>
-        <sling.plugin.version>2.4.0</sling.plugin.version>
-        <dependency.plugin.version>3.1.1</dependency.plugin.version>
-        <build.helper.plugin.version>3.0.0</build.helper.plugin.version>
-        <wcmio.plugin.version>1.6.18</wcmio.plugin.version>
-        <filevault-package.plugin.version>1.0.3</filevault-package.plugin.version>
+    <name>Apache Sling Features Converter Maven Plugin test - with parameter</name>
+    <description>
+        This is an Apache Sling Feature Converter Maven plugin test to convert a package with a single bundle with Parameters
+    </description>
 
-        <osgi.core.version>7.0.0</osgi.core.version>
-        <osgi.annotation.version>7.0.0</osgi.annotation.version>
-        <org.osgi.service.component.annotations.version>1.4.0</org.osgi.service.component.annotations.version>
-        <org.osgi.service.metatype.annotations.version>1.4.0</org.osgi.service.metatype.annotations.version>
-        <org.osgi.compendium.version>5.0.0</org.osgi.compendium.version>
-        <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
-        <javax.inject.version>1</javax.inject.version>
-        <jcr.version>2.0</jcr.version>
-        <sling.models.api.version>1.3.6</sling.models.api.version>
-        <jetbrains.annotations.version>16.0.2</jetbrains.annotations.version>
-        <sling.settings.version>1.3.10</sling.settings.version>
-        <sling.commons.osgi.version>2.4.0</sling.commons.osgi.version>
-        <jackrabbit-api.version>2.16.3</jackrabbit-api.version>
-        <commons-lang.version>2.6</commons-lang.version>
-        <jmock-junit4.version>2.8.2</jmock-junit4.version>
-    </properties>
     <build>
         <plugins>
             <!-- Maven Release Plugin -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <scmCommentPrefix>[maven-scm] :</scmCommentPrefix>
-                    <preparationGoals>clean install</preparationGoals>
-                    <goals>install</goals>
-                    <releaseProfiles>release</releaseProfiles>
-                </configuration>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Source Plugin -->
             <plugin>
@@ -104,9 +46,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
-                <configuration>
-                    <encoding>UTF-8</encoding>
-                </configuration>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Jar Plugin -->
             <plugin>
@@ -117,299 +57,17 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>enforce-maven</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <requireMavenVersion>
-                                    <message>Project must be built with Maven 3.1.0 or higher</message>
-                                    <version>[3.1.0,)</version>
-                                </requireMavenVersion>
-                                <requireJavaVersion>
-                                    <message>Project must be compiled with Java 7 or higher</message>
-                                    <version>1.7.0</version>
-                                </requireJavaVersion>
-                            </rules>
-                        </configuration>
-                    </execution>
-                </executions>
+                <inherited>true</inherited>
             </plugin>
             <!-- Maven Compiler Plugin -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>8</source>
-                    <target>8</target>
-                    <encoding>UTF-8</encoding>
-                </configuration>
-            </plugin>
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <!-- Maven Release Plugin -->
-                <plugin>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <version>${release.plugin.version}</version>
-                </plugin>
-                <!-- Maven Source Plugin -->
-                <plugin>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>${source.plugin.version}</version>
-                </plugin>
-                <!-- Maven Resources Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>${resource.plugin.version}</version>
-                </plugin>
-                <!-- Maven Jar Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>${jar.plugin.version}</version>
-                </plugin>
-                <!-- Maven Enforcer Plugin -->
-                <plugin>
-                    <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>${enforcer.plugin.version}</version>
-                </plugin>
-                <!-- Maven Compiler Plugin -->
-                <plugin>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>${compiler.plugin.version}</version>
-                </plugin>
-
-                <!-- Maven Clean Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-clean-plugin</artifactId>
-                    <version>${clean.plugin.version}</version>
-                </plugin>
-                <!-- Maven Installer Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-install-plugin</artifactId>
-                    <version>${installer.plugin.version}</version>
-                </plugin>
-                <!-- Maven Surefire Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>${surfire.plugin.version}</version>
-                </plugin>
-                <!-- Maven Failsafe Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-failsafe-plugin</artifactId>
-                    <version>${failsafe.plugin.version}</version>
-                </plugin>
-                <!-- Maven Deploy Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-deploy-plugin</artifactId>
-                    <version>${deploy.plugin.version}</version>
-                </plugin>
-                <!-- Apache Sling Plugin -->
-                <plugin>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>maven-sling-plugin</artifactId>
-                    <version>${sling.plugin.version}</version>
-                </plugin>
-                <!-- Content Package Plugin -->
-                <plugin>
-                    <groupId>org.apache.jackrabbit</groupId>
-                    <artifactId>filevault-package-maven-plugin</artifactId>
-                    <version>${filevault-package.plugin.version}</version>
-                    <extensions>true</extensions>
-                    <configuration>
-                        <failOnMissingEmbed>true</failOnMissingEmbed>
-                        <force>true</force>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>io.wcm.maven.plugins</groupId>
-                    <artifactId>wcmio-content-package-maven-plugin</artifactId>
-                    <version>${wcmio.plugin.version}</version>
-                    <configuration>
-                        <serviceURL>http://${sling.host}:${sling.port}/bin/cpm/</serviceURL>
-                        <userId>${sling.user}</userId>
-                        <password>${sling.password}</password>
-                        <failOnMissingEmbed>true</failOnMissingEmbed>
-                        <force>true</force>
-                        <group>cpconverter</group>
-                    </configuration>
-                </plugin>
-                <!-- Apache Felix Bundle Plugin -->
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>${bundle.plugin.version}</version>
                     <inherited>true</inherited>
                 </plugin>
-                <!-- Maven Dependency Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <version>${dependency.plugin.version}</version>
-                </plugin>
-                <!-- Build Helper Maven Plugin -->
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>${build.helper.plugin.version}</version>
-                </plugin>
             </plugins>
-        </pluginManagement>
     </build>
 
-    <!-- ====================================================================== -->
-    <!-- D E P E N D E N C I E S                                                -->
-    <!-- ====================================================================== -->
-    <dependencyManagement>
-        <dependencies>
-            <!-- OSGi Dependencies -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.core</artifactId>
-                <version>${osgi.core.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- OSGi annotations: @Version, @ProviderType, @ConsumerType -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>osgi.annotation</artifactId>
-                <version>${osgi.annotation.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- OSGi annotations for DS and metatype -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.component.annotations</artifactId>
-                <version>${org.osgi.service.component.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.service.metatype.annotations</artifactId>
-                <version>${org.osgi.service.metatype.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Needs to be placed after 'org.osgi.service.component.annotations' otherwise field @Reference will not work -->
-            <dependency>
-                <groupId>org.osgi</groupId>
-                <artifactId>org.osgi.compendium</artifactId>
-                <version>${org.osgi.compendium.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Web Application API -->
-            <dependency>
-                <groupId>javax.servlet</groupId>
-                <artifactId>javax.servlet-api</artifactId>
-                <version>${javax.servlet-api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- dependency injection annotations -->
-            <dependency>
-                <groupId>javax.inject</groupId>
-                <artifactId>javax.inject</artifactId>
-                <version>$[javax.inject.version</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- JCR API -->
-            <dependency>
-                <groupId>javax.jcr</groupId>
-                <artifactId>jcr</artifactId>
-                <version>${jcr.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Basic Logging -->
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>1.7.6</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>org.jetbrains</groupId>
-                <artifactId>annotations</artifactId>
-                <version>${jetbrains.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Apache Sling Dependencies -->
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.api</artifactId>
-                <version>2.9.0</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.settings</artifactId>
-                <version>${sling.settings.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.commons.osgi</artifactId>
-                <version>${sling.commons.osgi.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.models.api</artifactId>
-                <version>${sling.models.api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.jackrabbit</groupId>
-                <artifactId>jackrabbit-api</artifactId>
-                <version>${jackrabbit-api.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
-            <!-- Support -->
-            <dependency>
-                <groupId>commons-lang</groupId>
-                <artifactId>commons-lang</artifactId>
-                <version>${commons-lang.version}</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>${jmock-junit4.version}</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-simple</artifactId>
-                <version>1.7.6</version>
-                <scope>test</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
     <modules>
         <module>core</module>
         <module>ui.apps</module>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
index a3d1a68..c80a8da 100644
--- a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
@@ -23,44 +23,29 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>sling-cpconverter-maven-plugin-test-with-param</artifactId>
         <groupId>org.apache.sling</groupId>
+        <artifactId>sling-feature-converter-maven-plugin-test-with-param</artifactId>
         <version>1.0.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>sling-cpconverter-maven-plugin-test-with-param.ui.apps</artifactId>
+    <artifactId>sling-feature-converter-maven-plugin-test-with-param.ui.apps</artifactId>
     <packaging>content-package</packaging>
 
-    <name>CQ Converter Test - UI Apps</name>
+    <name>Sling Feature Converter Maven Plugin Wotj Parameter Test - UI Apps</name>
     <description>
-        This is an empty JCR Package where the JCR Content
-        can be deployed with.
+        Sling Feature Converter Maven Plugin Core Test Content Bundle With Parameter
     </description>
-    <!-- NOTE:
-        For a 'not all' package this JCR Package will embedd
-        the "core" bundle. It can be deployed with the
-        "autoInstallPackage" profile.
 
-        For an 'all' package this only provides the content
-        of the project which is deployed in the root with
-        the "autoInstallAll" profile.
-
-        It is advisable to deploy any bundles or packages
-        in one manner as deploying bundles inside a package
-        and through the System Console can lead to unexpected
-        and errorneous situations.
-    -->
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>sling-cpconverter-maven-plugin-test-with-param.core</artifactId>
+            <artifactId>sling-feature-converter-maven-plugin-test-with-param.core</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.cpconverter</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
+            <version>${org.apache.sling.feature.cpconverter.version}</version>
         </dependency>
     </dependencies>
 
@@ -75,7 +60,7 @@
                     <embeddeds>
                         <embedded>
                             <groupId>${project.groupId}</groupId>
-                            <artifactId>sling-cpconverter-maven-plugin-test-with-param.core</artifactId>
+                            <artifactId>sling-feature-converter-maven-plugin-test-with-param.core</artifactId>
                             <filter>true</filter>
                         </embedded>
                     </embeddeds>
@@ -104,26 +89,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <!-- ATTENTION: It is highly recomended not to deploy this with this Profile if this Package was or will be deployed with the All package -->
-        <profile>
-            <id>autoInstallPackage</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>io.wcm.maven.plugins</groupId>
-                        <artifactId>wcmio-content-package-maven-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>install-package</id>
-                                <goals>
-                                    <goal>install</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
diff --git a/src/it/package-with-single-bundle-with-parameters/verify.bsh b/src/it/package-with-single-bundle-with-parameters/verify.bsh
index fbac8ab..8531f76 100644
--- a/src/it/package-with-single-bundle-with-parameters/verify.bsh
+++ b/src/it/package-with-single-bundle-with-parameters/verify.bsh
@@ -19,10 +19,11 @@ import java.util.*;
 import org.codehaus.plexus.util.*;
 
     boolean check() {
-        String projectName = "sling-cpconverter-maven-plugin-test-with-param.ui.apps";
-        String projectCoreName = "sling-cpconverter-maven-plugin-test-with-param.core";
-        String projectVersion = "1.0.0-SNAPSHOT";
-        String projectGroup = "org.apache.sling";
+        String projectName = "sling-feature-converter-maven-plugin-test-with-param.ui.apps";
+        String projectCoreName = "sling-feature-converter-maven-plugin-test-with-param.core";
+        // These are <scriptVariables/> provided by the plugin POM
+        String projectVersion = plugin.version;
+        String projectGroup = plugin.group;
         String projectGroupPath = projectGroup.replaceAll("\\.", "/");
 
         File targetFolder = new File(basedir, "ui.apps/target");
diff --git a/src/it/setup-tests/ReadMe.md b/src/it/setup-tests/ReadMe.md
new file mode 100644
index 0000000..1806c0f
--- /dev/null
+++ b/src/it/setup-tests/ReadMe.md
@@ -0,0 +1,7 @@
+# Parent POM for the IT Tests
+
+This pom.xml and invoker.properties file provide the common settings for
+the IT tests for this Maven Plugin to avoid duplication.
+
+This is then used by the Maven Invoker Plugin that is calling this as a
+setup project because the parent folder starts with **setup**.
\ No newline at end of file
diff --git a/src/it/setup-tests/invoker.properties b/src/it/setup-tests/invoker.properties
new file mode 100644
index 0000000..209b6ef
--- /dev/null
+++ b/src/it/setup-tests/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+
+invoker.goals = clean install
+invoker.debug = true
diff --git a/src/it/package-with-single-bundle-no-parameters/pom.xml b/src/it/setup-tests/pom.xml
similarity index 56%
copy from src/it/package-with-single-bundle-no-parameters/pom.xml
copy to src/it/setup-tests/pom.xml
index 5ddd115..5c4977a 100644
--- a/src/it/package-with-single-bundle-no-parameters/pom.xml
+++ b/src/it/setup-tests/pom.xml
@@ -13,14 +13,17 @@
 <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>
+
     <groupId>org.apache.sling</groupId>
-    <artifactId>sling-cpconverter-maven-plugin-test-no-param</artifactId>
+    <artifactId>sling-feature-converter-maven-plugin-test-parent</artifactId>
     <packaging>pom</packaging>
     <version>1.0.0-SNAPSHOT</version>
-    <name>Apache Sling Features Maven plugin test - no parameter</name>
-    <description>This is just an Apache Sling Content Package Maven plugin test to convert a package with a single
-        bundle
+
+    <name>Apache Sling Features Converter Maven Plugin test - Parent</name>
+    <description>
+        This is the Parent POM for the IT tests of the Sling Feature Converter Maven Plugin
     </description>
+
     <organization>
         <name>The Apache Software Foundation</name>
         <url>https://www.apache.org/</url>
@@ -32,20 +35,11 @@
             <distribution>repo</distribution>
         </license>
     </licenses>
+
     <properties>
         <interpolated_variable>true</interpolated_variable>
-        <osgi.framework.version>1.9.0</osgi.framework.version>
-        <sling.framework.install.incremental>true</sling.framework.install.incremental>
-        <sling.framework.install.startlevel>1</sling.framework.install.startlevel>
-        <sling.ignoreSystemProperties>true</sling.ignoreSystemProperties>
-
-        <sling.host>localhost</sling.host>
-        <sling.port>8080</sling.port>
-        <sling.user>admin</sling.user>
 
-        <sling.password>admin</sling.password>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <org.apache.sling.feature.cpconverter.version>1.0.2</org.apache.sling.feature.cpconverter.version>
 
         <release.plugin.version>2.5.3</release.plugin.version>
         <source.plugin.version>3.0.1</source.plugin.version>
@@ -71,90 +65,25 @@
         <org.osgi.service.metatype.annotations.version>1.4.0</org.osgi.service.metatype.annotations.version>
         <org.osgi.compendium.version>5.0.0</org.osgi.compendium.version>
         <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
-        <javax.inject.version>1</javax.inject.version>
         <jcr.version>2.0</jcr.version>
         <sling.models.api.version>1.3.6</sling.models.api.version>
-        <jetbrains.annotations.version>16.0.2</jetbrains.annotations.version>
-        <sling.settings.version>1.3.10</sling.settings.version>
-        <sling.commons.osgi.version>2.4.0</sling.commons.osgi.version>
         <jackrabbit-api.version>2.16.3</jackrabbit-api.version>
         <commons-lang.version>2.6</commons-lang.version>
-        <jmock-junit4.version>2.8.2</jmock-junit4.version>
     </properties>
+
     <build>
-        <plugins>
-            <!-- Maven Release Plugin -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <configuration>
-                    <scmCommentPrefix>[maven-scm] :</scmCommentPrefix>
-                    <preparationGoals>clean install</preparationGoals>
-                    <goals>install</goals>
-                    <releaseProfiles>release</releaseProfiles>
-                </configuration>
-            </plugin>
-            <!-- Maven Source Plugin -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-source-plugin</artifactId>
-                <inherited>true</inherited>
-            </plugin>
-            <!-- Maven Resources Plugin -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-resources-plugin</artifactId>
-                <configuration>
-                    <encoding>UTF-8</encoding>
-                </configuration>
-            </plugin>
-            <!-- Maven Jar Plugin -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-            </plugin>
-            <!-- Maven Enforcer Plugin -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>enforce-maven</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <requireMavenVersion>
-                                    <message>Project must be built with Maven 3.1.0 or higher</message>
-                                    <version>[3.1.0,)</version>
-                                </requireMavenVersion>
-                                <requireJavaVersion>
-                                    <message>Project must be compiled with Java 7 or higher</message>
-                                    <version>1.7.0</version>
-                                </requireJavaVersion>
-                            </rules>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <!-- Maven Compiler Plugin -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>8</source>
-                    <target>8</target>
-                    <encoding>UTF-8</encoding>
-                </configuration>
-            </plugin>
-        </plugins>
         <pluginManagement>
             <plugins>
                 <!-- Maven Release Plugin -->
                 <plugin>
                     <artifactId>maven-release-plugin</artifactId>
                     <version>${release.plugin.version}</version>
+                    <configuration>
+                        <scmCommentPrefix>[maven-scm] :</scmCommentPrefix>
+                        <preparationGoals>clean install</preparationGoals>
+                        <goals>install</goals>
+                        <releaseProfiles>release</releaseProfiles>
+                    </configuration>
                 </plugin>
                 <!-- Maven Source Plugin -->
                 <plugin>
@@ -166,6 +95,9 @@
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-resources-plugin</artifactId>
                     <version>${resource.plugin.version}</version>
+                    <configuration>
+                        <encoding>UTF-8</encoding>
+                    </configuration>
                 </plugin>
                 <!-- Maven Jar Plugin -->
                 <plugin>
@@ -180,8 +112,14 @@
                 </plugin>
                 <!-- Maven Compiler Plugin -->
                 <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
                     <version>${compiler.plugin.version}</version>
+                    <configuration>
+                        <source>8</source>
+                        <target>8</target>
+                        <encoding>UTF-8</encoding>
+                    </configuration>
                 </plugin>
 
                 <!-- Maven Clean Plugin -->
@@ -190,36 +128,6 @@
                     <artifactId>maven-clean-plugin</artifactId>
                     <version>${clean.plugin.version}</version>
                 </plugin>
-                <!-- Maven Installer Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-install-plugin</artifactId>
-                    <version>${installer.plugin.version}</version>
-                </plugin>
-                <!-- Maven Surefire Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>${surfire.plugin.version}</version>
-                </plugin>
-                <!-- Maven Failsafe Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-failsafe-plugin</artifactId>
-                    <version>${failsafe.plugin.version}</version>
-                </plugin>
-                <!-- Maven Deploy Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-deploy-plugin</artifactId>
-                    <version>${deploy.plugin.version}</version>
-                </plugin>
-                <!-- Apache Sling Plugin -->
-                <plugin>
-                    <groupId>org.apache.sling</groupId>
-                    <artifactId>maven-sling-plugin</artifactId>
-                    <version>${sling.plugin.version}</version>
-                </plugin>
                 <!-- Content Package Plugin -->
                 <plugin>
                     <groupId>org.apache.jackrabbit</groupId>
@@ -231,19 +139,6 @@
                         <force>true</force>
                     </configuration>
                 </plugin>
-                <plugin>
-                    <groupId>io.wcm.maven.plugins</groupId>
-                    <artifactId>wcmio-content-package-maven-plugin</artifactId>
-                    <version>${wcmio.plugin.version}</version>
-                    <configuration>
-                        <serviceURL>http://${sling.host}:${sling.port}/bin/cpm/</serviceURL>
-                        <userId>${sling.user}</userId>
-                        <password>${sling.password}</password>
-                        <failOnMissingEmbed>true</failOnMissingEmbed>
-                        <force>true</force>
-                        <group>cpconverter</group>
-                    </configuration>
-                </plugin>
                 <!-- Apache Felix Bundle Plugin -->
                 <plugin>
                     <groupId>org.apache.felix</groupId>
@@ -251,18 +146,6 @@
                     <version>${bundle.plugin.version}</version>
                     <inherited>true</inherited>
                 </plugin>
-                <!-- Maven Dependency Plugin -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <version>${dependency.plugin.version}</version>
-                </plugin>
-                <!-- Build Helper Maven Plugin -->
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>${build.helper.plugin.version}</version>
-                </plugin>
             </plugins>
         </pluginManagement>
     </build>
@@ -272,6 +155,12 @@
     <!-- ====================================================================== -->
     <dependencyManagement>
         <dependencies>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.feature.cpconverter</artifactId>
+                <version>${org.apache.sling.feature.cpconverter.version}</version>
+            </dependency>
+
             <!-- OSGi Dependencies -->
             <dependency>
                 <groupId>org.osgi</groupId>
@@ -318,14 +207,6 @@
                 <scope>provided</scope>
             </dependency>
 
-            <!-- dependency injection annotations -->
-            <dependency>
-                <groupId>javax.inject</groupId>
-                <artifactId>javax.inject</artifactId>
-                <version>$[javax.inject.version</version>
-                <scope>provided</scope>
-            </dependency>
-
             <!-- JCR API -->
             <dependency>
                 <groupId>javax.jcr</groupId>
@@ -342,13 +223,6 @@
                 <scope>provided</scope>
             </dependency>
 
-            <dependency>
-                <groupId>org.jetbrains</groupId>
-                <artifactId>annotations</artifactId>
-                <version>${jetbrains.annotations.version}</version>
-                <scope>provided</scope>
-            </dependency>
-
             <!-- Apache Sling Dependencies -->
             <dependency>
                 <groupId>org.apache.sling</groupId>
@@ -358,18 +232,6 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.settings</artifactId>
-                <version>${sling.settings.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>org.apache.sling.commons.osgi</artifactId>
-                <version>${sling.commons.osgi.version}</version>
-                <scope>provided</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.sling</groupId>
                 <artifactId>org.apache.sling.models.api</artifactId>
                 <version>${sling.models.api.version}</version>
                 <scope>provided</scope>
@@ -396,23 +258,7 @@
                 <version>4.12</version>
                 <scope>test</scope>
             </dependency>
-            <dependency>
-                <groupId>org.jmock</groupId>
-                <artifactId>jmock-junit4</artifactId>
-                <version>${jmock-junit4.version}</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-simple</artifactId>
-                <version>1.7.6</version>
-                <scope>test</scope>
-            </dependency>
         </dependencies>
     </dependencyManagement>
-    <modules>
-        <module>core</module>
-        <module>ui.apps</module>
-    </modules>
 </project>
  
diff --git a/src/site/markdown/usage.md.vm b/src/site/markdown/usage.md.vm
index 0c63fc9..253167f 100644
--- a/src/site/markdown/usage.md.vm
+++ b/src/site/markdown/usage.md.vm
@@ -6,7 +6,16 @@
 #set($sp2 = '${{')
 #set($sp3 = '${{{')
 #set($ep = '}')
-
+## Version for the JCR Packageinit
+#set($jpiv = '0.0.1-SNAPSHOT')
+## Version for the Slingfeature Maven Plugin
+#set($sfmpv = '1.1.12')
+## Version for the Sling Feature Extension Content
+#set($sfecv = '1.0.5-SNAPSHOT')
+## Version for the Sling Feature Launcher
+#set($sflv = '1.1.0')
+## Version for this Plugin (Sling Feature Converter Maven Plugin)
+#set($sfcmpv = '1.0.0-SNAPSHOT')
 
 $h2 Usage
 
@@ -37,7 +46,7 @@ the project is launched:
     <dependency>
         <groupId>org.apache.sling</groupId>
         <artifactId>org.apache.sling.jcr.packageinit</artifactId>
-        <version>0.0.1-SNAPSHOT</version>
+        <version>${jpiv}</version>
     </dependency>
 ...
 </dependencies>
@@ -53,7 +62,7 @@ here is placed in the **src/main/resouces/fm** folder named **sling_packageinit.
     },
     "bundles":[
         {
-            "id":"org.apache.sling:org.apache.sling.jcr.packageinit:0.0.1-SNAPSHOT",
+            "id":"org.apache.sling:org.apache.sling.jcr.packageinit:${jpiv}",
             "start-level":"10"
         }
     ]
@@ -172,7 +181,7 @@ be relative to the basedir and cannot be absolute):
         <plugin>
             <groupId>org.apache.sling</groupId>
             <artifactId>slingfeature-maven-plugin</artifactId>
-            <version>1.0.7-SNAPSHOT</version>
+            <version>${sfmpv}</version>
             <extensions>true</extensions>
             <configuration>
                 <features>target/fm</features>
@@ -246,7 +255,7 @@ if the project is buil with goal **install** and profile **launch** (mvn install
                 <plugin>
                     <groupId>org.apache.sling</groupId>
                     <artifactId>slingfeature-maven-plugin</artifactId>
-                    <version>1.0.7-SNAPSHOT</version>
+                    <version>${sfmpv}</version>
                     <extensions>true</extensions>
                         <dependencies>
                             <!-- For now the Extension Content has to be placed ahead of the launcher to make CP
@@ -254,12 +263,12 @@ if the project is buil with goal **install** and profile **launch** (mvn install
                             <dependency>
                                 <groupId>org.apache.sling</groupId>
                                 <artifactId>org.apache.sling.feature.extension.content</artifactId>
-                                <version>1.0.5-SNAPSHOT</version>
+                                <version>${sfecv}</version>
                             </dependency>
                             <dependency>
                                 <groupId>org.apache.sling</groupId>
                                 <artifactId>org.apache.sling.feature.launcher</artifactId>
-                                <version>1.0.7-SNAPSHOT</version>
+                                <version>${sflv}</version>
                             </dependency>
                         </dependencies>
                         <executions>
@@ -332,7 +341,7 @@ First in each Content Package module add this plugin configuration to your POM i
 </plugin>
 ```
 
-* **sling-feature-converter-maven-plugin.version**: is a property with the version of this plugin to be used (1.0.0-SNAPSHOT for now)
+* **sling-feature-converter-maven-plugin.version**: is a property with the version of this plugin to be used (${sfcmpv} for now)
 * **artifactIdOverride**: This should match the Maven Id with this pattern: 'groupId':'artifactId':'type fixed to slingosgifeature':'classifier':'version'
 * **installConvertedCP**: must be set to true otherwise I cannot be assembled later
 * **convertedCPOutput/fmOutput/fmPrefix**: adjust to your preferences


[sling-feature-converter-maven-plugin] 14/23: Another attempt to fix the IT test failures by restricting the ITs to only run the root poms

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit d7a7bac5b0b057d657fe189a035cb8e2459914e0
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Thu Jan 9 14:43:49 2020 -0800

    Another attempt to fix the IT test failures by restricting the ITs to only run the root poms
---
 pom.xml                                                          | 4 +---
 .../package-with-single-bundle-target-mode/fm.launcher/pom.xml   | 4 ++--
 src/it/package-with-single-bundle-target-mode/verify.bsh         | 8 +++++---
 .../package-with-single-bundle-with-parameters/ui.apps/pom.xml   | 4 ++--
 src/it/package-with-single-bundle-with-parameters/verify.bsh     | 9 +++++----
 5 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/pom.xml b/pom.xml
index 3163058..9a6e6eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -124,10 +124,8 @@
                     <debug>true</debug>
                     <projectsDirectory>src/it</projectsDirectory>
                     <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
-<!-- TODO: it would great to install the test artifacts locally but this will only work if CP Converter is released -> Activate when it is released-->
-<!--                    <localRepositoryPath>${project.build.directory}/it-repo</localRepositoryPath>-->
                     <pomIncludes>
-                        <pomInclude>**/pom.xml</pomInclude>
+                        <pomInclude>*/pom.xml</pomInclude>
                     </pomIncludes>
                     <postBuildHookScript>verify</postBuildHookScript>
                     <scriptVariables>
diff --git a/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml b/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
index 2867649..d7b7efe 100644
--- a/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
@@ -65,8 +65,8 @@
                             <goal>convert-cp</goal>
                         </goals>
                         <configuration>
-                            <!-- NOTE: ${} is replaced no matter what so this trick seems to work by adding a zero-width-whitespace character (&#8203;)-->
-                            <artifactIdOverride>$&#8203;{project.groupId}:$&#8203;{project.artifactId}:slingosgifeature:@project.artifactId@:$&#8203;{project.version}</artifactIdOverride>
+                            <!-- On some systems the trick with the zero-width (&#8203;) space does not work so we do test it w/o place holders -->
+                            <artifactIdOverride>${project.groupId}:${project.artifactId}:slingosgifeature:@project.artifactId@:${project.version}</artifactIdOverride>
                             <installConvertedPackage>true</installConvertedPackage>
                             <contentPackages>
                                 <contentPackage>
diff --git a/src/it/package-with-single-bundle-target-mode/verify.bsh b/src/it/package-with-single-bundle-target-mode/verify.bsh
index 91cbfc5..9a9d11e 100644
--- a/src/it/package-with-single-bundle-target-mode/verify.bsh
+++ b/src/it/package-with-single-bundle-target-mode/verify.bsh
@@ -19,8 +19,10 @@ import java.util.*;
 import org.codehaus.plexus.util.*;
 
     boolean check() {
-        String projectName = "sling-feature-converter-maven-plugin-test-target-mode.ui.apps";
-        String projectCoreName = "sling-feature-converter-maven-plugin-test-target-mode.core";
+        String projectArtifact = "sling-feature-converter-maven-plugin-test-target-mode";
+        String projectName = projectArtifact + ".ui.apps";
+        String projectCoreName = projectArtifact + ".core";
+        String projectFMLauncherName = projectArtifact + ".fm.launcher";
         // These are <scriptVariables/> provided by the plugin POM
         String projectVersion = plugin.version;
         String projectGroup = plugin.group;
@@ -47,7 +49,7 @@ import org.codehaus.plexus.util.*;
         String log = FileUtils.fileRead(featureModelFile);
         System.out.println("Feature Model File Content: " + log);
         String[] values = {
-            "\"id\":\"$​{project.groupId}:$​{project.artifactId}:slingosgifeature:sling-feature-converter-maven-plugin:$​{project.version}\"",
+            "\"id\":\"" + projectGroup + ":" + projectFMLauncherName + ":slingosgifeature:sling-feature-converter-maven-plugin:" + projectVersion + "\"",
             "\"bundles\":[",
             "\"id\":\"" + projectGroup + ":" + projectCoreName + ":" + projectVersion + "\"",
             "\"content-packages:ARTIFACTS|true\":[",
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
index a70eff0..5f4806c 100644
--- a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
@@ -80,8 +80,8 @@
                             <goal>convert-cp</goal>
                         </goals>
                         <configuration>
-                            <!-- NOTE: ${} is replaced no matter what so this trick seems to work by adding a zero-width-whitespace character (&#8203;)-->
-                            <artifactIdOverride>$&#8203;{project.groupId}:$&#8203;{project.artifactId}:slingosgifeature:@project.artifactId@:$&#8203;{project.version}</artifactIdOverride>
+                            <!-- On some systems the trick with the zero-width (&#8203;) space does not work so we do test it w/o place holders -->
+                            <artifactIdOverride>${project.groupId}:${project.artifactId}:slingosgifeature:@project.artifactId@:${project.version}</artifactIdOverride>
                             <installConvertedPackage>true</installConvertedPackage>
                         </configuration>
                     </execution>
diff --git a/src/it/package-with-single-bundle-with-parameters/verify.bsh b/src/it/package-with-single-bundle-with-parameters/verify.bsh
index 8531f76..b0aa115 100644
--- a/src/it/package-with-single-bundle-with-parameters/verify.bsh
+++ b/src/it/package-with-single-bundle-with-parameters/verify.bsh
@@ -19,11 +19,12 @@ import java.util.*;
 import org.codehaus.plexus.util.*;
 
     boolean check() {
-        String projectName = "sling-feature-converter-maven-plugin-test-with-param.ui.apps";
-        String projectCoreName = "sling-feature-converter-maven-plugin-test-with-param.core";
+        String projectArtifact = "sling-feature-converter-maven-plugin-test-with-param";
+        String projectName = projectArtifact + ".ui.apps";
+        String projectCoreName = projectArtifact + ".core";
         // These are <scriptVariables/> provided by the plugin POM
-        String projectVersion = plugin.version;
         String projectGroup = plugin.group;
+        String projectVersion = plugin.version;
         String projectGroupPath = projectGroup.replaceAll("\\.", "/");
 
         File targetFolder = new File(basedir, "ui.apps/target");
@@ -46,7 +47,7 @@ import org.codehaus.plexus.util.*;
         String log = FileUtils.fileRead(featureModelFile);
         System.out.println("Feature Model File Content: " + log);
         String[] values = {
-            "\"id\":\"$​{project.groupId}:$​{project.artifactId}:slingosgifeature:sling-feature-converter-maven-plugin:$​{project.version}\"",
+            "\"id\":\"" + projectGroup + ":" + projectName + ":slingosgifeature:sling-feature-converter-maven-plugin:" + projectVersion + "\"",
             "\"bundles\":[",
             "\"id\":\"" + projectGroup + ":" + projectCoreName + ":" + projectVersion + "\"",
             "\"content-packages:ARTIFACTS|true\":[",


[sling-feature-converter-maven-plugin] 13/23: Trying to fix a weird issue with the Integration Tests as they fail on some computers

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit ecb7f17583287df4a95f8ce1ca58be84d5346907
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Thu Jan 9 12:05:29 2020 -0800

    Trying to fix a weird issue with the Integration Tests as they fail on some computers
    
    Also move the IT test repo into a project local folder to avoid soiling the developers’ repos.
---
 pom.xml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pom.xml b/pom.xml
index 5a3f495..3163058 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,6 +119,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-invoker-plugin</artifactId>
+                <version>3.2.1</version>
                 <configuration>
                     <debug>true</debug>
                     <projectsDirectory>src/it</projectsDirectory>
@@ -134,6 +135,7 @@
                         <!-- The version of the test version which should match the plugin version but maybe off during a release -->
                         <plugin.version>1.0.2</plugin.version>
                     </scriptVariables>
+                    <localRepositoryPath>${project.build.directory}/it-repo</localRepositoryPath>
                 </configuration>
                 <executions>
                     <execution>


[sling-feature-converter-maven-plugin] 15/23: Minor README tweaks + add repository topics via .asf.yaml

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 8271900bef5aab28bf4c9ab2a50087f217943154
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Fri Jan 10 11:24:09 2020 +0100

    Minor README tweaks + add repository topics via .asf.yaml
---
 .asf.yaml |  7 +++++++
 README.md | 10 +++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..42fb2d8
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,7 @@
+github:
+  description: "Apache Sling Feature Converter Maven Plugin"
+  homepage: "https://sling.apache.org/"
+  labels:
+    - java
+    - sling
+    - maven
diff --git a/README.md b/README.md
index 451b2a0..3254d40 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
 
 This module is part of the [Apache Sling](https://sling.apache.org) project.
 
-This plugin provides the means to convert both Content Packages as well as
+This Apache Maven plugin provides the means to convert both Content Packages as well as
 Provisioning Models into Feature Models through a POM file.
 
 # Introduction
@@ -38,9 +38,9 @@ See the Site documentation for further info.
 
 ## Content Package Handling
 
-The installation of Converted Content Packages has be difficult at times.
+The installation of Converted Content Packages has been difficult at times.
 
-These are the things fo far that should help making this easier:
+These are the things so far that should help making this easier:
 1. Make sure that you use the latest code base
 2. Make sure that during the launch:
     1. Sling Feature Extension Content is added first as Plugin Dependency
@@ -48,8 +48,8 @@ These are the things fo far that should help making this easier:
     2. Add Sling Feature Launcher as Plugin Dependency afterwards
     3. Make sure that the **JCR Package Init** is added as Feature
        (see Site Documentation **Usage**)
-3. After Feature is up and running log into OSGi Console and check
-   **OSGi Installer** to make sure there are no **Untransformed
+3. After the Feature is up and running log into OSGi Console and check
+   the **OSGi Installer** page to make sure there are no **Untransformed
    Resources**
 4. During development make sure that the **Launcher** folder is deleted
    periodically to avoid side effects from previous launches
\ No newline at end of file


[sling-feature-converter-maven-plugin] 10/23: Test Version cannot match Plugin Version during a release

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 86ecb24f6b9eeb1cbc80abf407b872b9d098203a
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Fri Dec 20 15:59:57 2019 -0800

    Test Version cannot match Plugin Version during a release
---
 pom.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index cfb9837..3ccac7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -131,7 +131,8 @@
                     <postBuildHookScript>verify</postBuildHookScript>
                     <scriptVariables>
                         <plugin.group>${project.groupId}</plugin.group>
-                        <plugin.version>${project.version}</plugin.version>
+                        <!-- The version of the test version which should match the plugin version but maybe off during a release -->
+                        <plugin.version>1.0.2</plugin.version>
                     </scriptVariables>
                 </configuration>
                 <executions>


[sling-feature-converter-maven-plugin] 20/23: Update to latest feature model

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit d4acbbad6b0243fe70aaba3f52bfa7477a55425e
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Sep 22 10:39:38 2020 +0200

    Update to latest feature model
---
 pom.xml | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)

diff --git a/pom.xml b/pom.xml
index f459ac9..992d3db 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,10 +45,6 @@
         <jackrabbit-api.version>2.18.4</jackrabbit-api.version>
         <javax.json.version>1.0.4</javax.json.version>
         <org.apache.jackrabbit.vault.version>3.2.8</org.apache.jackrabbit.vault.version>
-        <org.apache.sling.feature.cpconverter.version>1.0.2</org.apache.sling.feature.cpconverter.version>
-        <org.apache.sling.feature.modelconverter.version>1.0.8</org.apache.sling.feature.modelconverter.version>
-        <org.apache.sling.feature.version>1.1.0</org.apache.sling.feature.version>
-        <org.apache.sling.provisioning.model.version>1.8.4</org.apache.sling.provisioning.model.version>
         <maven.version>3.5.0</maven.version>
         <maven.scm.version>1.11.1</maven.scm.version>
         <maven-artifact-transfer.version>0.11.0</maven-artifact-transfer.version>
@@ -164,27 +160,22 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.cpconverter</artifactId>
-            <version>${org.apache.sling.feature.cpconverter.version}</version>
+            <version>1.0.14</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.modelconverter</artifactId>
-            <version>${org.apache.sling.feature.modelconverter.version}</version>
+            <version>1.0.14</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature</artifactId>
-            <version>${org.apache.sling.feature.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.feature.io</artifactId>
-            <version>${org.apache.sling.feature.version}</version>
+            <version>1.2.8</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.provisioning.model</artifactId>
-            <version>${org.apache.sling.provisioning.model.version}</version>
+            <version>1.8.6</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jackrabbit</groupId>


[sling-feature-converter-maven-plugin] 07/23: Added the installation of the FM created by the converter if this plugin is used on a Content Package module

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit bba261319c4a08ce6fe2b0b43c213df97498470d
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Fri Nov 15 16:43:42 2019 -0800

    Added the installation of the FM created by the converter if this plugin is used on a Content Package module
---
 .../cpconverter/maven/mojos/ContentPackage.java    |  38 ++++++--
 .../cpconverter/maven/mojos/ConvertCPMojo.java     |  59 +++++++-----
 src/site/markdown/usage.md.vm                      | 100 ++++++++++++++++++++-
 3 files changed, 170 insertions(+), 27 deletions(-)

diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
index 0b2b36c..295f270 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
@@ -21,7 +21,9 @@ import org.apache.maven.project.MavenProject;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+import java.lang.reflect.Array;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Set;
@@ -38,12 +40,14 @@ public class ContentPackage {
      */
     private String artifactId = "";
 
-    private String type = "zip";
+    private List<String> types = new ArrayList(Arrays.asList("zip"));
 
     // TODO: Classifier should not be set as we have the one from the converter
     private String classifier = "";
 
     private boolean excludeTransitive;
+
+    private boolean moduleIsContentPackage;
     
     public void setGroupId(String groupId) {
         this.groupId = groupId == null ? "" : groupId;
@@ -60,7 +64,20 @@ public class ContentPackage {
     public boolean isExcludeTransitive() {
         return excludeTransitive;
     }
-    
+
+    public void setModuleIsContentPackage(boolean moduleIsContentPackage) {
+        this.moduleIsContentPackage = moduleIsContentPackage;
+        if(this.moduleIsContentPackage) {
+            types.add("content-package");
+        } else {
+            types.remove("content-package");
+        }
+    }
+
+    public boolean isModuleIsContentPackage() {
+        return moduleIsContentPackage;
+    }
+
     public Collection<Artifact> getMatchingArtifacts(final MavenProject project) {
         // get artifacts depending on whether we exclude transitives or not
         final Set<Artifact> artifacts;
@@ -73,15 +90,26 @@ public class ContentPackage {
             // all dependencies, transitives included
             artifacts = project.getArtifacts();
         }
+        // Add the project artifact itself to convert after building a content package
+        if(moduleIsContentPackage) {
+            Artifact projectArtifact = project.getArtifact();
+            System.out.println("Project Artifact: " + projectArtifact);
+            artifacts.add(projectArtifact);
+        }
         return getMatchingArtifacts(artifacts);
     }
 
     public Collection<Artifact> getMatchingArtifacts(final Collection<Artifact> artifacts) {
         final List<Artifact> matches = new ArrayList<Artifact>();
         for (Artifact artifact : artifacts) {
+            System.out.println("Check Artifact: " + artifact);
+            System.out.println("Check Artifact Group: " + artifact.getGroupId());
+            System.out.println("Check Artifact Artifact: " + artifact.getArtifactId());
+            System.out.println("Check Artifact Type: " + artifact.getType());
+            System.out.println("Check Artifact Classifier: " + artifact.getClassifier());
             if(groupId.equals(artifact.getGroupId())
                 && artifactId.equals(artifact.getArtifactId())
-                && type.equals(artifact.getType())
+                && types.contains(artifact.getType())
                 && (classifier.equals(artifact.getClassifier()) || (classifier.equals("") && artifact.getClassifier() == null))
             ) {
                 matches.add(artifact);
@@ -98,8 +126,8 @@ public class ContentPackage {
         builder.append("groupId=").append(groupId).append(",");
         builder.append("artifactId=").append(artifactId).append(",");
 
-        if (type != null) {
-            builder.append("type=").append(type).append(",");
+        if (types != null) {
+            builder.append("type='").append(types).append("',");
         }
         if (classifier != null) {
             builder.append("classifier=").append(classifier).append(",");
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
index 4638912..a7921c5 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
@@ -17,7 +17,9 @@
 package org.apache.sling.cpconverter.maven.mojos;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Mojo;
@@ -78,6 +80,8 @@ public final class ConvertCPMojo
 
     public static final String CFG_CONTENT_PACKAGES = "packages";
 
+    public static final String CFG_IS_CONTENT_PACKAGE = "isContentPackage";
+
     public static final boolean DEFAULT_STRING_VALIDATION = false;
 
     public static final boolean DEFAULT_MERGE_CONFIGURATIONS = false;
@@ -90,6 +94,8 @@ public final class ConvertCPMojo
 
     public static final String DEFAULT_FM_OUTPUT_DIRECTORY = DEFAULT_CONVERTED_CP_OUTPUT_DIRECTORY + "/fm.out";
 
+    public static final boolean DEFAULT_IS_CONTENT_PACKAGE = false;
+
     /**
      * If set to {@code true} the Content Package is strictly validated.
      */
@@ -151,6 +157,12 @@ public final class ConvertCPMojo
     @Parameter(property = CFG_CONTENT_PACKAGES)
     private List<ContentPackage> contentPackages;
 
+    /**
+     * If set to {@code true} the module is handled as Content Package
+     */
+    @Parameter(property = CFG_IS_CONTENT_PACKAGE, defaultValue = DEFAULT_IS_CONTENT_PACKAGE + "")
+    private boolean isContentPackage;
+
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         // Un-encode a given Artifact Override Id
@@ -207,18 +219,14 @@ public final class ConvertCPMojo
                 File targetFile = new File(targetPath);
                 if (targetFile.exists() && targetFile.isFile() && targetFile.canRead()) {
                     converter.convert(project.getArtifact().getFile());
-//                    Artifact convertedPackage = new DefaultArtifact(
-//                        project.getGroupId(), project.getArtifactId(), project.getVersion(),
-//                        "compile", ZIP_TYPE, PACKAGE_CLASSIFIER, artifactHandlerManager.getArtifactHandler(ZIP_TYPE)
-//                    );
-//                    installConvertedCP(convertedPackage);
                 } else {
                     getLog().error("Artifact is not found: " + targetPath);
                 }
             } else {
                 for(ContentPackage contentPackage: contentPackages) {
-                    getLog().info("Content Package Artifact File: " + contentPackage.toString());
+                    getLog().info("Content Package Artifact File: " + contentPackage.toString() + ", is module CP: " + isContentPackage);
                     contentPackage.setExcludeTransitive(true);
+                    contentPackage.setModuleIsContentPackage(isContentPackage);
                     final Collection<Artifact> artifacts = contentPackage.getMatchingArtifacts(project);
                     if (artifacts.isEmpty()) {
                         getLog().warn("No matching artifacts for " + contentPackage);
@@ -227,6 +235,7 @@ public final class ConvertCPMojo
                     getLog().info("Target Convert CP of --- " + contentPackage + " ---");
                     for (final Artifact artifact : artifacts) {
                         final File source = artifact.getFile();
+                        getLog().info("Artifact: '" + artifact + "', source file: '" + source + "'");
                         if (source.exists() && source.isFile() && source.canRead()) {
                             converter.convert(source);
                             Artifact convertedPackage = new DefaultArtifact(
@@ -258,6 +267,9 @@ public final class ConvertCPMojo
                 File destFolder = new File(userHome, ".m2/repository");
                 if(destFolder.isDirectory()) {
                     copyFiles(convertedCPOutput, destFolder);
+                    if(isContentPackage) {
+                        installFMDescriptor(project.getArtifact());
+                    }
                 }
             }
         }
@@ -312,24 +324,29 @@ public final class ConvertCPMojo
         }
     }
 
-    private void installConvertedCP(Artifact artifact) throws MojoFailureException, MojoExecutionException {
+    private void installFMDescriptor(Artifact artifact) {
         if(installConvertedCP) {
             Collection<Artifact> artifacts = Collections.synchronizedCollection(new ArrayList<>());
-            // Rebuild the converted package path
-            String convertedPackagePath = artifact.getGroupId().replaceAll("\\.", "/")
-                + "/" + artifact.getArtifactId()
-                + "/" + artifact.getVersion()
-                + "/" + artifact.getArtifactId()
-                + "-" + artifact.getVersion()
-                + "-" + PACKAGE_CLASSIFIER
-                + "." + ZIP_TYPE;
-            File convertedPackageFile = new File(convertedCPOutput, convertedPackagePath);
-            if(convertedPackageFile.exists() && convertedPackageFile.canRead()) {
-                artifact.setFile(convertedPackageFile);
-                artifacts.add(artifact);
-                installArtifact(mavenSession.getProjectBuildingRequest(), artifacts);
+            // Source FM Descriptor File Path
+            String fmDescriptorFilePath = fmPrefix + artifact.getArtifactId() + ".json";
+            File fmDescriptorFile = new File(fmOutput, fmDescriptorFilePath);
+            if(fmDescriptorFile.exists() && fmDescriptorFile.canRead()) {
+                // Need to create a new Artifact Handler for the different extension and an Artifact to not
+                // change the module artifact
+                DefaultArtifactHandler fmArtifactHandler = new DefaultArtifactHandler("slingosgifeature");
+                DefaultArtifact fmArtifact = new DefaultArtifact(
+                    artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(),
+                    artifact.getScope(), "slingosgifeature", artifact.getArtifactId(), fmArtifactHandler
+                );
+                fmArtifact.setFile(fmDescriptorFile);
+                artifacts.add(fmArtifact);
+                try {
+                    installArtifact(mavenSession.getProjectBuildingRequest(), artifacts);
+                } catch (MojoFailureException | MojoExecutionException e) {
+                    getLog().error("Failed to install FM Descriptor", e);
+                }
             } else {
-                getLog().error("xCould not find Converted Package: " + convertedPackageFile);
+                getLog().error("Could not find FM Descriptor File: " + fmDescriptorFile);
             }
         }
     }
diff --git a/src/site/markdown/usage.md.vm b/src/site/markdown/usage.md.vm
index c6118c3..0c63fc9 100644
--- a/src/site/markdown/usage.md.vm
+++ b/src/site/markdown/usage.md.vm
@@ -10,7 +10,7 @@
 
 $h2 Usage
 
-$h3 Converting Sling, Project Content Packages and Lauch it
+$h3 Converting Sling, Project Content Packages and Launch it
 
 **Note**: In this sample we use Maven variables like **project.groupId** instead of a static value assuming
 that the project is within the same project that creates the content packages. Adjust that as needed.
@@ -291,3 +291,101 @@ mvn \
     install \
     -P launch
 ```
+
+$h3 Converting a Content Package and Install its Feature Model Descriptor
+
+Instead of building everything local in a dedicated Maven module now each Content Project Module
+can install their generated Feature Module descriptor into the local Maven repository so that it
+can be **included as artifact** when the FM project is assembled.
+
+First in each Content Package module add this plugin configuration to your POM in the **build** section:
+
+```
+<plugin>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-feature-converter-maven-plugin</artifactId>
+    <version>${sp}sling-feature-converter-maven-plugin.version}</version>
+    <extensions>true</extensions>
+    <executions>
+        <execution>
+            <id>convert-cp</id>
+            <phase>verify</phase>
+            <goals>
+                <goal>convert-cp</goal>
+            </goals>
+            <configuration>
+                <artifactIdOverride>${sp}project.groupId}:${sp}project.artifactId}:slingosgifeature:${sp3}filename}}}:${sp}project.version}</artifactIdOverride>
+                <installConvertedCP>true</installConvertedCP>
+                <convertedCPOutput>${sp}project.build.directory}/fm.out</convertedCPOutput>
+                <fmOutput>${sp}project.build.directory}/fm</fmOutput>
+                <fmPrefix>peregrine-</fmPrefix>
+                <isContentPackage>true</isContentPackage>
+                <contentPackages>
+                    <contentPackage>
+                        <groupId>${sp}project.groupId}</groupId>
+                        <artifactId>${sp}project.artifactId}</artifactId>
+                    </contentPackage>
+                </contentPackages>
+            </configuration>
+        </execution>
+    </executions>
+</plugin>
+```
+
+* **sling-feature-converter-maven-plugin.version**: is a property with the version of this plugin to be used (1.0.0-SNAPSHOT for now)
+* **artifactIdOverride**: This should match the Maven Id with this pattern: 'groupId':'artifactId':'type fixed to slingosgifeature':'classifier':'version'
+* **installConvertedCP**: must be set to true otherwise I cannot be assembled later
+* **convertedCPOutput/fmOutput/fmPrefix**: adjust to your preferences
+* **isContentPackage**: must be set to true
+* **contentPackage**: must match the module's properties (later we might remove this)
+
+After a successful build one can check the installation by going to your local Maven repository, got to the location of you artifact and
+check if there is a file with the extension **slingosgifeature**.
+
+Now we can go to the Assembly part and add the FM installed locally as artifact:
+
+```
+<plugin>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>slingfeature-maven-plugin</artifactId>
+    <version>${slingfeature-maven-plugin.version}</version>
+    <extensions>true</extensions>
+    <configuration>
+        <features>target/fm</features>
+        <generatedFeatures>${basedir}/target/fm</generatedFeatures>
+    </configuration>
+    <executions>
+        <execution>
+            <id>aggregate-base-feature</id>
+            <phase>generate-test-sources</phase>
+            <goals>
+                <goal>aggregate-features</goal>
+            </goals>
+            <configuration>
+                <aggregates>
+                    <aggregate>
+                        <classifier>example-runtime</classifier>
+                        <filesInclude>**/*.json</filesInclude>
+                        <configurationOverrides>*=USE_LATEST</configurationOverrides>
+                        <includeArtifact>
+                            <groupId>${project.groupId}</groupId>
+                            <artifactId>base.ui.apps</artifactId>
+                            <version>${project.version}</version>
+                            <classifier>base.ui.apps</classifier>
+                            <type>slingosgifeature</type>
+                        </includeArtifact>
+                        ...
+                    </aggregate>
+                </aggregates>
+            </configuration>
+        </execution>
+    </executions>
+</plugin>
+```
+
+* **slingfeature-maven-plugin.version**: version of the sling feature maven plugin to be used
+* **features/generatedFeatures**: add/set depending on your project
+* **classifier/filesInclude/configurationOverrides**: set depending on your project
+* **includeArtifact**: one entry per Content Package FM. The **groupId**, **artifactId**, **version** and **classifier**
+    must match your FM descriptor
+


[sling-feature-converter-maven-plugin] 06/23: Updated Git Ignores

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 69b4b9b001653b6745c8a3ac5d30b9ae1aa96558
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Thu Sep 5 11:58:49 2019 -0700

    Updated Git Ignores
---
 .gitignore | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5b783ed
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,17 @@
+/target
+.idea
+.classpath
+.metadata
+.project
+.settings
+.externalToolBuilders
+maven-eclipse.xml
+*.swp
+*.iml
+*.ipr
+*.iws
+*.bak
+.vlt
+.DS_Store
+jcr.log
+atlassian-ide-plugin.xml


[sling-feature-converter-maven-plugin] 16/23: [maven-release-plugin] prepare release sling-feature-converter-maven-plugin-1.0.4

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit cfb25fda91614592c1f496d4fe983dbff1c11a73
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Fri Jan 10 11:13:17 2020 -0800

    [maven-release-plugin] prepare release sling-feature-converter-maven-plugin-1.0.4
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 9a6e6eb..e640068 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin</artifactId>
-    <version>1.0.3-SNAPSHOT</version>
+    <version>1.0.4</version>
     <packaging>maven-plugin</packaging>
 
     <name>Apache Sling Feature Model Converter Plugin</name>
@@ -35,7 +35,7 @@
         <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</connection>
         <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</developerConnection>
         <url>https://gitbox.apache.org/repos/asf?p=sling-feature-converter-maven-plugin.git</url>
-        <tag>HEAD</tag>
+        <tag>sling-feature-converter-maven-plugin-1.0.4</tag>
     </scm>
 
     <properties>


[sling-feature-converter-maven-plugin] 05/23: Updated Sling Feature dependencies to the latest release and extracted all version numbers into properties

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit e77c1099d47bf5fd442c43caf61f4ec45a80cfa0
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Thu Sep 5 11:45:50 2019 -0700

    Updated Sling Feature dependencies to the latest release and extracted all version numbers into properties
---
 pom.xml | 50 ++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 36 insertions(+), 14 deletions(-)

diff --git a/pom.xml b/pom.xml
index 55be6db..718832c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,8 +33,21 @@
 
     <properties>
         <sling.java.version>8</sling.java.version>
+        <plexus-component-metadata.version>1.7.1</plexus-component-metadata.version>
+        <jackrabbit-spi-commons.version>2.19.1</jackrabbit-spi-commons.version>
+        <jackrabbit-api.version>2.19.3</jackrabbit-api.version>
+        <javax.json.version>1.0.4</javax.json.version>
+        <org.apache.jackrabbit.vault.version>3.2.8</org.apache.jackrabbit.vault.version>
+        <org.apache.sling.feature.cpconverter.version>0.0.1-SNAPSHOT</org.apache.sling.feature.cpconverter.version>
+        <org.apache.sling.feature.modelconverter.version>1.0.8</org.apache.sling.feature.modelconverter.version>
+        <org.apache.sling.feature.version>1.1.0</org.apache.sling.feature.version>
+        <org.apache.sling.provisioning.model.version>1.8.4</org.apache.sling.provisioning.model.version>
         <maven.version>3.5.0</maven.version>
         <maven.scm.version>1.11.1</maven.scm.version>
+        <maven-artifact-transfer.version>0.11.0</maven-artifact-transfer.version>
+        <maven-plugin-annotations.version>3.5</maven-plugin-annotations.version>
+        <plexus-archiver.version>3.5</plexus-archiver.version>
+        <mockito-all.version>1.10.19</mockito-all.version>
         <maven.site.path>${project.artifactId}-archives/${project.artifactId}-LATEST</maven.site.path>
     </properties>
 
@@ -43,7 +56,7 @@
             <plugin>
                 <groupId>org.codehaus.plexus</groupId>
                 <artifactId>plexus-component-metadata</artifactId>
-                <version>1.7.1</version>
+                <version>${plexus-component-metadata.version}</version>
                 <executions>
                     <execution>
                         <id>generate-metadata</id>
@@ -128,44 +141,53 @@
         <dependency>
             <groupId>javax.jcr</groupId>
             <artifactId>jcr</artifactId>
-            <version>2.0</version>
             <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.jackrabbit</groupId>
             <artifactId>jackrabbit-spi-commons</artifactId>
-            <version>2.19.1</version>
+            <version>${jackrabbit-spi-commons.version}</version>
             <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.cpconverter</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
+            <version>${org.apache.sling.feature.cpconverter.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.modelconverter</artifactId>
-            <version>1.0.8</version>
+            <version>${org.apache.sling.feature.modelconverter.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature</artifactId>
-            <version>1.0.7-SNAPSHOT</version>
+            <version>${org.apache.sling.feature.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.io</artifactId>
-            <version>1.0.7-SNAPSHOT</version>
+            <version>${org.apache.sling.feature.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.provisioning.model</artifactId>
+            <version>${org.apache.sling.provisioning.model.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-api</artifactId>
+            <version>${jackrabbit-api.version}</version>
         </dependency>
         <dependency>
             <groupId>org.glassfish</groupId>
             <artifactId>javax.json</artifactId>
-            <version>1.0.4</version>
+            <version>${javax.json.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jackrabbit.vault</groupId>
             <artifactId>org.apache.jackrabbit.vault</artifactId>
-            <version>3.2.8</version>
+            <version>${org.apache.jackrabbit.vault.version}</version>
             <scope>runtime</scope>
         </dependency>
 
@@ -187,7 +209,7 @@
         <dependency>
             <groupId>org.apache.maven.shared</groupId>
             <artifactId>maven-artifact-transfer</artifactId>
-            <version>0.11.0</version>
+            <version>${maven-artifact-transfer.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>
@@ -197,24 +219,24 @@
         <dependency>
             <groupId>org.apache.maven.plugin-tools</groupId>
             <artifactId>maven-plugin-annotations</artifactId>
-            <version>3.5</version>
+            <version>${maven-plugin-annotations.version}</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.codehaus.plexus</groupId>
             <artifactId>plexus-archiver</artifactId>
-            <version>3.5</version>
+            <version>${plexus-archiver.version}</version>
         </dependency>
         <dependency>
             <groupId>com.google.code.findbugs</groupId>
             <artifactId>jsr305</artifactId>
-            <version>3.0.2</version>
         </dependency>
+
         <!-- testing -->
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-all</artifactId>
-            <version>1.10.19</version>
+            <version>${mockito-all.version}</version>
         </dependency>
         <dependency>
             <groupId>junit</groupId>


[sling-feature-converter-maven-plugin] 09/23: Adde SCM to POM and update Docu to the next release

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 3a6432fe8c4a3efe149d84f6b45c74c2d16df617
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Fri Dec 20 15:53:42 2019 -0800

    Adde SCM to POM and update Docu to the next release
---
 pom.xml                                                           | 7 +++++++
 src/it/package-with-single-bundle-no-parameters/core/pom.xml      | 2 +-
 src/it/package-with-single-bundle-no-parameters/pom.xml           | 2 +-
 src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml   | 2 +-
 src/it/package-with-single-bundle-target-mode/core/pom.xml        | 2 +-
 src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml | 2 +-
 src/it/package-with-single-bundle-target-mode/pom.xml             | 2 +-
 src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml     | 2 +-
 src/it/package-with-single-bundle-with-parameters/core/pom.xml    | 2 +-
 src/it/package-with-single-bundle-with-parameters/pom.xml         | 2 +-
 src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml | 2 +-
 src/it/setup-tests/pom.xml                                        | 2 +-
 src/site/markdown/usage.md.vm                                     | 2 +-
 13 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/pom.xml b/pom.xml
index 255fe33..cfb9837 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,13 @@
     </description>
     <url>https://sling.apache.org/components/sling-feature-converter-maven-plugin/</url>
 
+    <scm>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</developerConnection>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-feature-converter-maven-plugin.git</url>
+        <tag>HEAD</tag>
+    </scm>
+
     <properties>
         <sling.java.version>8</sling.java.version>
         <plexus-component-metadata.version>1.7.1</plexus-component-metadata.version>
diff --git a/src/it/package-with-single-bundle-no-parameters/core/pom.xml b/src/it/package-with-single-bundle-no-parameters/core/pom.xml
index 59061a4..87d94f2 100644
--- a/src/it/package-with-single-bundle-no-parameters/core/pom.xml
+++ b/src/it/package-with-single-bundle-no-parameters/core/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-no-param</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-no-param.core</artifactId>
diff --git a/src/it/package-with-single-bundle-no-parameters/pom.xml b/src/it/package-with-single-bundle-no-parameters/pom.xml
index 117b4c0..4152271 100644
--- a/src/it/package-with-single-bundle-no-parameters/pom.xml
+++ b/src/it/package-with-single-bundle-no-parameters/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-parent</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-no-param</artifactId>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml
index 98bcaad..ddea802 100644
--- a/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-no-param</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-no-param.ui.apps</artifactId>
diff --git a/src/it/package-with-single-bundle-target-mode/core/pom.xml b/src/it/package-with-single-bundle-target-mode/core/pom.xml
index 5dc538c..76052db 100644
--- a/src/it/package-with-single-bundle-target-mode/core/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/core/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-target-mode</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-target-mode.core</artifactId>
diff --git a/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml b/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
index 2c80ae7..2867649 100644
--- a/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-target-mode</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-target-mode.fm.launcher</artifactId>
diff --git a/src/it/package-with-single-bundle-target-mode/pom.xml b/src/it/package-with-single-bundle-target-mode/pom.xml
index f2d73b3..3d4c9f4 100644
--- a/src/it/package-with-single-bundle-target-mode/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-parent</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-target-mode</artifactId>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml
index dffa003..97ec58f 100644
--- a/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-target-mode</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-target-mode.ui.apps</artifactId>
diff --git a/src/it/package-with-single-bundle-with-parameters/core/pom.xml b/src/it/package-with-single-bundle-with-parameters/core/pom.xml
index 86dfd70..edec4b9 100644
--- a/src/it/package-with-single-bundle-with-parameters/core/pom.xml
+++ b/src/it/package-with-single-bundle-with-parameters/core/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-with-param</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-with-param.core</artifactId>
diff --git a/src/it/package-with-single-bundle-with-parameters/pom.xml b/src/it/package-with-single-bundle-with-parameters/pom.xml
index d80277a..78f29d0 100644
--- a/src/it/package-with-single-bundle-with-parameters/pom.xml
+++ b/src/it/package-with-single-bundle-with-parameters/pom.xml
@@ -17,7 +17,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-parent</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-with-param</artifactId>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
index c80a8da..a70eff0 100644
--- a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling-feature-converter-maven-plugin-test-with-param</artifactId>
-        <version>1.0.0-SNAPSHOT</version>
+        <version>1.0.2</version>
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin-test-with-param.ui.apps</artifactId>
diff --git a/src/it/setup-tests/pom.xml b/src/it/setup-tests/pom.xml
index 5c4977a..97dd5a7 100644
--- a/src/it/setup-tests/pom.xml
+++ b/src/it/setup-tests/pom.xml
@@ -17,7 +17,7 @@
     <groupId>org.apache.sling</groupId>
     <artifactId>sling-feature-converter-maven-plugin-test-parent</artifactId>
     <packaging>pom</packaging>
-    <version>1.0.0-SNAPSHOT</version>
+    <version>1.0.2</version>
 
     <name>Apache Sling Features Converter Maven Plugin test - Parent</name>
     <description>
diff --git a/src/site/markdown/usage.md.vm b/src/site/markdown/usage.md.vm
index 253167f..0d35249 100644
--- a/src/site/markdown/usage.md.vm
+++ b/src/site/markdown/usage.md.vm
@@ -15,7 +15,7 @@
 ## Version for the Sling Feature Launcher
 #set($sflv = '1.1.0')
 ## Version for this Plugin (Sling Feature Converter Maven Plugin)
-#set($sfcmpv = '1.0.0-SNAPSHOT')
+#set($sfcmpv = '1.0.2')
 
 $h2 Usage
 


[sling-feature-converter-maven-plugin] 03/23: Adjusted the Converted to the addition of the Prefix

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit fc8aec41b3e0448d69ef9625dec324b009be0765
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Wed Aug 21 07:00:41 2019 -0700

    Adjusted the Converted to the addition of the Prefix
---
 .../java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
index 98c0ebd..4638912 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
@@ -182,7 +182,7 @@ public final class ConvertCPMojo
                         bundleStartOrder,
                         fmOutput,
                         artifactIdOverride,
-//                        fmPrefix,
+                        fmPrefix,
                         properties
                     )
                 )


[sling-feature-converter-maven-plugin] 04/23: Cleaning up the POM dependencies and update the docu

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 638bd7143ec46d495ddd6f2edd21e70887f6e640
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Wed Aug 21 12:06:49 2019 -0700

    Cleaning up the POM dependencies and update the docu
---
 README.md                                          |  20 ++-
 pom.xml                                            | 144 ++-------------------
 .../maven/mojos/FeatureLauncherMojo.java           |  57 --------
 src/site/markdown/usage.md.vm                      |  47 ++++---
 4 files changed, 62 insertions(+), 206 deletions(-)

diff --git a/README.md b/README.md
index 09cdd5b..451b2a0 100644
--- a/README.md
+++ b/README.md
@@ -34,4 +34,22 @@ These Goals are support in this plugin:
 and its converted ZIP files
 * **convert-pom**: Converts Provisioning Models into Feature Models
 
-See the Site documentation for further info.
\ No newline at end of file
+See the Site documentation for further info.
+
+## Content Package Handling
+
+The installation of Converted Content Packages has be difficult at times.
+
+These are the things fo far that should help making this easier:
+1. Make sure that you use the latest code base
+2. Make sure that during the launch:
+    1. Sling Feature Extension Content is added first as Plugin Dependency
+       (any extension should be added before the Launcher)
+    2. Add Sling Feature Launcher as Plugin Dependency afterwards
+    3. Make sure that the **JCR Package Init** is added as Feature
+       (see Site Documentation **Usage**)
+3. After Feature is up and running log into OSGi Console and check
+   **OSGi Installer** to make sure there are no **Untransformed
+   Resources**
+4. During development make sure that the **Launcher** folder is deleted
+   periodically to avoid side effects from previous launches
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index dcc0832..55be6db 100644
--- a/pom.xml
+++ b/pom.xml
@@ -126,36 +126,10 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.core</artifactId>
-            <version>6.0.0</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-text</artifactId>
-            <version>1.6</version>
-        </dependency>
-         <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.converter</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.configurator</artifactId>
-            <version>1.0.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.commons.johnzon</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
             <groupId>javax.jcr</groupId>
             <artifactId>jcr</artifactId>
             <version>2.0</version>
-            <scope>compile</scope>
+            <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.jackrabbit</groupId>
@@ -170,38 +144,23 @@
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.feature.launcher</artifactId>
-            <version>1.0.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.modelconverter</artifactId>
-            <version>1.0.4</version>
+            <version>1.0.8</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature</artifactId>
-            <version>1.0.2</version>
+            <version>1.0.7-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.io</artifactId>
-            <version>1.0.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.feature.analyser</artifactId>
-            <version>1.0.2</version>
+            <version>1.0.7-SNAPSHOT</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.provisioning.model</artifactId>
-            <version>1.8.2</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.jackrabbit</groupId>
-            <artifactId>jackrabbit-api</artifactId>
-            <version>2.19.3</version>
+            <groupId>org.glassfish</groupId>
+            <artifactId>javax.json</artifactId>
+            <version>1.0.4</version>
         </dependency>
         <dependency>
             <groupId>org.apache.jackrabbit.vault</groupId>
@@ -209,6 +168,7 @@
             <version>3.2.8</version>
             <scope>runtime</scope>
         </dependency>
+
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-core</artifactId>
@@ -235,102 +195,20 @@
             <version>${maven.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-archiver</artifactId>
-            <version>3.3.0</version>
-        </dependency>
-        <dependency>
             <groupId>org.apache.maven.plugin-tools</groupId>
             <artifactId>maven-plugin-annotations</artifactId>
             <version>3.5</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-osgi</artifactId>
-            <version>0.2.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-interactivity-api</artifactId>
-            <version>1.0-alpha-6</version>
-        </dependency>
-        <dependency>
             <groupId>org.codehaus.plexus</groupId>
             <artifactId>plexus-archiver</artifactId>
             <version>3.5</version>
         </dependency>
         <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-utils</artifactId>
-            <version>3.0.24</version>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.framework</artifactId>
-            <version>1.9.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>versions-maven-plugin</artifactId>
-            <version>2.7</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.5</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-filtering</artifactId>
-            <version>3.1.1</version>
-        </dependency>
-        <!-- schema validation -->
-        <dependency>
-            <groupId>com.github.java-json-tools</groupId>
-            <artifactId>json-schema-validator</artifactId>
-            <version>2.2.10</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
-            <version>2.2.3</version>
-        </dependency>
-        <!-- APIs JARs -->
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.utils</artifactId>
-            <version>1.11.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.scm</groupId>
-            <artifactId>maven-scm-api</artifactId>
-            <version>${maven.scm.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.scm</groupId>
-            <artifactId>maven-scm-manager-plexus</artifactId>
-            <version>${maven.scm.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.scm</groupId>
-            <artifactId>maven-scm-provider-gitexe</artifactId>
-            <version>${maven.scm.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.scm</groupId>
-            <artifactId>maven-scm-provider-svnexe</artifactId>
-            <version>${maven.scm.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-model-builder</artifactId>
-            <version>3.6.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-exec</artifactId>
-            <version>1.3</version>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>jsr305</artifactId>
+            <version>3.0.2</version>
         </dependency>
         <!-- testing -->
         <dependency>
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/FeatureLauncherMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/FeatureLauncherMojo.java
deleted file mode 100644
index f29835d..0000000
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/FeatureLauncherMojo.java
+++ /dev/null
@@ -1,57 +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.
- */
-package org.apache.sling.cpconverter.maven.mojos;
-
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.sling.feature.launcher.impl.Main;
-
-import java.io.File;
-
-/**
- * Launches the given Feature File
- */
-@Mojo(
-    name = "launch-features",
-    requiresProject = true,
-    threadSafe = true
-)
-public final class FeatureLauncherMojo
-    extends AbstractBaseMojo
-{
-
-    public static final String CFG_FEATURE_FILE = "featureFile";
-
-    /**
-     * The path of the file that is launched here
-     */
-    @Parameter(property = CFG_FEATURE_FILE, required = true)
-    private File featureFile;
-
-    @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
-        if(!featureFile.isFile()) {
-            throw new MojoFailureException("Feature File is not a file: " + featureFile);
-        }
-        if(!featureFile.canRead()) {
-            throw new MojoFailureException("Feature File is cannot be read: " + featureFile);
-        }
-        Main.main(new String[] {"-f", featureFile.getAbsolutePath()});
-    }
-}
diff --git a/src/site/markdown/usage.md.vm b/src/site/markdown/usage.md.vm
index d520dcd..c6118c3 100644
--- a/src/site/markdown/usage.md.vm
+++ b/src/site/markdown/usage.md.vm
@@ -97,7 +97,7 @@ equivalent so that we can launch it together with the converter CP packages late
          <plugin>
             <groupId>org.apache.sling</groupId>
             <artifactId>sling-feature-converter-maven-plugin</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>${project.version}</version>
             <extensions>true</extensions>
             <executions>
                 <execution>
@@ -172,7 +172,7 @@ be relative to the basedir and cannot be absolute):
         <plugin>
             <groupId>org.apache.sling</groupId>
             <artifactId>slingfeature-maven-plugin</artifactId>
-            <version>1.0.5-SNAPSHOT</version>
+            <version>1.0.7-SNAPSHOT</version>
             <extensions>true</extensions>
             <configuration>
                 <features>target/fm</features>
@@ -187,6 +187,7 @@ Now we can aggregate, collect them into a single FM file (attach) and verify all
                     <phase>generate-test-sources</phase>
                     <goals>
                         <goal>aggregate-features</goal>
+                        <generatedFeatures>${sp}basedir}/target/fm</generatedFeatures>
                     </goals>
                     <configuration>
                         <aggregates>
@@ -245,20 +246,36 @@ if the project is buil with goal **install** and profile **launch** (mvn install
                 <plugin>
                     <groupId>org.apache.sling</groupId>
                     <artifactId>slingfeature-maven-plugin</artifactId>
-                    <version>${project.version}</version>
+                    <version>1.0.7-SNAPSHOT</version>
                     <extensions>true</extensions>
-                    <executions>
-                        <execution>
-                            <id>launch-it</id>
-                            <phase>install</phase>
-                            <goals>
-                                <goal>launch-features</goal>
-                            </goals>
-                            <configuration>
-                                <featureFile>${sp}project.build.directory${ep}/slingfeature-tmp/feature-example-runtime.json</featureFile>
-                            </configuration>
-                        </execution>
-                    </executions>
+                        <dependencies>
+                            <!-- For now the Extension Content has to be placed ahead of the launcher to make CP
+                                 deployment work (see SLING-8483) -->
+                            <dependency>
+                                <groupId>org.apache.sling</groupId>
+                                <artifactId>org.apache.sling.feature.extension.content</artifactId>
+                                <version>1.0.5-SNAPSHOT</version>
+                            </dependency>
+                            <dependency>
+                                <groupId>org.apache.sling</groupId>
+                                <artifactId>org.apache.sling.feature.launcher</artifactId>
+                                <version>1.0.7-SNAPSHOT</version>
+                            </dependency>
+                        </dependencies>
+                        <executions>
+                            <execution>
+                                <id>launch-it</id>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>launch-features</goal>
+                                </goals>
+                                <configuration>
+                                    <selection>
+                                        <includeClassifier>example-runtime</includeClassifier>
+                                    </selection>
+                                </configuration>
+                            </execution>
+                        </executions>
                 </plugin>
             </plugins>
         </build>


[sling-feature-converter-maven-plugin] 12/23: [maven-release-plugin] prepare for next development iteration

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 61d5b31b31eb7f76e6dfeba816beca0841f71cde
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Fri Dec 20 16:03:05 2019 -0800

    [maven-release-plugin] prepare for next development iteration
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index ce8a637..5a3f495 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin</artifactId>
-    <version>1.0.2</version>
+    <version>1.0.3-SNAPSHOT</version>
     <packaging>maven-plugin</packaging>
 
     <name>Apache Sling Feature Model Converter Plugin</name>
@@ -35,7 +35,7 @@
         <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</connection>
         <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</developerConnection>
         <url>https://gitbox.apache.org/repos/asf?p=sling-feature-converter-maven-plugin.git</url>
-        <tag>sling-feature-converter-maven-plugin-1.0.2</tag>
+        <tag>HEAD</tag>
     </scm>
 
     <properties>


[sling-feature-converter-maven-plugin] 18/23: Updating badges for feature-converter-maven-plugin

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 19cdeca70315552cf14ff0c43081642d38f379c2
Author: Radu Cotescu <co...@adobe.com>
AuthorDate: Mon Aug 24 18:37:27 2020 +0200

    Updating badges for feature-converter-maven-plugin
---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 3254d40..90a9ebe 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 [<img src="https://sling.apache.org/res/logos/sling.png"/>](https://sling.apache.org)
 
- [![Build Status](https://builds.apache.org/buildStatus/icon?job=Sling/sling-slingfeature-maven-plugin/master)](https://builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master) [![Test Status](https://img.shields.io/jenkins/t/https/builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master.svg)](https://builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master/test_results_analyzer/) [![Maven Central](https://maven-badges.herokuapp.com/ [...]
+ [![Build Status](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/badge/icon)](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/) [![Test Status](https://img.shields.io/jenkins/tests.svg?jobUrl=https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/)](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-mave [...]
 
 # Apache Sling Feature Converter Maven Plugin
 
@@ -52,4 +52,4 @@ These are the things so far that should help making this easier:
    the **OSGi Installer** page to make sure there are no **Untransformed
    Resources**
 4. During development make sure that the **Launcher** folder is deleted
-   periodically to avoid side effects from previous launches
\ No newline at end of file
+   periodically to avoid side effects from previous launches


[sling-feature-converter-maven-plugin] 23/23: Merge pull request #1 from bosschaert/SLING-9794

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 846d2097581db4988726429376818e2ffd753160
Merge: d4acbba bda5a6a
Author: David Bosschaert <da...@gmail.com>
AuthorDate: Wed Oct 7 11:43:14 2020 +0100

    Merge pull request #1 from bosschaert/SLING-9794
    
    SLING-9794 Content package artifacts found by maven plugin don't always have their 'file' attribute set

 .../cpconverter/maven/mojos/ContentPackage.java    | 69 +++++++++++++++++++---
 .../cpconverter/maven/mojos/ConvertCPMojo.java     | 14 ++++-
 2 files changed, 73 insertions(+), 10 deletions(-)


[sling-feature-converter-maven-plugin] 02/23: Updated the docu to reflect the latest changes

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit a4bfe9177165a5def62756b9c2572eb7c3018e9a
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Tue Aug 13 18:13:01 2019 -0700

    Updated the docu to reflect the latest changes
---
 README.md                     | 68 ++++++++++----------------------
 src/site/markdown/usage.md.vm | 91 ++++++++++++++++++++++---------------------
 2 files changed, 66 insertions(+), 93 deletions(-)

diff --git a/README.md b/README.md
index 8f46163..09cdd5b 100644
--- a/README.md
+++ b/README.md
@@ -2,64 +2,36 @@
 
  [![Build Status](https://builds.apache.org/buildStatus/icon?job=Sling/sling-slingfeature-maven-plugin/master)](https://builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master) [![Test Status](https://img.shields.io/jenkins/t/https/builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master.svg)](https://builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master/test_results_analyzer/) [![Maven Central](https://maven-badges.herokuapp.com/ [...]
 
-# Apache Sling Content Package to Feature Model Plugin
+# Apache Sling Feature Converter Maven Plugin
 
 This module is part of the [Apache Sling](https://sling.apache.org) project.
 
-Maven Plugin for Content Package to Feature Model Conversion:
+This plugin provides the means to convert both Content Packages as well as
+Provisioning Models into Feature Models through a POM file.
 
 # Introduction
 
-This plugin is intended for a content package to also provide a Feature Model
-and its converted package / bundle. This plugin will only work on Content
-Package ZIP files artifacts.
-
+This plugin is intended to convert:
+* Content Packages
+* Provisioning Models
+into Feature Models so that it can be used by the Sling Feature Maven
+Plugin to assemble and run.
+ 
 This plugin is a wrapper for the Sling Feature Content Package Converter
-**org.apache.sling.feature.cpconverter** over a content package the
-POM defines.
+**sling-org-apache-sling-feature-cpconverter** and the Sling Feature Model
+Converter **sling-org-apache-sling-feature-modelconveter** to convert
+source files into Feature Models inside a POM.
 
-The idea is to convert a Content Package at built time into a Feature
-Module so that it can be used both a regular Content Package in a
-traditional Sling Instance (Lauchpad) or in a Sling Instance in a Feature
-Model.
-The plugin will do the conversion and so a Content Package cna be used
-in a Feature Model w/o any changes in the Content Package.
+This plugin is normally used to convert Sling into its Feature Model
+version and to convert Content Packages into Feature Models so that they
+can be handled by the Sling Feature Maven Plugin and eventually launched.
 
 ## Supported goals
 
-This plugin has only one goal called **convert-cp** which takes a few
-parameters:
+These Goals are support in this plugin:
 
-* **strictValidation**:
-    if set to true this will force the plugin to do a strict
-    conversion. Checkout the Content Package 2 Feature
-    Model Converter tool. Default: **false**
-* **mergeConfigurations**:
-    if set to true if will merge configurations with
-    the same PID. Not sure if that makes sense in
-    this plugin. Default: **false**
-* **bundleStartOrder**:
-    The bundle start order of the generated Feature
-    Model. Default **20**
-* **artifactIdOverride**:
-    An FM Artifact Id that overrides the one that
-    is set by default. **Atttention**: to avoid the
-    variable substitution for **${}** please add
-    a zero-width whitespace (&#8203;) in between.
-* **featureModelsOutputDirectory**:
-    Output folder of the Feature Model. Default
-    **target/cp-conversion**
-* **convertedContentPackageOutputDirectory**:
-    Output folder folder of the converted Content Package. Default
-    **target**
-* **installConvertedContentPackage**:
-    Install the Converted Content Package into the local Maven
-    Repository so that it can be used by the Feature Model without
-    a manual copy. Default: **true**
-* **systemProperties**:
-    List of strings that represents System Properties like the Java
-    **-D** option
+* **convert-cp**: Converts Content Packages into Feature Model files
+and its converted ZIP files
+* **convert-pom**: Converts Provisioning Models into Feature Models
 
-In order for the plugin to work the Content Package must be already
-created so this plugin must be started in a lifecycle phase after
-**package**.
+See the Site documentation for further info.
\ No newline at end of file
diff --git a/src/site/markdown/usage.md.vm b/src/site/markdown/usage.md.vm
index 9b3f34e..d520dcd 100644
--- a/src/site/markdown/usage.md.vm
+++ b/src/site/markdown/usage.md.vm
@@ -3,6 +3,8 @@
 #set($h3 = '###')
 #set($h4 = '####')
 #set($sp = '${')
+#set($sp2 = '${{')
+#set($sp3 = '${{{')
 #set($ep = '}')
 
 
@@ -88,25 +90,15 @@ and so the copy of the resources is not done automatically:
             </executions>
         </plugin>
 ```
-
-Now we setup this Plugin and set the features folder to **target/fm** (keep in mind this path has to
-be relative to the basedir and cannot be absolute):
+Then we need to setup the Sling Feature Converter Maven Plugin to convert Sling into its Feature Model
+equivalent so that we can launch it together with the converter CP packages later:
 
 ```
-        <plugin>
+         <plugin>
             <groupId>org.apache.sling</groupId>
-            <artifactId>slingfeature-maven-plugin</artifactId>
-            <version>1.0.5-SNAPSHOT</version>
+            <artifactId>sling-feature-converter-maven-plugin</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
             <extensions>true</extensions>
-            <configuration>
-                <features>target/fm</features>
-            </configuration>
-```
-
-First we convert the Sling Provisioning Files to Feature Model files. For that the caller has to provide
-a property called **sling.starter.folder** with the absolute path to the Sling Starter Project:
-
-```
             <executions>
                 <execution>
                     <id>convert-pm</id>
@@ -115,26 +107,19 @@ a property called **sling.starter.folder** with the absolute path to the Sling S
                         <goal>convert-pm</goal>
                     </goals>
                     <configuration>
-                        <!-- Absolute Path to the Sling Starter Project Provisioning Folder -->
-                        <inputFolder>${sp}sling.starter.folder${ep}/src/main/provisioning</inputFolder>
-                        <!-- Relative path (to basedir) to the output folder. It will be created if needed -->
+                        <inputFolder>src/main/resources/sling/provisioning</inputFolder>
                         <outputFolder>target/fm</outputFolder>
-                        <!-- Instead of a fixed Feature Id we set placeholder here -->
-                        <groupId>${sp}{project.groupId}${ep}</groupId>
-                        <artifactId>${sp}{project.artifactId}${ep}</artifactId>
-                        <version>${sp}{project.version}${ep}</version>
-                        <!-- Add Framework Properties to the Launchpad FM to make JRE archives accessible -->
+                        <groupId>${sp}{project.groupId}}</groupId>
+                        <artifactId>${sp}{project.artifactId}}</artifactId>
+                        <version>${sp}{project.version}}</version>
                         <frameworkProperties>
                             launchpad:felix.systempackages.substitution=true,
                             launchpad:felix.systempackages.calculate.uses=true
                         </frameworkProperties>
-                        <!-- Exclude certain bundles that conflict with the Launch of Feature Models -->
                         <excludeBundles>
                             org.apache.sling.launchpad.installer,
                             org.apache.sling.jcr.repoinit.impl.RepositoryInitializer
                         </excludeBundles>
-                        <!-- Only add run modes of type 'oak_tar' and 'standalone'. Feature Model Projects do
-                             not support runmodes anymore as each of them represents one particular set -->
                         <runModes>
                             oak_tar,
                             :standalone
@@ -143,7 +128,11 @@ a property called **sling.starter.folder** with the absolute path to the Sling S
                 </execution>
 ```
 
-Convert the Content Packages of this project and prefix the files names to avoid conflicts and make it easier to indentify them:
+In this scenario the Sling Provisioning Models are copied into the source folder.
+The **Launchpad Installer** and the **Repository Initializer** do not work together with Sling FM so
+they are excluded here. Then we select **oak_tar and :standalone** as the runmodes for this instance.
+
+Then we convert the Content Package:
 
 ```
                 <execution>
@@ -153,31 +142,44 @@ Convert the Content Packages of this project and prefix the files names to avoid
                         <goal>convert-cp</goal>
                     </goals>
                     <configuration>
-                        <!-- NOTE: ${{ / }} is a way to encode placeholders that should not be interpolated in Maven in this call
-                                   and ${{{ / }}} is used to make it a CP Conversion Placeholder }-->
-                        <artifactIdOverride>${sp}{project.groupId}${ep}:${sp}{project.artifactId}${ep}:slingosgifeature:${sp}{{filename}}${ep}:${sp}{project.version}${ep}</artifactIdOverride>
-                        <!-- Install the Converted Content Package into the local Maven Repositorires. Without the launch
-                             will fail -->
+                        <!-- NOTE: ${sp2} / }} is a way to encode placeholders that should not be interpolated in Maven in this call
+                                   and ${sp3} / }}} is used to make it a CP Conversion Placeholder -->
+                        <artifactIdOverride>${sp2}project.groupId}}:${sp2}project.artifactId}}:slingosgifeature:${sp3}filename}}}:${sp2}project.version}}</artifactIdOverride>
                         <installConvertedCP>true</installConvertedCP>
-                        <!-- Set the output folder for the converted packages -->
-                        <convertedCPOutput>${sp}project.build.directory${ep}/fm.out</convertedCPOutput>
-                        <!-- Set the output folder for the converted Feature Model files -->
-                        <fmOutput>${sp}project.build.directory${ep}/fm</fmOutput>
-                        <!-- Prefix the files to easily identify them -->
-                        <fmPrefix>my-project-</fmPrefix>
+                        <!-- Attention: because of the hack to deal with the overrides in the local Repo the generated files must be placed locally and not in the local Maven repo -->
+                        <convertedCPOutput>${sp}project.build.directory}/fm.out</convertedCPOutput>
+                        <fmOutput>${sp}project.build.directory}/fm</fmOutput>
+                        <fmPrefix>test-ui-apps-</fmPrefix>
                         <contentPackages>
-                            <!-- each of these entries must have a dependency listed above -->
                             <contentPackage>
-                                <groupId>${sp}project.groupId${ep}</groupId>
-                                <artifactId>my-content-package</artifactId>
+                                <groupId>org.apache.sling.test</groupId>
+                                <artifactId>ui.apps</artifactId>
                             </contentPackage>
-...
                         </contentPackages>
                     </configuration>
                 </execution>
+            </executions>
+        </plugin>
+```
+
+Here we override the Feature Id to a more generic version, mark that we want to intall the converted files into
+our local Maven repo and that we prefix the converted FM file with **test-ui-apps-**.
+
+Now we setup this Plugin and set the features folder to **target/fm** (keep in mind this path has to
+be relative to the basedir and cannot be absolute):
+
+```
+        <plugin>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>slingfeature-maven-plugin</artifactId>
+            <version>1.0.5-SNAPSHOT</version>
+            <extensions>true</extensions>
+            <configuration>
+                <features>target/fm</features>
+            </configuration>
 ```
 
-Now we aggregate, collect them into a single FM file (attach) and verify all the generated Feature Model files:
+Now we can aggregate, collect them into a single FM file (attach) and verify all the generated Feature Model files:
 
 ```
                 <execution>
@@ -270,6 +272,5 @@ The execution of a conversion and launch would look like this:
 mvn \
     clean \
     install \
-    -P launch \
-    -Dsling.starter.folder=/sling.dev/sling-org-apache-sling-starter
+    -P launch
 ```


[sling-feature-converter-maven-plugin] 17/23: [maven-release-plugin] prepare for next development iteration

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 0004ef6e994632407903baa7178ec493b0ec045e
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Fri Jan 10 11:13:36 2020 -0800

    [maven-release-plugin] prepare for next development iteration
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index e640068..f459ac9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin</artifactId>
-    <version>1.0.4</version>
+    <version>1.0.5-SNAPSHOT</version>
     <packaging>maven-plugin</packaging>
 
     <name>Apache Sling Feature Model Converter Plugin</name>
@@ -35,7 +35,7 @@
         <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</connection>
         <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</developerConnection>
         <url>https://gitbox.apache.org/repos/asf?p=sling-feature-converter-maven-plugin.git</url>
-        <tag>sling-feature-converter-maven-plugin-1.0.4</tag>
+        <tag>HEAD</tag>
     </scm>
 
     <properties>


[sling-feature-converter-maven-plugin] 19/23: Adding sonarqube badges as per SLING-9682

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit bb78cf00e48b7654dee013ee88de079d8e5192c0
Author: Dan Klco <dk...@apache.org>
AuthorDate: Mon Aug 24 17:17:44 2020 -0400

    Adding sonarqube badges as per SLING-9682
---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 90a9ebe..f7302c0 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-[<img src="https://sling.apache.org/res/logos/sling.png"/>](https://sling.apache.org)
+[![Apache Sling](https://sling.apache.org/res/logos/sling.png)](https://sling.apache.org)
 
- [![Build Status](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/badge/icon)](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/) [![Test Status](https://img.shields.io/jenkins/tests.svg?jobUrl=https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/)](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-mave [...]
+&#32;[![Build Status](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/badge/icon)](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/)&#32;[![Test Status](https://img.shields.io/jenkins/tests.svg?jobUrl=https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-converter-maven-plugin/job/master/)](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-feature-conver [...]
 
 # Apache Sling Feature Converter Maven Plugin
 


[sling-feature-converter-maven-plugin] 22/23: Throw exception if artifact cannot be resolved, rather than ignoring it

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit bda5a6a0b0176414e22985955df21327a3c05221
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Tue Oct 6 19:30:13 2020 +0100

    Throw exception if artifact cannot be resolved, rather than ignoring it
---
 .../java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java   | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
index 0956a5f..57a22d4 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
@@ -111,6 +111,8 @@ public class ContentPackage {
                     Artifact fileArt = resolveArtifact(repoSystem, repoSession, a);
                     if (fileArt != null) {
                         fileArtifacts.add(fileArt);
+                    } else {
+                        throw new RuntimeException("Unable to resolve artifact: " + a);
                     }
                 }
             }


[sling-feature-converter-maven-plugin] 11/23: [maven-release-plugin] prepare release sling-feature-converter-maven-plugin-1.0.2

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit c973a5c9c74d28a1dcfeb9f9a17f98d8fd9e75ed
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Fri Dec 20 16:02:46 2019 -0800

    [maven-release-plugin] prepare release sling-feature-converter-maven-plugin-1.0.2
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 3ccac7a..ce8a637 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
     </parent>
 
     <artifactId>sling-feature-converter-maven-plugin</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
+    <version>1.0.2</version>
     <packaging>maven-plugin</packaging>
 
     <name>Apache Sling Feature Model Converter Plugin</name>
@@ -35,7 +35,7 @@
         <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</connection>
         <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git</developerConnection>
         <url>https://gitbox.apache.org/repos/asf?p=sling-feature-converter-maven-plugin.git</url>
-        <tag>HEAD</tag>
+        <tag>sling-feature-converter-maven-plugin-1.0.2</tag>
     </scm>
 
     <properties>


[sling-feature-converter-maven-plugin] 01/23: Rename the project and added docu

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit b2c7f09c8db73eeeecc92fbb54c3a4ce2ea123ae
Author: Andreas Schaefer <sc...@iMac.local>
AuthorDate: Tue Aug 13 17:40:48 2019 -0700

    Rename the project and added docu
---
 CODE_OF_CONDUCT.md                                 |  22 ++
 CONTRIBUTING.md                                    |  24 ++
 Jenkinsfile                                        |  20 +
 LICENSE                                            | 202 ++++++++++
 README.md                                          |  65 ++++
 pom.xml                                            | 356 +++++++++++++++++
 .../core/pom.xml                                   | 150 ++++++++
 .../test/cqconverter/SampleRequestModel.java       |  53 +++
 .../cpconverter/test/servlet/ByPathServlet.java    |  71 ++++
 .../test/servlet/ByResourceTypeServlet.java        |  77 ++++
 .../test/servlet/ByPathServletTest.java            |  33 ++
 .../invoker.properties                             |  17 +
 .../pom.xml                                        | 418 ++++++++++++++++++++
 .../ui.apps/pom.xml                                | 124 ++++++
 .../src/main/content/META-INF/vault/filter.xml     |  40 ++
 .../src/main/content/META-INF/vault/settings.xml   |  17 +
 .../content/jcr_root/apps/cqconverter/.content.xml |  24 ++
 .../jcr_root/apps/cqconverter/home/.content.xml    |  20 +
 .../jcr_root/apps/cqconverter/home/body.html       |  24 ++
 .../jcr_root/apps/cqconverter/home/head.html       |  23 ++
 .../jcr_root/apps/cqconverter/install/.content.xml |  23 ++
 .../jcr_root/apps/cqconverter/page/.content.xml    |  19 +
 .../jcr_root/apps/cqconverter/page/body.html       |  21 ++
 .../jcr_root/apps/cqconverter/page/footer.html     |  19 +
 .../jcr_root/apps/cqconverter/page/head.html       |  23 ++
 .../jcr_root/apps/cqconverter/page/page.html       |  35 ++
 .../jcr_root/content/cpconverter/.content.xml      |  18 +
 .../jcr_root/content/cpconverter/home/.content.xml |  20 +
 .../content/cpconverter/home/welcome/.content.xml  |  25 ++
 .../verify.bsh                                     |  93 +++++
 .../core/pom.xml                                   | 150 ++++++++
 .../test/cqconverter/SampleRequestModel.java       |  53 +++
 .../cpconverter/test/servlet/ByPathServlet.java    |  71 ++++
 .../test/servlet/ByResourceTypeServlet.java        |  77 ++++
 .../test/servlet/ByPathServletTest.java            |  33 ++
 .../fm.launcher/pom.xml                            |  98 +++++
 .../invoker.properties                             |  17 +
 .../package-with-single-bundle-target-mode/pom.xml | 419 +++++++++++++++++++++
 .../ui.apps/pom.xml                                | 108 ++++++
 .../src/main/content/META-INF/vault/filter.xml     |  40 ++
 .../src/main/content/META-INF/vault/settings.xml   |  17 +
 .../content/jcr_root/apps/cqconverter/.content.xml |  24 ++
 .../jcr_root/apps/cqconverter/home/.content.xml    |  20 +
 .../jcr_root/apps/cqconverter/home/body.html       |  24 ++
 .../jcr_root/apps/cqconverter/home/head.html       |  23 ++
 .../jcr_root/apps/cqconverter/install/.content.xml |  23 ++
 .../jcr_root/apps/cqconverter/page/.content.xml    |  19 +
 .../jcr_root/apps/cqconverter/page/body.html       |  21 ++
 .../jcr_root/apps/cqconverter/page/footer.html     |  19 +
 .../jcr_root/apps/cqconverter/page/head.html       |  23 ++
 .../jcr_root/apps/cqconverter/page/page.html       |  35 ++
 .../jcr_root/content/cpconverter/.content.xml      |  18 +
 .../jcr_root/content/cpconverter/home/.content.xml |  20 +
 .../content/cpconverter/home/welcome/.content.xml  |  25 ++
 .../verify.bsh                                     |  94 +++++
 .../core/pom.xml                                   | 150 ++++++++
 .../test/cqconverter/SampleRequestModel.java       |  53 +++
 .../cpconverter/test/servlet/ByPathServlet.java    |  71 ++++
 .../test/servlet/ByResourceTypeServlet.java        |  77 ++++
 .../test/servlet/ByPathServletTest.java            |  33 ++
 .../invoker.properties                             |  17 +
 .../pom.xml                                        | 418 ++++++++++++++++++++
 .../ui.apps/pom.xml                                | 129 +++++++
 .../src/main/content/META-INF/vault/filter.xml     |  40 ++
 .../src/main/content/META-INF/vault/settings.xml   |  17 +
 .../content/jcr_root/apps/cqconverter/.content.xml |  24 ++
 .../jcr_root/apps/cqconverter/home/.content.xml    |  20 +
 .../jcr_root/apps/cqconverter/home/body.html       |  24 ++
 .../jcr_root/apps/cqconverter/home/head.html       |  23 ++
 .../jcr_root/apps/cqconverter/install/.content.xml |  23 ++
 .../jcr_root/apps/cqconverter/page/.content.xml    |  19 +
 .../jcr_root/apps/cqconverter/page/body.html       |  21 ++
 .../jcr_root/apps/cqconverter/page/footer.html     |  19 +
 .../jcr_root/apps/cqconverter/page/head.html       |  23 ++
 .../jcr_root/apps/cqconverter/page/page.html       |  35 ++
 .../jcr_root/content/cpconverter/.content.xml      |  18 +
 .../jcr_root/content/cpconverter/home/.content.xml |  20 +
 .../content/cpconverter/home/welcome/.content.xml  |  25 ++
 .../verify.bsh                                     |  93 +++++
 .../cpconverter/maven/mojos/AbstractBaseMojo.java  |  45 +++
 .../cpconverter/maven/mojos/ContentPackage.java    | 114 ++++++
 .../cpconverter/maven/mojos/ConvertCPMojo.java     | 350 +++++++++++++++++
 .../cpconverter/maven/mojos/ConvertPMMojo.java     | 226 +++++++++++
 .../maven/mojos/FeatureLauncherMojo.java           |  57 +++
 src/site/markdown/index.md                         |  10 +
 src/site/markdown/usage.md.vm                      | 275 ++++++++++++++
 src/site/site.xml                                  |  41 ++
 87 files changed, 6057 insertions(+)

diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..0fa18e5
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,22 @@
+<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/-->
+Apache Software Foundation Code of Conduct
+====
+
+Being an Apache project, Apache Sling adheres to the Apache Software Foundation's [Code of Conduct](https://www.apache.org/foundation/policies/conduct.html).
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..ac82a1a
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,24 @@
+<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/-->
+Contributing
+====
+
+Thanks for choosing to contribute!
+
+You will find all the necessary details about how you can do this at https://sling.apache.org/contributing.html.
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..f582519
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,20 @@
+/**
+ * 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.
+ */
+
+slingOsgiBundleBuild()
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed 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.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..8f46163
--- /dev/null
+++ b/README.md
@@ -0,0 +1,65 @@
+[<img src="https://sling.apache.org/res/logos/sling.png"/>](https://sling.apache.org)
+
+ [![Build Status](https://builds.apache.org/buildStatus/icon?job=Sling/sling-slingfeature-maven-plugin/master)](https://builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master) [![Test Status](https://img.shields.io/jenkins/t/https/builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master.svg)](https://builds.apache.org/job/Sling/job/sling-slingfeature-maven-plugin/job/master/test_results_analyzer/) [![Maven Central](https://maven-badges.herokuapp.com/ [...]
+
+# Apache Sling Content Package to Feature Model Plugin
+
+This module is part of the [Apache Sling](https://sling.apache.org) project.
+
+Maven Plugin for Content Package to Feature Model Conversion:
+
+# Introduction
+
+This plugin is intended for a content package to also provide a Feature Model
+and its converted package / bundle. This plugin will only work on Content
+Package ZIP files artifacts.
+
+This plugin is a wrapper for the Sling Feature Content Package Converter
+**org.apache.sling.feature.cpconverter** over a content package the
+POM defines.
+
+The idea is to convert a Content Package at built time into a Feature
+Module so that it can be used both a regular Content Package in a
+traditional Sling Instance (Lauchpad) or in a Sling Instance in a Feature
+Model.
+The plugin will do the conversion and so a Content Package cna be used
+in a Feature Model w/o any changes in the Content Package.
+
+## Supported goals
+
+This plugin has only one goal called **convert-cp** which takes a few
+parameters:
+
+* **strictValidation**:
+    if set to true this will force the plugin to do a strict
+    conversion. Checkout the Content Package 2 Feature
+    Model Converter tool. Default: **false**
+* **mergeConfigurations**:
+    if set to true if will merge configurations with
+    the same PID. Not sure if that makes sense in
+    this plugin. Default: **false**
+* **bundleStartOrder**:
+    The bundle start order of the generated Feature
+    Model. Default **20**
+* **artifactIdOverride**:
+    An FM Artifact Id that overrides the one that
+    is set by default. **Atttention**: to avoid the
+    variable substitution for **${}** please add
+    a zero-width whitespace (&#8203;) in between.
+* **featureModelsOutputDirectory**:
+    Output folder of the Feature Model. Default
+    **target/cp-conversion**
+* **convertedContentPackageOutputDirectory**:
+    Output folder folder of the converted Content Package. Default
+    **target**
+* **installConvertedContentPackage**:
+    Install the Converted Content Package into the local Maven
+    Repository so that it can be used by the Feature Model without
+    a manual copy. Default: **true**
+* **systemProperties**:
+    List of strings that represents System Properties like the Java
+    **-D** option
+
+In order for the plugin to work the Content Package must be already
+created so this plugin must be started in a lifecycle phase after
+**package**.
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..dcc0832
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    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>33</version>
+        <relativePath />
+    </parent>
+
+    <artifactId>sling-feature-converter-maven-plugin</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>maven-plugin</packaging>
+
+    <name>Apache Sling Feature Model Converter Plugin</name>
+    <description>
+        Maven Plugin to convert Configurations / Packages to Feature Model format
+    </description>
+    <url>https://sling.apache.org/components/sling-feature-converter-maven-plugin/</url>
+
+    <properties>
+        <sling.java.version>8</sling.java.version>
+        <maven.version>3.5.0</maven.version>
+        <maven.scm.version>1.11.1</maven.scm.version>
+        <maven.site.path>${project.artifactId}-archives/${project.artifactId}-LATEST</maven.site.path>
+    </properties>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.plexus</groupId>
+                <artifactId>plexus-component-metadata</artifactId>
+                <version>1.7.1</version>
+                <executions>
+                    <execution>
+                        <id>generate-metadata</id>
+                        <goals>
+                            <goal>generate-metadata</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>mojo-descriptor</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>generated-helpmojo</id>
+                        <goals>
+                            <goal>helpmojo</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-scm-publish-plugin</artifactId>
+                <configuration>
+                    <checkoutDirectory>${user.home}/maven-sites/${maven.site.path}</checkoutDirectory>
+                    <tryUpdate>true</tryUpdate>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>src/site/markdown/**</exclude>
+                        <exclude>src/test/resources/**/*.txt</exclude>
+                        <exclude>src/test/resources/**/*.feature</exclude>
+                        <exclude>src/test/resources/META-INF/services/*</exclude>
+                        <exclude>src/it/**/*.json</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-invoker-plugin</artifactId>
+                <configuration>
+                    <debug>true</debug>
+                    <projectsDirectory>src/it</projectsDirectory>
+                    <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+<!-- TODO: it would great to install the test artifacts locally but this will only work if CP Converter is released -> Activate when it is released-->
+<!--                    <localRepositoryPath>${project.build.directory}/it-repo</localRepositoryPath>-->
+                    <pomIncludes>
+                        <pomInclude>**/pom.xml</pomInclude>
+                    </pomIncludes>
+                    <postBuildHookScript>verify</postBuildHookScript>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>integration-test</id>
+                        <goals>
+                            <goal>install</goal>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+            <version>6.0.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-text</artifactId>
+            <version>1.6</version>
+        </dependency>
+         <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.converter</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.configurator</artifactId>
+            <version>1.0.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.commons.johnzon</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+            <version>2.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-spi-commons</artifactId>
+            <version>2.19.1</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.cpconverter</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.launcher</artifactId>
+            <version>1.0.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.modelconverter</artifactId>
+            <version>1.0.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.io</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.analyser</artifactId>
+            <version>1.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.provisioning.model</artifactId>
+            <version>1.8.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-api</artifactId>
+            <version>2.19.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit.vault</groupId>
+            <artifactId>org.apache.jackrabbit.vault</artifactId>
+            <version>3.2.8</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-core</artifactId>
+            <version>${maven.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-plugin-api</artifactId>
+            <version>${maven.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>${maven.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-artifact-transfer</artifactId>
+            <version>0.11.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-compat</artifactId>
+            <version>${maven.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-archiver</artifactId>
+            <version>3.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.5</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-osgi</artifactId>
+            <version>0.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-interactivity-api</artifactId>
+            <version>1.0-alpha-6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-archiver</artifactId>
+            <version>3.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.plexus</groupId>
+            <artifactId>plexus-utils</artifactId>
+            <version>3.0.24</version>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.framework</artifactId>
+            <version>1.9.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>versions-maven-plugin</artifactId>
+            <version>2.7</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.shared</groupId>
+            <artifactId>maven-filtering</artifactId>
+            <version>3.1.1</version>
+        </dependency>
+        <!-- schema validation -->
+        <dependency>
+            <groupId>com.github.java-json-tools</groupId>
+            <artifactId>json-schema-validator</artifactId>
+            <version>2.2.10</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <version>2.2.3</version>
+        </dependency>
+        <!-- APIs JARs -->
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.utils</artifactId>
+            <version>1.11.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.scm</groupId>
+            <artifactId>maven-scm-api</artifactId>
+            <version>${maven.scm.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.scm</groupId>
+            <artifactId>maven-scm-manager-plexus</artifactId>
+            <version>${maven.scm.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.scm</groupId>
+            <artifactId>maven-scm-provider-gitexe</artifactId>
+            <version>${maven.scm.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.scm</groupId>
+            <artifactId>maven-scm-provider-svnexe</artifactId>
+            <version>${maven.scm.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-model-builder</artifactId>
+            <version>3.6.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-exec</artifactId>
+            <version>1.3</version>
+        </dependency>
+        <!-- testing -->
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-all</artifactId>
+            <version>1.10.19</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
+
+</project>
diff --git a/src/it/package-with-single-bundle-no-parameters/core/pom.xml b/src/it/package-with-single-bundle-no-parameters/core/pom.xml
new file mode 100644
index 0000000..cc7f813
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/core/pom.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    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>
+        <artifactId>sling-cpconverter-maven-plugin-test-no-param</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>sling-cpconverter-maven-plugin-test-no-param.core</artifactId>
+    <packaging>bundle</packaging>
+
+    <name>CQ Converter Test - Core</name>
+    <description>
+        This is an empty OSGi Bundle which can be used
+        to compile and deploy OSGi Services to Sling.
+
+        This Bundle can be deployed using the Profile
+        "autoInstallBundle" but that should not be used
+        together with the "ui.apps" Profile "autoInstallAll"
+        as they are not deployed the same way and can lead
+        to undesired issues during deployment (bundle not
+        updated or not working at all).
+    </description>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Embed-Dependency>*;scope=compile;inline=true</Embed-Dependency>
+                        <Sling-Model-Packages>org.apache.sling.cpconverter.test.cqconverter</Sling-Model-Packages>
+                        <_dsannotations>*</_dsannotations>
+                        <_metatypeannotations>*</_metatypeannotations>
+                        <_removeheaders>
+                            Embed-Dependency,
+                            Private-Package,
+                            Include-Resource
+                        </_removeheaders>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>7</source>
+                    <target>7</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>maven-sling-plugin</artifactId>
+                <configuration>
+                    <slingUrl>http://${sling.host}:${sling.port}/system/console</slingUrl>
+                    <user>${sling.user}</user>
+                    <password>${sling.password}</password>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.annotation</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component.annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.metatype.annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.models.api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
+
+    <!--
+        Attention: the autoInstallBundle was removed as deploying bundles directly and through a package is causing
+                   issues with updates and can prevent the latest code of a bundle being deployed.
+                   If you know what you are doing then you can use maven-sling-plugin directly from the Maven CLI.
+    -->
+</project>
diff --git a/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java b/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java
new file mode 100644
index 0000000..a015bb8
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java
@@ -0,0 +1,53 @@
+/*
+ * 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.cpconverter.test.cqconverter;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.injectorspecific.SlingObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.Session;
+
+@Model(adaptables = {Resource.class, SlingHttpServletRequest.class})
+public class SampleRequestModel {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SampleRequestModel.class);
+
+    @SlingObject
+    private ResourceResolver resourceResolver;
+
+    public SampleRequestModel() {
+        LOGGER.trace("Model Instance created");
+    }
+
+    /** @return User Name of the Current User **/
+    public String getCurrentUser() {
+        String answer = "No User";
+
+        // Adapt to a session and get the current User ID.
+        Session session = resourceResolver.adaptTo(Session.class);
+        LOGGER.trace("Found Session from Resolver: '{}'", session);
+        if(session != null) {
+            answer = session.getUserID();
+        }
+        return answer;
+    }
+}
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java b/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java
new file mode 100644
index 0000000..27db4f4
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java
@@ -0,0 +1,71 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hello World Servlet registered by path
+ */
+@Component(
+    service = Servlet.class,
+    property = {
+        Constants.SERVICE_DESCRIPTION + "=Hello World Path Servlet",
+        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+        "sling.servlet.paths=/hello-world-servlet"
+    }
+)
+@SuppressWarnings("serial")
+public class ByPathServlet extends SlingSafeMethodsServlet {
+    
+    private final Logger log = LoggerFactory.getLogger(ByPathServlet.class);
+
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
+        
+        Writer w = response.getWriter();
+        w.write("<!DOCTYPE html PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
+        w.write("<html>");
+        w.write("<head>");
+        w.write("<title>Hello World Servlet</title>");
+        w.write("</head>");
+        w.write("<body>");
+        w.write("<h1>Hello World!</h1>");
+        w.write("</body>");
+        w.write("</html>");
+        
+        log.info("Hello World Servlet");
+        
+    }
+
+}
+
diff --git a/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java b/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java
new file mode 100644
index 0000000..da24407
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java
@@ -0,0 +1,77 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hello World Servlet registered by resource type
+ */
+@Component(
+    service = Servlet.class,
+    property = {
+        Constants.SERVICE_DESCRIPTION + "=Hello World Path Servlet",
+        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+        "sling.servlet.resourceTypes=sling/servlet/default",
+        "sling.servlet.selectors=hello",
+        "sling.servlet.extensions=html",
+    }
+)
+@SuppressWarnings("serial")
+public class ByResourceTypeServlet extends SlingSafeMethodsServlet {
+    
+    private final Logger log = LoggerFactory.getLogger(ByResourceTypeServlet.class);
+
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
+        Resource resource = request.getResource();
+
+        Writer w = response.getWriter();
+        w.write("<!DOCTYPE html PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
+        w.write("<html>");
+        w.write("<head>");
+        w.write("<title>Hello World Servlet</title>");
+        w.write("</head>");
+        w.write("<body>");
+        w.write("<h1>Hello ");
+        w.write(resource.getPath());
+        w.write("</h1>");
+        w.write("</body>");
+        w.write("</html>");
+        
+        log.info("Hello World Servlet");
+        
+    }
+
+}
+
diff --git a/src/it/package-with-single-bundle-no-parameters/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java b/src/it/package-with-single-bundle-no-parameters/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
new file mode 100644
index 0000000..f2f5286
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import junit.framework.TestCase;
+
+/**
+ * Unit test for By Path Servlet.
+ */
+public class ByPathServletTest extends TestCase {
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testByPathServlet() {
+        assertTrue(true);
+    }
+    
+}
diff --git a/src/it/package-with-single-bundle-no-parameters/invoker.properties b/src/it/package-with-single-bundle-no-parameters/invoker.properties
new file mode 100644
index 0000000..209b6ef
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+
+invoker.goals = clean install
+invoker.debug = true
diff --git a/src/it/package-with-single-bundle-no-parameters/pom.xml b/src/it/package-with-single-bundle-no-parameters/pom.xml
new file mode 100644
index 0000000..5ddd115
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/pom.xml
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    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>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-cpconverter-maven-plugin-test-no-param</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+    <name>Apache Sling Features Maven plugin test - no parameter</name>
+    <description>This is just an Apache Sling Content Package Maven plugin test to convert a package with a single
+        bundle
+    </description>
+    <organization>
+        <name>The Apache Software Foundation</name>
+        <url>https://www.apache.org/</url>
+    </organization>
+    <licenses>
+        <license>
+            <name>Apache License, Version 2.0</name>
+            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+    <properties>
+        <interpolated_variable>true</interpolated_variable>
+        <osgi.framework.version>1.9.0</osgi.framework.version>
+        <sling.framework.install.incremental>true</sling.framework.install.incremental>
+        <sling.framework.install.startlevel>1</sling.framework.install.startlevel>
+        <sling.ignoreSystemProperties>true</sling.ignoreSystemProperties>
+
+        <sling.host>localhost</sling.host>
+        <sling.port>8080</sling.port>
+        <sling.user>admin</sling.user>
+
+        <sling.password>admin</sling.password>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+        <release.plugin.version>2.5.3</release.plugin.version>
+        <source.plugin.version>3.0.1</source.plugin.version>
+        <resource.plugin.version>3.1.0</resource.plugin.version>
+        <jar.plugin.version>3.1.1</jar.plugin.version>
+        <enforcer.plugin.version>3.0.0-M2</enforcer.plugin.version>
+        <compiler.plugin.version>3.8.0</compiler.plugin.version>
+        <bundle.plugin.version>4.2.0</bundle.plugin.version>
+        <clean.plugin.version>3.1.0</clean.plugin.version>
+        <installer.plugin.version>3.0.0-M1</installer.plugin.version>
+        <surfire.plugin.version>3.0.0-M3</surfire.plugin.version>
+        <failsafe.plugin.version>3.0.0-M3</failsafe.plugin.version>
+        <deploy.plugin.version>3.0.0-M1</deploy.plugin.version>
+        <sling.plugin.version>2.4.0</sling.plugin.version>
+        <dependency.plugin.version>3.1.1</dependency.plugin.version>
+        <build.helper.plugin.version>3.0.0</build.helper.plugin.version>
+        <wcmio.plugin.version>1.6.18</wcmio.plugin.version>
+        <filevault-package.plugin.version>1.0.3</filevault-package.plugin.version>
+
+        <osgi.core.version>7.0.0</osgi.core.version>
+        <osgi.annotation.version>7.0.0</osgi.annotation.version>
+        <org.osgi.service.component.annotations.version>1.4.0</org.osgi.service.component.annotations.version>
+        <org.osgi.service.metatype.annotations.version>1.4.0</org.osgi.service.metatype.annotations.version>
+        <org.osgi.compendium.version>5.0.0</org.osgi.compendium.version>
+        <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
+        <javax.inject.version>1</javax.inject.version>
+        <jcr.version>2.0</jcr.version>
+        <sling.models.api.version>1.3.6</sling.models.api.version>
+        <jetbrains.annotations.version>16.0.2</jetbrains.annotations.version>
+        <sling.settings.version>1.3.10</sling.settings.version>
+        <sling.commons.osgi.version>2.4.0</sling.commons.osgi.version>
+        <jackrabbit-api.version>2.16.3</jackrabbit-api.version>
+        <commons-lang.version>2.6</commons-lang.version>
+        <jmock-junit4.version>2.8.2</jmock-junit4.version>
+    </properties>
+    <build>
+        <plugins>
+            <!-- Maven Release Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <configuration>
+                    <scmCommentPrefix>[maven-scm] :</scmCommentPrefix>
+                    <preparationGoals>clean install</preparationGoals>
+                    <goals>install</goals>
+                    <releaseProfiles>release</releaseProfiles>
+                </configuration>
+            </plugin>
+            <!-- Maven Source Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <inherited>true</inherited>
+            </plugin>
+            <!-- Maven Resources Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <!-- Maven Jar Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+            </plugin>
+            <!-- Maven Enforcer Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>enforce-maven</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireMavenVersion>
+                                    <message>Project must be built with Maven 3.1.0 or higher</message>
+                                    <version>[3.1.0,)</version>
+                                </requireMavenVersion>
+                                <requireJavaVersion>
+                                    <message>Project must be compiled with Java 7 or higher</message>
+                                    <version>1.7.0</version>
+                                </requireJavaVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <!-- Maven Compiler Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+        </plugins>
+        <pluginManagement>
+            <plugins>
+                <!-- Maven Release Plugin -->
+                <plugin>
+                    <artifactId>maven-release-plugin</artifactId>
+                    <version>${release.plugin.version}</version>
+                </plugin>
+                <!-- Maven Source Plugin -->
+                <plugin>
+                    <artifactId>maven-source-plugin</artifactId>
+                    <version>${source.plugin.version}</version>
+                </plugin>
+                <!-- Maven Resources Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>${resource.plugin.version}</version>
+                </plugin>
+                <!-- Maven Jar Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>${jar.plugin.version}</version>
+                </plugin>
+                <!-- Maven Enforcer Plugin -->
+                <plugin>
+                    <artifactId>maven-enforcer-plugin</artifactId>
+                    <version>${enforcer.plugin.version}</version>
+                </plugin>
+                <!-- Maven Compiler Plugin -->
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${compiler.plugin.version}</version>
+                </plugin>
+
+                <!-- Maven Clean Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>${clean.plugin.version}</version>
+                </plugin>
+                <!-- Maven Installer Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>${installer.plugin.version}</version>
+                </plugin>
+                <!-- Maven Surefire Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${surfire.plugin.version}</version>
+                </plugin>
+                <!-- Maven Failsafe Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-failsafe-plugin</artifactId>
+                    <version>${failsafe.plugin.version}</version>
+                </plugin>
+                <!-- Maven Deploy Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>${deploy.plugin.version}</version>
+                </plugin>
+                <!-- Apache Sling Plugin -->
+                <plugin>
+                    <groupId>org.apache.sling</groupId>
+                    <artifactId>maven-sling-plugin</artifactId>
+                    <version>${sling.plugin.version}</version>
+                </plugin>
+                <!-- Content Package Plugin -->
+                <plugin>
+                    <groupId>org.apache.jackrabbit</groupId>
+                    <artifactId>filevault-package-maven-plugin</artifactId>
+                    <version>${filevault-package.plugin.version}</version>
+                    <extensions>true</extensions>
+                    <configuration>
+                        <failOnMissingEmbed>true</failOnMissingEmbed>
+                        <force>true</force>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>io.wcm.maven.plugins</groupId>
+                    <artifactId>wcmio-content-package-maven-plugin</artifactId>
+                    <version>${wcmio.plugin.version}</version>
+                    <configuration>
+                        <serviceURL>http://${sling.host}:${sling.port}/bin/cpm/</serviceURL>
+                        <userId>${sling.user}</userId>
+                        <password>${sling.password}</password>
+                        <failOnMissingEmbed>true</failOnMissingEmbed>
+                        <force>true</force>
+                        <group>cpconverter</group>
+                    </configuration>
+                </plugin>
+                <!-- Apache Felix Bundle Plugin -->
+                <plugin>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>maven-bundle-plugin</artifactId>
+                    <version>${bundle.plugin.version}</version>
+                    <inherited>true</inherited>
+                </plugin>
+                <!-- Maven Dependency Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>${dependency.plugin.version}</version>
+                </plugin>
+                <!-- Build Helper Maven Plugin -->
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>build-helper-maven-plugin</artifactId>
+                    <version>${build.helper.plugin.version}</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+
+    <!-- ====================================================================== -->
+    <!-- D E P E N D E N C I E S                                                -->
+    <!-- ====================================================================== -->
+    <dependencyManagement>
+        <dependencies>
+            <!-- OSGi Dependencies -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>osgi.core</artifactId>
+                <version>${osgi.core.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- OSGi annotations: @Version, @ProviderType, @ConsumerType -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>osgi.annotation</artifactId>
+                <version>${osgi.annotation.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- OSGi annotations for DS and metatype -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.component.annotations</artifactId>
+                <version>${org.osgi.service.component.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.metatype.annotations</artifactId>
+                <version>${org.osgi.service.metatype.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Needs to be placed after 'org.osgi.service.component.annotations' otherwise field @Reference will not work -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.compendium</artifactId>
+                <version>${org.osgi.compendium.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Web Application API -->
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>javax.servlet-api</artifactId>
+                <version>${javax.servlet-api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- dependency injection annotations -->
+            <dependency>
+                <groupId>javax.inject</groupId>
+                <artifactId>javax.inject</artifactId>
+                <version>$[javax.inject.version</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- JCR API -->
+            <dependency>
+                <groupId>javax.jcr</groupId>
+                <artifactId>jcr</artifactId>
+                <version>${jcr.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Basic Logging -->
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>1.7.6</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>org.jetbrains</groupId>
+                <artifactId>annotations</artifactId>
+                <version>${jetbrains.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Apache Sling Dependencies -->
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.api</artifactId>
+                <version>2.9.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.settings</artifactId>
+                <version>${sling.settings.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.commons.osgi</artifactId>
+                <version>${sling.commons.osgi.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.models.api</artifactId>
+                <version>${sling.models.api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.jackrabbit</groupId>
+                <artifactId>jackrabbit-api</artifactId>
+                <version>${jackrabbit-api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Support -->
+            <dependency>
+                <groupId>commons-lang</groupId>
+                <artifactId>commons-lang</artifactId>
+                <version>${commons-lang.version}</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>${jmock-junit4.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-simple</artifactId>
+                <version>1.7.6</version>
+                <scope>test</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <modules>
+        <module>core</module>
+        <module>ui.apps</module>
+    </modules>
+</project>
+ 
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml
new file mode 100644
index 0000000..4ec8713
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/pom.xml
@@ -0,0 +1,124 @@
+<?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>
+        <artifactId>sling-cpconverter-maven-plugin-test-no-param</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>sling-cpconverter-maven-plugin-test-no-param.ui.apps</artifactId>
+    <packaging>content-package</packaging>
+
+    <name>CQ Converter Test - UI Apps</name>
+    <description>
+        This is an empty JCR Package where the JCR Content
+        can be deployed with.
+    </description>
+    <!-- NOTE:
+        For a 'not all' package this JCR Package will embedd
+        the "core" bundle. It can be deployed with the
+        "autoInstallPackage" profile.
+
+        For an 'all' package this only provides the content
+        of the project which is deployed in the root with
+        the "autoInstallAll" profile.
+
+        It is advisable to deploy any bundles or packages
+        in one manner as deploying bundles inside a package
+        and through the System Console can lead to unexpected
+        and errorneous situations.
+    -->
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>sling-cpconverter-maven-plugin-test-no-param.core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.cpconverter</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.jackrabbit</groupId>
+                <artifactId>filevault-package-maven-plugin</artifactId>
+                <configuration>
+                    <filterSource>${basedir}/src/main/content/META-INF/vault/filter.xml</filterSource>
+                    <embeddedTarget>/apps/cqconverter/install</embeddedTarget>
+                    <embeddeds>
+                        <embedded>
+                            <groupId>${project.groupId}</groupId>
+                            <artifactId>sling-cpconverter-maven-plugin-test-no-param.core</artifactId>
+                            <filter>true</filter>
+                        </embedded>
+                    </embeddeds>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>@project.groupId@</groupId>
+                <artifactId>@project.artifactId@</artifactId>
+                <version>@project.version@</version>
+                <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>convert-cp</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>convert-cp</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+    <profiles>
+        <!-- ATTENTION: It is highly recomended not to deploy this with this Profile if this Package was or will be deployed with the All package -->
+        <profile>
+            <id>autoInstallPackage</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>io.wcm.maven.plugins</groupId>
+                        <artifactId>wcmio-content-package-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>install-package</id>
+                                <goals>
+                                    <goal>install</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/META-INF/vault/filter.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/META-INF/vault/filter.xml
new file mode 100644
index 0000000..e022dcc
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/META-INF/vault/filter.xml
@@ -0,0 +1,40 @@
+<?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.
+-->
+
+<workspaceFilter version="1.0">
+    <!--
+        Any node that will contain customer data needs to be excluded
+        otherwise a Pacakge Installation will wipe them.
+
+        If there is a mix then all provided nodes must be included and
+        all custom nodes excluded.
+
+        If unsure what to do then go to the Composum Package Manager
+        (/bin/packages.html) and create a test package. To to the package
+        filter list and add filter entries until all of the app provides
+        nodes are included but none of the customer generatedd nodes.
+
+        Also any sub pckage of this module needs to exclude /apps/cqconverter/install
+        folder otherwise they wipe all installed bundles.
+    -->
+    <filter root="/content/cpconverter"/>
+    <!--
+        Need to exclude the Install folder otherwise the Bundle will be undeployed
+        as it is in the '/apps/cqconverter/install' folder (see the 'all'
+        package).
+    -->
+    <filter root="/apps/cqconverter">
+        <exclude pattern="/apps/cqconverter/install/.*"/>
+    </filter>
+</workspaceFilter>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/META-INF/vault/settings.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/META-INF/vault/settings.xml
new file mode 100644
index 0000000..b70c9b9
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/META-INF/vault/settings.xml
@@ -0,0 +1,17 @@
+<?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.
+-->
+<vault version="1.0">
+  <ignore name=".svn"/>
+  <ignore name=".git"/>
+</vault>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml
new file mode 100644
index 0000000..1a8424c
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Root"
+          jcr:description="CQ Converter Test Apps Root folder"
+/>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml
new file mode 100644
index 0000000..99124e4
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml
@@ -0,0 +1,20 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Home Page Component"
+          jcr:description="CQ Converter Test Home Page Component with HTL"
+          sling:resourceSuperType="cqconverter/page"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html
new file mode 100644
index 0000000..dd8f148
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html
@@ -0,0 +1,24 @@
+<!-- /*
+    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.
+*/ -->
+<h2>${properties.jcr:title}</h2>
+<p>CQ Converter Test Home Page from Sling Project Archetype</p>
+<p><b><i>Description: </i></b>${properties.jcr:description}</p>
+<div data-sly-use.sampleRequest="org.apache.sling.cpconverter.test.cqconverter.SampleRequestModel">
+	<p>Current User: ${sampleRequest.currentUser}</p>
+</div>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html
new file mode 100644
index 0000000..67576c8
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html
@@ -0,0 +1,23 @@
+<!-- /*
+    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.
+*/ -->
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>CQ Converter Test Home Page</title>
+<!-- ${properties.jcr:title} -->
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml
new file mode 100644
index 0000000..42debc9
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml
@@ -0,0 +1,23 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="Install Folder"
+/>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml
new file mode 100644
index 0000000..b822f2a
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Page Component"
+          jcr:description="CQ Converter Test Page Component with HTL"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html
new file mode 100644
index 0000000..35078a3
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html
@@ -0,0 +1,21 @@
+<!-- /*
+    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.
+*/ -->
+<h2>${properties.jcr:title}</h2>
+<p>CQ Converter Test Page from Sling Project Archetype</p>
+<p><b>Description: </b>${properties.jcr:description}</p>
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html
new file mode 100644
index 0000000..33f7cba
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html
@@ -0,0 +1,19 @@
+<!-- /*
+    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.
+*/ -->
+CQ Converter Test Footer
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html
new file mode 100644
index 0000000..1e72971
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html
@@ -0,0 +1,23 @@
+<!-- /*
+    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.
+*/ -->
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>CQ Converter Test Page</title>
+<!-- ${properties.jcr:title} -->
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html
new file mode 100644
index 0000000..5dad451
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html
@@ -0,0 +1,35 @@
+<!-- /*
+    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.
+*/ -->
+<!DOCTYPE html>
+<html>
+<head>
+    <sly data-sly-include="${'head.html'}"/>
+</head>
+    <body>
+        <h3>Navigation</h3>
+        <div data-sly-list.child="${resource.listChildren}">
+            <a href="${child.path}.html">${child.name}</a>
+        </div>
+        <br/>
+        <sly data-sly-include="${'body.html'}"/>
+        <footer>
+            <sly data-sly-include="${'footer.html'}"/>
+        </footer>
+    </body>
+</html>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml
new file mode 100644
index 0000000..61ba9d7
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml
@@ -0,0 +1,18 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Content Root"
+          jcr:description="CQ Converter Test Content Root Page"
+/>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml
new file mode 100644
index 0000000..821a340
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml
@@ -0,0 +1,20 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Home"
+          jcr:description="CQ Converter Test Home Page"
+          sling:resourceType="cqconverter/home"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml
new file mode 100644
index 0000000..48e6832
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml
@@ -0,0 +1,25 @@
+<?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.
+--><jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Welcome"
+          jcr:description="CQ Converter Test Welcome Page"
+          sling:resourceType="cqconverter/page"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-no-parameters/verify.bsh b/src/it/package-with-single-bundle-no-parameters/verify.bsh
new file mode 100644
index 0000000..88da15c
--- /dev/null
+++ b/src/it/package-with-single-bundle-no-parameters/verify.bsh
@@ -0,0 +1,93 @@
+/*
+ * 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.
+ */
+import java.io.*;
+import java.util.*;
+import org.codehaus.plexus.util.*;
+
+    boolean check() {
+        String projectName = "sling-cpconverter-maven-plugin-test-no-param.ui.apps";
+        String projectCoreName = "sling-cpconverter-maven-plugin-test-no-param.core";
+        String projectVersion = "1.0.0-SNAPSHOT";
+        String projectGroup = "org.apache.sling";
+        String projectGroupPath = projectGroup.replaceAll("\\.", "/");
+
+        File targetFolder = new File(basedir, "ui.apps/target");
+        File packageFile = new File(targetFolder, projectName + "-" + projectVersion + ".zip");
+        if(!packageFile.exists()) {
+            System.out.println("Content Package was not created: " + packageFile);
+            return false;
+        }
+        File outputFolder = new File(targetFolder, "cp-conversion");
+        File featureModelFolder = new File(outputFolder, "fm.out");
+        if(!featureModelFolder.exists()) {
+            System.out.println("Feature Model Folder was not created" + featureModelFolder);
+            return false;
+        }
+        File featureModelFile = new File(featureModelFolder, projectName + ".json");
+        if(!featureModelFile.exists()) {
+            System.out.println("Feature Model File was not created: " + featureModelFile);
+            return false;
+        }
+        String log = FileUtils.fileRead(featureModelFile);
+        System.out.println("Feature Model File Content: " + log);
+        String[] values = {
+            "\"id\":\"" + projectGroup + ":" + projectName + ":slingosgifeature:" + projectVersion + "\"",
+            "\"bundles\":[",
+            "\"id\":\"" + projectGroup + ":" + projectCoreName + ":" + projectVersion + "\"",
+            "\"content-packages:ARTIFACTS|true\":[",
+            "\"" + projectGroup + ":" + projectName + ":zip:cp2fm-converted:" + projectVersion + "\""
+        };
+        for (String value : values) {
+            if (log.indexOf(value) < 0) {
+                System.out.println("Did not find line: " + value + " -> FAILED!");
+                return false;
+            }
+        }
+        File convertedPackageFolder = new File(outputFolder, projectGroupPath + "/" + projectName + "/" + projectVersion);
+        if(!convertedPackageFolder.exists()) {
+            System.out.println("Converted Package Folder was not created: " + convertedPackageFolder);
+            return false;
+        }
+        File convertedPackageFile = new File(convertedPackageFolder, projectName + "-" + projectVersion + "-cp2fm-converted.zip");
+        if(!convertedPackageFile.exists()) {
+            System.out.println("Converted Package File was not created: " + convertedPackageFile);
+            return false;
+        }
+        // TODO: Adjust the code here to also support local repositories when this is activated
+        File userHomeFolder = new File(System.getProperty("user.home"));
+        File localMavenRepo = new File(userHomeFolder, ".m2/repository");
+        File convertedPackageTargetFolder = new File(localMavenRepo, projectGroupPath + "/" + projectName + "/" + projectVersion);
+        if(!convertedPackageTargetFolder.exists()) {
+            System.out.println("Converted Package Target (Maven) Folder was not created: " + convertedPackageTargetFolder);
+            return false;
+        }
+        File convertedPackageTargetFile = new File(convertedPackageTargetFolder, projectName + "-" + projectVersion + "-cp2fm-converted.zip");
+        if(!convertedPackageTargetFile.exists()) {
+            System.out.println("Converted Package Target File was not created: " + convertedPackageTargetFile);
+            return false;
+        }
+
+        return true;
+    }
+    try {
+        return check();
+    }
+    catch(Throwable t) {
+        t.printStackTrace();
+        return false;
+    }
+    return true;
diff --git a/src/it/package-with-single-bundle-target-mode/core/pom.xml b/src/it/package-with-single-bundle-target-mode/core/pom.xml
new file mode 100644
index 0000000..e9a550d
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/core/pom.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    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>
+        <artifactId>sling-cpconverter-maven-plugin-test-target-mode</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>sling-cpconverter-maven-plugin-test-target-mode.core</artifactId>
+    <packaging>bundle</packaging>
+
+    <name>CQ Converter Test - Core</name>
+    <description>
+        This is an empty OSGi Bundle which can be used
+        to compile and deploy OSGi Services to Sling.
+
+        This Bundle can be deployed using the Profile
+        "autoInstallBundle" but that should not be used
+        together with the "ui.apps" Profile "autoInstallAll"
+        as they are not deployed the same way and can lead
+        to undesired issues during deployment (bundle not
+        updated or not working at all).
+    </description>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Embed-Dependency>*;scope=compile;inline=true</Embed-Dependency>
+                        <Sling-Model-Packages>org.apache.sling.cpconverter.test.cqconverter</Sling-Model-Packages>
+                        <_dsannotations>*</_dsannotations>
+                        <_metatypeannotations>*</_metatypeannotations>
+                        <_removeheaders>
+                            Embed-Dependency,
+                            Private-Package,
+                            Include-Resource
+                        </_removeheaders>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>7</source>
+                    <target>7</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>maven-sling-plugin</artifactId>
+                <configuration>
+                    <slingUrl>http://${sling.host}:${sling.port}/system/console</slingUrl>
+                    <user>${sling.user}</user>
+                    <password>${sling.password}</password>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.annotation</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component.annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.metatype.annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.models.api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
+
+    <!--
+        Attention: the autoInstallBundle was removed as deploying bundles directly and through a package is causing
+                   issues with updates and can prevent the latest code of a bundle being deployed.
+                   If you know what you are doing then you can use maven-sling-plugin directly from the Maven CLI.
+    -->
+</project>
diff --git a/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java b/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java
new file mode 100644
index 0000000..a015bb8
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java
@@ -0,0 +1,53 @@
+/*
+ * 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.cpconverter.test.cqconverter;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.injectorspecific.SlingObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.Session;
+
+@Model(adaptables = {Resource.class, SlingHttpServletRequest.class})
+public class SampleRequestModel {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SampleRequestModel.class);
+
+    @SlingObject
+    private ResourceResolver resourceResolver;
+
+    public SampleRequestModel() {
+        LOGGER.trace("Model Instance created");
+    }
+
+    /** @return User Name of the Current User **/
+    public String getCurrentUser() {
+        String answer = "No User";
+
+        // Adapt to a session and get the current User ID.
+        Session session = resourceResolver.adaptTo(Session.class);
+        LOGGER.trace("Found Session from Resolver: '{}'", session);
+        if(session != null) {
+            answer = session.getUserID();
+        }
+        return answer;
+    }
+}
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java b/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java
new file mode 100644
index 0000000..27db4f4
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java
@@ -0,0 +1,71 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hello World Servlet registered by path
+ */
+@Component(
+    service = Servlet.class,
+    property = {
+        Constants.SERVICE_DESCRIPTION + "=Hello World Path Servlet",
+        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+        "sling.servlet.paths=/hello-world-servlet"
+    }
+)
+@SuppressWarnings("serial")
+public class ByPathServlet extends SlingSafeMethodsServlet {
+    
+    private final Logger log = LoggerFactory.getLogger(ByPathServlet.class);
+
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
+        
+        Writer w = response.getWriter();
+        w.write("<!DOCTYPE html PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
+        w.write("<html>");
+        w.write("<head>");
+        w.write("<title>Hello World Servlet</title>");
+        w.write("</head>");
+        w.write("<body>");
+        w.write("<h1>Hello World!</h1>");
+        w.write("</body>");
+        w.write("</html>");
+        
+        log.info("Hello World Servlet");
+        
+    }
+
+}
+
diff --git a/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java b/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java
new file mode 100644
index 0000000..da24407
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java
@@ -0,0 +1,77 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hello World Servlet registered by resource type
+ */
+@Component(
+    service = Servlet.class,
+    property = {
+        Constants.SERVICE_DESCRIPTION + "=Hello World Path Servlet",
+        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+        "sling.servlet.resourceTypes=sling/servlet/default",
+        "sling.servlet.selectors=hello",
+        "sling.servlet.extensions=html",
+    }
+)
+@SuppressWarnings("serial")
+public class ByResourceTypeServlet extends SlingSafeMethodsServlet {
+    
+    private final Logger log = LoggerFactory.getLogger(ByResourceTypeServlet.class);
+
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
+        Resource resource = request.getResource();
+
+        Writer w = response.getWriter();
+        w.write("<!DOCTYPE html PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
+        w.write("<html>");
+        w.write("<head>");
+        w.write("<title>Hello World Servlet</title>");
+        w.write("</head>");
+        w.write("<body>");
+        w.write("<h1>Hello ");
+        w.write(resource.getPath());
+        w.write("</h1>");
+        w.write("</body>");
+        w.write("</html>");
+        
+        log.info("Hello World Servlet");
+        
+    }
+
+}
+
diff --git a/src/it/package-with-single-bundle-target-mode/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java b/src/it/package-with-single-bundle-target-mode/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
new file mode 100644
index 0000000..f2f5286
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import junit.framework.TestCase;
+
+/**
+ * Unit test for By Path Servlet.
+ */
+public class ByPathServletTest extends TestCase {
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testByPathServlet() {
+        assertTrue(true);
+    }
+    
+}
diff --git a/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml b/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
new file mode 100644
index 0000000..ee2a9c9
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/fm.launcher/pom.xml
@@ -0,0 +1,98 @@
+<?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>
+        <artifactId>sling-cpconverter-maven-plugin-test-target-mode</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>sling-cpconverter-maven-plugin-test-target-mode.fm.launcher</artifactId>
+    <packaging>jar</packaging>
+
+    <name>CQ Converter Test - UI Apps</name>
+    <description>
+        This is an empty JCR Package where the JCR Content
+        can be deployed with.
+    </description>
+    <!-- NOTE:
+        For a 'not all' package this JCR Package will embedd
+        the "core" bundle. It can be deployed with the
+        "autoInstallPackage" profile.
+
+        For an 'all' package this only provides the content
+        of the project which is deployed in the root with
+        the "autoInstallAll" profile.
+
+        It is advisable to deploy any bundles or packages
+        in one manner as deploying bundles inside a package
+        and through the System Console can lead to unexpected
+        and errorneous situations.
+    -->
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>sling-cpconverter-maven-plugin-test-target-mode.ui.apps</artifactId>
+            <version>${project.version}</version>
+            <type>zip</type>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.cpconverter</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>@project.groupId@</groupId>
+                <artifactId>@project.artifactId@</artifactId>
+                <version>@project.version@</version>
+                <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>convert-cp</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>convert-cp</goal>
+                        </goals>
+                        <configuration>
+                            <!-- NOTE: ${} is replaced no matter what so this trick seems to work by adding a zero-width-whitespace character (&#8203;)-->
+                            <artifactIdOverride>$&#8203;{project.groupId}:$&#8203;{project.artifactId}:slingosgifeature:@project.artifactId@:$&#8203;{project.version}</artifactIdOverride>
+                            <installConvertedPackage>true</installConvertedPackage>
+                            <contentPackages>
+                                <contentPackage>
+                                    <groupId>${project.groupId}</groupId>
+                                    <artifactId>sling-cpconverter-maven-plugin-test-target-mode.ui.apps</artifactId>
+                                </contentPackage>
+                            </contentPackages>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/src/it/package-with-single-bundle-target-mode/invoker.properties b/src/it/package-with-single-bundle-target-mode/invoker.properties
new file mode 100644
index 0000000..209b6ef
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+
+invoker.goals = clean install
+invoker.debug = true
diff --git a/src/it/package-with-single-bundle-target-mode/pom.xml b/src/it/package-with-single-bundle-target-mode/pom.xml
new file mode 100644
index 0000000..c671441
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/pom.xml
@@ -0,0 +1,419 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    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>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-cpconverter-maven-plugin-test-target-mode</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+    <name>Apache Sling Features Maven plugin test - target mode</name>
+    <description>This is just an Apache Sling Content Package Maven plugin test to convert a package with a single
+        bundle
+    </description>
+    <organization>
+        <name>The Apache Software Foundation</name>
+        <url>https://www.apache.org/</url>
+    </organization>
+    <licenses>
+        <license>
+            <name>Apache License, Version 2.0</name>
+            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+    <properties>
+        <interpolated_variable>true</interpolated_variable>
+        <osgi.framework.version>1.9.0</osgi.framework.version>
+        <sling.framework.install.incremental>true</sling.framework.install.incremental>
+        <sling.framework.install.startlevel>1</sling.framework.install.startlevel>
+        <sling.ignoreSystemProperties>true</sling.ignoreSystemProperties>
+
+        <sling.host>localhost</sling.host>
+        <sling.port>8080</sling.port>
+        <sling.user>admin</sling.user>
+
+        <sling.password>admin</sling.password>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+        <release.plugin.version>2.5.3</release.plugin.version>
+        <source.plugin.version>3.0.1</source.plugin.version>
+        <resource.plugin.version>3.1.0</resource.plugin.version>
+        <jar.plugin.version>3.1.1</jar.plugin.version>
+        <enforcer.plugin.version>3.0.0-M2</enforcer.plugin.version>
+        <compiler.plugin.version>3.8.0</compiler.plugin.version>
+        <bundle.plugin.version>4.2.0</bundle.plugin.version>
+        <clean.plugin.version>3.1.0</clean.plugin.version>
+        <installer.plugin.version>3.0.0-M1</installer.plugin.version>
+        <surfire.plugin.version>3.0.0-M3</surfire.plugin.version>
+        <failsafe.plugin.version>3.0.0-M3</failsafe.plugin.version>
+        <deploy.plugin.version>3.0.0-M1</deploy.plugin.version>
+        <sling.plugin.version>2.4.0</sling.plugin.version>
+        <dependency.plugin.version>3.1.1</dependency.plugin.version>
+        <build.helper.plugin.version>3.0.0</build.helper.plugin.version>
+        <wcmio.plugin.version>1.6.18</wcmio.plugin.version>
+        <filevault-package.plugin.version>1.0.3</filevault-package.plugin.version>
+
+        <osgi.core.version>7.0.0</osgi.core.version>
+        <osgi.annotation.version>7.0.0</osgi.annotation.version>
+        <org.osgi.service.component.annotations.version>1.4.0</org.osgi.service.component.annotations.version>
+        <org.osgi.service.metatype.annotations.version>1.4.0</org.osgi.service.metatype.annotations.version>
+        <org.osgi.compendium.version>5.0.0</org.osgi.compendium.version>
+        <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
+        <javax.inject.version>1</javax.inject.version>
+        <jcr.version>2.0</jcr.version>
+        <sling.models.api.version>1.3.6</sling.models.api.version>
+        <jetbrains.annotations.version>16.0.2</jetbrains.annotations.version>
+        <sling.settings.version>1.3.10</sling.settings.version>
+        <sling.commons.osgi.version>2.4.0</sling.commons.osgi.version>
+        <jackrabbit-api.version>2.16.3</jackrabbit-api.version>
+        <commons-lang.version>2.6</commons-lang.version>
+        <jmock-junit4.version>2.8.2</jmock-junit4.version>
+    </properties>
+    <build>
+        <plugins>
+            <!-- Maven Release Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <configuration>
+                    <scmCommentPrefix>[maven-scm] :</scmCommentPrefix>
+                    <preparationGoals>clean install</preparationGoals>
+                    <goals>install</goals>
+                    <releaseProfiles>release</releaseProfiles>
+                </configuration>
+            </plugin>
+            <!-- Maven Source Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <inherited>true</inherited>
+            </plugin>
+            <!-- Maven Resources Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <!-- Maven Jar Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+            </plugin>
+            <!-- Maven Enforcer Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>enforce-maven</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireMavenVersion>
+                                    <message>Project must be built with Maven 3.1.0 or higher</message>
+                                    <version>[3.1.0,)</version>
+                                </requireMavenVersion>
+                                <requireJavaVersion>
+                                    <message>Project must be compiled with Java 7 or higher</message>
+                                    <version>1.7.0</version>
+                                </requireJavaVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <!-- Maven Compiler Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+        </plugins>
+        <pluginManagement>
+            <plugins>
+                <!-- Maven Release Plugin -->
+                <plugin>
+                    <artifactId>maven-release-plugin</artifactId>
+                    <version>${release.plugin.version}</version>
+                </plugin>
+                <!-- Maven Source Plugin -->
+                <plugin>
+                    <artifactId>maven-source-plugin</artifactId>
+                    <version>${source.plugin.version}</version>
+                </plugin>
+                <!-- Maven Resources Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>${resource.plugin.version}</version>
+                </plugin>
+                <!-- Maven Jar Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>${jar.plugin.version}</version>
+                </plugin>
+                <!-- Maven Enforcer Plugin -->
+                <plugin>
+                    <artifactId>maven-enforcer-plugin</artifactId>
+                    <version>${enforcer.plugin.version}</version>
+                </plugin>
+                <!-- Maven Compiler Plugin -->
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${compiler.plugin.version}</version>
+                </plugin>
+
+                <!-- Maven Clean Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>${clean.plugin.version}</version>
+                </plugin>
+                <!-- Maven Installer Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>${installer.plugin.version}</version>
+                </plugin>
+                <!-- Maven Surefire Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${surfire.plugin.version}</version>
+                </plugin>
+                <!-- Maven Failsafe Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-failsafe-plugin</artifactId>
+                    <version>${failsafe.plugin.version}</version>
+                </plugin>
+                <!-- Maven Deploy Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>${deploy.plugin.version}</version>
+                </plugin>
+                <!-- Apache Sling Plugin -->
+                <plugin>
+                    <groupId>org.apache.sling</groupId>
+                    <artifactId>maven-sling-plugin</artifactId>
+                    <version>${sling.plugin.version}</version>
+                </plugin>
+                <!-- Content Package Plugin -->
+                <plugin>
+                    <groupId>org.apache.jackrabbit</groupId>
+                    <artifactId>filevault-package-maven-plugin</artifactId>
+                    <version>${filevault-package.plugin.version}</version>
+                    <extensions>true</extensions>
+                    <configuration>
+                        <failOnMissingEmbed>true</failOnMissingEmbed>
+                        <force>true</force>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>io.wcm.maven.plugins</groupId>
+                    <artifactId>wcmio-content-package-maven-plugin</artifactId>
+                    <version>${wcmio.plugin.version}</version>
+                    <configuration>
+                        <serviceURL>http://${sling.host}:${sling.port}/bin/cpm/</serviceURL>
+                        <userId>${sling.user}</userId>
+                        <password>${sling.password}</password>
+                        <failOnMissingEmbed>true</failOnMissingEmbed>
+                        <force>true</force>
+                        <group>cpconverter</group>
+                    </configuration>
+                </plugin>
+                <!-- Apache Felix Bundle Plugin -->
+                <plugin>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>maven-bundle-plugin</artifactId>
+                    <version>${bundle.plugin.version}</version>
+                    <inherited>true</inherited>
+                </plugin>
+                <!-- Maven Dependency Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>${dependency.plugin.version}</version>
+                </plugin>
+                <!-- Build Helper Maven Plugin -->
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>build-helper-maven-plugin</artifactId>
+                    <version>${build.helper.plugin.version}</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+
+    <!-- ====================================================================== -->
+    <!-- D E P E N D E N C I E S                                                -->
+    <!-- ====================================================================== -->
+    <dependencyManagement>
+        <dependencies>
+            <!-- OSGi Dependencies -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>osgi.core</artifactId>
+                <version>${osgi.core.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- OSGi annotations: @Version, @ProviderType, @ConsumerType -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>osgi.annotation</artifactId>
+                <version>${osgi.annotation.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- OSGi annotations for DS and metatype -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.component.annotations</artifactId>
+                <version>${org.osgi.service.component.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.metatype.annotations</artifactId>
+                <version>${org.osgi.service.metatype.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Needs to be placed after 'org.osgi.service.component.annotations' otherwise field @Reference will not work -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.compendium</artifactId>
+                <version>${org.osgi.compendium.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Web Application API -->
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>javax.servlet-api</artifactId>
+                <version>${javax.servlet-api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- dependency injection annotations -->
+            <dependency>
+                <groupId>javax.inject</groupId>
+                <artifactId>javax.inject</artifactId>
+                <version>$[javax.inject.version</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- JCR API -->
+            <dependency>
+                <groupId>javax.jcr</groupId>
+                <artifactId>jcr</artifactId>
+                <version>${jcr.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Basic Logging -->
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>1.7.6</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>org.jetbrains</groupId>
+                <artifactId>annotations</artifactId>
+                <version>${jetbrains.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Apache Sling Dependencies -->
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.api</artifactId>
+                <version>2.9.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.settings</artifactId>
+                <version>${sling.settings.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.commons.osgi</artifactId>
+                <version>${sling.commons.osgi.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.models.api</artifactId>
+                <version>${sling.models.api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.jackrabbit</groupId>
+                <artifactId>jackrabbit-api</artifactId>
+                <version>${jackrabbit-api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Support -->
+            <dependency>
+                <groupId>commons-lang</groupId>
+                <artifactId>commons-lang</artifactId>
+                <version>${commons-lang.version}</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>${jmock-junit4.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-simple</artifactId>
+                <version>1.7.6</version>
+                <scope>test</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <modules>
+        <module>core</module>
+        <module>ui.apps</module>
+        <module>fm.launcher</module>
+    </modules>
+</project>
+ 
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml
new file mode 100644
index 0000000..393a432
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/pom.xml
@@ -0,0 +1,108 @@
+<?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>
+        <artifactId>sling-cpconverter-maven-plugin-test-target-mode</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>sling-cpconverter-maven-plugin-test-target-mode.ui.apps</artifactId>
+    <packaging>content-package</packaging>
+
+    <name>CQ Converter Test - UI Apps</name>
+    <description>
+        This is an empty JCR Package where the JCR Content
+        can be deployed with.
+    </description>
+    <!-- NOTE:
+        For a 'not all' package this JCR Package will embedd
+        the "core" bundle. It can be deployed with the
+        "autoInstallPackage" profile.
+
+        For an 'all' package this only provides the content
+        of the project which is deployed in the root with
+        the "autoInstallAll" profile.
+
+        It is advisable to deploy any bundles or packages
+        in one manner as deploying bundles inside a package
+        and through the System Console can lead to unexpected
+        and errorneous situations.
+    -->
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>sling-cpconverter-maven-plugin-test-target-mode.core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.cpconverter</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.jackrabbit</groupId>
+                <artifactId>filevault-package-maven-plugin</artifactId>
+                <configuration>
+                    <filterSource>${basedir}/src/main/content/META-INF/vault/filter.xml</filterSource>
+                    <embeddedTarget>/apps/cqconverter/install</embeddedTarget>
+                    <embeddeds>
+                        <embedded>
+                            <groupId>${project.groupId}</groupId>
+                            <artifactId>sling-cpconverter-maven-plugin-test-target-mode.core</artifactId>
+                            <filter>true</filter>
+                        </embedded>
+                    </embeddeds>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <profiles>
+        <!-- ATTENTION: It is highly recomended not to deploy this with this Profile if this Package was or will be deployed with the All package -->
+        <profile>
+            <id>autoInstallPackage</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>io.wcm.maven.plugins</groupId>
+                        <artifactId>wcmio-content-package-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>install-package</id>
+                                <goals>
+                                    <goal>install</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/META-INF/vault/filter.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/META-INF/vault/filter.xml
new file mode 100644
index 0000000..e022dcc
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/META-INF/vault/filter.xml
@@ -0,0 +1,40 @@
+<?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.
+-->
+
+<workspaceFilter version="1.0">
+    <!--
+        Any node that will contain customer data needs to be excluded
+        otherwise a Pacakge Installation will wipe them.
+
+        If there is a mix then all provided nodes must be included and
+        all custom nodes excluded.
+
+        If unsure what to do then go to the Composum Package Manager
+        (/bin/packages.html) and create a test package. To to the package
+        filter list and add filter entries until all of the app provides
+        nodes are included but none of the customer generatedd nodes.
+
+        Also any sub pckage of this module needs to exclude /apps/cqconverter/install
+        folder otherwise they wipe all installed bundles.
+    -->
+    <filter root="/content/cpconverter"/>
+    <!--
+        Need to exclude the Install folder otherwise the Bundle will be undeployed
+        as it is in the '/apps/cqconverter/install' folder (see the 'all'
+        package).
+    -->
+    <filter root="/apps/cqconverter">
+        <exclude pattern="/apps/cqconverter/install/.*"/>
+    </filter>
+</workspaceFilter>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/META-INF/vault/settings.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/META-INF/vault/settings.xml
new file mode 100644
index 0000000..b70c9b9
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/META-INF/vault/settings.xml
@@ -0,0 +1,17 @@
+<?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.
+-->
+<vault version="1.0">
+  <ignore name=".svn"/>
+  <ignore name=".git"/>
+</vault>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml
new file mode 100644
index 0000000..1a8424c
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Root"
+          jcr:description="CQ Converter Test Apps Root folder"
+/>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml
new file mode 100644
index 0000000..99124e4
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml
@@ -0,0 +1,20 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Home Page Component"
+          jcr:description="CQ Converter Test Home Page Component with HTL"
+          sling:resourceSuperType="cqconverter/page"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html
new file mode 100644
index 0000000..dd8f148
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html
@@ -0,0 +1,24 @@
+<!-- /*
+    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.
+*/ -->
+<h2>${properties.jcr:title}</h2>
+<p>CQ Converter Test Home Page from Sling Project Archetype</p>
+<p><b><i>Description: </i></b>${properties.jcr:description}</p>
+<div data-sly-use.sampleRequest="org.apache.sling.cpconverter.test.cqconverter.SampleRequestModel">
+	<p>Current User: ${sampleRequest.currentUser}</p>
+</div>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html
new file mode 100644
index 0000000..67576c8
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html
@@ -0,0 +1,23 @@
+<!-- /*
+    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.
+*/ -->
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>CQ Converter Test Home Page</title>
+<!-- ${properties.jcr:title} -->
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml
new file mode 100644
index 0000000..42debc9
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml
@@ -0,0 +1,23 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="Install Folder"
+/>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml
new file mode 100644
index 0000000..b822f2a
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Page Component"
+          jcr:description="CQ Converter Test Page Component with HTL"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html
new file mode 100644
index 0000000..35078a3
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html
@@ -0,0 +1,21 @@
+<!-- /*
+    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.
+*/ -->
+<h2>${properties.jcr:title}</h2>
+<p>CQ Converter Test Page from Sling Project Archetype</p>
+<p><b>Description: </b>${properties.jcr:description}</p>
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html
new file mode 100644
index 0000000..33f7cba
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html
@@ -0,0 +1,19 @@
+<!-- /*
+    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.
+*/ -->
+CQ Converter Test Footer
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html
new file mode 100644
index 0000000..1e72971
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html
@@ -0,0 +1,23 @@
+<!-- /*
+    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.
+*/ -->
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>CQ Converter Test Page</title>
+<!-- ${properties.jcr:title} -->
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html
new file mode 100644
index 0000000..5dad451
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html
@@ -0,0 +1,35 @@
+<!-- /*
+    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.
+*/ -->
+<!DOCTYPE html>
+<html>
+<head>
+    <sly data-sly-include="${'head.html'}"/>
+</head>
+    <body>
+        <h3>Navigation</h3>
+        <div data-sly-list.child="${resource.listChildren}">
+            <a href="${child.path}.html">${child.name}</a>
+        </div>
+        <br/>
+        <sly data-sly-include="${'body.html'}"/>
+        <footer>
+            <sly data-sly-include="${'footer.html'}"/>
+        </footer>
+    </body>
+</html>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml
new file mode 100644
index 0000000..61ba9d7
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml
@@ -0,0 +1,18 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Content Root"
+          jcr:description="CQ Converter Test Content Root Page"
+/>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml
new file mode 100644
index 0000000..821a340
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml
@@ -0,0 +1,20 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Home"
+          jcr:description="CQ Converter Test Home Page"
+          sling:resourceType="cqconverter/home"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml
new file mode 100644
index 0000000..48e6832
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml
@@ -0,0 +1,25 @@
+<?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.
+--><jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Welcome"
+          jcr:description="CQ Converter Test Welcome Page"
+          sling:resourceType="cqconverter/page"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-target-mode/verify.bsh b/src/it/package-with-single-bundle-target-mode/verify.bsh
new file mode 100644
index 0000000..28993ab
--- /dev/null
+++ b/src/it/package-with-single-bundle-target-mode/verify.bsh
@@ -0,0 +1,94 @@
+/*
+ * 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.
+ */
+import java.io.*;
+import java.util.*;
+import org.codehaus.plexus.util.*;
+
+    boolean check() {
+        String projectName = "sling-cpconverter-maven-plugin-test-target-mode.ui.apps";
+        String projectCoreName = "sling-cpconverter-maven-plugin-test-target-mode.core";
+        String projectVersion = "1.0.0-SNAPSHOT";
+        String projectGroup = "org.apache.sling";
+        String projectGroupPath = projectGroup.replaceAll("\\.", "/");
+
+        File cpTargetFolder = new File(basedir, "ui.apps/target");
+        File packageFile = new File(cpTargetFolder, projectName + "-" + projectVersion + ".zip");
+        if(!packageFile.exists()) {
+            System.out.println("Content Package was not created: " + packageFile);
+            return false;
+        }
+        File targetFolder = new File(basedir, "fm.launcher/target");
+        File outputFolder = new File(targetFolder, "cp-conversion");
+        File featureModelFolder = new File(outputFolder, "fm.out");
+        if(!featureModelFolder.exists()) {
+            System.out.println("Feature Model Folder was not created" + featureModelFolder);
+            return false;
+        }
+        File featureModelFile = new File(featureModelFolder, projectName + ".json");
+        if(!featureModelFile.exists()) {
+            System.out.println("Feature Model File was not created: " + featureModelFile);
+            return false;
+        }
+        String log = FileUtils.fileRead(featureModelFile);
+        System.out.println("Feature Model File Content: " + log);
+        String[] values = {
+            "\"id\":\"$​{project.groupId}:$​{project.artifactId}:slingosgifeature:sling-feature-converter-maven-plugin:$​{project.version}\"",
+            "\"bundles\":[",
+            "\"id\":\"" + projectGroup + ":" + projectCoreName + ":" + projectVersion + "\"",
+            "\"content-packages:ARTIFACTS|true\":[",
+            "\"" + projectGroup + ":" + projectName + ":zip:cp2fm-converted:" + projectVersion + "\""
+        };
+        for (String value : values) {
+            if (log.indexOf(value) < 0) {
+                System.out.println("Did not find line: " + value + " -> FAILED!");
+                return false;
+            }
+        }
+        File convertedPackageFolder = new File(outputFolder, projectGroupPath + "/" + projectName + "/" + projectVersion);
+        if(!convertedPackageFolder.exists()) {
+            System.out.println("Converted Package Folder was not created: " + convertedPackageFolder);
+            return false;
+        }
+        File convertedPackageFile = new File(convertedPackageFolder, projectName + "-" + projectVersion + "-cp2fm-converted.zip");
+        if(!convertedPackageFile.exists()) {
+            System.out.println("Converted Package File was not created: " + convertedPackageFile);
+            return false;
+        }
+        // TODO: Adjust the code here to also support local repositories when this is activated
+        File userHomeFolder = new File(System.getProperty("user.home"));
+        File localMavenRepo = new File(userHomeFolder, ".m2/repository");
+        File convertedPackageTargetFolder = new File(localMavenRepo, projectGroupPath + "/" + projectName + "/" + projectVersion);
+        if(!convertedPackageTargetFolder.exists()) {
+            System.out.println("Converted Package Target (Maven) Folder was not created: " + convertedPackageTargetFolder);
+            return false;
+        }
+        File convertedPackageTargetFile = new File(convertedPackageTargetFolder, projectName + "-" + projectVersion + "-cp2fm-converted.zip");
+        if(!convertedPackageTargetFile.exists()) {
+            System.out.println("Converted Package Target File was not created: " + convertedPackageTargetFile);
+            return false;
+        }
+
+        return true;
+    }
+    try {
+        return check();
+    }
+    catch(Throwable t) {
+        t.printStackTrace();
+        return false;
+    }
+    return true;
diff --git a/src/it/package-with-single-bundle-with-parameters/core/pom.xml b/src/it/package-with-single-bundle-with-parameters/core/pom.xml
new file mode 100644
index 0000000..1fc3757
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/core/pom.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    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>
+        <artifactId>sling-cpconverter-maven-plugin-test-with-param</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>sling-cpconverter-maven-plugin-test-with-param.core</artifactId>
+    <packaging>bundle</packaging>
+
+    <name>CQ Converter Test - Core</name>
+    <description>
+        This is an empty OSGi Bundle which can be used
+        to compile and deploy OSGi Services to Sling.
+
+        This Bundle can be deployed using the Profile
+        "autoInstallBundle" but that should not be used
+        together with the "ui.apps" Profile "autoInstallAll"
+        as they are not deployed the same way and can lead
+        to undesired issues during deployment (bundle not
+        updated or not working at all).
+    </description>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Embed-Dependency>*;scope=compile;inline=true</Embed-Dependency>
+                        <Sling-Model-Packages>org.apache.sling.cpconverter.test.cqconverter</Sling-Model-Packages>
+                        <_dsannotations>*</_dsannotations>
+                        <_metatypeannotations>*</_metatypeannotations>
+                        <_removeheaders>
+                            Embed-Dependency,
+                            Private-Package,
+                            Include-Resource
+                        </_removeheaders>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>7</source>
+                    <target>7</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>maven-sling-plugin</artifactId>
+                <configuration>
+                    <slingUrl>http://${sling.host}:${sling.port}/system/console</slingUrl>
+                    <user>${sling.user}</user>
+                    <password>${sling.password}</password>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.annotation</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component.annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.metatype.annotations</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.compendium</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.jcr</groupId>
+            <artifactId>jcr</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.models.api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.jackrabbit</groupId>
+            <artifactId>jackrabbit-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+    </dependencies>
+
+    <!--
+        Attention: the autoInstallBundle was removed as deploying bundles directly and through a package is causing
+                   issues with updates and can prevent the latest code of a bundle being deployed.
+                   If you know what you are doing then you can use maven-sling-plugin directly from the Maven CLI.
+    -->
+</project>
diff --git a/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java b/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java
new file mode 100644
index 0000000..a015bb8
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/cqconverter/SampleRequestModel.java
@@ -0,0 +1,53 @@
+/*
+ * 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.cpconverter.test.cqconverter;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.models.annotations.Model;
+import org.apache.sling.models.annotations.injectorspecific.SlingObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jcr.Session;
+
+@Model(adaptables = {Resource.class, SlingHttpServletRequest.class})
+public class SampleRequestModel {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SampleRequestModel.class);
+
+    @SlingObject
+    private ResourceResolver resourceResolver;
+
+    public SampleRequestModel() {
+        LOGGER.trace("Model Instance created");
+    }
+
+    /** @return User Name of the Current User **/
+    public String getCurrentUser() {
+        String answer = "No User";
+
+        // Adapt to a session and get the current User ID.
+        Session session = resourceResolver.adaptTo(Session.class);
+        LOGGER.trace("Found Session from Resolver: '{}'", session);
+        if(session != null) {
+            answer = session.getUserID();
+        }
+        return answer;
+    }
+}
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java b/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java
new file mode 100644
index 0000000..27db4f4
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByPathServlet.java
@@ -0,0 +1,71 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hello World Servlet registered by path
+ */
+@Component(
+    service = Servlet.class,
+    property = {
+        Constants.SERVICE_DESCRIPTION + "=Hello World Path Servlet",
+        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+        "sling.servlet.paths=/hello-world-servlet"
+    }
+)
+@SuppressWarnings("serial")
+public class ByPathServlet extends SlingSafeMethodsServlet {
+    
+    private final Logger log = LoggerFactory.getLogger(ByPathServlet.class);
+
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
+        
+        Writer w = response.getWriter();
+        w.write("<!DOCTYPE html PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
+        w.write("<html>");
+        w.write("<head>");
+        w.write("<title>Hello World Servlet</title>");
+        w.write("</head>");
+        w.write("<body>");
+        w.write("<h1>Hello World!</h1>");
+        w.write("</body>");
+        w.write("</html>");
+        
+        log.info("Hello World Servlet");
+        
+    }
+
+}
+
diff --git a/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java b/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java
new file mode 100644
index 0000000..da24407
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/core/src/main/java/org/apache/sling/cpconverter/test/servlet/ByResourceTypeServlet.java
@@ -0,0 +1,77 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Hello World Servlet registered by resource type
+ */
+@Component(
+    service = Servlet.class,
+    property = {
+        Constants.SERVICE_DESCRIPTION + "=Hello World Path Servlet",
+        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+        "sling.servlet.resourceTypes=sling/servlet/default",
+        "sling.servlet.selectors=hello",
+        "sling.servlet.extensions=html",
+    }
+)
+@SuppressWarnings("serial")
+public class ByResourceTypeServlet extends SlingSafeMethodsServlet {
+    
+    private final Logger log = LoggerFactory.getLogger(ByResourceTypeServlet.class);
+
+    @Override
+    protected void doGet(SlingHttpServletRequest request,
+            SlingHttpServletResponse response) throws ServletException,
+            IOException {
+        Resource resource = request.getResource();
+
+        Writer w = response.getWriter();
+        w.write("<!DOCTYPE html PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
+        w.write("<html>");
+        w.write("<head>");
+        w.write("<title>Hello World Servlet</title>");
+        w.write("</head>");
+        w.write("<body>");
+        w.write("<h1>Hello ");
+        w.write(resource.getPath());
+        w.write("</h1>");
+        w.write("</body>");
+        w.write("</html>");
+        
+        log.info("Hello World Servlet");
+        
+    }
+
+}
+
diff --git a/src/it/package-with-single-bundle-with-parameters/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java b/src/it/package-with-single-bundle-with-parameters/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
new file mode 100644
index 0000000..f2f5286
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/core/src/test/java/org/apache/sling/cpconverter/test/org/apache/sling/cpconverter/test/servlet/ByPathServletTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.cpconverter.test.servlet;
+
+import junit.framework.TestCase;
+
+/**
+ * Unit test for By Path Servlet.
+ */
+public class ByPathServletTest extends TestCase {
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testByPathServlet() {
+        assertTrue(true);
+    }
+    
+}
diff --git a/src/it/package-with-single-bundle-with-parameters/invoker.properties b/src/it/package-with-single-bundle-with-parameters/invoker.properties
new file mode 100644
index 0000000..209b6ef
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+
+invoker.goals = clean install
+invoker.debug = true
diff --git a/src/it/package-with-single-bundle-with-parameters/pom.xml b/src/it/package-with-single-bundle-with-parameters/pom.xml
new file mode 100644
index 0000000..5df12ef
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/pom.xml
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    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>
+    <groupId>org.apache.sling</groupId>
+    <artifactId>sling-cpconverter-maven-plugin-test-with-param</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+    <name>Apache Sling Features Maven plugin test - with parameter</name>
+    <description>This is just an Apache Sling Content Package Maven plugin test to convert a package with a single
+        bundle
+    </description>
+    <organization>
+        <name>The Apache Software Foundation</name>
+        <url>https://www.apache.org/</url>
+    </organization>
+    <licenses>
+        <license>
+            <name>Apache License, Version 2.0</name>
+            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+            <distribution>repo</distribution>
+        </license>
+    </licenses>
+    <properties>
+        <interpolated_variable>true</interpolated_variable>
+        <osgi.framework.version>1.9.0</osgi.framework.version>
+        <sling.framework.install.incremental>true</sling.framework.install.incremental>
+        <sling.framework.install.startlevel>1</sling.framework.install.startlevel>
+        <sling.ignoreSystemProperties>true</sling.ignoreSystemProperties>
+
+        <sling.host>localhost</sling.host>
+        <sling.port>8080</sling.port>
+        <sling.user>admin</sling.user>
+
+        <sling.password>admin</sling.password>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+        <release.plugin.version>2.5.3</release.plugin.version>
+        <source.plugin.version>3.0.1</source.plugin.version>
+        <resource.plugin.version>3.1.0</resource.plugin.version>
+        <jar.plugin.version>3.1.1</jar.plugin.version>
+        <enforcer.plugin.version>3.0.0-M2</enforcer.plugin.version>
+        <compiler.plugin.version>3.8.0</compiler.plugin.version>
+        <bundle.plugin.version>4.2.0</bundle.plugin.version>
+        <clean.plugin.version>3.1.0</clean.plugin.version>
+        <installer.plugin.version>3.0.0-M1</installer.plugin.version>
+        <surfire.plugin.version>3.0.0-M3</surfire.plugin.version>
+        <failsafe.plugin.version>3.0.0-M3</failsafe.plugin.version>
+        <deploy.plugin.version>3.0.0-M1</deploy.plugin.version>
+        <sling.plugin.version>2.4.0</sling.plugin.version>
+        <dependency.plugin.version>3.1.1</dependency.plugin.version>
+        <build.helper.plugin.version>3.0.0</build.helper.plugin.version>
+        <wcmio.plugin.version>1.6.18</wcmio.plugin.version>
+        <filevault-package.plugin.version>1.0.3</filevault-package.plugin.version>
+
+        <osgi.core.version>7.0.0</osgi.core.version>
+        <osgi.annotation.version>7.0.0</osgi.annotation.version>
+        <org.osgi.service.component.annotations.version>1.4.0</org.osgi.service.component.annotations.version>
+        <org.osgi.service.metatype.annotations.version>1.4.0</org.osgi.service.metatype.annotations.version>
+        <org.osgi.compendium.version>5.0.0</org.osgi.compendium.version>
+        <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
+        <javax.inject.version>1</javax.inject.version>
+        <jcr.version>2.0</jcr.version>
+        <sling.models.api.version>1.3.6</sling.models.api.version>
+        <jetbrains.annotations.version>16.0.2</jetbrains.annotations.version>
+        <sling.settings.version>1.3.10</sling.settings.version>
+        <sling.commons.osgi.version>2.4.0</sling.commons.osgi.version>
+        <jackrabbit-api.version>2.16.3</jackrabbit-api.version>
+        <commons-lang.version>2.6</commons-lang.version>
+        <jmock-junit4.version>2.8.2</jmock-junit4.version>
+    </properties>
+    <build>
+        <plugins>
+            <!-- Maven Release Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <configuration>
+                    <scmCommentPrefix>[maven-scm] :</scmCommentPrefix>
+                    <preparationGoals>clean install</preparationGoals>
+                    <goals>install</goals>
+                    <releaseProfiles>release</releaseProfiles>
+                </configuration>
+            </plugin>
+            <!-- Maven Source Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <inherited>true</inherited>
+            </plugin>
+            <!-- Maven Resources Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <!-- Maven Jar Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+            </plugin>
+            <!-- Maven Enforcer Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>enforce-maven</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireMavenVersion>
+                                    <message>Project must be built with Maven 3.1.0 or higher</message>
+                                    <version>[3.1.0,)</version>
+                                </requireMavenVersion>
+                                <requireJavaVersion>
+                                    <message>Project must be compiled with Java 7 or higher</message>
+                                    <version>1.7.0</version>
+                                </requireJavaVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <!-- Maven Compiler Plugin -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+        </plugins>
+        <pluginManagement>
+            <plugins>
+                <!-- Maven Release Plugin -->
+                <plugin>
+                    <artifactId>maven-release-plugin</artifactId>
+                    <version>${release.plugin.version}</version>
+                </plugin>
+                <!-- Maven Source Plugin -->
+                <plugin>
+                    <artifactId>maven-source-plugin</artifactId>
+                    <version>${source.plugin.version}</version>
+                </plugin>
+                <!-- Maven Resources Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>${resource.plugin.version}</version>
+                </plugin>
+                <!-- Maven Jar Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>${jar.plugin.version}</version>
+                </plugin>
+                <!-- Maven Enforcer Plugin -->
+                <plugin>
+                    <artifactId>maven-enforcer-plugin</artifactId>
+                    <version>${enforcer.plugin.version}</version>
+                </plugin>
+                <!-- Maven Compiler Plugin -->
+                <plugin>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${compiler.plugin.version}</version>
+                </plugin>
+
+                <!-- Maven Clean Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>${clean.plugin.version}</version>
+                </plugin>
+                <!-- Maven Installer Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>${installer.plugin.version}</version>
+                </plugin>
+                <!-- Maven Surefire Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${surfire.plugin.version}</version>
+                </plugin>
+                <!-- Maven Failsafe Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-failsafe-plugin</artifactId>
+                    <version>${failsafe.plugin.version}</version>
+                </plugin>
+                <!-- Maven Deploy Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>${deploy.plugin.version}</version>
+                </plugin>
+                <!-- Apache Sling Plugin -->
+                <plugin>
+                    <groupId>org.apache.sling</groupId>
+                    <artifactId>maven-sling-plugin</artifactId>
+                    <version>${sling.plugin.version}</version>
+                </plugin>
+                <!-- Content Package Plugin -->
+                <plugin>
+                    <groupId>org.apache.jackrabbit</groupId>
+                    <artifactId>filevault-package-maven-plugin</artifactId>
+                    <version>${filevault-package.plugin.version}</version>
+                    <extensions>true</extensions>
+                    <configuration>
+                        <failOnMissingEmbed>true</failOnMissingEmbed>
+                        <force>true</force>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>io.wcm.maven.plugins</groupId>
+                    <artifactId>wcmio-content-package-maven-plugin</artifactId>
+                    <version>${wcmio.plugin.version}</version>
+                    <configuration>
+                        <serviceURL>http://${sling.host}:${sling.port}/bin/cpm/</serviceURL>
+                        <userId>${sling.user}</userId>
+                        <password>${sling.password}</password>
+                        <failOnMissingEmbed>true</failOnMissingEmbed>
+                        <force>true</force>
+                        <group>cpconverter</group>
+                    </configuration>
+                </plugin>
+                <!-- Apache Felix Bundle Plugin -->
+                <plugin>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>maven-bundle-plugin</artifactId>
+                    <version>${bundle.plugin.version}</version>
+                    <inherited>true</inherited>
+                </plugin>
+                <!-- Maven Dependency Plugin -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>${dependency.plugin.version}</version>
+                </plugin>
+                <!-- Build Helper Maven Plugin -->
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>build-helper-maven-plugin</artifactId>
+                    <version>${build.helper.plugin.version}</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+
+    <!-- ====================================================================== -->
+    <!-- D E P E N D E N C I E S                                                -->
+    <!-- ====================================================================== -->
+    <dependencyManagement>
+        <dependencies>
+            <!-- OSGi Dependencies -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>osgi.core</artifactId>
+                <version>${osgi.core.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- OSGi annotations: @Version, @ProviderType, @ConsumerType -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>osgi.annotation</artifactId>
+                <version>${osgi.annotation.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- OSGi annotations for DS and metatype -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.component.annotations</artifactId>
+                <version>${org.osgi.service.component.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.service.metatype.annotations</artifactId>
+                <version>${org.osgi.service.metatype.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Needs to be placed after 'org.osgi.service.component.annotations' otherwise field @Reference will not work -->
+            <dependency>
+                <groupId>org.osgi</groupId>
+                <artifactId>org.osgi.compendium</artifactId>
+                <version>${org.osgi.compendium.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Web Application API -->
+            <dependency>
+                <groupId>javax.servlet</groupId>
+                <artifactId>javax.servlet-api</artifactId>
+                <version>${javax.servlet-api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- dependency injection annotations -->
+            <dependency>
+                <groupId>javax.inject</groupId>
+                <artifactId>javax.inject</artifactId>
+                <version>$[javax.inject.version</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- JCR API -->
+            <dependency>
+                <groupId>javax.jcr</groupId>
+                <artifactId>jcr</artifactId>
+                <version>${jcr.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Basic Logging -->
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>1.7.6</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>org.jetbrains</groupId>
+                <artifactId>annotations</artifactId>
+                <version>${jetbrains.annotations.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Apache Sling Dependencies -->
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.api</artifactId>
+                <version>2.9.0</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.settings</artifactId>
+                <version>${sling.settings.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.commons.osgi</artifactId>
+                <version>${sling.commons.osgi.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>org.apache.sling.models.api</artifactId>
+                <version>${sling.models.api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.jackrabbit</groupId>
+                <artifactId>jackrabbit-api</artifactId>
+                <version>${jackrabbit-api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Support -->
+            <dependency>
+                <groupId>commons-lang</groupId>
+                <artifactId>commons-lang</artifactId>
+                <version>${commons-lang.version}</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>${jmock-junit4.version}</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-simple</artifactId>
+                <version>1.7.6</version>
+                <scope>test</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <modules>
+        <module>core</module>
+        <module>ui.apps</module>
+    </modules>
+</project>
+ 
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
new file mode 100644
index 0000000..a3d1a68
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/pom.xml
@@ -0,0 +1,129 @@
+<?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>
+        <artifactId>sling-cpconverter-maven-plugin-test-with-param</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>sling-cpconverter-maven-plugin-test-with-param.ui.apps</artifactId>
+    <packaging>content-package</packaging>
+
+    <name>CQ Converter Test - UI Apps</name>
+    <description>
+        This is an empty JCR Package where the JCR Content
+        can be deployed with.
+    </description>
+    <!-- NOTE:
+        For a 'not all' package this JCR Package will embedd
+        the "core" bundle. It can be deployed with the
+        "autoInstallPackage" profile.
+
+        For an 'all' package this only provides the content
+        of the project which is deployed in the root with
+        the "autoInstallAll" profile.
+
+        It is advisable to deploy any bundles or packages
+        in one manner as deploying bundles inside a package
+        and through the System Console can lead to unexpected
+        and errorneous situations.
+    -->
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>sling-cpconverter-maven-plugin-test-with-param.core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.cpconverter</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.jackrabbit</groupId>
+                <artifactId>filevault-package-maven-plugin</artifactId>
+                <configuration>
+                    <filterSource>${basedir}/src/main/content/META-INF/vault/filter.xml</filterSource>
+                    <embeddedTarget>/apps/cqconverter/install</embeddedTarget>
+                    <embeddeds>
+                        <embedded>
+                            <groupId>${project.groupId}</groupId>
+                            <artifactId>sling-cpconverter-maven-plugin-test-with-param.core</artifactId>
+                            <filter>true</filter>
+                        </embedded>
+                    </embeddeds>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>@project.groupId@</groupId>
+                <artifactId>@project.artifactId@</artifactId>
+                <version>@project.version@</version>
+                <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>convert-cp</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>convert-cp</goal>
+                        </goals>
+                        <configuration>
+                            <!-- NOTE: ${} is replaced no matter what so this trick seems to work by adding a zero-width-whitespace character (&#8203;)-->
+                            <artifactIdOverride>$&#8203;{project.groupId}:$&#8203;{project.artifactId}:slingosgifeature:@project.artifactId@:$&#8203;{project.version}</artifactIdOverride>
+                            <installConvertedPackage>true</installConvertedPackage>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+    <profiles>
+        <!-- ATTENTION: It is highly recomended not to deploy this with this Profile if this Package was or will be deployed with the All package -->
+        <profile>
+            <id>autoInstallPackage</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>io.wcm.maven.plugins</groupId>
+                        <artifactId>wcmio-content-package-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>install-package</id>
+                                <goals>
+                                    <goal>install</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/META-INF/vault/filter.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/META-INF/vault/filter.xml
new file mode 100644
index 0000000..e022dcc
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/META-INF/vault/filter.xml
@@ -0,0 +1,40 @@
+<?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.
+-->
+
+<workspaceFilter version="1.0">
+    <!--
+        Any node that will contain customer data needs to be excluded
+        otherwise a Pacakge Installation will wipe them.
+
+        If there is a mix then all provided nodes must be included and
+        all custom nodes excluded.
+
+        If unsure what to do then go to the Composum Package Manager
+        (/bin/packages.html) and create a test package. To to the package
+        filter list and add filter entries until all of the app provides
+        nodes are included but none of the customer generatedd nodes.
+
+        Also any sub pckage of this module needs to exclude /apps/cqconverter/install
+        folder otherwise they wipe all installed bundles.
+    -->
+    <filter root="/content/cpconverter"/>
+    <!--
+        Need to exclude the Install folder otherwise the Bundle will be undeployed
+        as it is in the '/apps/cqconverter/install' folder (see the 'all'
+        package).
+    -->
+    <filter root="/apps/cqconverter">
+        <exclude pattern="/apps/cqconverter/install/.*"/>
+    </filter>
+</workspaceFilter>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/META-INF/vault/settings.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/META-INF/vault/settings.xml
new file mode 100644
index 0000000..b70c9b9
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/META-INF/vault/settings.xml
@@ -0,0 +1,17 @@
+<?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.
+-->
+<vault version="1.0">
+  <ignore name=".svn"/>
+  <ignore name=".git"/>
+</vault>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml
new file mode 100644
index 0000000..1a8424c
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/.content.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Root"
+          jcr:description="CQ Converter Test Apps Root folder"
+/>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml
new file mode 100644
index 0000000..99124e4
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/.content.xml
@@ -0,0 +1,20 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Home Page Component"
+          jcr:description="CQ Converter Test Home Page Component with HTL"
+          sling:resourceSuperType="cqconverter/page"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html
new file mode 100644
index 0000000..dd8f148
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/body.html
@@ -0,0 +1,24 @@
+<!-- /*
+    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.
+*/ -->
+<h2>${properties.jcr:title}</h2>
+<p>CQ Converter Test Home Page from Sling Project Archetype</p>
+<p><b><i>Description: </i></b>${properties.jcr:description}</p>
+<div data-sly-use.sampleRequest="org.apache.sling.cpconverter.test.cqconverter.SampleRequestModel">
+	<p>Current User: ${sampleRequest.currentUser}</p>
+</div>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html
new file mode 100644
index 0000000..67576c8
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/home/head.html
@@ -0,0 +1,23 @@
+<!-- /*
+    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.
+*/ -->
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>CQ Converter Test Home Page</title>
+<!-- ${properties.jcr:title} -->
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml
new file mode 100644
index 0000000..42debc9
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/install/.content.xml
@@ -0,0 +1,23 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="Install Folder"
+/>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml
new file mode 100644
index 0000000..b822f2a
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/.content.xml
@@ -0,0 +1,19 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Page Component"
+          jcr:description="CQ Converter Test Page Component with HTL"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html
new file mode 100644
index 0000000..35078a3
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/body.html
@@ -0,0 +1,21 @@
+<!-- /*
+    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.
+*/ -->
+<h2>${properties.jcr:title}</h2>
+<p>CQ Converter Test Page from Sling Project Archetype</p>
+<p><b>Description: </b>${properties.jcr:description}</p>
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html
new file mode 100644
index 0000000..33f7cba
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/footer.html
@@ -0,0 +1,19 @@
+<!-- /*
+    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.
+*/ -->
+CQ Converter Test Footer
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html
new file mode 100644
index 0000000..1e72971
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/head.html
@@ -0,0 +1,23 @@
+<!-- /*
+    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.
+*/ -->
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>CQ Converter Test Page</title>
+<!-- ${properties.jcr:title} -->
\ No newline at end of file
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html
new file mode 100644
index 0000000..5dad451
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/apps/cqconverter/page/page.html
@@ -0,0 +1,35 @@
+<!-- /*
+    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.
+*/ -->
+<!DOCTYPE html>
+<html>
+<head>
+    <sly data-sly-include="${'head.html'}"/>
+</head>
+    <body>
+        <h3>Navigation</h3>
+        <div data-sly-list.child="${resource.listChildren}">
+            <a href="${child.path}.html">${child.name}</a>
+        </div>
+        <br/>
+        <sly data-sly-include="${'body.html'}"/>
+        <footer>
+            <sly data-sly-include="${'footer.html'}"/>
+        </footer>
+    </body>
+</html>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml
new file mode 100644
index 0000000..61ba9d7
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/.content.xml
@@ -0,0 +1,18 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Content Root"
+          jcr:description="CQ Converter Test Content Root Page"
+/>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml
new file mode 100644
index 0000000..821a340
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/.content.xml
@@ -0,0 +1,20 @@
+<?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.
+-->
+<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Home"
+          jcr:description="CQ Converter Test Home Page"
+          sling:resourceType="cqconverter/home"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml
new file mode 100644
index 0000000..48e6832
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/ui.apps/src/main/content/jcr_root/content/cpconverter/home/welcome/.content.xml
@@ -0,0 +1,25 @@
+<?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.
+--><jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
+          jcr:primaryType="sling:Folder"
+          jcr:title="CQ Converter Test Welcome"
+          jcr:description="CQ Converter Test Welcome Page"
+          sling:resourceType="cqconverter/page"
+>
+</jcr:root>
diff --git a/src/it/package-with-single-bundle-with-parameters/verify.bsh b/src/it/package-with-single-bundle-with-parameters/verify.bsh
new file mode 100644
index 0000000..fbac8ab
--- /dev/null
+++ b/src/it/package-with-single-bundle-with-parameters/verify.bsh
@@ -0,0 +1,93 @@
+/*
+ * 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.
+ */
+import java.io.*;
+import java.util.*;
+import org.codehaus.plexus.util.*;
+
+    boolean check() {
+        String projectName = "sling-cpconverter-maven-plugin-test-with-param.ui.apps";
+        String projectCoreName = "sling-cpconverter-maven-plugin-test-with-param.core";
+        String projectVersion = "1.0.0-SNAPSHOT";
+        String projectGroup = "org.apache.sling";
+        String projectGroupPath = projectGroup.replaceAll("\\.", "/");
+
+        File targetFolder = new File(basedir, "ui.apps/target");
+        File packageFile = new File(targetFolder, projectName + "-" + projectVersion + ".zip");
+        if(!packageFile.exists()) {
+            System.out.println("Content Package was not created: " + packageFile);
+            return false;
+        }
+        File outputFolder = new File(targetFolder, "cp-conversion");
+        File featureModelFolder = new File(outputFolder, "fm.out");
+        if(!featureModelFolder.exists()) {
+            System.out.println("Feature Model Folder was not created" + featureModelFolder);
+            return false;
+        }
+        File featureModelFile = new File(featureModelFolder, projectName + ".json");
+        if(!featureModelFile.exists()) {
+            System.out.println("Feature Model File was not created: " + featureModelFile);
+            return false;
+        }
+        String log = FileUtils.fileRead(featureModelFile);
+        System.out.println("Feature Model File Content: " + log);
+        String[] values = {
+            "\"id\":\"$​{project.groupId}:$​{project.artifactId}:slingosgifeature:sling-feature-converter-maven-plugin:$​{project.version}\"",
+            "\"bundles\":[",
+            "\"id\":\"" + projectGroup + ":" + projectCoreName + ":" + projectVersion + "\"",
+            "\"content-packages:ARTIFACTS|true\":[",
+            "\"" + projectGroup + ":" + projectName + ":zip:cp2fm-converted:" + projectVersion + "\""
+        };
+        for (String value : values) {
+            if (log.indexOf(value) < 0) {
+                System.out.println("Did not find line: " + value + " -> FAILED!");
+                return false;
+            }
+        }
+        File convertedPackageFolder = new File(outputFolder, projectGroupPath + "/" + projectName + "/" + projectVersion);
+        if(!convertedPackageFolder.exists()) {
+            System.out.println("Converted Package Folder was not created: " + convertedPackageFolder);
+            return false;
+        }
+        File convertedPackageFile = new File(convertedPackageFolder, projectName + "-" + projectVersion + "-cp2fm-converted.zip");
+        if(!convertedPackageFile.exists()) {
+            System.out.println("Converted Package File was not created: " + convertedPackageFile);
+            return false;
+        }
+        // TODO: Adjust the code here to also support local repositories when this is activated
+        File userHomeFolder = new File(System.getProperty("user.home"));
+        File localMavenRepo = new File(userHomeFolder, ".m2/repository");
+        File convertedPackageTargetFolder = new File(localMavenRepo, projectGroupPath + "/" + projectName + "/" + projectVersion);
+        if(!convertedPackageTargetFolder.exists()) {
+            System.out.println("Converted Package Target (Maven) Folder was not created: " + convertedPackageTargetFolder);
+            return false;
+        }
+        File convertedPackageTargetFile = new File(convertedPackageTargetFolder, projectName + "-" + projectVersion + "-cp2fm-converted.zip");
+        if(!convertedPackageTargetFile.exists()) {
+            System.out.println("Converted Package Target File was not created: " + convertedPackageTargetFile);
+            return false;
+        }
+
+        return true;
+    }
+    try {
+        return check();
+    }
+    catch(Throwable t) {
+        t.printStackTrace();
+        return false;
+    }
+    return true;
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/AbstractBaseMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/AbstractBaseMojo.java
new file mode 100644
index 0000000..b8af956
--- /dev/null
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/AbstractBaseMojo.java
@@ -0,0 +1,45 @@
+/*
+ * 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.cpconverter.maven.mojos;
+
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
+import org.apache.maven.shared.transfer.artifact.install.ArtifactInstaller;
+
+public abstract class AbstractBaseMojo
+    extends AbstractMojo
+{
+    @Parameter(property = "project", readonly = true, required = true)
+    protected MavenProject project;
+
+    @Parameter(property = "session", readonly = true, required = true)
+    protected MavenSession mavenSession;
+
+    @Component
+    protected ArtifactHandlerManager artifactHandlerManager;
+
+    @Component
+    protected MavenProjectHelper projectHelper;
+
+    @Component
+    protected ArtifactInstaller installer;
+}
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
new file mode 100644
index 0000000..0b2b36c
--- /dev/null
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
@@ -0,0 +1,114 @@
+/*
+ * 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.cpconverter.maven.mojos;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.MavenProject;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+public class ContentPackage {
+
+    /**
+     * The content package Group Id
+     */
+    private String groupId = "";
+
+    /**
+     * The content package Artifact Id
+     */
+    private String artifactId = "";
+
+    private String type = "zip";
+
+    // TODO: Classifier should not be set as we have the one from the converter
+    private String classifier = "";
+
+    private boolean excludeTransitive;
+    
+    public void setGroupId(String groupId) {
+        this.groupId = groupId == null ? "" : groupId;
+    }
+
+    public void setArtifactId(String artifactId) {
+        this.artifactId = artifactId == null ? "" : artifactId;
+    }
+
+    public void setExcludeTransitive(boolean excludeTransitive) {
+        this.excludeTransitive = excludeTransitive;
+    }
+
+    public boolean isExcludeTransitive() {
+        return excludeTransitive;
+    }
+    
+    public Collection<Artifact> getMatchingArtifacts(final MavenProject project) {
+        // get artifacts depending on whether we exclude transitives or not
+        final Set<Artifact> artifacts;
+        // TODO: when I ran the tests the artifacts where only available in the Dependency Artifacts and
+        //       getArtifacts() returned an empty set
+        if (excludeTransitive) {
+            // only direct dependencies, transitives excluded
+            artifacts = project.getDependencyArtifacts();
+        } else {
+            // all dependencies, transitives included
+            artifacts = project.getArtifacts();
+        }
+        return getMatchingArtifacts(artifacts);
+    }
+
+    public Collection<Artifact> getMatchingArtifacts(final Collection<Artifact> artifacts) {
+        final List<Artifact> matches = new ArrayList<Artifact>();
+        for (Artifact artifact : artifacts) {
+            if(groupId.equals(artifact.getGroupId())
+                && artifactId.equals(artifact.getArtifactId())
+                && type.equals(artifact.getType())
+                && (classifier.equals(artifact.getClassifier()) || (classifier.equals("") && artifact.getClassifier() == null))
+            ) {
+                matches.add(artifact);
+            }
+        }
+        return matches;
+    }
+
+    @Nonnull
+    public StringBuilder toString(@Nullable StringBuilder builder) {
+        if (builder == null) {
+            builder = new StringBuilder();
+        }
+        builder.append("groupId=").append(groupId).append(",");
+        builder.append("artifactId=").append(artifactId).append(",");
+
+        if (type != null) {
+            builder.append("type=").append(type).append(",");
+        }
+        if (classifier != null) {
+            builder.append("classifier=").append(classifier).append(",");
+        }
+        builder.append(",excludeTransitive=").append(excludeTransitive);
+        return builder;
+    }
+
+    public String toString() {
+        return toString(null).toString();
+    }
+}
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
new file mode 100644
index 0000000..98c0ebd
--- /dev/null
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
@@ -0,0 +1,350 @@
+/*
+ * 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.cpconverter.maven.mojos;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.install.ArtifactInstallerException;
+import org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter;
+import org.apache.sling.feature.cpconverter.acl.DefaultAclManager;
+import org.apache.sling.feature.cpconverter.artifacts.DefaultArtifactsDeployer;
+import org.apache.sling.feature.cpconverter.features.DefaultFeaturesManager;
+import org.apache.sling.feature.cpconverter.handlers.DefaultEntryHandlersManager;
+import org.apache.sling.feature.cpconverter.vltpkg.DefaultPackagesEventsEmitter;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.StandardCopyOption;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.PACKAGE_CLASSIFIER;
+import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.ZIP_TYPE;
+
+/**
+ * Converts the given Content Packages into Feature Models
+ * and places the converted Content Package into the local
+ * Maven Repository
+ */
+@Mojo(
+    name = "convert-cp",
+    requiresProject = true,
+    threadSafe = true
+)
+public final class ConvertCPMojo
+    extends AbstractBaseMojo
+{
+    public static final String CFG_STRICT_VALIDATION = "strictValidation";
+
+    public static final String CFG_MERGE_CONFIGURATIONS = "mergeConfigurations";
+
+    public static final String CFG_BUNDLE_START_ORDER = "bundleStartOrder";
+
+    public static final String CFG_ARTIFACT_ID_OVERRIDE = "artifactIdOverride";
+
+    public static final String CFG_INSTALL_CONVERTED_PACKAGE = "installConvertedContentPackage";
+
+    public static final String CFG_FM_OUTPUT_DIRECTORY = "featureModelsOutputDirectory";
+
+    public static final String CFG_CONVERTED_CP_OUTPUT_DIRECTORY = "convertedContentPackageOutputDirectory";
+
+    public static final String CFG_CONVERTED_CP_FM_PREFIX = "fmPrefix";
+
+    public static final String CFG_SYSTEM_PROPERTIES = "cpSystemProperties";
+
+    public static final String CFG_CONTENT_PACKAGES = "packages";
+
+    public static final boolean DEFAULT_STRING_VALIDATION = false;
+
+    public static final boolean DEFAULT_MERGE_CONFIGURATIONS = false;
+
+    public static final int DEFAULT_BUNDLE_START_ORDER = 20;
+
+    public static final boolean DEFAULT_INSTALL_CONVERTED_PACKAGE = true;
+
+    public static final String DEFAULT_CONVERTED_CP_OUTPUT_DIRECTORY = "${project.build.directory}/cp-conversion";
+
+    public static final String DEFAULT_FM_OUTPUT_DIRECTORY = DEFAULT_CONVERTED_CP_OUTPUT_DIRECTORY + "/fm.out";
+
+    /**
+     * If set to {@code true} the Content Package is strictly validated.
+     */
+    @Parameter(property = CFG_STRICT_VALIDATION, defaultValue = DEFAULT_STRING_VALIDATION + "")
+    private boolean strictValidation;
+
+    //AS TODO: Is that applicable to a single CP ?
+    /**
+     * If set to {@code true} the OSGi Configurations with same PID are merged.
+     */
+    @Parameter(property = CFG_MERGE_CONFIGURATIONS, defaultValue = DEFAULT_MERGE_CONFIGURATIONS + "")
+    private boolean mergeConfigurations;
+
+    /**
+     * If set to {@code true} the Content Package is strictly validated.
+     */
+    @Parameter(property = CFG_BUNDLE_START_ORDER, defaultValue = DEFAULT_BUNDLE_START_ORDER + "")
+    private int bundleStartOrder;
+
+    /**
+     * If set to {@code true} the Content Package is strictly validated.
+     */
+    @Parameter(property = CFG_ARTIFACT_ID_OVERRIDE)
+    private String artifactIdOverride;
+
+    /**
+     * Target directory for the converted Content Package Feature Model file
+     */
+    @Parameter(property = CFG_FM_OUTPUT_DIRECTORY, defaultValue = DEFAULT_FM_OUTPUT_DIRECTORY)
+    private File fmOutput;
+
+    /**
+     * Target directory for the Converted Content Package file
+     */
+    @Parameter(property = CFG_CONVERTED_CP_OUTPUT_DIRECTORY, defaultValue = DEFAULT_CONVERTED_CP_OUTPUT_DIRECTORY)
+    private File convertedCPOutput;
+
+    /**
+     * If set to {@code true} the converted Content Package will be installed in the local Maven Repository
+     */
+    @Parameter(property = CFG_INSTALL_CONVERTED_PACKAGE, defaultValue = DEFAULT_INSTALL_CONVERTED_PACKAGE + "")
+    private boolean installConvertedCP;
+
+    /**
+     * System Properties to hand over to the Content Package Converter
+     */
+    @Parameter(property = CFG_CONVERTED_CP_FM_PREFIX)
+    private String fmPrefix;
+
+    /**
+     * System Properties to hand over to the Content Package Converter
+     */
+    @Parameter(property = CFG_SYSTEM_PROPERTIES)
+    private List<String> systemProperties;
+
+    /**
+     * List of Content Packages to be converted
+     */
+    @Parameter(property = CFG_CONTENT_PACKAGES)
+    private List<ContentPackage> contentPackages;
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        // Un-encode a given Artifact Override Id
+        if(artifactIdOverride != null) {
+            String old = artifactIdOverride;
+            artifactIdOverride = artifactIdOverride.replaceAll("\\$\\{\\{", "\\$\\{");
+            artifactIdOverride = artifactIdOverride.replaceAll("}}", "}");
+            getLog().info("Replaced Old Artifact Id Override: '" + old + "', with new one: '" + artifactIdOverride + "'");
+        }
+        // Parse the System Properties if provided
+        Map<String,String> properties = new HashMap<>();
+        if(systemProperties != null) {
+            for(String systemProperty: systemProperties) {
+                if(systemProperty != null) {
+                    int index = systemProperty.indexOf("=");
+                    if(index > 0 && index < systemProperty.length() - 1) {
+                        String key = systemProperty.substring(0, index);
+                        String value = systemProperty.substring(index + 1);
+                        properties.put(key, value);
+                    }
+                }
+            }
+        }
+        try {
+            ContentPackage2FeatureModelConverter converter = new ContentPackage2FeatureModelConverter(strictValidation)
+                .setFeaturesManager(
+                    new DefaultFeaturesManager(
+                        mergeConfigurations,
+                        bundleStartOrder,
+                        fmOutput,
+                        artifactIdOverride,
+//                        fmPrefix,
+                        properties
+                    )
+                )
+                .setBundlesDeployer(
+                    new DefaultArtifactsDeployer(
+                        convertedCPOutput
+                    )
+                )
+                .setEntryHandlersManager(
+                    new DefaultEntryHandlersManager()
+                )
+                .setAclManager(
+                    new DefaultAclManager()
+                )
+                .setEmitter(DefaultPackagesEventsEmitter.open(fmOutput));
+
+            if(contentPackages == null || contentPackages.isEmpty()) {
+                getLog().info("Project Artifact File: " + project.getArtifact());
+                String targetPath = project.getModel().getBuild().getDirectory() + "/"
+                    + project.getModel().getBuild().getFinalName()
+                    + "." + ZIP_TYPE;
+                File targetFile = new File(targetPath);
+                if (targetFile.exists() && targetFile.isFile() && targetFile.canRead()) {
+                    converter.convert(project.getArtifact().getFile());
+//                    Artifact convertedPackage = new DefaultArtifact(
+//                        project.getGroupId(), project.getArtifactId(), project.getVersion(),
+//                        "compile", ZIP_TYPE, PACKAGE_CLASSIFIER, artifactHandlerManager.getArtifactHandler(ZIP_TYPE)
+//                    );
+//                    installConvertedCP(convertedPackage);
+                } else {
+                    getLog().error("Artifact is not found: " + targetPath);
+                }
+            } else {
+                for(ContentPackage contentPackage: contentPackages) {
+                    getLog().info("Content Package Artifact File: " + contentPackage.toString());
+                    contentPackage.setExcludeTransitive(true);
+                    final Collection<Artifact> artifacts = contentPackage.getMatchingArtifacts(project);
+                    if (artifacts.isEmpty()) {
+                        getLog().warn("No matching artifacts for " + contentPackage);
+                        continue;
+                    }
+                    getLog().info("Target Convert CP of --- " + contentPackage + " ---");
+                    for (final Artifact artifact : artifacts) {
+                        final File source = artifact.getFile();
+                        if (source.exists() && source.isFile() && source.canRead()) {
+                            converter.convert(source);
+                            Artifact convertedPackage = new DefaultArtifact(
+                                artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(),
+                                "compile", ZIP_TYPE, PACKAGE_CLASSIFIER, artifactHandlerManager.getArtifactHandler(ZIP_TYPE)
+                            );
+//                            installConvertedCP(convertedPackage);
+                        } else {
+                            getLog().error("Artifact is not found: " + artifact);
+                        }
+                    }
+                }
+            }
+            installGeneratedArtifacts();
+        } catch (Throwable t) {
+            throw new MojoExecutionException("Content Package Converter Exception", t);
+        }
+
+    }
+
+    /**
+     * For now this is a hack to update the local Maven Repo (.m2/repository) correctly
+     * bypassing the Maven Installer as this is giving us grief
+     */
+    private void installGeneratedArtifacts() {
+        if(installConvertedCP) {
+            File userHome = new File(System.getProperty("user.home"));
+            if(userHome.isDirectory()) {
+                File destFolder = new File(userHome, ".m2/repository");
+                if(destFolder.isDirectory()) {
+                    copyFiles(convertedCPOutput, destFolder);
+                }
+            }
+        }
+    }
+
+    /**
+     * Copies the local generated Maven Artifacts into the local Maven Repo
+     * recursively one folder at the time.
+     * Folder are created on the local Maven Repo if not found, missing files
+     * are copied over but only CP2FM Converted CP files are replaced on the
+     * target folders
+     *
+     * @param source Folder with the source files / folders
+     * @param destination Destination folder (inside the local Maven repo). This is the corresponding folder to the source
+     */
+    private void copyFiles(File source, File destination) {
+        for(File file: source.listFiles()) {
+            String name = file.getName();
+            if(file.isDirectory()) {
+                File newDest = new File(destination, name);
+                if(!newDest.exists()) {
+                    newDest.mkdirs();
+                }
+                if(newDest.isDirectory()) {
+                    copyFiles(file, newDest);
+                } else {
+                    getLog().warn("Source File: '" + file.getAbsolutePath() + "' is a folder but its counterpart is a file: " + newDest.getAbsolutePath());
+                }
+            } else {
+                File newDest = new File(destination, name);
+                if(!newDest.exists()) {
+                    // Copy File over
+                    try {
+                        Files.copy(file.toPath(), newDest.toPath(), StandardCopyOption.COPY_ATTRIBUTES);
+                    } catch (IOException e) {
+                        getLog().warn("Failed to copy File: '" + file.getAbsolutePath() + "' to File: " + newDest.getAbsolutePath(), e);
+                    }
+                } else {
+                    // We only overwrite converted files
+                    if(name.endsWith(PACKAGE_CLASSIFIER + "." + ZIP_TYPE)) {
+                        // Copy File over
+                        try {
+                            Files.copy(file.toPath(), newDest.toPath(), StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING);
+                        } catch (IOException e) {
+                            getLog().warn("Failed to copy generated File: '" + file.getAbsolutePath() + "' to File: " + newDest.getAbsolutePath(), e);
+                        }
+                    } else {
+                        getLog().info("Ignore File: '" + file.getAbsolutePath());
+                    }
+                }
+            }
+        }
+    }
+
+    private void installConvertedCP(Artifact artifact) throws MojoFailureException, MojoExecutionException {
+        if(installConvertedCP) {
+            Collection<Artifact> artifacts = Collections.synchronizedCollection(new ArrayList<>());
+            // Rebuild the converted package path
+            String convertedPackagePath = artifact.getGroupId().replaceAll("\\.", "/")
+                + "/" + artifact.getArtifactId()
+                + "/" + artifact.getVersion()
+                + "/" + artifact.getArtifactId()
+                + "-" + artifact.getVersion()
+                + "-" + PACKAGE_CLASSIFIER
+                + "." + ZIP_TYPE;
+            File convertedPackageFile = new File(convertedCPOutput, convertedPackagePath);
+            if(convertedPackageFile.exists() && convertedPackageFile.canRead()) {
+                artifact.setFile(convertedPackageFile);
+                artifacts.add(artifact);
+                installArtifact(mavenSession.getProjectBuildingRequest(), artifacts);
+            } else {
+                getLog().error("xCould not find Converted Package: " + convertedPackageFile);
+            }
+        }
+    }
+
+    private void installArtifact(ProjectBuildingRequest pbr, Collection<Artifact> artifacts )
+        throws MojoFailureException, MojoExecutionException
+    {
+        try
+        {
+            installer.install(pbr, artifacts);
+        }
+        catch ( ArtifactInstallerException e )
+        {
+            throw new MojoExecutionException( "ArtifactInstallerException", e );
+        }
+    }
+
+}
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertPMMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertPMMojo.java
new file mode 100644
index 0000000..e4d93c9
--- /dev/null
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertPMMojo.java
@@ -0,0 +1,226 @@
+/*
+ * 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.cpconverter.maven.mojos;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.sling.feature.modelconverter.ProvisioningToFeature;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Converts the given list of Provisioning Models into
+ * Feature Models
+ */
+@Mojo(
+    name = "convert-pm",
+    requiresProject = true,
+    threadSafe = true
+)
+public final class ConvertPMMojo
+    extends AbstractBaseMojo
+{
+    public static final String CFG_INPUT_FOLDER = "inputFolder";
+
+    public static final String CFG_OUTPUT_FOLDER = "outputFolder";
+
+    public static final String CFG_GROUP_ID = "groupId";
+
+    public static final String CFG_ARTIFACT_ID = "artifactId";
+
+    public static final String CFG_VERSION = "version";
+
+    public static final String CFG_FRAMEWORK_PROPERTIES = "frameworkProperties";
+
+    public static final String CFG_NO_PROVISIIONING_MODEL_NAME = "noProvisioningModelName";
+
+    public static final String CFG_EXCLUDE_BUNDLES = "excludeBundles";
+
+    public static final String CFG_RUN_MODES = "runModes";
+
+    public static final String DEFAULT_OUTPUT_FOLDER = "target/features";
+
+    /**
+     * The folder that contains the Provisioning Models
+     */
+    @Parameter(property = CFG_INPUT_FOLDER, required = true)
+    private File inputFolder;
+
+    /**
+     * The folder that will contain the created Feature Models relative to the Maven Basedir Folder
+     */
+    @Parameter(property = CFG_OUTPUT_FOLDER, defaultValue = DEFAULT_OUTPUT_FOLDER, required = true)
+    private String outputFolder;
+
+    /**
+     * If provided this becomes the Feature's Group Id
+     */
+    @Parameter(property = CFG_GROUP_ID)
+    private String groupId;
+
+    /**
+     * If provided this becomes the Feature's Artifact Id. Tis will also
+     * make the original name to become the classifier
+     */
+    @Parameter(property = CFG_ARTIFACT_ID)
+    private String artifactId;
+
+    /**
+     * If provided this becomes the Feature's Version
+     */
+    @Parameter(property = CFG_VERSION)
+    private String version;
+
+    /**
+     * Franework Properties to be added to a given Feature Model.
+     * The format looks like this:
+     * 'launchpad:felix.systempackages.substitution=true' where
+     * launchpad is the name of the PM
+     */
+    @Parameter(property = CFG_FRAMEWORK_PROPERTIES)
+    private List<String> frameworkProperties;
+
+    /**
+     * If set to {@code true} the converted Content Package will be installed in the local Maven Repository
+     */
+    @Parameter(property = CFG_NO_PROVISIIONING_MODEL_NAME, defaultValue = "true")
+    private boolean noProvisioningModelName;
+
+    /**
+     * List of Bundles to be excluded from the Feature Model files
+     */
+    @Parameter(property = CFG_EXCLUDE_BUNDLES)
+    private List<String> excludeBundles;
+
+    /**
+     * List of all Runmodes that are considered for this conversion
+     *
+     * The default and all parts of all runmodes listed are placed into
+     * the Feature Models, all others are excluded
+     */
+    @Parameter(property = CFG_RUN_MODES)
+    private List<String> runModes;
+
+    private Pattern pattern = Pattern.compile("^(.*?):(.*?)=(.*?)$");
+
+    private String checkForPlaceholder(String text) {
+        String answer = text;
+        if(answer != null) {
+            answer = answer.replaceAll("\\$\\{\\{", "\\$\\{");
+            answer = answer.replaceAll("}}", "}");
+            getLog().info("Replaced Old Artifact Id Override: '" + text + "', with new one: '" + answer + "'");
+        }
+        return answer;
+    }
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if (!inputFolder.isDirectory()) {
+            throw new MojoFailureException("Input Folder is not a directory: " + inputFolder);
+        }
+        if (!inputFolder.canRead()) {
+            throw new MojoFailureException("Input Folder is not readable:" + inputFolder);
+        }
+        String outputFolderPath = project.getBasedir() + "/" + outputFolder;
+        File output = new File(outputFolderPath);
+        if (!output.exists()) {
+            if(!output.mkdirs()) {
+                throw new MojoFailureException("Could not create Output Folder: " + outputFolder);
+            }
+        }
+        if (!output.isDirectory()) {
+            throw new MojoFailureException("Output Folder is not a directory: " + output);
+        }
+        if (!output.canWrite()) {
+            throw new MojoFailureException("Output Folder is not writable: " + output);
+        }
+        List<File> provisioningFiles = Arrays.asList(inputFolder.listFiles());
+        Map<String, Object> options = new HashMap<>();
+        if (groupId != null && !groupId.isEmpty()) {
+            groupId = checkForPlaceholder(groupId);
+            options.put("groupId", groupId);
+        }
+        if (version != null && !version.isEmpty()) {
+            version = checkForPlaceholder(version);
+            options.put("version", version);
+        }
+        // Todo: do we have a way to check the name?
+        if (artifactId != null && !artifactId.isEmpty()) {
+            artifactId = checkForPlaceholder(artifactId);
+            options.put("name", artifactId);
+        }
+        options.put("useProvidedVersion", version != null && !version.isEmpty());
+        options.put("noProvisioningModelName", noProvisioningModelName);
+        frameworkProperties = trimList(frameworkProperties);
+        Map<String, Map<String, String>> frameworkPropertiesMap = new HashMap<>();
+        for (String value : frameworkProperties) {
+            // Separate Model from Property Name Value pair. Create Sub Map if needed and then add
+            getLog().info("Check Add Framework Properties Line: " + value);
+            Matcher matcher = pattern.matcher(value);
+            if (matcher.matches() && matcher.groupCount() == 3) {
+                String modelName = matcher.group(1);
+                String propName = matcher.group(2);
+                String propValue = matcher.group(3);
+                getLog().info("Model Name: " + modelName + ", Prop Name: " + propName + ", Value: " + propValue);
+                Map<String, String> modelMap = frameworkPropertiesMap.get(modelName);
+                if (modelMap == null) {
+                    modelMap = new HashMap<>();
+                    frameworkPropertiesMap.put(modelName, modelMap);
+                }
+                modelMap.put(propName, propValue);
+            }
+        }
+        options.put("addFrameworkProperties", frameworkPropertiesMap);
+        excludeBundles = trimList(excludeBundles);
+        options.put("excludeBundles", excludeBundles);
+        getLog().info("Excluded Bundles: " + excludeBundles);
+        runModes = trimList(runModes);
+        options.put("runModes", runModes);
+        getLog().info("Runmodes: " + runModes);
+
+        // Start the Conversion
+        for (File file : provisioningFiles) {
+            getLog().info("Handle File: " + file.getAbsolutePath());
+            ProvisioningToFeature.convert(file, output, options);
+        }
+    }
+
+    // Because of the XML structure run modes can have leading, trailing spaces so we need to trim them here
+    public List<String> trimList(List<String> list) {
+        List<String> answer = new ArrayList<>();
+        if(list != null) {
+            for(String entry: list) {
+                if(entry != null) {
+                    entry = entry.trim();
+                    if(!entry.isEmpty()) {
+                        answer.add(entry);
+                    }
+                }
+            }
+        }
+        return answer;
+    }
+}
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/FeatureLauncherMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/FeatureLauncherMojo.java
new file mode 100644
index 0000000..f29835d
--- /dev/null
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/FeatureLauncherMojo.java
@@ -0,0 +1,57 @@
+/*
+ * 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.cpconverter.maven.mojos;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.sling.feature.launcher.impl.Main;
+
+import java.io.File;
+
+/**
+ * Launches the given Feature File
+ */
+@Mojo(
+    name = "launch-features",
+    requiresProject = true,
+    threadSafe = true
+)
+public final class FeatureLauncherMojo
+    extends AbstractBaseMojo
+{
+
+    public static final String CFG_FEATURE_FILE = "featureFile";
+
+    /**
+     * The path of the file that is launched here
+     */
+    @Parameter(property = CFG_FEATURE_FILE, required = true)
+    private File featureFile;
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        if(!featureFile.isFile()) {
+            throw new MojoFailureException("Feature File is not a file: " + featureFile);
+        }
+        if(!featureFile.canRead()) {
+            throw new MojoFailureException("Feature File is cannot be read: " + featureFile);
+        }
+        Main.main(new String[] {"-f", featureFile.getAbsolutePath()});
+    }
+}
diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md
new file mode 100644
index 0000000..b03c8d2
--- /dev/null
+++ b/src/site/markdown/index.md
@@ -0,0 +1,10 @@
+Content Package to Feature Model Maven Plugin
+=============================================
+
+Maven Plugin to Convert Configuration Files and Packages to Feature Models
+
+See [Goals](plugin-info.html) for a list of supported goals.
+
+### Usage
+A nearly complete usage of conversion, building and launching a feature
+ model based project can be found at [usage](usage.html) page.
diff --git a/src/site/markdown/usage.md.vm b/src/site/markdown/usage.md.vm
new file mode 100644
index 0000000..9b3f34e
--- /dev/null
+++ b/src/site/markdown/usage.md.vm
@@ -0,0 +1,275 @@
+#set($h1 = '#')
+#set($h2 = '##')
+#set($h3 = '###')
+#set($h4 = '####')
+#set($sp = '${')
+#set($ep = '}')
+
+
+$h2 Usage
+
+$h3 Converting Sling, Project Content Packages and Lauch it
+
+**Note**: In this sample we use Maven variables like **project.groupId** instead of a static value assuming
+that the project is within the same project that creates the content packages. Adjust that as needed.
+**Note**: Because we generate Feature Model files here the feature model files are in **target/fm**. We use **fm**
+instead of **features** to avoid confusion with the default feature source of **src/main/features**.
+
+First we need to define the Content Packages that are converted
+
+```
+<dependencies>
+...
+    <dependency>
+        <groupId>${sp}project.groupId${ep}</groupId>
+        <artifactId>my-content-package</artifactId>
+        <version>${sp}project.version${ep}</version>
+        <type>zip</type>
+    </dependency>
+```
+
+Then we need to include the JCR Package Init to deploy the packages when
+the project is launched:
+
+```
+    <dependency>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>org.apache.sling.jcr.packageinit</artifactId>
+        <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+...
+</dependencies>
+```
+
+Then we need to include the package init feature model file which must
+here is placed in the **src/main/resouces/fm** folder named **sling_packageinit.json**:
+
+```
+{
+    "id":"${sp}project.groupId${ep}:${sp}project.artifactId${ep}:slingfeature:sling_packageinit:${sp}project.version${ep}",
+    "variables":{
+    },
+    "bundles":[
+        {
+            "id":"org.apache.sling:org.apache.sling.jcr.packageinit:0.0.1-SNAPSHOT",
+            "start-level":"10"
+        }
+    ]
+}
+```
+
+We need to cpy this file into our target folder because this is not a regular JAR build
+and so the copy of the resources is not done automatically:
+
+```
+<build>
+...
+    <plugins>
+        <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <version>3.1.0</version>
+            <configuration>
+                <outputDirectory>${sp}project.build.directory}</outputDirectory>
+                <resources>
+                    <resource>
+                        <directory>src/main/resources</directory>
+                    </resource>
+                </resources>
+            </configuration>
+            <executions>
+                <execution>
+                    <id>copy-frm-resource</id>
+                    <phase>process-resources</phase>
+                    <goals>
+                        <goal>copy-resources</goal>
+                    </goals>
+                </execution>
+            </executions>
+        </plugin>
+```
+
+Now we setup this Plugin and set the features folder to **target/fm** (keep in mind this path has to
+be relative to the basedir and cannot be absolute):
+
+```
+        <plugin>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>slingfeature-maven-plugin</artifactId>
+            <version>1.0.5-SNAPSHOT</version>
+            <extensions>true</extensions>
+            <configuration>
+                <features>target/fm</features>
+            </configuration>
+```
+
+First we convert the Sling Provisioning Files to Feature Model files. For that the caller has to provide
+a property called **sling.starter.folder** with the absolute path to the Sling Starter Project:
+
+```
+            <executions>
+                <execution>
+                    <id>convert-pm</id>
+                    <phase>process-classes</phase>
+                    <goals>
+                        <goal>convert-pm</goal>
+                    </goals>
+                    <configuration>
+                        <!-- Absolute Path to the Sling Starter Project Provisioning Folder -->
+                        <inputFolder>${sp}sling.starter.folder${ep}/src/main/provisioning</inputFolder>
+                        <!-- Relative path (to basedir) to the output folder. It will be created if needed -->
+                        <outputFolder>target/fm</outputFolder>
+                        <!-- Instead of a fixed Feature Id we set placeholder here -->
+                        <groupId>${sp}{project.groupId}${ep}</groupId>
+                        <artifactId>${sp}{project.artifactId}${ep}</artifactId>
+                        <version>${sp}{project.version}${ep}</version>
+                        <!-- Add Framework Properties to the Launchpad FM to make JRE archives accessible -->
+                        <frameworkProperties>
+                            launchpad:felix.systempackages.substitution=true,
+                            launchpad:felix.systempackages.calculate.uses=true
+                        </frameworkProperties>
+                        <!-- Exclude certain bundles that conflict with the Launch of Feature Models -->
+                        <excludeBundles>
+                            org.apache.sling.launchpad.installer,
+                            org.apache.sling.jcr.repoinit.impl.RepositoryInitializer
+                        </excludeBundles>
+                        <!-- Only add run modes of type 'oak_tar' and 'standalone'. Feature Model Projects do
+                             not support runmodes anymore as each of them represents one particular set -->
+                        <runModes>
+                            oak_tar,
+                            :standalone
+                        </runModes>
+                    </configuration>
+                </execution>
+```
+
+Convert the Content Packages of this project and prefix the files names to avoid conflicts and make it easier to indentify them:
+
+```
+                <execution>
+                    <id>convert-cp</id>
+                    <phase>process-classes</phase>
+                    <goals>
+                        <goal>convert-cp</goal>
+                    </goals>
+                    <configuration>
+                        <!-- NOTE: ${{ / }} is a way to encode placeholders that should not be interpolated in Maven in this call
+                                   and ${{{ / }}} is used to make it a CP Conversion Placeholder }-->
+                        <artifactIdOverride>${sp}{project.groupId}${ep}:${sp}{project.artifactId}${ep}:slingosgifeature:${sp}{{filename}}${ep}:${sp}{project.version}${ep}</artifactIdOverride>
+                        <!-- Install the Converted Content Package into the local Maven Repositorires. Without the launch
+                             will fail -->
+                        <installConvertedCP>true</installConvertedCP>
+                        <!-- Set the output folder for the converted packages -->
+                        <convertedCPOutput>${sp}project.build.directory${ep}/fm.out</convertedCPOutput>
+                        <!-- Set the output folder for the converted Feature Model files -->
+                        <fmOutput>${sp}project.build.directory${ep}/fm</fmOutput>
+                        <!-- Prefix the files to easily identify them -->
+                        <fmPrefix>my-project-</fmPrefix>
+                        <contentPackages>
+                            <!-- each of these entries must have a dependency listed above -->
+                            <contentPackage>
+                                <groupId>${sp}project.groupId${ep}</groupId>
+                                <artifactId>my-content-package</artifactId>
+                            </contentPackage>
+...
+                        </contentPackages>
+                    </configuration>
+                </execution>
+```
+
+Now we aggregate, collect them into a single FM file (attach) and verify all the generated Feature Model files:
+
+```
+                <execution>
+                    <id>aggregate-base-feature</id>
+                    <phase>generate-test-sources</phase>
+                    <goals>
+                        <goal>aggregate-features</goal>
+                    </goals>
+                    <configuration>
+                        <aggregates>
+                            <aggregate>
+                                <classifier>example-runtime</classifier>
+                                <filesInclude>**/*.json</filesInclude>
+                            </aggregate>
+                        </aggregates>
+                    </configuration>
+                </execution>
+                <execution>
+                    <id>attach-base-feature</id>
+                    <phase>process-test-sources</phase>
+                    <goals>
+                        <goal>attach-features</goal>
+                    </goals>
+                </execution>
+                <execution>
+                    <id>verify-analyze</id>
+                    <phase>generate-test-resources</phase>
+                    <goals>
+                        <goal>analyse-features</goal>
+                    </goals>
+                    <configuration>
+                        <framework>
+                            <groupId>org.apache.felix</groupId>
+                            <artifactId>org.apache.felix.framework</artifactId>
+                            <version>6.0.1</version>
+                        </framework>
+                        <scans>
+                            <scan>
+                                <includeClassifier>example-runtime</includeClassifier>
+                                <includeTasks>
+                                    <includeTask>bundle-packages</includeTask>
+                                </includeTasks>
+                            </scan>
+                        </scans>
+                    </configuration>
+                </execution>
+            </executions>
+        </plugin>
+...
+    </plugins>
+</build>
+```
+
+Finally we can define a profile to launch the Feature Model based project. With that the launch is only done
+if the project is buil with goal **install** and profile **launch** (mvn install -P launch):
+
+```
+<profiles>
+    <profile>
+        <id>launch</id>
+        <build>
+            <plugins>
+                <plugin>
+                    <groupId>org.apache.sling</groupId>
+                    <artifactId>slingfeature-maven-plugin</artifactId>
+                    <version>${project.version}</version>
+                    <extensions>true</extensions>
+                    <executions>
+                        <execution>
+                            <id>launch-it</id>
+                            <phase>install</phase>
+                            <goals>
+                                <goal>launch-features</goal>
+                            </goals>
+                            <configuration>
+                                <featureFile>${sp}project.build.directory${ep}/slingfeature-tmp/feature-example-runtime.json</featureFile>
+                            </configuration>
+                        </execution>
+                    </executions>
+                </plugin>
+            </plugins>
+        </build>
+    </profile>
+</profiles>
+```
+
+The execution of a conversion and launch would look like this:
+
+```
+mvn \
+    clean \
+    install \
+    -P launch \
+    -Dsling.starter.folder=/sling.dev/sling-org-apache-sling-starter
+```
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..2594b86
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,41 @@
+<?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>
+  <skin>
+    <groupId>org.apache.maven.skins</groupId>
+    <artifactId>maven-fluido-skin</artifactId>
+    <version>1.6</version>
+  </skin>
+  <body>
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+      <item name="Goals" href="plugin-info.html"/>
+      <item name="Usage" href="usage.html"/>
+    </menu>
+    <menu ref="reports"/>
+  </body>
+  <custom>
+    <fluidoSkin>
+      <sourceLineNumbersEnabled>true</sourceLineNumbersEnabled>
+    </fluidoSkin>
+  </custom>
+</project>


[sling-feature-converter-maven-plugin] 21/23: SLING-9794 Content package artifacts found by maven plugin don't always have their 'file' attribute set

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-feature-converter-maven-plugin.git

commit 8e70884a60216b284cb87351fbd48e82c1a5acf6
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Tue Oct 6 15:28:20 2020 +0100

    SLING-9794 Content package artifacts found by maven plugin don't always have their 'file' attribute set
    
    This fixes the NPE that can happen in this case
---
 .../cpconverter/maven/mojos/ContentPackage.java    | 67 +++++++++++++++++++---
 .../cpconverter/maven/mojos/ConvertCPMojo.java     | 14 ++++-
 2 files changed, 71 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
index 295f270..0956a5f 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ContentPackage.java
@@ -17,17 +17,25 @@
 package org.apache.sling.cpconverter.maven.mojos;
 
 import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.handler.DefaultArtifactHandler;
 import org.apache.maven.project.MavenProject;
+import org.eclipse.aether.RepositoryException;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResult;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public class ContentPackage {
 
     /**
@@ -48,7 +56,7 @@ public class ContentPackage {
     private boolean excludeTransitive;
 
     private boolean moduleIsContentPackage;
-    
+
     public void setGroupId(String groupId) {
         this.groupId = groupId == null ? "" : groupId;
     }
@@ -78,7 +86,8 @@ public class ContentPackage {
         return moduleIsContentPackage;
     }
 
-    public Collection<Artifact> getMatchingArtifacts(final MavenProject project) {
+    Collection<Artifact> getMatchingArtifacts(final MavenProject project,
+            RepositorySystem repoSystem, RepositorySystemSession repoSession) {
         // get artifacts depending on whether we exclude transitives or not
         final Set<Artifact> artifacts;
         // TODO: when I ran the tests the artifacts where only available in the Dependency Artifacts and
@@ -90,13 +99,57 @@ public class ContentPackage {
             // all dependencies, transitives included
             artifacts = project.getArtifacts();
         }
+
+        // Sometimes artifacts don't have their 'file' attribute set, which we need. For those that don't, resolve them
+        final Set<Artifact> fileArtifacts = new HashSet<>();
+        for (Artifact a : artifacts) {
+            if (a.getFile() != null) {
+                fileArtifacts.add(a);
+            } else {
+                if (repoSystem != null && repoSession != null) {
+                    // Resolving the artifact via Aether will fill in the file attribute
+                    Artifact fileArt = resolveArtifact(repoSystem, repoSession, a);
+                    if (fileArt != null) {
+                        fileArtifacts.add(fileArt);
+                    }
+                }
+            }
+        }
+
         // Add the project artifact itself to convert after building a content package
         if(moduleIsContentPackage) {
             Artifact projectArtifact = project.getArtifact();
             System.out.println("Project Artifact: " + projectArtifact);
-            artifacts.add(projectArtifact);
+            fileArtifacts.add(projectArtifact);
+        }
+        return getMatchingArtifacts(fileArtifacts);
+    }
+
+    private Artifact resolveArtifact(final RepositorySystem repoSystem, final RepositorySystemSession repoSession,
+            final Artifact artifact) {
+        try {
+            // Get an Aether Artifact
+            org.eclipse.aether.artifact.Artifact a = new org.eclipse.aether.artifact.DefaultArtifact(
+                    artifact.getGroupId(), artifact.getArtifactId(),
+                    artifact.getClassifier(), artifact.getType(),
+                    artifact.getVersion());
+
+            ArtifactRequest req = new ArtifactRequest(a, null, null);
+            ArtifactResult res = repoSystem.resolveArtifact(repoSession, req);
+
+            if (res.isResolved()) {
+                org.eclipse.aether.artifact.Artifact aetherArt = res.getArtifact();
+                Artifact mavenArt = new DefaultArtifact(
+                        aetherArt.getGroupId(), aetherArt.getArtifactId(), aetherArt.getVersion(), null, aetherArt.getExtension(),
+                        aetherArt.getClassifier(), new DefaultArtifactHandler());
+                mavenArt.setFile(aetherArt.getFile());
+                return mavenArt;
+            } else {
+                return null;
+            }
+        } catch (RepositoryException e) {
+            throw new RuntimeException(e);
         }
-        return getMatchingArtifacts(artifacts);
     }
 
     public Collection<Artifact> getMatchingArtifacts(final Collection<Artifact> artifacts) {
diff --git a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
index a7921c5..2c0fddd 100644
--- a/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
+++ b/src/main/java/org/apache/sling/cpconverter/maven/mojos/ConvertCPMojo.java
@@ -17,11 +17,11 @@
 package org.apache.sling.cpconverter.maven.mojos;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.artifact.handler.DefaultArtifactHandler;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.ProjectBuildingRequest;
@@ -32,6 +32,8 @@ import org.apache.sling.feature.cpconverter.artifacts.DefaultArtifactsDeployer;
 import org.apache.sling.feature.cpconverter.features.DefaultFeaturesManager;
 import org.apache.sling.feature.cpconverter.handlers.DefaultEntryHandlersManager;
 import org.apache.sling.feature.cpconverter.vltpkg.DefaultPackagesEventsEmitter;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
 
 import java.io.File;
 import java.io.IOException;
@@ -57,7 +59,7 @@ import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelCo
     requiresProject = true,
     threadSafe = true
 )
-public final class ConvertCPMojo
+public class ConvertCPMojo
     extends AbstractBaseMojo
 {
     public static final String CFG_STRICT_VALIDATION = "strictValidation";
@@ -163,6 +165,12 @@ public final class ConvertCPMojo
     @Parameter(property = CFG_IS_CONTENT_PACKAGE, defaultValue = DEFAULT_IS_CONTENT_PACKAGE + "")
     private boolean isContentPackage;
 
+    @Parameter(defaultValue="${repositorySystemSession}")
+    private RepositorySystemSession repoSession;
+
+    @Component
+    private RepositorySystem repoSystem;
+
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         // Un-encode a given Artifact Override Id
@@ -227,7 +235,7 @@ public final class ConvertCPMojo
                     getLog().info("Content Package Artifact File: " + contentPackage.toString() + ", is module CP: " + isContentPackage);
                     contentPackage.setExcludeTransitive(true);
                     contentPackage.setModuleIsContentPackage(isContentPackage);
-                    final Collection<Artifact> artifacts = contentPackage.getMatchingArtifacts(project);
+                    final Collection<Artifact> artifacts = contentPackage.getMatchingArtifacts(project, repoSystem, repoSession);
                     if (artifacts.isEmpty()) {
                         getLog().warn("No matching artifacts for " + contentPackage);
                         continue;