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/04/27 09:56:01 UTC
[sling-org-apache-sling-feature-io] 02/02: [Sling Feature Model]
Refactor FeatureUtil out of the support module
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-io.git
commit 9a052aecbfac38cdaf947b5c09ae708e3509fc49
Author: David Bosschaert <da...@gmail.com>
AuthorDate: Wed Apr 25 13:40:18 2018 +0100
[Sling Feature Model] Refactor FeatureUtil out of the support module
Also move the Resolver API to the resolver module.
---
.../feature/io/{FileUtils.java => IOUtils.java} | 44 ++++++++++++++++++++--
.../io/{FeatureUtilTest.java => IOUtilsTest.java} | 6 +--
2 files changed, 43 insertions(+), 7 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/io/FileUtils.java b/src/main/java/org/apache/sling/feature/io/IOUtils.java
similarity index 83%
rename from src/main/java/org/apache/sling/feature/io/FileUtils.java
rename to src/main/java/org/apache/sling/feature/io/IOUtils.java
index a54d933..70af38c 100644
--- a/src/main/java/org/apache/sling/feature/io/FileUtils.java
+++ b/src/main/java/org/apache/sling/feature/io/IOUtils.java
@@ -16,7 +16,13 @@
*/
package org.apache.sling.feature.io;
+import org.apache.sling.feature.ArtifactId;
+import org.apache.sling.feature.Feature;
+import org.apache.sling.feature.io.json.FeatureJSONReader;
+import org.apache.sling.feature.io.json.FeatureJSONReader.SubstituteVariables;
+
import java.io.File;
+import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.util.ArrayList;
@@ -24,7 +30,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-public class FileUtils {
+public class IOUtils {
/** The extension for a reference file. */
public static final String EXTENSION_REF_FILE = ".ref";
@@ -155,8 +161,40 @@ public class FileUtils {
return paths;
}
- static final Comparator<String> FEATURE_PATH_COMP = new Comparator<String>() {
+ /**
+ * Read the feature
+ *
+ * @param url The feature url
+ * @param artifactManager The artifact manager to read the feature
+ * @param substituteVariables Variable substitution handling
+ * @return The read feature
+ * @throws IOException If reading fails
+ */
+ public static Feature getFeature(final String url,
+ final ArtifactManager artifactManager,
+ final SubstituteVariables substituteVariables)
+ throws IOException {
+ final ArtifactHandler featureArtifact = artifactManager.getArtifactHandler(url);
+ try (final FileReader r = new FileReader(featureArtifact.getFile())) {
+ final Feature f = FeatureJSONReader.read(r, featureArtifact.getUrl(), substituteVariables);
+ return f;
+ }
+ }
+
+ /**
+ * Get an artifact id for the Apache Felix framework
+ * @param version The version to use or {@code null} for the default version
+ * @return The artifact id
+ * @throws IllegalArgumentException If the provided version is invalid
+ */
+ public static ArtifactId getFelixFrameworkId(final String version) {
+ return new ArtifactId("org.apache.felix",
+ "org.apache.felix.framework",
+ version != null ? version : "5.6.10", null, null);
+ }
+
+ static final Comparator<String> FEATURE_PATH_COMP = new Comparator<String>() {
@Override
public int compare(final String o1, final String o2) {
// windows path conversion
@@ -194,8 +232,6 @@ public class FileUtils {
}
}
-
-
private static void processFile(final List<String> paths, final File f)
throws IOException {
if ( f.getName().endsWith(EXTENSION_REF_FILE) ) {
diff --git a/src/test/java/org/apache/sling/feature/io/FeatureUtilTest.java b/src/test/java/org/apache/sling/feature/io/IOUtilsTest.java
similarity index 92%
rename from src/test/java/org/apache/sling/feature/io/FeatureUtilTest.java
rename to src/test/java/org/apache/sling/feature/io/IOUtilsTest.java
index e06b175..08ce172 100644
--- a/src/test/java/org/apache/sling/feature/io/FeatureUtilTest.java
+++ b/src/test/java/org/apache/sling/feature/io/IOUtilsTest.java
@@ -23,10 +23,10 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.apache.sling.feature.io.FileUtils;
+import org.apache.sling.feature.io.IOUtils;
import org.junit.Test;
-public class FeatureUtilTest {
+public class IOUtilsTest {
@Test public void testFileSort() {
final String[] files = new String[] {
@@ -41,7 +41,7 @@ public class FeatureUtilTest {
};
final List<String> l = new ArrayList<>(Arrays.asList(files));
- Collections.sort(l, FileUtils.FEATURE_PATH_COMP);
+ Collections.sort(l, IOUtils.FEATURE_PATH_COMP);
for(int i=0; i<files.length; i++) {
assertEquals(files[i], l.get(i));
}
--
To stop receiving notification emails like this one, please contact
davidb@apache.org.