SLING-7683 Support runmode in separate feature files
diff --git a/src/main/java/org/apache/sling/feature/modelconverter/FeatureToProvisioning.java b/src/main/java/org/apache/sling/feature/modelconverter/FeatureToProvisioning.java
index afaa2e2..9b92ad8 100644
--- a/src/main/java/org/apache/sling/feature/modelconverter/FeatureToProvisioning.java
+++ b/src/main/java/org/apache/sling/feature/modelconverter/FeatureToProvisioning.java
@@ -59,7 +59,7 @@
public class FeatureToProvisioning {
private static final Logger LOGGER = LoggerFactory.getLogger(FeatureToProvisioning.class);
static final String PROVISIONING_MODEL_NAME_VARIABLE = "provisioning.model.name";
- static final String PROVISIONING_RUNMODE = "provisioning.runmode";
+ static final String PROVISIONING_RUNMODES = "provisioning.runmodes";
public static void convert(File inputFile, File outputFile, ArtifactManager am) throws IOException {
if (outputFile.exists()) {
@@ -79,7 +79,7 @@
featureName = feature.getId().getArtifactId();
}
- String runMode = (String) feature.getVariables().remove(PROVISIONING_RUNMODE);
+ String runMode = (String) feature.getVariables().remove(PROVISIONING_RUNMODES);
String[] runModes = null;
if (runMode != null) {
runModes = runMode.split(",");
diff --git a/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java b/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java
index 8526fa8..263d479 100644
--- a/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java
+++ b/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java
@@ -140,7 +140,7 @@
files2 = new File[] {getFile("/oak.json")};
}
- testConvertToProvisioningModel(files1, files2);
+ testConvertToProvisioningModel(files2, files1);
}
private File getFile(String f) throws URISyntaxException {
@@ -345,6 +345,7 @@
Model expected = readProvisioningModel(expectedFile);
Model actual = readProvisioningModel(generatedFiles);
assertModelsEqual(expected, actual);
+ assertModelsEqual(actual, expected);
}
public void testConvertToProvisioningModel(File[] jsonFiles1, File[] jsonFiles2) throws URISyntaxException, IOException {
@@ -354,12 +355,17 @@
Model actual1 = readProvisioningModel(generatedFiles1);
Model actual2 = readProvisioningModel(generatedFiles2);
assertModelsEqual(actual1, actual2);
+ assertModelsEqual(actual2, actual1);
}
private List<File> convertFeatureFilesToProvisioningModel(File[] jsonFiles) throws URISyntaxException, IOException {
List<File> generatedFiles = new ArrayList<>();
for (File inFile : jsonFiles) {
- File outFile = new File(tempDir.toFile(), inFile.getName() + ".txt.generated");
+ File outFile;
+ int counter = 0;
+ do {
+ outFile = new File(tempDir.toFile(), inFile.getName() + (counter++) + ".txt.generated");
+ } while (outFile.exists());
FeatureToProvisioning.convert(inFile, outFile, artifactManager);
generatedFiles.add(outFile);
diff --git a/src/test/resources/runmodeseparation/oak_mongo.json b/src/test/resources/runmodeseparation/oak_mongo.json
index 9ed9a8e..989f3aa 100644
--- a/src/test/resources/runmodeseparation/oak_mongo.json
+++ b/src/test/resources/runmodeseparation/oak_mongo.json
@@ -4,7 +4,7 @@
"variables": {
"oak.version": "1.6.8",
"provisioning.model.name": "oak",
- "provisioning.runmode": "oak_mongo"
+ "provisioning.runmodes": "oak_mongo"
},
"bundles": [
diff --git a/src/test/resources/runmodeseparation/oak_tar.json b/src/test/resources/runmodeseparation/oak_tar.json
index 71ade48..75011d5 100644
--- a/src/test/resources/runmodeseparation/oak_tar.json
+++ b/src/test/resources/runmodeseparation/oak_tar.json
@@ -4,7 +4,7 @@
"variables": {
"oak.version": "1.6.8",
"provisioning.model.name": "oak",
- "provisioning.runmode": "oak_tar"
+ "provisioning.runmodes": "oak_tar"
},
"bundles": [