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-org-apache-sling-feature-cpconverter.git


The following commit(s) were added to refs/heads/master by this push:
     new 0bd5602  SLING-9995 : Ignore empty references and scripts for repoinit
0bd5602 is described below

commit 0bd5602f18b4b0149182aeda1404b86bbbc04f38
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Fri Dec 11 11:16:09 2020 +0100

    SLING-9995 : Ignore empty references and scripts for repoinit
---
 .../features/DefaultFeaturesManager.java           |  2 +-
 .../AbstractConfigurationEntryHandler.java         | 28 ++++++++++++++--------
 .../handlers/ConfigurationEntryHandlerTest.java    |  2 +-
 3 files changed, 20 insertions(+), 12 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/features/DefaultFeaturesManager.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/features/DefaultFeaturesManager.java
index f272adb..c1f93df 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/features/DefaultFeaturesManager.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/features/DefaultFeaturesManager.java
@@ -337,7 +337,7 @@ public class DefaultFeaturesManager implements 
FeaturesManager {
             getRunMode(runMode).getExtensions().add(repoInitExtension);
             repoInitExtension.setText(text);
         } else {
-            repoInitExtension.setText(repoInitExtension.getText() + "\n " + 
text);
+            repoInitExtension.setText(repoInitExtension.getText() + "\n 
".concat(text));
         }
     }
 }
diff --git 
a/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
 
b/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
index c7f7b64..a0a94c7 100644
--- 
a/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
+++ 
b/src/main/java/org/apache/sling/feature/cpconverter/handlers/AbstractConfigurationEntryHandler.java
@@ -81,18 +81,15 @@ abstract class AbstractConfigurationEntryHandler extends 
AbstractRegexEntryHandl
             if (REPOINIT_FACTORY_PID.equals(factoryPid)) {
                 final String[] scripts = 
Converters.standardConverter().convert(configurationProperties.get("scripts")).to(String[].class);
                 if (scripts != null && scripts.length > 0 ) {
-                    String text = String.join("\n", scripts);
-                    
converter.getFeaturesManager().addOrAppendRepoInitExtension(text, runMode);
-                }
-                final String[] references = 
Converters.standardConverter().convert(configurationProperties.get("references")).to(String[].class);
-                if ( references != null && references.length > 0 ) {
-                    throw new IllegalArgumentException("References are not 
supported for repoinit (factory configuration " + pid + ")");
+                    for(final String text : scripts) {
+                        if ( text != null && !text.trim().isEmpty() ) {
+                            
converter.getFeaturesManager().addOrAppendRepoInitExtension(text, runMode);
+                        }
+                    }
                 }
+                checkReferences(configurationProperties, pid);
             } else if ( REPOINIT_PID.equals(pid) ) {
-                final String[] references = 
Converters.standardConverter().convert(configurationProperties.get("references")).to(String[].class);
-                if ( references != null && references.length > 0 ) {
-                    throw new IllegalArgumentException("References are not 
supported for repoinit (configuration " + pid + ")");
-                }
+                checkReferences(configurationProperties, pid);
 
             } else {
                 converter.getFeaturesManager().addConfiguration(runMode, id, 
configurationProperties);
@@ -106,6 +103,17 @@ abstract class AbstractConfigurationEntryHandler extends 
AbstractRegexEntryHandl
         }
     }
 
+    private void checkReferences(final Dictionary<String, Object> 
configurationProperties, final String pid) {
+        final String[] references = 
Converters.standardConverter().convert(configurationProperties.get("references")).to(String[].class);
+        if ( references != null && references.length > 0 ) {
+            for(final String r  : references ) {
+                if ( r != null && !r.trim().isEmpty() ) {
+                    throw new IllegalArgumentException("References are not 
supported for repoinit (configuration " + pid + ")");
+                }
+            }
+        }
+    }
+
     protected abstract Dictionary<String, Object> parseConfiguration(String 
name, InputStream input) throws Exception;
 
 }
diff --git 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
index ae5c08a..b5ddbd4 100644
--- 
a/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
+++ 
b/src/test/java/org/apache/sling/feature/cpconverter/handlers/ConfigurationEntryHandlerTest.java
@@ -58,7 +58,7 @@ public class ConfigurationEntryHandlerTest {
         "    set ACL for test-user\n" + 
         "        allow    jcr:read    on /conf\n" + 
         "    end\n" +
-        "create service user test-user2\n" + 
+        " create service user test-user2\n" + 
         "    set ACL for test-user2\n" + 
         "        allow    jcr:read    on /conf\n" + 
         "    end";

Reply via email to