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:23 UTC

[maven-indexer] branch MINDEXER-124 created (now 406a9dd)

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a change to branch MINDEXER-124
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git.


      at 406a9dd  [MINDEXER-124] Add license text

This branch includes the following new commits:

     new e228012  [MINDEXER-124] Add ResourceHandler implementations
     new 4f51538  [MINDEXER-124] Write unit tests
     new 2ba725e  [MINDEXER-124] Add javadoc
     new ce53916  [MINDEXER-124] Add null checks to constructors
     new 406a9dd  [MINDEXER-124] Add license text

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-indexer] 03/05: [MINDEXER-124] Add javadoc

Posted by sl...@apache.org.
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 2ba725ee8be71cc162b268bcb22af567df1ead66
Author: sixcorners <si...@gmail.com>
AuthorDate: Sun Feb 2 19:57:35 2020 -0600

    [MINDEXER-124] Add javadoc
---
 .../org/apache/maven/index/reader/resource/BufferedResource.java    | 3 +++
 .../apache/maven/index/reader/resource/BufferedResourceHandler.java | 5 +++++
 .../maven/index/reader/resource/BufferedWritableResource.java       | 5 +++++
 .../index/reader/resource/BufferedWritableResourceHandler.java      | 6 ++++++
 .../apache/maven/index/reader/resource/PathWritableResource.java    | 3 +++
 .../maven/index/reader/resource/PathWritableResourceHandler.java    | 3 +++
 .../org/apache/maven/index/reader/resource/UriResourceHandler.java  | 3 +++
 .../java/org/apache/maven/index/reader/resource/UrlResource.java    | 3 +++
 8 files changed, 31 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
index c7c646a..5312833 100644
--- 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
@@ -5,6 +5,9 @@ import java.io.IOException;
 import java.io.InputStream;
 import org.apache.maven.index.reader.ResourceHandler.Resource;
 
