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-modelconverter.git


The following commit(s) were added to refs/heads/master by this push:
     new 4febcaa  Move file based artifact management into separate package
4febcaa is described below

commit 4febcaa966c7669fd48d3413d172e2926fa0eb97
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Mon Oct 1 14:18:12 2018 +0200

    Move file based artifact management into separate package
---
 .../modelconverter/FeatureToProvisioning.java      | 57 ++++++++++--------
 .../modelconverter/ProvisioningToFeature.java      | 36 ++++++------
 .../sling/feature/modelconverter/impl/Main.java    |  9 ++-
 .../feature/modelconverter/ModelConverterTest.java | 67 +++++++++++-----------
 4 files changed, 89 insertions(+), 80 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 0ff568e..24fc3b7 100644
--- 
a/src/main/java/org/apache/sling/feature/modelconverter/FeatureToProvisioning.java
+++ 
b/src/main/java/org/apache/sling/feature/modelconverter/FeatureToProvisioning.java
@@ -16,6 +16,25 @@
  */
 package org.apache.sling.feature.modelconverter;
 
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.json.Json;
+import javax.json.JsonArray;
+import javax.json.JsonReader;
+import javax.json.JsonString;
+import javax.json.JsonValue;
+
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Bundles;
 import org.apache.sling.feature.Configurations;
@@ -27,9 +46,9 @@ import org.apache.sling.feature.KeyValueMap;
 import org.apache.sling.feature.builder.BuilderContext;
 import org.apache.sling.feature.builder.FeatureBuilder;
 import org.apache.sling.feature.builder.FeatureProvider;
-import org.apache.sling.feature.io.ArtifactHandler;
-import org.apache.sling.feature.io.ArtifactManager;
-import org.apache.sling.feature.io.IOUtils;
+import org.apache.sling.feature.io.file.ArtifactHandler;
+import org.apache.sling.feature.io.file.ArtifactManager;
+import org.apache.sling.feature.io.json.FeatureJSONReader;
 import org.apache.sling.provisioning.model.Artifact;
 import org.apache.sling.provisioning.model.Configuration;
 import org.apache.sling.provisioning.model.Feature;
@@ -39,23 +58,6 @@ import org.apache.sling.provisioning.model.io.ModelWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonReader;
-import javax.json.JsonString;
-import javax.json.JsonValue;
-
 /** Converter that converts the feature model to the provisioning model.
  */
 public class FeatureToProvisioning {
@@ -71,7 +73,7 @@ public class FeatureToProvisioning {
             }
         }
 
-        org.apache.sling.feature.Feature feature = 
IOUtils.getFeature(inputFile.getAbsolutePath(), am);
+        org.apache.sling.feature.Feature feature = 
getFeature(inputFile.getAbsolutePath(), am);
         if (feature.getInclude() != null) {
             feature = handleIncludes(feature, additionalInputFiles, am);
         }
@@ -95,11 +97,20 @@ public class FeatureToProvisioning {
                 feature.getFrameworkProperties(), feature.getExtensions(), 
outputFile.getAbsolutePath(), runModes);
     }
 
+    static org.apache.sling.feature.Feature getFeature(final String url, final 
ArtifactManager am) throws FileNotFoundException, IOException {
+        final ArtifactHandler featureArtifact = am.getArtifactHandler(url);
+        try (final FileReader r = new FileReader(featureArtifact.getFile())) {
+            final org.apache.sling.feature.Feature f = 
FeatureJSONReader.read(r, featureArtifact.getUrl());
+            return f;
+        }
+
+    }
+
     private static org.apache.sling.feature.Feature 
