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 66d0243 SLING-8973 - fixing runmode handling for repoinit
configuration handling
new 5e46f6d Merge pull request #23 from DominikSuess/issue/SLING-8973
66d0243 is described below
commit 66d0243443f36f8151878bd01cdb447c6fb9ef43
Author: Dominik Suess <[email protected]>
AuthorDate: Wed Jan 8 17:30:45 2020 +0100
SLING-8973 - fixing runmode handling for repoinit configuration handling
---
.../feature/cpconverter/acl/DefaultAclManager.java | 2 +-
.../features/DefaultFeaturesManager.java | 12 +++++---
.../cpconverter/features/FeaturesManager.java | 2 +-
.../AbstractConfigurationEntryHandler.java | 2 +-
.../handlers/ConfigurationEntryHandlerTest.java | 36 ++++++++++++----------
5 files changed, 29 insertions(+), 25 deletions(-)
diff --git
a/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
b/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
index 3ba81a5..cb6e8e9 100644
---
a/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
+++
b/src/main/java/org/apache/sling/feature/cpconverter/acl/DefaultAclManager.java
@@ -134,7 +134,7 @@ public final class DefaultAclManager implements AclManager {
String text = formatter.toString();
if (!text.isEmpty()) {
- featureManager.addOrAppendRepoInitExtension(text);
+ featureManager.addOrAppendRepoInitExtension(text, null);
}
} finally {
if (formatter != null) {
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 1841244..ecf3b15 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
@@ -35,6 +35,7 @@ import org.apache.sling.feature.ArtifactId;
import org.apache.sling.feature.Artifacts;
import org.apache.sling.feature.Configuration;
import org.apache.sling.feature.Extension;
+import org.apache.sling.feature.ExtensionState;
import org.apache.sling.feature.ExtensionType;
import org.apache.sling.feature.Extensions;
import org.apache.sling.feature.Feature;
@@ -278,15 +279,16 @@ public class DefaultFeaturesManager implements
FeaturesManager {
targetAPIRegions.addAll(regions);
return this;
}
-
+
@Override
- public void addOrAppendRepoInitExtension(String text) {
+ public void addOrAppendRepoInitExtension(String text, String runMode) {
- Extension repoInitExtension =
getTargetFeature().getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
+ logger.info("Adding/Appending RepoInitExtension for runMode: {}",
runMode );
+ Extension repoInitExtension =
getRunMode(runMode).getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT);
if (repoInitExtension == null) {
- repoInitExtension = new Extension(ExtensionType.TEXT,
Extension.EXTENSION_NAME_REPOINIT, true);
- getTargetFeature().getExtensions().add(repoInitExtension);
+ repoInitExtension = new Extension(ExtensionType.TEXT,
Extension.EXTENSION_NAME_REPOINIT, ExtensionState.REQUIRED);
+ getRunMode(runMode).getExtensions().add(repoInitExtension);
repoInitExtension.setText(text);
} else {
repoInitExtension.setText(repoInitExtension.getText() + "\n " +
text);
diff --git
a/src/main/java/org/apache/sling/feature/cpconverter/features/FeaturesManager.java
b/src/main/java/org/apache/sling/feature/cpconverter/features/FeaturesManager.java
index be1b5ff..b247ca2 100644
---
a/src/main/java/org/apache/sling/feature/cpconverter/features/FeaturesManager.java
+++
b/src/main/java/org/apache/sling/feature/cpconverter/features/FeaturesManager.java
@@ -37,6 +37,6 @@ public interface FeaturesManager {
void serialize() throws Exception;
- void addOrAppendRepoInitExtension(String text);
+ void addOrAppendRepoInitExtension(String text, String runMode);
}
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 0c3dfda..59413cd 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
@@ -80,7 +80,7 @@ abstract class AbstractConfigurationEntryHandler extends
AbstractRegexEntryHandl
String[] scripts = (String[])
configurationProperties.get("scripts");
if (scripts != null) {
String text = String.join("\n", scripts);
-
converter.getFeaturesManager().addOrAppendRepoInitExtension(text);
+
converter.getFeaturesManager().addOrAppendRepoInitExtension(text, runMode);
} else {
// any repoinit configuration with empty scripts may be igored
- filereferences are not supported at that point
}
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 d9a2215..f71cc2d 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
@@ -65,13 +65,16 @@ public class ConfigurationEntryHandlerTest {
private final int expectedConfigurationsSize;
private final AbstractConfigurationEntryHandler configurationEntryHandler;
+ private final String expectedRunMode;
public ConfigurationEntryHandlerTest(String resourceConfiguration,
int expectedConfigurationsSize,
- AbstractConfigurationEntryHandler
configurationEntryHandler) {
+ AbstractConfigurationEntryHandler
configurationEntryHandler,
+ String expectedRunMode) {
this.resourceConfiguration = resourceConfiguration;
this.expectedConfigurationsSize = expectedConfigurationsSize;
this.configurationEntryHandler = configurationEntryHandler;
+ this.expectedRunMode = expectedRunMode;
}
@Test
@@ -102,13 +105,12 @@ public class ConfigurationEntryHandlerTest {
configurationEntryHandler.handle(resourceConfiguration, archive,
entry, converter);
- Configurations configurations =
featuresManager.getTargetFeature().getConfigurations();
+ Configurations configurations =
featuresManager.getRunMode(expectedRunMode).getConfigurations();
assertEquals(expectedConfigurationsSize, configurations.size());
-
if (this.resourceConfiguration.equals(REPOINIT_TESTCONFIG_PATH)) {
- assertEquals(EXPECTED_REPOINIT,
featuresManager.getTargetFeature().getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT).getText());
+ assertEquals(EXPECTED_REPOINIT,
featuresManager.getRunMode(expectedRunMode).getExtensions().getByName(Extension.EXTENSION_NAME_REPOINIT).getText());
}
if (expectedConfigurationsSize != 0) {
@@ -129,25 +131,25 @@ public class ConfigurationEntryHandlerTest {
String path = "/jcr_root/apps/asd/config/";
return Arrays.asList(new Object[][] {
- { path + EXPECTED_PID + ".empty.cfg", 1, new
PropertiesConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".cfg", 1, new
PropertiesConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.cfg", 1, new
PropertiesConfigurationEntryHandler(), null },
+ { path + EXPECTED_PID + ".cfg", 1, new
PropertiesConfigurationEntryHandler(), null },
- { path + EXPECTED_PID + ".empty.cfg.json", 1, new
JsonConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".cfg.json", 1, new
JsonConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.cfg.json", 1, new
JsonConfigurationEntryHandler(), null },
+ { path + EXPECTED_PID + ".cfg.json", 1, new
JsonConfigurationEntryHandler(), null },
- { path + EXPECTED_PID + ".empty.config", 1, new
ConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".config", 1, new
ConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.config", 1, new
ConfigurationEntryHandler(), null },
+ { path + EXPECTED_PID + ".config", 1, new
ConfigurationEntryHandler(), null },
- { path + EXPECTED_PID + ".empty.xml", 1, new
XmlConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".xml", 1, new
XmlConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.xml", 1, new
XmlConfigurationEntryHandler(), null },
+ { path + EXPECTED_PID + ".xml", 1, new
XmlConfigurationEntryHandler(), null },
- { path + EXPECTED_PID + ".empty.xml.cfg", 1, new
PropertiesConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".xml.cfg", 1, new
PropertiesConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.xml.cfg", 1, new
PropertiesConfigurationEntryHandler(), null },
+ { path + EXPECTED_PID + ".xml.cfg", 1, new
PropertiesConfigurationEntryHandler(), null },
// runmode aware folders
- { "/jcr_root/apps/asd/config.author/" + EXPECTED_PID + ".config",
1, new ConfigurationEntryHandler() },
- { REPOINIT_TESTCONFIG_PATH, 0, new ConfigurationEntryHandler() },
- { "/jcr_root/apps/asd/config.publish/" + EXPECTED_PID + ".config",
1, new ConfigurationEntryHandler() },
+ { "/jcr_root/apps/asd/config.author/" + EXPECTED_PID + ".config",
1, new ConfigurationEntryHandler(), "author" },
+ { REPOINIT_TESTCONFIG_PATH, 0, new ConfigurationEntryHandler() ,
"author"},
+ { "/jcr_root/apps/asd/config.publish/" + EXPECTED_PID + ".config",
1, new ConfigurationEntryHandler(), "publish" }
});
}