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/30 21:36:00 UTC

[sling-org-apache-sling-feature-cpconverter] 04/29: 'groupId' and 'artifactId' properties not always available in META-INF/vault/properties.xml, replaced with canonical 'name' and 'group'

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 d69e11d1f7aa52617b60995fc5e781e9d06f9097
Author: stripodi <st...@192.168.1.111>
AuthorDate: Thu Apr 11 16:51:18 2019 +0200

    'groupId' and 'artifactId' properties not always available in
    META-INF/vault/properties.xml, replaced with canonical 'name' and
    'group'
---
 .../ContentPackage2FeatureModelConverter.java      | 27 +++++++++++++++-------
 .../cpconverter/handlers/BundleEntryHandler.java   |  6 +++--
 .../cpconverter/vltpkg/VaultPackageAssembler.java  |  4 ----
 .../ContentPackage2FeatureModelConverterTest.java  | 10 ++++----
 4 files changed, 28 insertions(+), 19 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 6fde8d4..71ffa8e 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java
@@ -16,6 +16,8 @@
  */
 package org.apache.sling.feature.cpconverter;
 
+import static java.util.Objects.requireNonNull;
+
 import java.io.File;
 import java.io.FileWriter;
 import java.util.Dictionary;
@@ -56,16 +58,14 @@ public class ContentPackage2FeatureModelConverter {
 
     public static final String ZIP_TYPE = "zip";
 
-    public static final String NAME_GROUP_ID = "groupId";
-
-    public static final String NAME_ARTIFACT_ID = "artifactId";
-
     public static final String FEATURE_CLASSIFIER = "cp2fm-converted-feature";
 
     private static final String SLING_OSGI_FEATURE_TILE_TYPE = "slingosgifeature";
 
     private static final String JSON_FILE_EXTENSION = ".json";
 
+    private static final String DEFEAULT_VERSION = "0.0.0";
+
     private final Logger logger = LoggerFactory.getLogger(getClass());
 
     private final PackageManager packageManager = new PackageManagerImpl();
@@ -193,12 +193,23 @@ public class ContentPackage2FeatureModelConverter {
             mainPackageAssembler = VaultPackageAssembler.create(vaultPackage);
 
             PackageProperties packageProperties = vaultPackage.getProperties();
-            String groupId = packageProperties.getProperty(NAME_GROUP_ID);
-            String artifactId = packageProperties.getProperty(NAME_ARTIFACT_ID);
+            String group = requireNonNull(packageProperties.getProperty(PackageProperties.NAME_GROUP),
+                                          PackageProperties.NAME_GROUP
+                                          + " property not found in content-package "
+                                          + contentPackage
+                                          + ", please check META-INF/vault/properties.xml");
+            String name = requireNonNull(packageProperties.getProperty(PackageProperties.NAME_NAME),
+                                         PackageProperties.NAME_NAME
+                                         + " property not found in content-package "
+                                         + contentPackage
+                                         + ", please check META-INF/vault/properties.xml");
             String version = packageProperties.getProperty(PackageProperties.NAME_VERSION);
+            if (version == null || version.isEmpty()) {
+                version = DEFEAULT_VERSION;
+            }
 
-            targetFeature = new Feature(new ArtifactId(groupId,
-                                                       artifactId,
+            targetFeature = new Feature(new ArtifactId(group.replace('/', '.'),
+                                                       name,
                                                        version,
                                                        FEATURE_CLASSIFIER,
                                                        SLING_OSGI_FEATURE_TILE_TYPE));
diff --git a/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java b/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
index 884bf06..283cf12 100644
--- a/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
+++ b/src/main/java/org/apache/sling/feature/cpconverter/handlers/BundleEntryHandler.java
@@ -17,8 +17,6 @@
 package org.apache.sling.feature.cpconverter.handlers;
 
 import static org.apache.jackrabbit.vault.packaging.PackageProperties.NAME_VERSION;
-import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.NAME_ARTIFACT_ID;
-import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.NAME_GROUP_ID;
 import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.POM_TYPE;
 
 import java.io.ByteArrayInputStream;
@@ -43,6 +41,10 @@ import org.slf4j.LoggerFactory;
 
 public final class BundleEntryHandler extends AbstractRegexEntryHandler {
 
+    private static final String NAME_GROUP_ID = "groupId";
+
+    private static final String NAME_ARTIFACT_ID = "artifactId";
+
     private static final String JAR_TYPE = "jar";
 
     private final Logger logger = LoggerFactory.getLogger(getClass());
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 b46ec61..c68f788 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
@@ -17,8 +17,6 @@
 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.NAME_ARTIFACT_ID;
-import static org.apache.sling.feature.cpconverter.ContentPackage2FeatureModelConverter.NAME_GROUP_ID;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -80,8 +78,6 @@ public final class VaultPackageAssembler implements EntryHandler {
                 PackageProperties.NAME_REQUIRES_ROOT,
                 PackageProperties.NAME_PACKAGE_TYPE,
                 PackageProperties.NAME_AC_HANDLING,
-                NAME_GROUP_ID,
-                NAME_ARTIFACT_ID,
                 NAME_PATH
         }) {
             String value = packageProperties.getProperty(key);
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 08ec0b2..3c16634 100644
--- a/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java
+++ b/src/test/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverterTest.java
@@ -125,24 +125,24 @@ public class ContentPackage2FeatureModelConverterTest {
 
         verifyFeatureFile(outputDirectory,
                           "asd.retail.all.json",
-                          "org.apache.sling:asd.retail.all:slingosgifeature:cp2fm-converted-feature:0.0.1",
+                          "asd.sample:asd.retail.all:slingosgifeature:cp2fm-converted-feature: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("org.apache.sling:asd.retail.all:zip:cp2fm-converted-feature:0.0.1"));
+                          Arrays.asList("asd.sample:asd.retail.all:zip:cp2fm-converted-feature:0.0.1"));
         verifyFeatureFile(outputDirectory,
                           "asd.retail.all-author.json",
-                          "org.apache.sling:asd.retail.all:slingosgifeature:cp2fm-converted-feature-author:0.0.1",
+                          "asd.sample:asd.retail.all:slingosgifeature:cp2fm-converted-feature-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",
-                          "org.apache.sling:asd.retail.all:slingosgifeature:cp2fm-converted-feature-publish:0.0.1",
+                          "asd.sample:asd.retail.all:slingosgifeature:cp2fm-converted-feature-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, "bundles/org/apache/sling/asd.retail.all/0.0.1/asd.retail.all-0.0.1-cp2fm-converted-feature.zip"));
+        ZipFile zipFile = new ZipFile(new File(outputDirectory, "bundles/asd/sample/asd.retail.all/0.0.1/asd.retail.all-0.0.1-cp2fm-converted-feature.zip"));
         for (String expectedEntry : new String[] {
                 "jcr_root/content/asd/.content.xml",
                 "jcr_root/content/asd/resources.xml",