You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2018/05/29 11:42:00 UTC

[sling-org-apache-sling-feature-modelconverter] branch master updated (26bfdf4 -> 18f4c74)

This is an automated email from the ASF dual-hosted git repository.

davidb pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-modelconverter.git.


    from 26bfdf4  SLING-7683 Support run modes in separate files
     new af9e4a0  Test to ensures that two different Feature Models produce the same provisioning model
     new 18f4c74  SLING-7683 Support runmode in separate feature files

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../modelconverter/FeatureToProvisioning.java      |  4 +-
 .../feature/modelconverter/ModelConverterTest.java | 63 +++++++++++++++++++---
 .../resources/runmodeseparation/oak_mongo.json     |  2 +-
 src/test/resources/runmodeseparation/oak_tar.json  |  2 +-
 4 files changed, 60 insertions(+), 11 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
davidb@apache.org.

[sling-org-apache-sling-feature-modelconverter] 01/02: Test to ensures that two different Feature Models produce the same provisioning model

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-modelconverter.git

commit af9e4a0f9972db9adbca3cf03dde46bc35d012a4
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Mon May 28 15:11:18 2018 +0100

    Test to ensures that two different Feature Models produce the same provisioning model
---
 .../feature/modelconverter/ModelConverterTest.java | 57 +++++++++++++++++++---
 1 file changed, 50 insertions(+), 7 deletions(-)

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 0e9fd87..8526fa8 100644
--- a/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java
+++ b/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java
@@ -123,6 +123,31 @@ public class ModelConverterTest {
     }
 
     @Test
+    public void testDifferentSourceIdenticalProvModel() throws Exception {
+        String dir1 = System.getProperty("test.json.dir1");
+        String dir2 = System.getProperty("test.json.dir2");
+
+        File[] files1, files2;
+        if (dir1 != null && dir2 != null) {
+            files1 = new File(dir1).listFiles((d, n) -> n.endsWith(".json"));
+            files2 = new File(dir2).listFiles((d, n) -> n.endsWith(".json"));
+        } else {
+            files1 = new File[] {
+                  getFile("/runmodeseparation/oak_no_runmode.json"),
+                  getFile("/runmodeseparation/oak_mongo.json"),
+                  getFile("/runmodeseparation/oak_tar.json")
+            };
+            files2 = new File[] {getFile("/oak.json")};
+        }
+
+        testConvertToProvisioningModel(files1, files2);
+    }
+
+    private File getFile(String f) throws URISyntaxException {
+        return new File(getClass().getResource(f).toURI());
+    }
+
+    @Test
     public void testOakToFeature() throws Exception {
         testConvertToFeature("/oak.txt", "/oak.json");
     }
@@ -309,21 +334,39 @@ public class ModelConverterTest {
     }
 
     public void testConvertToProvisioningModel(String [] jsonFiles, String expectedProvModel) throws URISyntaxException, IOException {
-        List<File> generatedFiles = new ArrayList<>();
-        for (String jsonFile : jsonFiles) {
-            File inFile = new File(getClass().getResource(jsonFile).toURI());
-            File outFile = new File(tempDir.toFile(), inFile.getName() + ".txt.generated");
-
-            FeatureToProvisioning.convert(inFile, outFile, artifactManager);
-            generatedFiles.add(outFile);
+        List<File> inFiles = new ArrayList<>();
+        for (String jf : jsonFiles) {
+            inFiles.add(new File(getClass().getResource(jf).toURI()));
         }
 
+        List<File> generatedFiles = convertFeatureFilesToProvisioningModel(inFiles.toArray(new File[] {}));
+
         File expectedFile = new File(getClass().getResource(expectedProvModel).toURI());
         Model expected = readProvisioningModel(expectedFile);
         Model actual = readProvisioningModel(generatedFiles);
         assertModelsEqual(expected, actual);
     }
 
+    public void testConvertToProvisioningModel(File[] jsonFiles1, File[] jsonFiles2) throws URISyntaxException, IOException {
+        List<File> generatedFiles1 = convertFeatureFilesToProvisioningModel(jsonFiles1);
+        List<File> generatedFiles2 = convertFeatureFilesToProvisioningModel(jsonFiles2);
+
+        Model actual1 = readProvisioningModel(generatedFiles1);
+        Model actual2 = readProvisioningModel(generatedFiles2);
+        assertModelsEqual(actual1, actual2);
+    }
+
+    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");
+
+            FeatureToProvisioning.convert(inFile, outFile, artifactManager);
+            generatedFiles.add(outFile);
+        }
+        return generatedFiles;
+    }
+
     private static Model readProvisioningModel(File modelFile) throws IOException {
         return readProvisioningModel(Collections.singletonList(modelFile));
     }

-- 
To stop receiving notification emails like this one, please contact
davidb@apache.org.

[sling-org-apache-sling-feature-modelconverter] 02/02: SLING-7683 Support runmode in separate feature files

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-modelconverter.git

commit 18f4c746fddb7d47a3fc7dc872f0b4bb2473894f
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Tue May 29 12:41:41 2018 +0100

    SLING-7683 Support runmode in separate feature files
---
 .../sling/feature/modelconverter/FeatureToProvisioning.java    |  4 ++--
 .../sling/feature/modelconverter/ModelConverterTest.java       | 10 ++++++++--
 src/test/resources/runmodeseparation/oak_mongo.json            |  2 +-
 src/test/resources/runmodeseparation/oak_tar.json              |  2 +-
 4 files changed, 12 insertions(+), 6 deletions(-)

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 @@ import javax.json.JsonValue;
 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 @@ public class FeatureToProvisioning {
             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 @@ public class ModelConverterTest {
             files2 = new File[] {getFile("/oak.json")};
         }
 
-        testConvertToProvisioningModel(files1, files2);
+        testConvertToProvisioningModel(files2, files1);
     }
 
     private File getFile(String f) throws URISyntaxException {
@@ -345,6 +345,7 @@ public class ModelConverterTest {
         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 @@ public class ModelConverterTest {
         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": [

-- 
To stop receiving notification emails like this one, please contact
davidb@apache.org.