You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2025/01/10 06:32:38 UTC

(jackrabbit-oak) 01/01: OAK-11377: Remove usage of Guava ByteStreams.toByteArray()

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

reschke pushed a commit to branch OAK-11377
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit a04a20a452efe862a9e7c5cb6455ebd37c2b108f
Author: Julian Reschke <ju...@gmx.de>
AuthorDate: Fri Jan 10 07:32:24 2025 +0100

    OAK-11377: Remove usage of Guava ByteStreams.toByteArray()
---
 .../authentication/ldap/LdapServerClassLoader.java        | 15 ++++++++-------
 .../jackrabbit/oak/plugins/blob/cloud/CloudBlobStore.java |  3 +--
 .../directaccess/AbstractDataRecordAccessProviderIT.java  |  3 +--
 .../AbstractDataRecordAccessProviderTest.java             |  7 +++----
 .../jackrabbit/oak/segment/CompactionAndCleanupIT.java    |  9 ++++-----
 .../oak/plugins/document/BlobThroughPutTest.java          |  3 +--
 .../jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java  |  3 +--
 .../jackrabbit/oak/plugins/memory/MemoryNodeStore.java    |  4 +---
 .../apache/jackrabbit/oak/plugins/value/Conversions.java  | 12 ++----------
 9 files changed, 22 insertions(+), 37 deletions(-)

diff --git a/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapServerClassLoader.java b/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapServerClassLoader.java
index c8431a101f..30104b0698 100644
--- a/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapServerClassLoader.java
+++ b/oak-auth-ldap/src/test/java/org/apache/jackrabbit/oak/security/authentication/ldap/LdapServerClassLoader.java
@@ -14,11 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.jackrabbit.oak.security.authentication.ldap;
 
-import org.apache.jackrabbit.guava.common.io.ByteStreams;
-
 import ch.qos.logback.classic.Logger;
 import ch.qos.logback.core.Appender;
 
