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",

Reply via email to