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);
}