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";