@@ -47,10 +44,14 @@ public class LdapServerClassLoader extends URLClassLoader {
 
     private LdapServerClassLoader(URL[] urls, Class serverClass, Class serverBaseClass) throws IOException {
         super(urls, ClassLoader.getSystemClassLoader().getParent());
-        this.serverClassResource = ByteStreams.toByteArray(
-                serverClass.getResourceAsStream("/".concat(serverClass.getCanonicalName()).replace('.', '/').concat(".class")));
-        this.serverBaseClassResource = ByteStreams.toByteArray(
-                serverBaseClass.getResourceAsStream("/".concat(serverBaseClass.getCanonicalName()).replace('.', '/').concat(".class")));
+        this.serverClassResource = classAsBytes(serverClass);
+        this.serverBaseClassResource = classAsBytes(serverBaseClass);
+    }
+
+    private static byte[] classAsBytes(Class base) throws IOException {
+        try (InputStream is = base.getResourceAsStream("/".concat(base.getCanonicalName()).replace('.', '/').concat(".class"))) {
+            return is.readAllBytes();
+        }
     }
 
     public static LdapServerClassLoader createServerClassLoader() throws URISyntaxException, ClassNotFoundException, IOException {
diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/cloud/CloudBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/cloud/CloudBlobStore.java
index ed1016ac32..cd56cb9226 100644
--- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/cloud/CloudBlobStore.java
+++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/cloud/CloudBlobStore.java
@@ -25,7 +25,6 @@ import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Objects;
 
-import org.apache.jackrabbit.guava.common.io.ByteStreams;
 import org.apache.jackrabbit.oak.commons.StringUtils;
 import org.apache.jackrabbit.oak.plugins.blob.CachingBlobStore;
 import org.jclouds.ContextBuilder;
@@ -160,7 +159,7 @@ public class CloudBlobStore extends CachingBlobStore {
     
             Payload payload = cloudBlob.getPayload();
             try {
-                data = ByteStreams.toByteArray(payload.getInput());
+                data = payload.getInput().readAllBytes();
                 cache.put(id, data);        
             } finally {
                 payload.close();
diff --git a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/directaccess/AbstractDataRecordAccessProviderIT.java b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/directaccess/AbstractDataRecordAccessProviderIT.java
index e9487ee3e2..bcb4af5b54 100644
--- a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/directaccess/AbstractDataRecordAccessProviderIT.java
+++ b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/directaccess/AbstractDataRecordAccessProviderIT.java
@@ -34,7 +34,6 @@ import org.apache.jackrabbit.core.data.DataStore;
 import org.apache.jackrabbit.core.data.DataStoreException;
 import org.junit.Test;
 
-import static org.apache.jackrabbit.guava.common.io.ByteStreams.toByteArray;
 import static org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreUtils.randomStream;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -111,7 +110,7 @@ public abstract class AbstractDataRecordAccessProviderIT {
                 assertNotNull(retrievedRecord);
 
                 in.reset();
-                assertTrue(Arrays.equals(toByteArray(in), toByteArray(retrievedRecord.getStream())));
+                assertTrue(Arrays.equals(in.readAllBytes(), retrievedRecord.getStream().readAllBytes()));
             }
             finally {
                 if (null != uploadedRecord) {
diff --git a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/directaccess/AbstractDataRecordAccessProviderTest.java b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/directaccess/AbstractDataRecordAccessProviderTest.java
index 684c3e0fcf..883425a032 100644
--- a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/directaccess/AbstractDataRecordAccessProviderTest.java
+++ b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/directaccess/AbstractDataRecordAccessProviderTest.java
@@ -48,7 +48,6 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.jackrabbit.guava.common.base.Strings;
 
-import static org.apache.jackrabbit.guava.common.io.ByteStreams.toByteArray;
 import static org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreUtils.randomStream;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -165,7 +164,7 @@ public abstract class AbstractDataRecordAccessProviderTest {
             assertEquals(200, conn.getResponseCode());
 
             testStream.reset();
-            assertTrue(Arrays.equals(toByteArray(testStream), toByteArray(conn.getInputStream())));
+            assertTrue(Arrays.equals(testStream.readAllBytes(), conn.getInputStream().readAllBytes()));
         }
         finally {
             if (null != record) {
@@ -240,7 +239,7 @@ public abstract class AbstractDataRecordAccessProviderTest {
                 );
 
                 testStream.reset();
-                assertTrue(Arrays.equals(toByteArray(testStream), toByteArray(conn.getInputStream())));
+                assertTrue(Arrays.equals(testStream.readAllBytes(), conn.getInputStream().readAllBytes()));
             }
         }
         finally {
@@ -586,7 +585,7 @@ public abstract class AbstractDataRecordAccessProviderTest {
                 DataRecord retrievedRecord = doGetRecord((DataStore) ds, uploadedRecord.getIdentifier());
                 assertNotNull(retrievedRecord);
                 uploadStream.reset();
-                assertTrue(Arrays.equals(toByteArray(uploadStream), toByteArray(retrievedRecord.getStream())));
+                assertTrue(Arrays.equals(uploadStream.readAllBytes(), retrievedRecord.getStream().readAllBytes()));
             }
             finally {
                 if (null != uploadedRecord) {
diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
index dddda115ea..4b56807173 100644
--- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
+++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
@@ -61,7 +61,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Consumer;
 
-import org.apache.jackrabbit.guava.common.io.ByteStreams;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -218,8 +217,8 @@ public class CompactionAndCleanupIT {
             long size7 = fileStore.getStats().getApproximateSize();
 
             // No data loss
-            byte[] blob = ByteStreams.toByteArray(nodeStore.getRoot()
-                    .getProperty("blob2").getValue(Type.BINARY).getNewStream());
+            byte[] blob = nodeStore.getRoot()
+                    .getProperty("blob2").getValue(Type.BINARY).getNewStream().readAllBytes();
             assertEquals(blobSize, blob.length);
         } finally {
             fileStore.close();
@@ -308,8 +307,8 @@ public class CompactionAndCleanupIT {
             assertTrue("the blob should not be collected", size7 > blobSize);
 
             // No data loss
-            byte[] blob = ByteStreams.toByteArray(nodeStore.getRoot()
-                    .getProperty("blob2").getValue(Type.BINARY).getNewStream());
+            byte[] blob = nodeStore.getRoot()
+                    .getProperty("blob2").getValue(Type.BINARY).getNewStream().readAllBytes();
             assertEquals(blobSize, blob.length);
         } finally {
             fileStore.close();
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java
index cac59c145c..5b4cb38892 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java
@@ -28,7 +28,6 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.commons.collections4.bidimap.DualHashBidiMap;
-import org.apache.jackrabbit.guava.common.io.ByteStreams;
 import com.mongodb.BasicDBObject;
 import com.mongodb.MongoClient;
 import com.mongodb.MongoClientURI;
@@ -201,7 +200,7 @@ public class BlobThroughPutTest {
 
         static {
             try {
-                DATA = ByteStreams.toByteArray(new RandomStream(BLOB_SIZE, 100));
+                DATA = (new RandomStream(BLOB_SIZE, 100)).readAllBytes();
             } catch (IOException e) {
                 throw new IllegalStateException(e);
             }
diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java
index 9a289c7477..30b0a8ecd8 100644
--- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java
+++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java
@@ -35,7 +35,6 @@ import java.io.InputStream;
 import java.util.Objects;
 import java.util.StringJoiner;
 
-import org.apache.jackrabbit.guava.common.io.ByteStreams;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
@@ -538,7 +537,7 @@ public class MemoryNodeBuilder implements NodeBuilder {
     @Override
     public Blob createBlob(InputStream stream) throws IOException {
         try {
-            return new ArrayBasedBlob(ByteStreams.toByteArray(stream));
+            return new ArrayBasedBlob(stream.readAllBytes());
         } finally {
             stream.close();
         }
diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java
index 736ef75224..a35915f243 100644
--- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java
+++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeStore.java
@@ -33,8 +33,6 @@ import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 
-import org.apache.jackrabbit.guava.common.io.ByteStreams;
-
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.commons.collections.CollectionUtils;
@@ -182,7 +180,7 @@ public class MemoryNodeStore implements NodeStore, Observable {
     @Override
     public ArrayBasedBlob createBlob(InputStream inputStream) throws IOException {
         try {
-            return new ArrayBasedBlob(ByteStreams.toByteArray(inputStream));
+            return new ArrayBasedBlob(inputStream.readAllBytes());
         }
         finally {
             inputStream.close();
diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java
index 6785e3ecce..89cf942557 100644
--- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java
+++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/value/Conversions.java
@@ -25,8 +25,6 @@ import java.nio.charset.StandardCharsets;
 import java.util.Calendar;
 import java.util.TimeZone;
 
-import org.apache.jackrabbit.guava.common.io.ByteStreams;
-
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.memory.StringBasedBlob;
@@ -156,14 +154,8 @@ public final class Conversions {
         return new Converter() {
             @Override
             public String toString() {
-                try {
-                    InputStream in = value.getNewStream();
-                    try {
-                        return new String(ByteStreams.toByteArray(in), StandardCharsets.UTF_8);
-                    }
-                    finally {
-                        in.close();
-                    }
+                try (InputStream in = value.getNewStream()) {
+                    return new String(in.readAllBytes(), StandardCharsets.UTF_8);
                 }
                 catch (IOException e) {
                     throw new IllegalArgumentException(e);