You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2017/09/27 06:00:56 UTC

svn commit: r1809809 - in /jackrabbit/commons/filevault-package-maven-plugin/trunk: it/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/ it/src/test/resources/test-projects/manifest-generation/with-bundles/ it/src/test/resources/test-proje...

Author: tripod
Date: Wed Sep 27 06:00:55 2017
New Revision: 1809809

URL: http://svn.apache.org/viewvc?rev=1809809&view=rev
Log:
JCRVLT-206 auto import-statement too big in case no compiled classes found

Added:
    jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/
    jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/expected-manifest.txt
    jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/pom.xml
      - copied, changed from r1809805, jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml
Modified:
    jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/ManifestGenerationTest.java
    jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml
    jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-code/pom.xml
    jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java
    jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ImportPackageBuilder.java

Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/ManifestGenerationTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/ManifestGenerationTest.java?rev=1809809&r1=1809808&r2=1809809&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/ManifestGenerationTest.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/java/org/apache/jackrabbit/filevault/maven/packaging/ManifestGenerationTest.java Wed Sep 27 06:00:55 2017
@@ -37,7 +37,8 @@ public class ManifestGenerationTest exte
         return Arrays.asList(new Object[][]{
                 {"/manifest-generation/simple", true},
                 {"/manifest-generation/with-bundles", true},
-                {"/manifest-generation/with-code", true}
+                {"/manifest-generation/with-code", true},
+                {"/manifest-generation/with-unused-dependencies", true}
         });
     }
 

Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml?rev=1809809&r1=1809808&r2=1809809&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml Wed Sep 27 06:00:55 2017
@@ -31,6 +31,7 @@
                 <extensions>true</extensions>
                 <configuration>
                     <group>my/test/group</group>
+                    <importUnusedPackages>true</importUnusedPackages>
                     <importPackage>
                         -aQute*, <!-- example of removing a package -->
                         -org.osgi.framework.*, <!-- should keep the org.osgi.framework but remove subpackages-->

Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-code/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-code/pom.xml?rev=1809809&r1=1809808&r2=1809809&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-code/pom.xml (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-code/pom.xml Wed Sep 27 06:00:55 2017
@@ -57,12 +57,18 @@
             <version>2.5</version>
             <scope>provided</scope>
         </dependency>
-        <!-- GRANITE-17649 test case -->
         <dependency>
             <groupId>org.apache.jackrabbit</groupId>
             <artifactId>jackrabbit-api</artifactId>
             <version>2.7.5</version>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <!-- unused dependency -->
+            <groupId>biz.aQute</groupId>
+            <artifactId>bndlib</artifactId>
+            <version>1.43.0</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 </project>

Added: jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/expected-manifest.txt
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/expected-manifest.txt?rev=1809809&view=auto
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/expected-manifest.txt (added)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/expected-manifest.txt Wed Sep 27 06:00:55 2017
@@ -0,0 +1,10 @@
+Archiver-Version:Plexus Archiver
+Content-Package-Description:This is an Example Project to verify that manifest generation is correct.
+Content-Package-Id:my/test/group:package-plugin-test-pkg:1.0.0-SNAPSHOT
+Content-Package-Roots:/apps/test
+Content-Package-Type:application
+Created-By:Apache Maven
+Implementation-Title:Example Default Project
+Implementation-Vendor-Id:org.apache.jackrabbit.filevault
+Implementation-Version:1.0.0-SNAPSHOT
+Manifest-Version:1.0
\ No newline at end of file

Copied: jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/pom.xml (from r1809805, jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml)
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/pom.xml?p2=jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/pom.xml&p1=jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml&r1=1809805&r2=1809809&rev=1809809&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-bundles/pom.xml (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/it/src/test/resources/test-projects/manifest-generation/with-unused-dependencies/pom.xml Wed Sep 27 06:00:55 2017
@@ -31,12 +31,6 @@
                 <extensions>true</extensions>
                 <configuration>
                     <group>my/test/group</group>
-                    <importPackage>
-                        -aQute*, <!-- example of removing a package -->
-                        -org.osgi.framework.*, <!-- should keep the org.osgi.framework but remove subpackages-->
-                        javax.jcr*;version="[1.0.0,3.0.0)", <!-- example of altering existing packages -->
-                        org.apache.foo  <!-- example of adding a new package -->
-                    </importPackage>
                     <failOnDependencyErrors>false</failOnDependencyErrors>
                     <filters>
                         <filter>
@@ -61,7 +55,6 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <!-- unused dependency -->
             <groupId>biz.aQute</groupId>
             <artifactId>bndlib</artifactId>
             <version>1.43.0</version>

Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java?rev=1809809&r1=1809808&r2=1809809&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/AnalyzeClassesMojo.java Wed Sep 27 06:00:55 2017
@@ -57,12 +57,19 @@ public class AnalyzeClassesMojo extends
     @Parameter(property = "vault.generatedImportPackage", defaultValue = "${project.build.directory}/vault-generated-import.txt")
     private File generatedImportPackage;
 
+    /**
+     * Defines if unused packages should be included in the import-package entry if no classes exist in the project
+     */
+    @Parameter(property = "vault.importUnusedPackages")
+    private boolean importUnusedPackages;
+
     public void execute() throws MojoExecutionException, MojoFailureException {
         try {
             getLog().info("Analyzing java package dependencies.");
             ImportPackageBuilder builder = new ImportPackageBuilder()
                     .withDependenciesFromProject(project)
                     .withClassFileDirectory(sourceDirectory)
+                    .setIncludeUnused(importUnusedPackages)
                     .analyze();
 
             String report = builder.createExportPackageReport();

Modified: jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ImportPackageBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ImportPackageBuilder.java?rev=1809809&r1=1809808&r2=1809809&view=diff
==============================================================================
--- jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ImportPackageBuilder.java (original)
+++ jackrabbit/commons/filevault-package-maven-plugin/trunk/plugin/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/ImportPackageBuilder.java Wed Sep 27 06:00:55 2017
@@ -105,6 +105,11 @@ public class ImportPackageBuilder {
     private Map<String, Attrs> importParameters = Collections.emptyMap();
 
     /**
+     * specifies if unused packages should be included if there are not classes in the project
+     */
+    private boolean includeUnused;
+
+    /**
      * Sets the class files directory
      * @param classes the directory
      * @return this.
@@ -136,6 +141,17 @@ public class ImportPackageBuilder {
     }
 
     /**
+     * defines if unused packages should be included if no classes exist in the project.
+     * @param includeUnused {@code true} to include unused.
+     * @return this
+     */
+    @Nonnull
+    public ImportPackageBuilder setIncludeUnused(boolean includeUnused) {
+        this.includeUnused = includeUnused;
+        return this;
+    }
+
+    /**
      * analyzes the imports
      * @return this
      * @throws IOException if an error occurrs.
@@ -386,6 +402,9 @@ public class ImportPackageBuilder {
                 // skip if not used.
                 continue;
             }
+            if (classFiles.isEmpty() && !includeUnused) {
+                continue;
+            }
             if (info.bundles.isEmpty()) {
                 // skip if no bundle
                 continue;