This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new d05bbf8  SLING-10220 : Provide a mechanism to apply configuration 
defaults
d05bbf8 is described below

commit d05bbf8f175fafcb6fccaa31f11601f48a0a51f9
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Mar 16 15:19:09 2021 +0100

    SLING-10220 : Provide a mechanism to apply configuration defaults
---
 .../maven/mojos/ApplyDefaultConfigMojo.java        | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/feature/maven/mojos/ApplyDefaultConfigMojo.java
 
b/src/main/java/org/apache/sling/feature/maven/mojos/ApplyDefaultConfigMojo.java
index 8ec60ac..0eb4d27 100644
--- 
a/src/main/java/org/apache/sling/feature/maven/mojos/ApplyDefaultConfigMojo.java
+++ 
b/src/main/java/org/apache/sling/feature/maven/mojos/ApplyDefaultConfigMojo.java
@@ -24,6 +24,7 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.sling.feature.Feature;
+import 
org.apache.sling.feature.extension.apiregions.api.config.ConfigurationApi;
 import 
org.apache.sling.feature.extension.apiregions.api.config.validation.FeatureValidationResult;
 import 
org.apache.sling.feature.extension.apiregions.api.config.validation.FeatureValidator;
 import org.apache.sling.feature.maven.ProjectHelper;
@@ -52,17 +53,20 @@ public class ApplyDefaultConfigMojo extends 
AbstractIncludingFeatureMojo {
         for (Map.Entry<String, Feature> entry : selFeat.entrySet()) {
             final Feature f = entry.getValue();
 
-            final FeatureValidator validator = new FeatureValidator();
-            validator.setFeatureProvider(new BaseFeatureProvider());
+            // check if configuration api is set
+            if ( ConfigurationApi.getConfigurationApi(f) != null ) {
+                final FeatureValidator validator = new FeatureValidator();
+                validator.setFeatureProvider(new BaseFeatureProvider());
 
-            final FeatureValidationResult result = validator.validate(f);
-            if ( !result.isValid() && failOnValidationError ) {
-                throw new MojoExecutionException("Unable to apply default 
configuration to invalid feature ".concat(f.getId().toMvnId()));
-            }
+                final FeatureValidationResult result = validator.validate(f);
+                if ( !result.isValid() && failOnValidationError ) {
+                    throw new MojoExecutionException("Unable to apply default 
configuration to invalid feature ".concat(f.getId().toMvnId()));
+                }
 
-            if ( validator.applyDefaultValues(f, result) ) {
-                getLog().info("Applied default configurations to feature 
".concat(f.getId().toMvnId()));
-                ProjectHelper.createTmpFeatureFile(project, f, true);
+                if ( validator.applyDefaultValues(f, result) ) {
+                    getLog().info("Applied default configurations to feature 
".concat(f.getId().toMvnId()));
+                    ProjectHelper.createTmpFeatureFile(project, f, true);
+                }
             }
         }
     }

Reply via email to