You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by si...@apache.org on 2019/04/24 13:52:02 UTC

[sling-org-apache-sling-feature-cpconverter] 10/15: avoid any trouble when specifying an external ArtifactId which can have different classifiers

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 <st...@192.168.1.111>
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",