You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/04/11 20:25:24 UTC
[maven-indexer] 01/05: [MINDEXER-124] Add ResourceHandler
implementations
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch MINDEXER-124
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git
commit e2280121426eaddc34a99d67fb687e6acc9ab2e8
Author: sixcorners <si...@gmail.com>
AuthorDate: Sun Feb 2 09:38:15 2020 -0600
[MINDEXER-124] Add ResourceHandler implementations
---
.../index/reader/resource/BufferedResource.java | 23 +++++++++++++++
.../reader/resource/BufferedResourceHandler.java | 22 ++++++++++++++
.../reader/resource/BufferedWritableResource.java | 29 ++++++++++++++++++
.../resource/BufferedWritableResourceHandler.java | 22 ++++++++++++++
.../reader/resource/PathWritableResource.java | 34 ++++++++++++++++++++++
.../resource/PathWritableResourceHandler.java | 21 +++++++++++++
.../index/reader/resource/UriResourceHandler.java | 21 +++++++++++++
.../maven/index/reader/resource/UrlResource.java | 24 +++++++++++++++
8 files changed, 196 insertions(+)
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedResource.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedResource.java
new file mode 100644
index 0000000..c7c646a
--- /dev/null
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedResource.java
@@ -0,0 +1,23 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import org.apache.maven.index.reader.ResourceHandler.Resource;
+
+public class BufferedResource implements Resource {
+ private final Resource resource;
+
+ public BufferedResource(Resource resource) {
+ this.resource = resource;
+ }
+
+ @Override
+ public InputStream read() throws IOException {
+ InputStream in = resource.read();
+ if (in == null) {
+ return null;
+ }
+ return new BufferedInputStream(in);
+ }
+}
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedResourceHandler.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedResourceHandler.java
new file mode 100644
index 0000000..4ffc65f
--- /dev/null
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedResourceHandler.java
@@ -0,0 +1,22 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.IOException;
+import org.apache.maven.index.reader.ResourceHandler;
+
+public class BufferedResourceHandler implements ResourceHandler {
+ private final ResourceHandler resourceHandler;
+
+ public BufferedResourceHandler(ResourceHandler resourceHandler) {
+ this.resourceHandler = resourceHandler;
+ }
+
+ @Override
+ public Resource locate(String name) throws IOException {
+ return new BufferedResource(resourceHandler.locate(name));
+ }
+
+ @Override
+ public void close() throws IOException {
+ resourceHandler.close();
+ }
+}
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedWritableResource.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedWritableResource.java
new file mode 100644
index 0000000..176ab4f
--- /dev/null
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedWritableResource.java
@@ -0,0 +1,29 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
+
+public class BufferedWritableResource extends BufferedResource implements WritableResource {
+ private final WritableResource resource;
+
+ public BufferedWritableResource(WritableResource resource) {
+ super(resource);
+ this.resource = resource;
+ }
+
+ @Override
+ public OutputStream write() throws IOException {
+ OutputStream out = resource.write();
+ if (out == null) {
+ return null;
+ }
+ return new BufferedOutputStream(out);
+ }
+
+ @Override
+ public void close() throws IOException {
+ resource.close();
+ }
+}
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandler.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandler.java
new file mode 100644
index 0000000..f05faa3
--- /dev/null
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandler.java
@@ -0,0 +1,22 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.IOException;
+import org.apache.maven.index.reader.WritableResourceHandler;
+
+public class BufferedWritableResourceHandler implements WritableResourceHandler {
+ private final WritableResourceHandler writableResourceHandler;
+
+ public BufferedWritableResourceHandler(WritableResourceHandler writableResourceHandler) {
+ this.writableResourceHandler = writableResourceHandler;
+ }
+
+ @Override
+ public WritableResource locate(String name) throws IOException {
+ return new BufferedWritableResource(writableResourceHandler.locate(name));
+ }
+
+ @Override
+ public void close() throws IOException {
+ writableResourceHandler.close();
+ }
+}
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/PathWritableResource.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/PathWritableResource.java
new file mode 100644
index 0000000..58ed981
--- /dev/null
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/PathWritableResource.java
@@ -0,0 +1,34 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.NoSuchFileException;
+import java.nio.file.Path;
+import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
+
+public class PathWritableResource implements WritableResource {
+ private final Path path;
+
+ public PathWritableResource(Path path) {
+ this.path = path;
+ }
+
+ @Override
+ public OutputStream write() throws IOException {
+ return Files.newOutputStream(path);
+ }
+
+ @Override
+ public InputStream read() throws IOException {
+ try {
+ return Files.newInputStream(path);
+ } catch (NoSuchFileException e) {
+ return null;
+ }
+ }
+
+ @Override
+ public void close() throws IOException {}
+}
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/PathWritableResourceHandler.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/PathWritableResourceHandler.java
new file mode 100644
index 0000000..d47b78a
--- /dev/null
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/PathWritableResourceHandler.java
@@ -0,0 +1,21 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import org.apache.maven.index.reader.WritableResourceHandler;
+
+public class PathWritableResourceHandler implements WritableResourceHandler {
+ private final Path path;
+
+ public PathWritableResourceHandler(Path path) {
+ this.path = path;
+ }
+
+ @Override
+ public WritableResource locate(String name) {
+ return new PathWritableResource(path.resolve(name));
+ }
+
+ @Override
+ public void close() throws IOException {}
+}
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/UriResourceHandler.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/UriResourceHandler.java
new file mode 100644
index 0000000..6c50c66
--- /dev/null
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/UriResourceHandler.java
@@ -0,0 +1,21 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.IOException;
+import java.net.URI;
+import org.apache.maven.index.reader.ResourceHandler;
+
+public class UriResourceHandler implements ResourceHandler {
+ private final URI uri;
+
+ public UriResourceHandler(URI uri) {
+ this.uri = uri;
+ }
+
+ @Override
+ public Resource locate(String name) throws IOException {
+ return new UrlResource(uri.resolve(name).toURL());
+ }
+
+ @Override
+ public void close() throws IOException {}
+}
diff --git a/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/UrlResource.java b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/UrlResource.java
new file mode 100644
index 0000000..f302578
--- /dev/null
+++ b/indexer-reader/src/main/java/org/apache/maven/index/reader/resource/UrlResource.java
@@ -0,0 +1,24 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import org.apache.maven.index.reader.ResourceHandler.Resource;
+
+public class UrlResource implements Resource {
+ private final URL url;
+
+ public UrlResource(URL url) {
+ this.url = url;
+ }
+
+ @Override
+ public InputStream read() throws IOException {
+ try {
+ return url.openStream();
+ } catch (FileNotFoundException e) {
+ return null;
+ }
+ }
+}