handleIncludes(org.apache.sling.feature.Feature feature, File[] 
additionalFiles, ArtifactManager am) throws IOException {
         Map<ArtifactId, org.apache.sling.feature.Feature> features = new 
HashMap<>();
 
         for (File f : additionalFiles) {
-            org.apache.sling.feature.Feature af = 
IOUtils.getFeature(f.getAbsolutePath(), am);
+            org.apache.sling.feature.Feature af = 
getFeature(f.getAbsolutePath(), am);
             features.put(af.getId(), af);
         }
 
@@ -116,7 +127,7 @@ public class FeatureToProvisioning {
                 try {
                     ArtifactHandler ah = am.getArtifactHandler(id.toMvnUrl());
                     if (ah != null) {
-                        org.apache.sling.feature.Feature feat = 
IOUtils.getFeature(ah.getUrl(), am);
+                        org.apache.sling.feature.Feature feat = 
getFeature(ah.getUrl(), am);
                         if (feat != null) {
                             // Cache it
                             features.put(feat.getId(), feat);
diff --git 
a/src/main/java/org/apache/sling/feature/modelconverter/ProvisioningToFeature.java
 
b/src/main/java/org/apache/sling/feature/modelconverter/ProvisioningToFeature.java
index 5ec0e3d..0c94ea1 100644
--- 
a/src/main/java/org/apache/sling/feature/modelconverter/ProvisioningToFeature.java
+++ 
b/src/main/java/org/apache/sling/feature/modelconverter/ProvisioningToFeature.java
@@ -16,6 +16,21 @@
  */
 package org.apache.sling.feature.modelconverter;
 
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Bundles;
 import org.apache.sling.feature.Configurations;
@@ -24,9 +39,9 @@ import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.Extensions;
 import org.apache.sling.feature.FeatureConstants;
 import org.apache.sling.feature.KeyValueMap;
-import org.apache.sling.feature.io.ArtifactHandler;
-import org.apache.sling.feature.io.ArtifactManager;
-import org.apache.sling.feature.io.ArtifactManagerConfig;
+import org.apache.sling.feature.io.file.ArtifactHandler;
+import org.apache.sling.feature.io.file.ArtifactManager;
+import org.apache.sling.feature.io.file.ArtifactManagerConfig;
 import org.apache.sling.feature.io.json.FeatureJSONWriter;
 import org.apache.sling.provisioning.model.Artifact;
 import org.apache.sling.provisioning.model.ArtifactGroup;
@@ -45,21 +60,6 @@ import org.apache.sling.provisioning.model.io.ModelReader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
 /** Converter that converts the provisioning model to the feature model.
  */
 public class ProvisioningToFeature {
diff --git 
a/src/main/java/org/apache/sling/feature/modelconverter/impl/Main.java 
b/src/main/java/org/apache/sling/feature/modelconverter/impl/Main.java
index d494018..69651db 100644
--- a/src/main/java/org/apache/sling/feature/modelconverter/impl/Main.java
+++ b/src/main/java/org/apache/sling/feature/modelconverter/impl/Main.java
@@ -29,9 +29,8 @@ import org.apache.commons.cli.HelpFormatter;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
-import org.apache.sling.feature.io.ArtifactManager;
-import org.apache.sling.feature.io.DefaultArtifactManager;
-import org.apache.sling.feature.io.DefaultArtifactManagerConfig;
+import org.apache.sling.feature.io.file.ArtifactManager;
+import org.apache.sling.feature.io.file.ArtifactManagerConfig;
 import org.apache.sling.feature.modelconverter.ProvisioningToFeature;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -126,12 +125,12 @@ public class Main {
     }
 
     private static ArtifactManager getArtifactManager() {
-        final DefaultArtifactManagerConfig amConfig = new 
DefaultArtifactManagerConfig();
+        final ArtifactManagerConfig amConfig = new ArtifactManagerConfig();
         if ( repoUrls != null ) {
             amConfig.setRepositoryUrls(repoUrls.split(","));
         }
         try {
-            return DefaultArtifactManager.getArtifactManager(amConfig);
+            return ArtifactManager.getArtifactManager(amConfig);
         } catch ( IOException ioe) {
             LOGGER.error("Unable to create artifact manager " + 
ioe.getMessage(), ioe);
             System.exit(1);
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 30cb7b1..27e9262 100644
--- 
a/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java
+++ 
b/src/test/java/org/apache/sling/feature/modelconverter/ModelConverterTest.java
@@ -16,15 +16,40 @@
  */
 package org.apache.sling.feature.modelconverter;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.sling.feature.Bundles;
 import org.apache.sling.feature.Configurations;
 import org.apache.sling.feature.Extension;
 import org.apache.sling.feature.ExtensionType;
 import org.apache.sling.feature.Extensions;
-import org.apache.sling.feature.io.ArtifactHandler;
-import org.apache.sling.feature.io.ArtifactManager;
-import org.apache.sling.feature.io.ArtifactManagerConfig;
-import org.apache.sling.feature.io.IOUtils;
+import org.apache.sling.feature.io.file.ArtifactHandler;
+import org.apache.sling.feature.io.file.ArtifactManager;
+import org.apache.sling.feature.io.file.ArtifactManagerConfig;
 import org.apache.sling.provisioning.model.Artifact;
 import org.apache.sling.provisioning.model.ArtifactGroup;
 import org.apache.sling.provisioning.model.Configuration;
@@ -46,32 +71,6 @@ import org.mockito.Mockito;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardOpenOption;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
 public class ModelConverterTest {
     private Path tempDir;
     private ArtifactManager artifactManager;
@@ -252,8 +251,8 @@ public class ModelConverterTest {
         File outFile = files.get(0);
 
         String expectedFile = new 
File(getClass().getResource(expectedJSON).toURI()).getAbsolutePath();
-        org.apache.sling.feature.Feature expected = 
IOUtils.getFeature(expectedFile, artifactManager);
-        org.apache.sling.feature.Feature actual = 
IOUtils.getFeature(outFile.getAbsolutePath(), artifactManager);
+        org.apache.sling.feature.Feature expected = 
FeatureToProvisioning.getFeature(expectedFile, artifactManager);
+        org.apache.sling.feature.Feature actual = 
FeatureToProvisioning.getFeature(outFile.getAbsolutePath(), artifactManager);
         assertFeaturesEqual(expected, actual);
     }
 
@@ -350,8 +349,8 @@ public class ModelConverterTest {
         File outFile = files.get(0);
 
         String expectedFile = new 
File(getClass().getResource(expectedJSON).toURI()).getAbsolutePath();
-        org.apache.sling.feature.Feature expected = 
IOUtils.getFeature(expectedFile, artifactManager);
-        org.apache.sling.feature.Feature actual = 
IOUtils.getFeature(outFile.getAbsolutePath(), artifactManager);
+        org.apache.sling.feature.Feature expected = 
FeatureToProvisioning.getFeature(expectedFile, artifactManager);
+        org.apache.sling.feature.Feature actual = 
FeatureToProvisioning.getFeature(outFile.getAbsolutePath(), artifactManager);
         assertFeaturesEqual(expected, actual);
     }
 

Reply via email to