+/**
+ * Wraps {@link Resource}s so that they return {@link BufferedInputStream}s.
+ */
 public class BufferedResource implements Resource {
   private final Resource resource;
 
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
index 4ffc65f..f3269dc 100644
--- 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
@@ -1,8 +1,13 @@
 package org.apache.maven.index.reader.resource;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
 import org.apache.maven.index.reader.ResourceHandler;
 
+/**
+ * Wraps {@link ResourceHandler}s so that they return {@link Resource}s that return {@link
+ * BufferedInputStream}s.
+ */
 public class BufferedResourceHandler implements ResourceHandler {
   private final ResourceHandler resourceHandler;
 
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
index 176ab4f..b95f8c6 100644
--- 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
@@ -1,10 +1,15 @@
 package org.apache.maven.index.reader.resource;
 
+import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
 
+/**
+ * Wraps {@link WritableResource}s so that they return {@link BufferedInputStream}s and {@link
+ * BufferedOutputStream}s.
+ */
 public class BufferedWritableResource extends BufferedResource implements WritableResource {
   private final WritableResource resource;
 
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
index f05faa3..67ff338 100644
--- 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
@@ -1,8 +1,14 @@
 package org.apache.maven.index.reader.resource;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.IOException;
 import org.apache.maven.index.reader.WritableResourceHandler;
 
+/**
+ * Wraps {@link WritableResourceHandler}s so that they return {@link WritableResource}s that return
+ * {@link BufferedInputStream}s and {@link BufferedOutputStream}s.
+ */
 public class BufferedWritableResourceHandler implements WritableResourceHandler {
   private final WritableResourceHandler writableResourceHandler;
 
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
index 58ed981..21659ac 100644
--- 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
@@ -8,6 +8,9 @@ import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
 import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
 
+/**
+ * A {@link WritableResource} that represents a {@link Path}.
+ */
 public class PathWritableResource implements WritableResource {
   private final Path path;
 
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
index d47b78a..e98b13b 100644
--- 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
@@ -4,6 +4,9 @@ import java.io.IOException;
 import java.nio.file.Path;
 import org.apache.maven.index.reader.WritableResourceHandler;
 
+/**
+ * A {@link WritableResourceHandler} that represents the base of a {@link Path} hierarchy.
+ */
 public class PathWritableResourceHandler implements WritableResourceHandler {
   private final Path path;
 
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
index 6c50c66..cce1b00 100644
--- 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
@@ -4,6 +4,9 @@ import java.io.IOException;
 import java.net.URI;
 import org.apache.maven.index.reader.ResourceHandler;
 
+/**
+ * A {@link ResourceHandler} that represents the base of a {@link URI} hierarchy.
+ */
 public class UriResourceHandler implements ResourceHandler {
   private final URI uri;
 
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
index f302578..584ef40 100644
--- 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
@@ -6,6 +6,9 @@ import java.io.InputStream;
 import java.net.URL;
 import org.apache.maven.index.reader.ResourceHandler.Resource;
 
+/**
+ * A {@link Resource} that represents a {@link URL}.
+ */
 public class UrlResource implements Resource {
   private final URL url;
 


[maven-indexer] 05/05: [MINDEXER-124] Add license text

Posted by sl...@apache.org.
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 406a9ddea3746b685f82253ad62091a5952b6f9a
Author: sixcorners <si...@gmail.com>
AuthorDate: Sun Feb 2 22:34:57 2020 -0600

    [MINDEXER-124] Add license text
---
 .../index/reader/resource/BufferedResource.java     | 19 +++++++++++++++++++
 .../reader/resource/BufferedResourceHandler.java    | 19 +++++++++++++++++++
 .../reader/resource/BufferedWritableResource.java   | 19 +++++++++++++++++++
 .../resource/BufferedWritableResourceHandler.java   | 19 +++++++++++++++++++
 .../index/reader/resource/PathWritableResource.java | 19 +++++++++++++++++++
 .../resource/PathWritableResourceHandler.java       | 19 +++++++++++++++++++
 .../index/reader/resource/UriResourceHandler.java   | 19 +++++++++++++++++++
 .../maven/index/reader/resource/UrlResource.java    | 19 +++++++++++++++++++
 .../resource/BufferedResourceHandlerTest.java       | 21 ++++++++++++++++++++-
 .../BufferedWritableResourceHandlerTest.java        | 19 +++++++++++++++++++
 .../resource/BufferedWritableResourceTest.java      | 21 ++++++++++++++++++++-
 .../resource/PathWritableResourceHandlerTest.java   | 19 +++++++++++++++++++
 .../reader/resource/UriResourceHandlerTest.java     | 21 ++++++++++++++++++++-
 13 files changed, 250 insertions(+), 3 deletions(-)

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
index a85872b..fa51ef4 100644
--- 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
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
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
index b994295..b50c6bf 100644
--- 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
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.util.Objects;
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
index b95f8c6..54d9cdf 100644
--- 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
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.IOException;
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
index 26eae6a..00a1062 100644
--- 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
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.IOException;
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
index 6e1a8a3..2105b38 100644
--- 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
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
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
index 760a9dc..82dd957 100644
--- 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
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.IOException;
 import java.nio.file.Path;
 import java.util.Objects;
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
index 561177c..304dab1 100644
--- 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
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.IOException;
 import java.net.URI;
 import java.util.Objects;
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
index c2e215c..388f417 100644
--- 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
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java
index 174d923..61ec7eb 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -55,4 +74,4 @@ public class BufferedResourceHandlerTest {
     new BufferedResourceHandler(resourceHandler).close();
     context.assertIsSatisfied();
   }
-}
\ No newline at end of file
+}
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java
index 7838914..85e8fd4 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertTrue;
 
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java
index 1dc043b..0a9b522 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import java.io.IOException;
 import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
 import org.jmock.Expectations;
@@ -18,4 +37,4 @@ public class BufferedWritableResourceTest {
     new BufferedWritableResource(resourceHandler).close();
     context.assertIsSatisfied();
   }
-}
\ No newline at end of file
+}
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java
index 0852db7..c259c9a 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java
index ace8c2f..31a7653 100644
--- a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java
@@ -1,5 +1,24 @@
 package org.apache.maven.index.reader.resource;
 
+/*
+ * 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.
+ */
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
@@ -25,4 +44,4 @@ public class UriResourceHandlerTest {
       assertEquals('a', in.read());
     }
   }
-}
\ No newline at end of file
+}


[maven-indexer] 01/05: [MINDEXER-124] Add ResourceHandler implementations

Posted by sl...@apache.org.
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;
+    }
+  }
+}


