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-io.git
The following commit(s) were added to refs/heads/master by this push:
new 8d0bdf5 Move file based artifact management into separate package
8d0bdf5 is described below
commit 8d0bdf50efadc3ffc5a1ba6fb24b91fc45e44dd9
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Mon Oct 1 14:15:49 2018 +0200
Move file based artifact management into separate package
---
.../apache/sling/feature/io/ArtifactManager.java | 40 ----------------------
.../java/org/apache/sling/feature/io/IOUtils.java | 22 ------------
.../feature/io/{ => file}/ArtifactHandler.java | 2 +-
.../ArtifactManager.java} | 17 +++++----
.../ArtifactManagerConfig.java} | 8 ++---
.../feature/io/{spi => file}/package-info.java | 2 +-
.../io/{ => file}/spi/ArtifactProvider.java | 2 +-
.../io/{ => file}/spi/ArtifactProviderContext.java | 2 +-
.../feature/io/{ => file}/spi/package-info.java | 2 +-
.../ArtifactManagerTest.java} | 15 ++++----
10 files changed, 26 insertions(+), 86 deletions(-)
diff --git a/src/main/java/org/apache/sling/feature/io/ArtifactManager.java
b/src/main/java/org/apache/sling/feature/io/ArtifactManager.java
deleted file mode 100644
index 548f710..0000000
--- a/src/main/java/org/apache/sling/feature/io/ArtifactManager.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
under
- * the License.
- */
-package org.apache.sling.feature.io;
-
-import java.io.IOException;
-
-import org.apache.sling.feature.io.spi.ArtifactProvider;
-
-/**
- * The artifact manager is the central service to get artifacts.
- * It uses {@link ArtifactProvider}s to get artifacts. The
- * providers are loaded using the service loader.
- */
-public interface ArtifactManager extends AutoCloseable {
-
- /**
- * Get the full artifact url and file for an artifact.
- * @param url Artifact url or relative path.
- * @return Absolute url and file in the form of a handler.
- * @throws IOException If something goes wrong.
- */
- ArtifactHandler getArtifactHandler(final String url) throws IOException;
-
- @Override
- void close();
-}
diff --git a/src/main/java/org/apache/sling/feature/io/IOUtils.java
b/src/main/java/org/apache/sling/feature/io/IOUtils.java
index 567c5ab..9375aff 100644
--- a/src/main/java/org/apache/sling/feature/io/IOUtils.java
+++ b/src/main/java/org/apache/sling/feature/io/IOUtils.java
@@ -17,7 +17,6 @@
package org.apache.sling.feature.io;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.util.ArrayList;
@@ -26,8 +25,6 @@ import java.util.Comparator;
import java.util.List;
import org.apache.sling.feature.ArtifactId;
-import org.apache.sling.feature.Feature;
-import org.apache.sling.feature.io.json.FeatureJSONReader;
public class IOUtils {
@@ -161,25 +158,6 @@ public class IOUtils {
}
/**
- * Read the feature
- *
- * @param url The feature url
- * @param artifactManager The artifact manager to read the feature
- * @return The read feature
- * @throws IOException If reading fails
- */
- public static Feature getFeature(final String url,
- final ArtifactManager artifactManager)
- throws IOException {
- final ArtifactHandler featureArtifact =
artifactManager.getArtifactHandler(url);
-
- try (final FileReader r = new FileReader(featureArtifact.getFile())) {
- final Feature f = FeatureJSONReader.read(r,
featureArtifact.getUrl());
- 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
diff --git a/src/main/java/org/apache/sling/feature/io/ArtifactHandler.java
b/src/main/java/org/apache/sling/feature/io/file/ArtifactHandler.java
similarity index 96%
rename from src/main/java/org/apache/sling/feature/io/ArtifactHandler.java
rename to src/main/java/org/apache/sling/feature/io/file/ArtifactHandler.java
index 45f27be..5ae472c 100644
--- a/src/main/java/org/apache/sling/feature/io/ArtifactHandler.java
+++ b/src/main/java/org/apache/sling/feature/io/file/ArtifactHandler.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.sling.feature.io;
+package org.apache.sling.feature.io.file;
import java.io.File;
diff --git
a/src/main/java/org/apache/sling/feature/io/DefaultArtifactManager.java
b/src/main/java/org/apache/sling/feature/io/file/ArtifactManager.java
similarity index 95%
rename from
src/main/java/org/apache/sling/feature/io/DefaultArtifactManager.java
rename to src/main/java/org/apache/sling/feature/io/file/ArtifactManager.java
index f0988be..0db5c51 100644
--- a/src/main/java/org/apache/sling/feature/io/DefaultArtifactManager.java
+++ b/src/main/java/org/apache/sling/feature/io/file/ArtifactManager.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.sling.feature.io;
+package org.apache.sling.feature.io.file;
import java.io.File;
import java.io.FileOutputStream;
@@ -32,8 +32,8 @@ import java.util.Map;
import java.util.ServiceLoader;
import org.apache.sling.feature.ArtifactId;
-import org.apache.sling.feature.io.spi.ArtifactProvider;
-import org.apache.sling.feature.io.spi.ArtifactProviderContext;
+import org.apache.sling.feature.io.file.spi.ArtifactProvider;
+import org.apache.sling.feature.io.file.spi.ArtifactProviderContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
* It uses {@link ArtifactProvider}s to get artifacts. The
* providers are loaded using the service loader.
*/
-public class DefaultArtifactManager implements AutoCloseable, ArtifactManager {
+public class ArtifactManager implements AutoCloseable {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@@ -50,7 +50,7 @@ public class DefaultArtifactManager implements AutoCloseable,
ArtifactManager {
private final Map<String, ArtifactProvider> providers;
/** The configuration */
- private final DefaultArtifactManagerConfig config;
+ private final ArtifactManagerConfig config;
/**
* Get an artifact manager based on the configuration
@@ -58,7 +58,7 @@ public class DefaultArtifactManager implements AutoCloseable,
ArtifactManager {
* @return The artifact manager
* @throws IOException If the manager can't be initialized
*/
- public static ArtifactManager getArtifactManager(final
DefaultArtifactManagerConfig config) throws IOException {
+ public static ArtifactManager getArtifactManager(final
ArtifactManagerConfig config) throws IOException {
final ServiceLoader<ArtifactProvider> loader =
ServiceLoader.load(ArtifactProvider.class);
final Map<String, ArtifactProvider> providers = new HashMap<>();
for(final ArtifactProvider provider : loader) {
@@ -76,10 +76,10 @@ public class DefaultArtifactManager implements
AutoCloseable, ArtifactManager {
providers.put("*", new DefaultArtifactHandler());
}
- return new DefaultArtifactManager(config, providers);
+ return new ArtifactManager(config, providers);
}
- DefaultArtifactManager(final DefaultArtifactManagerConfig config, final
Map<String, ArtifactProvider> providers)
+ ArtifactManager(final ArtifactManagerConfig config, final Map<String,
ArtifactProvider> providers)
throws IOException {
this.config = config;
this.providers = providers;
@@ -129,7 +129,6 @@ public class DefaultArtifactManager implements
AutoCloseable, ArtifactManager {
* @return Absolute url and file in the form of a handler.
* @throws IOException If something goes wrong.
*/
- @Override
public ArtifactHandler getArtifactHandler(final String url) throws
IOException {
logger.debug("Trying to get artifact for {}", url);
diff --git
a/src/main/java/org/apache/sling/feature/io/DefaultArtifactManagerConfig.java
b/src/main/java/org/apache/sling/feature/io/file/ArtifactManagerConfig.java
similarity index 94%
rename from
src/main/java/org/apache/sling/feature/io/DefaultArtifactManagerConfig.java
rename to
src/main/java/org/apache/sling/feature/io/file/ArtifactManagerConfig.java
index f629908..60c620b 100644
---
a/src/main/java/org/apache/sling/feature/io/DefaultArtifactManagerConfig.java
+++ b/src/main/java/org/apache/sling/feature/io/file/ArtifactManagerConfig.java
@@ -14,18 +14,18 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.sling.feature.io;
+package org.apache.sling.feature.io.file;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
-import org.apache.sling.feature.io.spi.ArtifactProviderContext;
+import org.apache.sling.feature.io.file.spi.ArtifactProviderContext;
/**
* This class holds the configuration of artifact manager.
*/
-public class DefaultArtifactManagerConfig implements ArtifactProviderContext {
+public class ArtifactManagerConfig implements ArtifactProviderContext {
/** The repository urls. */
private volatile String[] repositoryUrls;
@@ -43,7 +43,7 @@ public class DefaultArtifactManagerConfig implements
ArtifactProviderContext {
* Create a new configuration object.
* Set the default values
*/
- public DefaultArtifactManagerConfig() {
+ public ArtifactManagerConfig() {
// set defaults
this.repositoryUrls = new String[] {
"file://" + System.getProperty("user.home") +
"/.m2/repository",
diff --git a/src/main/java/org/apache/sling/feature/io/spi/package-info.java
b/src/main/java/org/apache/sling/feature/io/file/package-info.java
similarity index 95%
copy from src/main/java/org/apache/sling/feature/io/spi/package-info.java
copy to src/main/java/org/apache/sling/feature/io/file/package-info.java
index a1d585c..e8ae306 100644
--- a/src/main/java/org/apache/sling/feature/io/spi/package-info.java
+++ b/src/main/java/org/apache/sling/feature/io/file/package-info.java
@@ -18,6 +18,6 @@
*/
@org.osgi.annotation.versioning.Version("0.1.0")
-package org.apache.sling.feature.io.spi;
+package org.apache.sling.feature.io.file;
diff --git
a/src/main/java/org/apache/sling/feature/io/spi/ArtifactProvider.java
b/src/main/java/org/apache/sling/feature/io/file/spi/ArtifactProvider.java
similarity index 97%
rename from src/main/java/org/apache/sling/feature/io/spi/ArtifactProvider.java
rename to
src/main/java/org/apache/sling/feature/io/file/spi/ArtifactProvider.java
index 5f250d7..75ccd85 100644
--- a/src/main/java/org/apache/sling/feature/io/spi/ArtifactProvider.java
+++ b/src/main/java/org/apache/sling/feature/io/file/spi/ArtifactProvider.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.sling.feature.io.spi;
+package org.apache.sling.feature.io.file.spi;
import java.io.File;
import java.io.IOException;
diff --git
a/src/main/java/org/apache/sling/feature/io/spi/ArtifactProviderContext.java
b/src/main/java/org/apache/sling/feature/io/file/spi/ArtifactProviderContext.java
similarity index 96%
rename from
src/main/java/org/apache/sling/feature/io/spi/ArtifactProviderContext.java
rename to
src/main/java/org/apache/sling/feature/io/file/spi/ArtifactProviderContext.java
index c837548..f3d67bb 100644
--- a/src/main/java/org/apache/sling/feature/io/spi/ArtifactProviderContext.java
+++
b/src/main/java/org/apache/sling/feature/io/file/spi/ArtifactProviderContext.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.sling.feature.io.spi;
+package org.apache.sling.feature.io.file.spi;
import java.io.File;
diff --git a/src/main/java/org/apache/sling/feature/io/spi/package-info.java
b/src/main/java/org/apache/sling/feature/io/file/spi/package-info.java
similarity index 94%
rename from src/main/java/org/apache/sling/feature/io/spi/package-info.java
rename to src/main/java/org/apache/sling/feature/io/file/spi/package-info.java
index a1d585c..1faab70 100644
--- a/src/main/java/org/apache/sling/feature/io/spi/package-info.java
+++ b/src/main/java/org/apache/sling/feature/io/file/spi/package-info.java
@@ -18,6 +18,6 @@
*/
@org.osgi.annotation.versioning.Version("0.1.0")
-package org.apache.sling.feature.io.spi;
+package org.apache.sling.feature.io.file.spi;
diff --git
a/src/test/java/org/apache/sling/feature/io/DefaultArtifactManagerTest.java
b/src/test/java/org/apache/sling/feature/io/file/ArtifactManagerTest.java
similarity index 88%
rename from
src/test/java/org/apache/sling/feature/io/DefaultArtifactManagerTest.java
rename to
src/test/java/org/apache/sling/feature/io/file/ArtifactManagerTest.java
index a5bfe4c..69d9d32 100644
--- a/src/test/java/org/apache/sling/feature/io/DefaultArtifactManagerTest.java
+++ b/src/test/java/org/apache/sling/feature/io/file/ArtifactManagerTest.java
@@ -14,7 +14,7 @@
* License for the specific language governing permissions and limitations
under
* the License.
*/
-package org.apache.sling.feature.io;
+package org.apache.sling.feature.io.file;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -26,10 +26,13 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import org.apache.sling.feature.io.spi.ArtifactProvider;
+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.file.spi.ArtifactProvider;
import org.junit.Test;
-public class DefaultArtifactManagerTest {
+public class ArtifactManagerTest {
private static final String METADATA = "<metadata
modelVersion=\"1.1.0\">\n" +
"<groupId>org.apache.sling.samples</groupId>\n" +
@@ -56,13 +59,13 @@ public class DefaultArtifactManagerTest {
"</versioning></metadata>";
@Test public void testMetadataParsing() {
- final String version =
DefaultArtifactManager.getLatestSnapshot(METADATA);
+ final String version = ArtifactManager.getLatestSnapshot(METADATA);
assertEquals("20160321.103951-1", version);
}
@Test public void testSnapshotHandling() throws IOException {
final String REPO = "http://org.apache.sling";
- final DefaultArtifactManagerConfig config =
mock(DefaultArtifactManagerConfig.class);
+ final ArtifactManagerConfig config = mock(ArtifactManagerConfig.class);
when(config.getRepositoryUrls()).thenReturn(new String[] {REPO});
final File metadataFile = mock(File.class);
@@ -80,7 +83,7 @@ public class DefaultArtifactManagerTest {
final Map<String, ArtifactProvider> providers = new HashMap<>();
providers.put("*", provider);
- final ArtifactManager mgr = new DefaultArtifactManager(config,
providers) {
+ final ArtifactManager mgr = new ArtifactManager(config, providers) {
@Override
protected String getFileContents(final ArtifactHandler handler)
throws IOException {