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 cbbdfe96ad719a4971471e0a8ab3f97eeea8a76a Author: stripodi <[email protected]> AuthorDate: Thu Apr 11 23:28:44 2019 +0200 added the ability to override the final Features/content-package groupId --- .../ContentPackage2FeatureModelConverter.java | 56 +++++++++++++--------- ...ntentPackage2FeatureModelConverterLauncher.java | 6 ++- 2 files changed, 39 insertions(+), 23 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 e67b04f..966728c 100644 --- a/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java +++ b/src/main/java/org/apache/sling/feature/cpconverter/ContentPackage2FeatureModelConverter.java @@ -92,6 +92,8 @@ public class ContentPackage2FeatureModelConverter { private VaultPackageAssembler mainPackageAssembler = null; + private String groupId; + public ContentPackage2FeatureModelConverter setStrictValidation(boolean strictValidation) { this.strictValidation = strictValidation; return this; @@ -142,6 +144,11 @@ public class ContentPackage2FeatureModelConverter { filter.addFilteringPattern(filteringPattern); } + public ContentPackage2FeatureModelConverter setGroupId(String groupId) { + this.groupId = groupId; + return this; + } + public Feature getRunMode(String runMode) { if (getTargetFeature() == null) { throw new IllegalStateException("Target Feature not initialized yet, please make sure convert() method was invoked first."); @@ -164,6 +171,20 @@ public class ContentPackage2FeatureModelConverter { return artifactDeployer; } + private static void checkDirectory(File directory, String name) { + if (directory == null) { + throw new IllegalStateException("Null " + name + " output directory not supported, it must be set before invoking the convert(File) method."); + } + + if (!directory.exists() && !directory.mkdirs()) { + throw new IllegalStateException("output directory " + + directory + + " does not exist and can not be created, please make sure current user '" + + System.getProperty("user.name") + + " has enough rights to write on the File System."); + } + } + public void convert(File contentPackage) throws Exception { Objects.requireNonNull(contentPackage , "Null content-package can not be converted."); @@ -173,15 +194,8 @@ public class ContentPackage2FeatureModelConverter { + " does not exist or it is not a valid file."); } - if (artifactsOutputDirectory == null) { - throw new IllegalStateException("Null artifacts output directory not supported, it must be set before invoking the convert(File) method."); - } - - if (featureModelsOutputDirectory == null) { - throw new IllegalStateException("Null models output directory not supported, it must be set before invoking the convert(File) method."); - } else if (!featureModelsOutputDirectory.exists()) { - featureModelsOutputDirectory.mkdirs(); - } + checkDirectory(artifactsOutputDirectory, "artifacts"); + checkDirectory(featureModelsOutputDirectory, "models"); Iterator<BundlesDeployer> artifactDeployerLoader = ServiceLoader.load(BundlesDeployer.class).iterator(); if (!artifactDeployerLoader.hasNext()) { @@ -190,14 +204,6 @@ public class ContentPackage2FeatureModelConverter { artifactDeployer = artifactDeployerLoader.next(); } - if (!artifactsOutputDirectory.exists() && !artifactsOutputDirectory.mkdirs()) { - throw new IllegalStateException("output directory " - + artifactsOutputDirectory - + " does not exist and can not be created, please make sure current user '" - + System.getProperty("user.name") - + " has enough rights to write on the File System."); - } - logger.info("Reading content-package '{}'...", contentPackage); try (VaultPackage vaultPackage = packageManager.open(contentPackage, strictValidation)) { @@ -206,11 +212,17 @@ public class ContentPackage2FeatureModelConverter { mainPackageAssembler = VaultPackageAssembler.create(vaultPackage); PackageProperties packageProperties = vaultPackage.getProperties(); - 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 group; + if (groupId != null && !groupId.isEmpty()) { + group = groupId; + } else { + group = requireNonNull(packageProperties.getProperty(PackageProperties.NAME_GROUP), + "'packageGroupId' parameter not specified and " + + 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 " diff --git a/src/main/java/org/apache/sling/feature/cpconverter/cli/ContentPackage2FeatureModelConverterLauncher.java b/src/main/java/org/apache/sling/feature/cpconverter/cli/ContentPackage2FeatureModelConverterLauncher.java index cba9553..2943f82 100644 --- a/src/main/java/org/apache/sling/feature/cpconverter/cli/ContentPackage2FeatureModelConverterLauncher.java +++ b/src/main/java/org/apache/sling/feature/cpconverter/cli/ContentPackage2FeatureModelConverterLauncher.java @@ -67,6 +67,9 @@ public final class ContentPackage2FeatureModelConverterLauncher implements Runna @Option(names = { "-o", "--features-output-directory" }, description = "The output directory where the Feature File will be generated.", required = true) private File featureModelsOutputDirectory; + @Option(names = { "-g", "--groupId" }, description = "The output directory where the Feature File will be generated.", required = false) + private String groupId; + @Override public void run() { if (quiet) { @@ -100,7 +103,8 @@ public final class ContentPackage2FeatureModelConverterLauncher implements Runna .setMergeConfigurations(mergeConfigurations) .setBundlesStartOrder(bundlesStartOrder) .setArtifactsOutputDirectory(artifactsOutputDirectory) - .setFeatureModelsOutputDirectory(featureModelsOutputDirectory); + .setFeatureModelsOutputDirectory(featureModelsOutputDirectory) + .setGroupId(groupId); if (filteringPatterns != null && filteringPatterns.length > 0) { for (String filteringPattern : filteringPatterns) {
