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

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


The following commit(s) were added to refs/heads/trunk by this push:
     new b5c9ffb85f OAK-11267: remove new use of Guava (#2761)
b5c9ffb85f is described below

commit b5c9ffb85f7151b3792deafc32231154f1d1a813
Author: Julian Reschke <[email protected]>
AuthorDate: Tue Feb 24 11:30:06 2026 +0100

    OAK-11267: remove new use of Guava (#2761)
---
 .../azure/blobstorage/AzureBlobStoreBackend.java   | 11 +++----
 .../oak/blob/cloud/azure/blobstorage/Utils.java    |  6 ++--
 .../blobstorage/v8/AzureBlobStoreBackendV8.java    | 36 +++++++++++-----------
 .../blob/cloud/azure/blobstorage/v8/UtilsV8.java   |  8 ++---
 .../v8/AzureBlobContainerProviderV8Test.java       |  7 +++--
 5 files changed, 34 insertions(+), 34 deletions(-)

diff --git 
a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
 
b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
index 4ead20ae0e..0f18882dcc 100644
--- 
a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
+++ 
b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
@@ -38,11 +38,8 @@ import org.apache.commons.io.IOUtils;
 import org.apache.jackrabbit.core.data.DataIdentifier;
 import org.apache.jackrabbit.core.data.DataRecord;
 import org.apache.jackrabbit.core.data.DataStoreException;
-import org.apache.jackrabbit.guava.common.base.Strings;
 import org.apache.jackrabbit.guava.common.cache.Cache;
 import org.apache.jackrabbit.guava.common.cache.CacheBuilder;
-import org.apache.jackrabbit.guava.common.collect.Lists;
-import org.apache.jackrabbit.guava.common.collect.Maps;
 import org.apache.jackrabbit.oak.commons.PropertiesUtil;
 import org.apache.jackrabbit.oak.commons.conditions.Validate;
 import org.apache.jackrabbit.oak.spi.blob.AbstractDataRecord;
@@ -851,7 +848,7 @@ public class AzureBlobStoreBackend extends 
AbstractAzureBlobStoreBackend {
     }
 
     protected DataRecordUpload initiateHttpUpload(long maxUploadSizeInBytes, 
int maxNumberOfURIs, @NotNull final DataRecordUploadOptions options) {
-        List<URI> uploadPartURIs = Lists.newArrayList();
+        List<URI> uploadPartURIs = new ArrayList<>();
         long minPartSize = AZURE_BLOB_MIN_MULTIPART_UPLOAD_PART_SIZE;
         long maxPartSize = AZURE_BLOB_MAX_MULTIPART_UPLOAD_PART_SIZE;
 
@@ -910,7 +907,7 @@ public class AzureBlobStoreBackend extends 
AbstractAzureBlobStoreBackend {
 
             BlobSasPermission perms = new BlobSasPermission()
                     .setWritePermission(true);
-            Map<String, String> presignedURIRequestParams = Maps.newHashMap();
+            Map<String, String> presignedURIRequestParams = new HashMap<>();
             // see 
https://docs.microsoft.com/en-us/rest/api/storageservices/put-block#uri-parameters
             presignedURIRequestParams.put("comp", "block");
             for (long blockId = 1; blockId <= numParts; ++blockId) {
@@ -1049,7 +1046,7 @@ public class AzureBlobStoreBackend extends 
AbstractAzureBlobStoreBackend {
                                    BlobSasPermission blobSasPermissions,
                                    int expirySeconds,
                                    String domain) {
-        return createPresignedURI(key, blobSasPermissions, expirySeconds, 
Maps.newHashMap(), domain, null);
+        return createPresignedURI(key, blobSasPermissions, expirySeconds, new 
HashMap<>(), domain, null);
     }
 
     private URI createPresignedURI(String key,
@@ -1066,7 +1063,7 @@ public class AzureBlobStoreBackend extends 
AbstractAzureBlobStoreBackend {
                                    Map<String, String> additionalQueryParams,
                                    String domain,
                                    BlobSasHeaders optionalHeaders) {
-        if (Strings.isNullOrEmpty(domain)) {
+        if (Objects.toString(domain, "").isEmpty()) {
             LOG.warn("Can't generate presigned URI - no Azure domain provided 
(is Azure account name configured?)");
             return null;
         }
diff --git 
a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/Utils.java
 
b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/Utils.java
index 6abede68a0..6ba260defa 100644
--- 
a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/Utils.java
+++ 
b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/Utils.java
@@ -23,6 +23,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.InetSocketAddress;
+import java.util.Objects;
 import java.util.Properties;
 
 import com.azure.core.http.HttpClient;
@@ -36,7 +37,6 @@ import com.azure.storage.common.policy.RequestRetryOptions;
 import com.azure.storage.common.policy.RetryPolicyType;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.jackrabbit.core.data.DataStoreException;
-import org.apache.jackrabbit.guava.common.base.Strings;
 import org.apache.jackrabbit.oak.commons.PropertiesUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -77,7 +77,7 @@ public final class Utils {
         String proxyHost = properties.getProperty(AzureConstants.PROXY_HOST);
         String proxyPort = properties.getProperty(AzureConstants.PROXY_PORT);
 
-        if(!(Strings.isNullOrEmpty(proxyHost) || 
Strings.isNullOrEmpty(proxyPort))) {
+        if(!(Objects.toString(proxyHost, "").isEmpty() || 
Objects.toString(proxyPort, "").isEmpty())) {
             return new ProxyOptions(ProxyOptions.Type.HTTP,
                     new InetSocketAddress(proxyHost, 
Integer.parseInt(proxyPort)));
         }
@@ -133,7 +133,7 @@ public final class Utils {
         StringBuilder connString = new 
StringBuilder("DefaultEndpointsProtocol=https");
         connString.append(";AccountName=").append(accountName);
         connString.append(";AccountKey=").append(accountKey);
-        if (!Strings.isNullOrEmpty(blobEndpoint)) {
+        if (!Objects.toString(blobEndpoint, "").isEmpty()) {
             connString.append(";BlobEndpoint=").append(blobEndpoint);
         }
         return connString.toString();
diff --git 
a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobStoreBackendV8.java
 
b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobStoreBackendV8.java
index c295f6b740..11904fb3a5 100644
--- 
a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobStoreBackendV8.java
+++ 
b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobStoreBackendV8.java
@@ -45,9 +45,12 @@ import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.security.InvalidKeyException;
 import java.time.Instant;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.EnumSet;
+import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -59,12 +62,9 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Function;
 
-import org.apache.jackrabbit.guava.common.base.Strings;
 import org.apache.jackrabbit.guava.common.cache.Cache;
 import org.apache.jackrabbit.guava.common.cache.CacheBuilder;
-import org.apache.jackrabbit.guava.common.collect.AbstractIterator;
-import org.apache.jackrabbit.guava.common.collect.Lists;
-import org.apache.jackrabbit.guava.common.collect.Maps;
+import org.apache.jackrabbit.oak.commons.collections.AbstractIterator;
 import org.apache.jackrabbit.oak.commons.time.Stopwatch;
 
 import com.microsoft.azure.storage.AccessCondition;
@@ -176,7 +176,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
             try {
                 UtilsV8.setProxyIfNeeded(properties);
                 createBlobContainer = PropertiesUtil.toBoolean(
-                    
Strings.emptyToNull(properties.getProperty(AzureConstants.AZURE_CREATE_CONTAINER)),
 true);
+                    
org.apache.jackrabbit.oak.commons.StringUtils.emptyToNull(properties.getProperty(AzureConstants.AZURE_CREATE_CONTAINER)),
 true);
                 initAzureDSConfig();
 
                 concurrentRequestCount = PropertiesUtil.toInteger(
@@ -200,7 +200,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
                     requestTimeout = 
PropertiesUtil.toInteger(properties.getProperty(AzureConstants.AZURE_BLOB_REQUEST_TIMEOUT),
 RetryPolicy.DEFAULT_CLIENT_RETRY_COUNT);
                 }
                 presignedDownloadURIVerifyExists = PropertiesUtil.toBoolean(
-                        
Strings.emptyToNull(properties.getProperty(AzureConstants.PRESIGNED_HTTP_DOWNLOAD_URI_VERIFY_EXISTS)),
 true);
+                        
org.apache.jackrabbit.oak.commons.StringUtils.emptyToNull(properties.getProperty(AzureConstants.PRESIGNED_HTTP_DOWNLOAD_URI_VERIFY_EXISTS)),
 true);
 
                 enableSecondaryLocation = PropertiesUtil.toBoolean(
                         
properties.getProperty(AzureConstants.AZURE_BLOB_ENABLE_SECONDARY_LOCATION_NAME),
@@ -238,7 +238,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
 
                 // Initialize reference key secret
                 boolean createRefSecretOnInit = PropertiesUtil.toBoolean(
-                        
Strings.emptyToNull(properties.getProperty(AzureConstants.AZURE_REF_ON_INIT)), 
true);
+                        
org.apache.jackrabbit.oak.commons.StringUtils.emptyToNull(properties.getProperty(AzureConstants.AZURE_REF_ON_INIT)),
 true);
 
                 if (createRefSecretOnInit) {
                     getOrCreateReferenceKey();
@@ -569,7 +569,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
         Objects.requireNonNull(prefix, "prefix must not be null");
 
         Stopwatch watch = Stopwatch.createStarted();
-        final List<DataRecord> records = Lists.newArrayList();
+        final List<DataRecord> records = new ArrayList<>();
         ClassLoader contextClassLoader = 
Thread.currentThread().getContextClassLoader();
         try {
             
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
@@ -781,13 +781,13 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
                 headers.setCacheControl(String.format("private, max-age=%d, 
immutable", httpDownloadURIExpirySeconds));
 
                 String contentType = downloadOptions.getContentTypeHeader();
-                if (!Strings.isNullOrEmpty(contentType)) {
+                if (!Objects.toString(contentType, "").isEmpty()) {
                     headers.setContentType(contentType);
                 }
 
                 String contentDisposition =
                         downloadOptions.getContentDispositionHeader();
-                if (!Strings.isNullOrEmpty(contentDisposition)) {
+                if (!Objects.toString(contentDisposition, "").isEmpty()) {
                     headers.setContentDisposition(contentDisposition);
                 }
 
@@ -816,7 +816,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
     }
 
     protected DataRecordUpload initiateHttpUpload(long maxUploadSizeInBytes, 
int maxNumberOfURIs, @NotNull final DataRecordUploadOptions options) {
-        List<URI> uploadPartURIs = Lists.newArrayList();
+        List<URI> uploadPartURIs = new ArrayList<>();
         long minPartSize = AZURE_BLOB_MIN_MULTIPART_UPLOAD_PART_SIZE;
         long maxPartSize = AZURE_BLOB_MAX_MULTIPART_UPLOAD_PART_SIZE;
 
@@ -875,7 +875,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
             Objects.requireNonNull(domain, "Could not determine domain for 
direct upload");
 
             EnumSet<SharedAccessBlobPermissions> perms = 
EnumSet.of(SharedAccessBlobPermissions.WRITE);
-            Map<String, String> presignedURIRequestParams = Maps.newHashMap();
+            Map<String, String> presignedURIRequestParams = new HashMap<>();
             // see 
https://docs.microsoft.com/en-us/rest/api/storageservices/put-block#uri-parameters
             presignedURIRequestParams.put("comp", "block");
             for (long blockId = 1; blockId <= numParts; ++blockId) {
@@ -985,7 +985,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
 
     private String getDefaultBlobStorageDomain() {
         String accountName = 
properties.getProperty(AzureConstants.AZURE_STORAGE_ACCOUNT_NAME, "");
-        if (Strings.isNullOrEmpty(accountName)) {
+        if (Objects.toString(accountName, "").isEmpty()) {
             LOG.warn("Can't generate presigned URI - Azure account name not 
found in properties");
             return null;
         }
@@ -996,7 +996,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
         String domain = ignoreDomainOverride
                 ? getDefaultBlobStorageDomain()
                 : downloadDomainOverride;
-        if (Strings.isNullOrEmpty(domain)) {
+        if (Objects.toString(domain, "").isEmpty()) {
             domain = getDefaultBlobStorageDomain();
         }
         return domain;
@@ -1006,7 +1006,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
         String domain = ignoreDomainOverride
                 ? getDefaultBlobStorageDomain()
                 : uploadDomainOverride;
-        if (Strings.isNullOrEmpty(domain)) {
+        if (Objects.toString(domain, "").isEmpty()) {
             domain = getDefaultBlobStorageDomain();
         }
         return domain;
@@ -1017,7 +1017,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
                                    int expirySeconds,
                                    SharedAccessBlobHeaders optionalHeaders,
                                    String domain) {
-        return createPresignedURI(key, permissions, expirySeconds, 
Maps.newHashMap(), optionalHeaders, domain);
+        return createPresignedURI(key, permissions, expirySeconds, new 
HashMap<>(), optionalHeaders, domain);
     }
 
     private URI createPresignedURI(String key,
@@ -1034,7 +1034,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
                                    Map<String, String> additionalQueryParams,
                                    SharedAccessBlobHeaders optionalHeaders,
                                    String domain) {
-        if (Strings.isNullOrEmpty(domain)) {
+        if (Objects.toString(domain, "").isEmpty()) {
             LOG.warn("Can't generate presigned URI - no Azure domain provided 
(is Azure account name configured?)");
             return null;
         }
@@ -1120,7 +1120,7 @@ public class AzureBlobStoreBackendV8 extends 
AbstractAzureBlobStoreBackend {
         ResultContinuation resultContinuation;
         boolean firstCall = true;
         final Function<AzureBlobInfo, T> transformer;
-        final Queue<AzureBlobInfo> items = Lists.newLinkedList();
+        final Queue<AzureBlobInfo> items = new LinkedList<>();
 
         public RecordsIterator (Function<AzureBlobInfo, T> transformer) {
             this.transformer = transformer;
diff --git 
a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/UtilsV8.java
 
b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/UtilsV8.java
index 5a61f4fd1d..a21c1a1a31 100644
--- 
a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/UtilsV8.java
+++ 
b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/UtilsV8.java
@@ -30,7 +30,6 @@ import com.microsoft.azure.storage.blob.CloudBlobClient;
 import com.microsoft.azure.storage.blob.CloudBlobContainer;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.jackrabbit.core.data.DataStoreException;
-import org.apache.jackrabbit.guava.common.base.Strings;
 import org.apache.jackrabbit.oak.blob.cloud.azure.blobstorage.AzureConstants;
 import org.apache.jackrabbit.oak.commons.PropertiesUtil;
 import org.jetbrains.annotations.NotNull;
@@ -41,6 +40,7 @@ import java.net.Proxy;
 import java.net.SocketAddress;
 import java.net.URISyntaxException;
 import java.security.InvalidKeyException;
+import java.util.Objects;
 import java.util.Properties;
 
 public final class UtilsV8 {
@@ -100,8 +100,8 @@ public final class UtilsV8 {
         String proxyHost = properties.getProperty(AzureConstants.PROXY_HOST);
         String proxyPort = properties.getProperty(AzureConstants.PROXY_PORT);
 
-        if (!(Strings.isNullOrEmpty(proxyHost) ||
-            Strings.isNullOrEmpty(proxyPort))) {
+        if (!(Objects.toString(proxyHost, "").isEmpty() ||
+                Objects.toString(proxyPort, "").isEmpty())) {
             int port = Integer.parseInt(proxyPort);
             SocketAddress proxyAddr = new InetSocketAddress(proxyHost, port);
             Proxy proxy = new Proxy(Proxy.Type.HTTP, proxyAddr);
@@ -148,7 +148,7 @@ public final class UtilsV8 {
         connString.append(";AccountName=").append(accountName);
         connString.append(";AccountKey=").append(accountKey);
 
-        if (!Strings.isNullOrEmpty(blobEndpoint)) {
+        if (!Objects.toString(blobEndpoint, "").isEmpty()) {
             connString.append(";BlobEndpoint=").append(blobEndpoint);
         }
         return connString.toString();
diff --git 
a/oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobContainerProviderV8Test.java
 
b/oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobContainerProviderV8Test.java
index 287dcdaeae..bb5969d60e 100644
--- 
a/oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobContainerProviderV8Test.java
+++ 
b/oak-blob-cloud-azure/src/test/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/v8/AzureBlobContainerProviderV8Test.java
@@ -34,14 +34,15 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.mockito.MockitoAnnotations;
-import org.testcontainers.shaded.com.google.common.collect.ImmutableSet;
 
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.time.Duration;
 import java.time.Instant;
+import java.util.Collections;
 import java.util.Date;
 import java.util.EnumSet;
+import java.util.HashSet;
 import java.util.Properties;
 import java.util.Set;
 import java.util.stream.StreamSupport;
@@ -692,7 +693,9 @@ public class AzureBlobContainerProviderV8Test {
     }
 
     private static Set<String> concat(Set<String> set, String element) {
-        return ImmutableSet.<String>builder().addAll(set).add(element).build();
+        Set<String> result = new HashSet<>(set);
+        result.add(element);
+        return Collections.unmodifiableSet(result);
     }
 
     // ========== Additional SAS Generation Tests ==========

Reply via email to