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-org-apache-sling-feature-cpconverter.git
commit 1b7a9683e8c86f2d9bcd71d0a2d6e450cf4d96e2 Author: stripodi <[email protected]> AuthorDate: Fri Apr 12 01:17:32 2019 +0200 avoid any trouble when specifying an external ArtifactId which can have different classifiers --- .../ContentPackage2FeatureModelConverter.java | 21 ++++++++++++++------- .../cpconverter/vltpkg/VaultPackageAssembler.java | 4 ++-- .../ContentPackage2FeatureModelConverterTest.java | 10 +++++----- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java b/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java index 8c051e8..149c673 100644 --- a/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java +++ b/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java @@ -58,7 +58,7 @@ public class ContentPackage2FeatureModelConverter { public static final String ZIP_TYPE = "zip"; - public static final String FEATURE_CLASSIFIER = "cp2fm-converted-feature"; + public static final String PACKAGE_CLASSIFIER = "cp2fm-converted"; private static final String SLING_OSGI_FEATURE_TILE_TYPE = "slingosgifeature"; @@ -159,11 +159,17 @@ public class ContentPackage2FeatureModelConverter { } ArtifactId id = getTargetFeature().getId(); + final String classifier; + if (id.getClassifier() != null && !id.getClassifier().isEmpty()) { + classifier = id.getClassifier() + '-' + runMode; + } else { + classifier = runMode; + } return runModes.computeIfAbsent(runMode, k -> new Feature(new ArtifactId(id.getGroupId(), id.getArtifactId(), id.getVersion(), - id.getClassifier() + '-' + runMode, + classifier, id.getType()))); } @@ -237,7 +243,7 @@ public class ContentPackage2FeatureModelConverter { artifactId = new ArtifactId(group, name, version, - FEATURE_CLASSIFIER, + null, SLING_OSGI_FEATURE_TILE_TYPE); } @@ -259,7 +265,7 @@ public class ContentPackage2FeatureModelConverter { targetFeature.getId().getGroupId(), targetFeature.getId().getArtifactId(), targetFeature.getId().getVersion(), - FEATURE_CLASSIFIER, + PACKAGE_CLASSIFIER, ZIP_TYPE); artifactDeployer.deploy(new MavenPomSupplierWriter(targetFeature.getId().getGroupId(), @@ -276,7 +282,7 @@ public class ContentPackage2FeatureModelConverter { targetFeature.getId().getGroupId(), targetFeature.getId().getArtifactId(), targetFeature.getId().getVersion(), - FEATURE_CLASSIFIER, + PACKAGE_CLASSIFIER, ZIP_TYPE); // finally serialize the Feature Model(s) file(s) @@ -331,8 +337,9 @@ public class ContentPackage2FeatureModelConverter { private void seralize(Feature feature) throws Exception { StringBuilder fileName = new StringBuilder().append(feature.getId().getArtifactId()); - if (!FEATURE_CLASSIFIER.equals(feature.getId().getClassifier())) { - fileName.append(feature.getId().getClassifier().substring(FEATURE_CLASSIFIER.length())); + String classifier = feature.getId().getClassifier(); + if (classifier != null && !classifier.isEmpty()) { + fileName.append('-').append(classifier); } fileName.append(JSON_FILE_EXTENSION); diff --git a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java index c68f788..08d4e81 100644 --- a/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java +++ b/src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java @@ -16,7 +16,7 @@ */ package org.apache.sling.feature.cpconverter.vltpkg; -import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.FEATURE_CLASSIFIER; +import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.PACKAGE_CLASSIFIER; import java.io.File; import java.io.FileInputStream; @@ -67,7 +67,7 @@ public final class VaultPackageAssembler implements EntryHandler { properties.setProperty(PackageProperties.NAME_VERSION, packageProperties.getProperty(PackageProperties.NAME_VERSION) + '-' - + FEATURE_CLASSIFIER); + + PACKAGE_CLASSIFIER); for (String key : new String[] { PackageProperties.NAME_GROUP, diff --git a/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java b/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java index 6db646b..7fb3b15 100644 --- a/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java +++ b/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java @@ -128,24 +128,24 @@ public class ContentPackage2FeatureModelConverterTest { verifyFeatureFile(outputDirectory, "asd.retail.all.json", - "asd.sample:asd.retail.all:slingosgifeature:cp2fm-converted-feature:0.0.1", + "asd.sample:asd.retail.all:slingosgifeature:0.0.1", Arrays.asList("org.apache.felix:org.apache.felix.framework:6.0.1"), Arrays.asList("org.apache.sling.commons.log.LogManager.factory.config-asd-retail"), - Arrays.asList("asd.sample:asd.retail.all:zip:cp2fm-converted-feature:0.0.1")); + Arrays.asList("asd.sample:asd.retail.all:zip:cp2fm-converted:0.0.1")); verifyFeatureFile(outputDirectory, "asd.retail.all-author.json", - "asd.sample:asd.retail.all:slingosgifeature:cp2fm-converted-feature-author:0.0.1", + "asd.sample:asd.retail.all:slingosgifeature:author:0.0.1", Arrays.asList("org.apache.sling:org.apache.sling.api:2.20.0"), Collections.emptyList(), Collections.emptyList()); verifyFeatureFile(outputDirectory, "asd.retail.all-publish.json", - "asd.sample:asd.retail.all:slingosgifeature:cp2fm-converted-feature-publish:0.0.1", + "asd.sample:asd.retail.all:slingosgifeature:publish:0.0.1", Arrays.asList("org.apache.sling:org.apache.sling.models.api:1.3.8"), Arrays.asList("org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-asd-retail"), Collections.emptyList()); - ZipFile zipFile = new ZipFile(new File(outputDirectory, "asd/sample/asd.retail.all/0.0.1/asd.retail.all-0.0.1-cp2fm-converted-feature.zip")); + ZipFile zipFile = new ZipFile(new File(outputDirectory, "asd/sample/asd.retail.all/0.0.1/asd.retail.all-0.0.1-cp2fm-converted.zip")); for (String expectedEntry : new String[] { "jcr_root/content/asd/.content.xml", "jcr_root/content/asd/resources.xml",
