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 <[email protected]> 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",