[maven-indexer] 04/05: [MINDEXER-124] Add null checks to constructors

Posted by sl...@apache.org.
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 ce5391626fd987cb4ce148d3eec92a85fe59a286
Author: sixcorners <si...@gmail.com>
AuthorDate: Sun Feb 2 20:00:44 2020 -0600

    [MINDEXER-124] Add null checks to constructors
---
 .../java/org/apache/maven/index/reader/resource/BufferedResource.java   | 2 ++
 .../org/apache/maven/index/reader/resource/BufferedResourceHandler.java | 2 ++
 .../maven/index/reader/resource/BufferedWritableResourceHandler.java    | 2 ++
 .../org/apache/maven/index/reader/resource/PathWritableResource.java    | 2 ++
 .../apache/maven/index/reader/resource/PathWritableResourceHandler.java | 2 ++
 .../java/org/apache/maven/index/reader/resource/UriResourceHandler.java | 2 ++
 .../main/java/org/apache/maven/index/reader/resource/UrlResource.java   | 2 ++
 7 files changed, 14 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
index 5312833..a85872b 100644
--- 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
@@ -3,6 +3,7 @@ package org.apache.maven.index.reader.resource;
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Objects;
 import org.apache.maven.index.reader.ResourceHandler.Resource;
 
 /**
@@ -12,6 +13,7 @@ public class BufferedResource implements Resource {
   private final Resource resource;
 
   public BufferedResource(Resource resource) {
+    Objects.requireNonNull(resource, "resource cannot be null");
     this.resource = resource;
   }
 
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
index f3269dc..b994295 100644
--- 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
@@ -2,6 +2,7 @@ package org.apache.maven.index.reader.resource;
 
 import java.io.BufferedInputStream;
 import java.io.IOException;
+import java.util.Objects;
 import org.apache.maven.index.reader.ResourceHandler;
 
 /**
@@ -12,6 +13,7 @@ public class BufferedResourceHandler implements ResourceHandler {
   private final ResourceHandler resourceHandler;
 
   public BufferedResourceHandler(ResourceHandler resourceHandler) {
+    Objects.requireNonNull(resourceHandler, "resourceHandler cannot be null");
     this.resourceHandler = resourceHandler;
   }
 
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
index 67ff338..26eae6a 100644
--- 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
@@ -3,6 +3,7 @@ package org.apache.maven.index.reader.resource;
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.IOException;
+import java.util.Objects;
 import org.apache.maven.index.reader.WritableResourceHandler;
 
 /**
@@ -13,6 +14,7 @@ public class BufferedWritableResourceHandler implements WritableResourceHandler
   private final WritableResourceHandler writableResourceHandler;
 
   public BufferedWritableResourceHandler(WritableResourceHandler writableResourceHandler) {
+    Objects.requireNonNull(writableResourceHandler, "writableResourceHandler cannot be null");
     this.writableResourceHandler = writableResourceHandler;
   }
 
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
index 21659ac..6e1a8a3 100644
--- 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
@@ -6,6 +6,7 @@ import java.io.OutputStream;
 import java.nio.file.Files;
 import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
+import java.util.Objects;
 import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
 
 /**
@@ -15,6 +16,7 @@ public class PathWritableResource implements WritableResource {
   private final Path path;
 
   public PathWritableResource(Path path) {
+    Objects.requireNonNull(path, "path cannot be null");
     this.path = path;
   }
 
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
index e98b13b..760a9dc 100644
--- 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
@@ -2,6 +2,7 @@ package org.apache.maven.index.reader.resource;
 
 import java.io.IOException;
 import java.nio.file.Path;
+import java.util.Objects;
 import org.apache.maven.index.reader.WritableResourceHandler;
 
 /**
@@ -11,6 +12,7 @@ public class PathWritableResourceHandler implements WritableResourceHandler {
   private final Path path;
 
   public PathWritableResourceHandler(Path path) {
+    Objects.requireNonNull(path, "path cannot be null");
     this.path = path;
   }
 
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
index cce1b00..561177c 100644
--- 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
@@ -2,6 +2,7 @@ package org.apache.maven.index.reader.resource;
 
 import java.io.IOException;
 import java.net.URI;
+import java.util.Objects;
 import org.apache.maven.index.reader.ResourceHandler;
 
 /**
@@ -11,6 +12,7 @@ public class UriResourceHandler implements ResourceHandler {
   private final URI uri;
 
   public UriResourceHandler(URI uri) {
+    Objects.requireNonNull(uri, "uri cannot be null");
     this.uri = uri;
   }
 
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
index 584ef40..c2e215c 100644
--- 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
@@ -4,6 +4,7 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+import java.util.Objects;
 import org.apache.maven.index.reader.ResourceHandler.Resource;
 
 /**
@@ -13,6 +14,7 @@ public class UrlResource implements Resource {
   private final URL url;
 
   public UrlResource(URL url) {
+    Objects.requireNonNull(url, "url cannot be null");
     this.url = url;
   }
 


[maven-indexer] 02/05: [MINDEXER-124] Write unit tests

Posted by sl...@apache.org.
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 4f51538eb57627c8b9006e2153bf8d1785411804
Author: sixcorners <si...@gmail.com>
AuthorDate: Sun Feb 2 19:39:34 2020 -0600

    [MINDEXER-124] Write unit tests
---
 indexer-reader/pom.xml                             |  5 ++
 .../resource/BufferedResourceHandlerTest.java      | 58 ++++++++++++++++++++++
 .../BufferedWritableResourceHandlerTest.java       | 52 +++++++++++++++++++
 .../resource/BufferedWritableResourceTest.java     | 21 ++++++++
 .../resource/PathWritableResourceHandlerTest.java  | 34 +++++++++++++
 .../reader/resource/UriResourceHandlerTest.java    | 28 +++++++++++
 6 files changed, 198 insertions(+)

diff --git a/indexer-reader/pom.xml b/indexer-reader/pom.xml
index 0d9af1e..150a56a 100644
--- a/indexer-reader/pom.xml
+++ b/indexer-reader/pom.xml
@@ -44,6 +44,11 @@ under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>org.jmock</groupId>
+      <artifactId>jmock</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
       <scope>test</scope>
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java
new file mode 100644
index 0000000..174d923
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedResourceHandlerTest.java
@@ -0,0 +1,58 @@
+package org.apache.maven.index.reader.resource;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import org.apache.maven.index.reader.ResourceHandler;
+import org.apache.maven.index.reader.ResourceHandler.Resource;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.junit.Test;
+
+public class BufferedResourceHandlerTest {
+  private Mockery context = new Mockery();
+
+  @Test
+  public void locate() throws IOException {
+    final Resource resource = context.mock(Resource.class);
+    final ResourceHandler resourceHandler = context.mock(ResourceHandler.class);
+    context.checking(new Expectations() {{
+      oneOf(resource).read();
+      will(returnValue(new ByteArrayInputStream(new byte[]{'a'})));
+      oneOf(resourceHandler).locate("test.txt");
+      will(returnValue(resource));
+    }});
+    InputStream in = new BufferedResourceHandler(resourceHandler).locate("test.txt").read();
+    assertTrue(in instanceof BufferedInputStream);
+    assertEquals('a', in.read());
+    context.assertIsSatisfied();
+  }
+
+  @Test
+  public void locateNull() throws IOException {
+    final Resource resource = context.mock(Resource.class);
+    final ResourceHandler resourceHandler = context.mock(ResourceHandler.class);
+    context.checking(new Expectations() {{
+      oneOf(resource).read();
+      oneOf(resourceHandler).locate("test.txt");
+      will(returnValue(resource));
+    }});
+    assertNull(new BufferedResourceHandler(resourceHandler).locate("test.txt").read());
+    context.assertIsSatisfied();
+  }
+
+  @Test
+  public void close() throws IOException {
+    final ResourceHandler resourceHandler = context.mock(ResourceHandler.class);
+    context.checking(new Expectations() {{
+      oneOf(resourceHandler).close();
+    }});
+    new BufferedResourceHandler(resourceHandler).close();
+    context.assertIsSatisfied();
+  }
+}
\ No newline at end of file
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java
new file mode 100644
index 0000000..7838914
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceHandlerTest.java
@@ -0,0 +1,52 @@
+package org.apache.maven.index.reader.resource;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import org.apache.maven.index.reader.WritableResourceHandler;
+import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.junit.Test;
+
+public class BufferedWritableResourceHandlerTest {
+  private Mockery context = new Mockery();
+
+  @Test
+  public void locate() throws IOException {
+    final WritableResource writableResource = context.mock(WritableResource.class);
+    final WritableResourceHandler writableResourceHandler = context
+        .mock(WritableResourceHandler.class);
+    final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    context.checking(new Expectations() {{
+      oneOf(writableResource).write();
+      will(returnValue(baos));
+      oneOf(writableResourceHandler).locate("test.txt");
+      will(returnValue(writableResource));
+    }});
+    OutputStream out = new BufferedWritableResourceHandler(writableResourceHandler)
+        .locate("test.txt").write();
+    assertTrue(out instanceof BufferedOutputStream);
+    assertArrayEquals(new byte[]{}, baos.toByteArray());
+    out.write('a');
+    assertArrayEquals(new byte[]{}, baos.toByteArray());
+    out.flush();
+    assertArrayEquals(new byte[]{'a'}, baos.toByteArray());
+    context.assertIsSatisfied();
+  }
+
+  @Test
+  public void close() throws IOException {
+    final WritableResourceHandler writableResourceHandler = context
+        .mock(WritableResourceHandler.class);
+    context.checking(new Expectations() {{
+      oneOf(writableResourceHandler).close();
+    }});
+    new BufferedWritableResourceHandler(writableResourceHandler).close();
+    context.assertIsSatisfied();
+  }
+}
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java
new file mode 100644
index 0000000..1dc043b
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/BufferedWritableResourceTest.java
@@ -0,0 +1,21 @@
+package org.apache.maven.index.reader.resource;
+
+import java.io.IOException;
+import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.junit.Test;
+
+public class BufferedWritableResourceTest {
+  private Mockery context = new Mockery();
+
+  @Test
+  public void close() throws IOException {
+    final WritableResource resourceHandler = context.mock(WritableResource.class);
+    context.checking(new Expectations() {{
+      oneOf(resourceHandler).close();
+    }});
+    new BufferedWritableResource(resourceHandler).close();
+    context.assertIsSatisfied();
+  }
+}
\ No newline at end of file
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java
new file mode 100644
index 0000000..0852db7
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/PathWritableResourceHandlerTest.java
@@ -0,0 +1,34 @@
+package org.apache.maven.index.reader.resource;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import org.apache.maven.index.reader.WritableResourceHandler.WritableResource;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+public class PathWritableResourceHandlerTest {
+  @Rule
+  public TemporaryFolder folder = new TemporaryFolder();
+
+  @Test
+  public void locate() throws IOException {
+    WritableResource test = new PathWritableResourceHandler(folder.getRoot().toPath())
+        .locate("test.txt");
+    assertNull(test.read());
+    try (OutputStream out = test.write()) {
+      out.write('a');
+    }
+    try (InputStream in = test.read()) {
+      assertEquals('a', in.read());
+    }
+    assertArrayEquals(new byte[]{'a'},
+        Files.readAllBytes(folder.getRoot().toPath().resolve("test.txt")));
+  }
+}
diff --git a/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java
new file mode 100644
index 0000000..ace8c2f
--- /dev/null
+++ b/indexer-reader/src/test/java/org/apache/maven/index/reader/resource/UriResourceHandlerTest.java
@@ -0,0 +1,28 @@
+package org.apache.maven.index.reader.resource;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import org.apache.maven.index.reader.ResourceHandler.Resource;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+public class UriResourceHandlerTest {
+  @Rule
+  public TemporaryFolder folder = new TemporaryFolder();
+
+  @Test
+  public void locate() throws IOException {
+    Resource test = new UriResourceHandler(folder.getRoot().toURI())
+        .locate("test.txt");
+    assertNull(test.read());
+    Files.write(folder.getRoot().toPath().resolve("test.txt"), new byte[]{'a'});
+    try (InputStream in = test.read()) {
+      assertEquals('a', in.read());
+    }
+  }
+}
\ No newline at end of file