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

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


The following commit(s) were added to refs/heads/master by this push:
     new bcff5fa  SLING-8289 - Generated API Jars of different regions 
overwrite each other in maven repo
bcff5fa is described below

commit bcff5fac0a1512be4e2bf86f74871c431c969d5c
Author: Simo Tripodi <[email protected]>
AuthorDate: Tue Feb 26 15:19:11 2019 +0100

    SLING-8289 - Generated API Jars of different regions overwrite each
    other in maven repo
---
 src/it/apis-jar/verify.bsh                         | 11 +++---
 .../sling/feature/maven/mojos/ApisJarMojo.java     | 45 +++++++---------------
 2 files changed, 19 insertions(+), 37 deletions(-)

diff --git a/src/it/apis-jar/verify.bsh b/src/it/apis-jar/verify.bsh
index 1a93f74..d45936b 100644
--- a/src/it/apis-jar/verify.bsh
+++ b/src/it/apis-jar/verify.bsh
@@ -60,7 +60,7 @@ import org.codehaus.plexus.util.*;
 
         // base
 
-        File baseApiJar = new File(apisJarDir, 
"slingfeature-maven-plugin-test-base-1.0.0-SNAPSHOT-apis.jar");
+        File baseApiJar = new File(apisJarDir, 
"slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-apis.jar");
         if (!checkBundle(baseApiJar,
                          new String[] {
                              "org.apache.felix.inventory;version=1.0",
@@ -73,7 +73,7 @@ import org.codehaus.plexus.util.*;
             return false;
         }
 
-        File baseSourcesJar = new File(apisJarDir, 
"slingfeature-maven-plugin-test-base-1.0.0-SNAPSHOT-sources.jar");
+        File baseSourcesJar = new File(apisJarDir, 
"slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-base-sources.jar");
         if (!checkBundle(baseSourcesJar,
                          null,
                          new String[] {
@@ -85,7 +85,7 @@ import org.codehaus.plexus.util.*;
 
         // extended
 
-        File extendedApiJar = new File(apisJarDir, 
"slingfeature-maven-plugin-test-extended-1.0.0-SNAPSHOT-apis.jar");
+        File extendedApiJar = new File(apisJarDir, 
"slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-extended-apis.jar");
         if (!checkBundle(extendedApiJar,
                          new String[] {
                              "org.apache.felix.inventory;version=1.0",
@@ -102,7 +102,7 @@ import org.codehaus.plexus.util.*;
             return false;
         }
 
-        File extendedSourcesJar = new File(apisJarDir, 
"slingfeature-maven-plugin-test-extended-1.0.0-SNAPSHOT-sources.jar");
+        File extendedSourcesJar = new File(apisJarDir, 
"slingfeature-maven-plugin-test-1.0.0-SNAPSHOT-extended-sources.jar");
         if (!checkBundle(extendedApiJar,
                          null,
                          new String[] {
@@ -119,8 +119,7 @@ import org.codehaus.plexus.util.*;
 
     try {
         return check();
-    }
-    catch(Throwable t) {
+    } catch(Throwable t) {
         t.printStackTrace();
         return false;
     }
diff --git 
a/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java 
b/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
index 493b827..8c48851 100644
--- a/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
+++ b/src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java
@@ -43,9 +43,6 @@ import org.apache.felix.utils.manifest.Clause;
 import org.apache.felix.utils.manifest.Parser;
 import org.apache.maven.archiver.MavenArchiveConfiguration;
 import org.apache.maven.archiver.MavenArchiver;
-import org.apache.maven.artifact.DefaultArtifact;
-import org.apache.maven.artifact.handler.ArtifactHandler;
-import org.apache.maven.artifact.handler.DefaultArtifactHandler;
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Scm;
 import org.apache.maven.model.building.ModelBuilder;
@@ -57,7 +54,6 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.maven.project.artifact.AttachedArtifact;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmTag;
@@ -146,8 +142,6 @@ public class ApisJarMojo extends 
AbstractIncludingFeatureMojo {
 
     private ArtifactProvider artifactProvider;
 
-    private ArtifactHandler artifactHandler = new 
DefaultArtifactHandler(JAR_TYPE);
-
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         ProjectHelper.checkPreprocessorRun(this.project);
@@ -539,27 +533,18 @@ public class ApisJarMojo extends 
AbstractIncludingFeatureMojo {
             jarArchiver.addFile(new File(collectedDir, includedFile), 
includedFile);
         }
 
-        String artifactId;
+        StringBuilder classifierBuilder = new StringBuilder();
         if (featureId.getClassifier() != null) {
-            artifactId = String.format("%s-%s-%s",
-                                       featureId.getArtifactId(),
-                                       featureId.getClassifier(),
-                                       apiRegion.getName());
-        } else {
-            artifactId = String.format("%s-%s",
-                                       featureId.getArtifactId(),
-                                       apiRegion.getName());
+            classifierBuilder.append(featureId.getClassifier())
+                             .append('-');
         }
-        org.apache.maven.artifact.Artifact parentArtifact = new 
DefaultArtifact(featureId.getGroupId(),
-                                                                               
 artifactId,
-                                                                               
 featureId.getVersion(),
-                                                                               
 org.apache.maven.artifact.Artifact.SCOPE_PROVIDED,
-                                                                               
 JAR_TYPE,
-                                                                               
 featureId.getClassifier(),
-                                                                               
 artifactHandler);
-        org.apache.maven.artifact.Artifact attachedArtifact = new 
AttachedArtifact(parentArtifact, JAR_TYPE, classifier, artifactHandler);
+        String finalClassifier = classifierBuilder.append(apiRegion.getName())
+                                                  .append('-')
+                                                  .append(classifier)
+                                                  .toString();
 
-        String symbolicName = artifactId.replace('-', '.');
+        String bundleName = String.format("%s-%s", project.getArtifactId(), 
finalClassifier);
+        String symbolicName = bundleName.replace('-', '.');
 
         MavenArchiveConfiguration archiveConfiguration = new 
MavenArchiveConfiguration();
         if (APIS.equals(classifier)) {
@@ -569,15 +554,15 @@ public class ApisJarMojo extends 
AbstractIncludingFeatureMojo {
             archiveConfiguration.addManifestEntry("Bundle-Version", 
featureId.getOSGiVersion().toString());
             archiveConfiguration.addManifestEntry("Bundle-ManifestVersion", 
"2");
             archiveConfiguration.addManifestEntry("Bundle-SymbolicName", 
symbolicName);
-            archiveConfiguration.addManifestEntry("Bundle-Name", artifactId);
+            archiveConfiguration.addManifestEntry("Bundle-Name", bundleName);
         }
         if (project.getOrganization() != null) {
             archiveConfiguration.addManifestEntry("Bundle-Vendor", 
project.getOrganization().getName());
         }
         archiveConfiguration.addManifestEntry("Specification-Version", 
featureId.getVersion());
-        archiveConfiguration.addManifestEntry("Implementation-Title", 
artifactId);
+        archiveConfiguration.addManifestEntry("Implementation-Title", 
bundleName);
 
-        String targetName = String.format("%s-%s-%s.jar", artifactId, 
featureId.getVersion(), classifier);
+        String targetName = String.format("%s-%s-%s.jar", 
project.getArtifactId(), project.getVersion(), finalClassifier);
         File target = new File(mainOutputDir, targetName);
         MavenArchiver archiver = new MavenArchiver();
         archiver.setArchiver(jarArchiver);
@@ -585,13 +570,11 @@ public class ApisJarMojo extends 
AbstractIncludingFeatureMojo {
 
         try {
             archiver.createArchive(mavenSession, project, 
archiveConfiguration);
-
-            attachedArtifact.setFile(target);
-            project.addAttachedArtifact(attachedArtifact);
+            projectHelper.attachArtifact(project, JAR_TYPE, finalClassifier, 
target);
         } catch (Exception e) {
             throw new MojoExecutionException("An error occurred while creating 
APIs "
                     + target
-                    + " archive", e);
+                    +" archive", e);
         }
     }
 

Reply via email to