SLING-8749 - [cp2fm] empty configurations have to be included in the
resulting Feature Model
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 235d658..bb933de 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
@@ -58,11 +58,6 @@
return;
}
- if (configurationProperties.isEmpty()) {
- logger.info("No configuration properties found for configuration {}", path);
- return;
- }
-
Matcher matcher = getPattern().matcher(path);
String runMode = null;
// we are pretty sure it matches, here
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 3a5fba3..dd28084 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
@@ -94,10 +94,13 @@
assertEquals(expectedConfigurationsSize, configurations.size());
- if (expectedConfigurationsSize > 0) {
- Configuration configuration = configurations.get(0);
+ Configuration configuration = configurations.get(0);
- assertTrue(configuration.getPid(), configuration.getPid().startsWith(EXPECTED_PID));
+ assertTrue(configuration.getPid(), configuration.getPid().startsWith(EXPECTED_PID));
+
+ if (configuration.getPid().contains(".empty")) {
+ assertTrue(configuration.getProperties().isEmpty());
+ } else {
assertEquals("Unmatching size: " + configuration.getProperties().size(), 2, configuration.getProperties().size());
}
}
@@ -107,19 +110,19 @@
String path = "/jcr_root/apps/asd/config/";
return Arrays.asList(new Object[][] {
- { path + EXPECTED_PID + ".empty.cfg", 0, new PropertiesConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.cfg", 1, new PropertiesConfigurationEntryHandler() },
{ path + EXPECTED_PID + ".cfg", 1, new PropertiesConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".empty.cfg.json", 0, new JsonConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.cfg.json", 1, new JsonConfigurationEntryHandler() },
{ path + EXPECTED_PID + ".cfg.json", 1, new JsonConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".empty.config", 0, new ConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.config", 1, new ConfigurationEntryHandler() },
{ path + EXPECTED_PID + ".config", 1, new ConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".empty.xml", 0, new XmlConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.xml", 1, new XmlConfigurationEntryHandler() },
{ path + EXPECTED_PID + ".xml", 1, new XmlConfigurationEntryHandler() },
- { path + EXPECTED_PID + ".empty.xml.cfg", 0, new PropertiesConfigurationEntryHandler() },
+ { path + EXPECTED_PID + ".empty.xml.cfg", 1, new PropertiesConfigurationEntryHandler() },
{ path + EXPECTED_PID + ".xml.cfg", 1, new PropertiesConfigurationEntryHandler() },
// runmode aware folders