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);
}
}