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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git


The following commit(s) were added to refs/heads/master by this push:
     new 2e5d3608 Deprecate ServiceLoaderIterator since ServiceLoader is 
directly iterable
2e5d3608 is described below

commit 2e5d36089d8acd722d35a2677ac7f9910fa508d3
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Mon Jun 6 11:14:15 2022 -0400

    Deprecate ServiceLoaderIterator since ServiceLoader is directly iterable
---
 .../compress/archivers/ArchiveStreamFactory.java      | 19 ++++++-------------
 .../compress/compressors/CompressorStreamFactory.java | 16 +++++-----------
 .../commons/compress/utils/ServiceLoaderIterator.java |  2 ++
 3 files changed, 13 insertions(+), 24 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java 
b/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java
index 779367c9..feb04bc4 100644
--- 
a/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java
+++ 
b/src/main/java/org/apache/commons/compress/archivers/ArchiveStreamFactory.java
@@ -24,10 +24,9 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.Locale;
+import java.util.ServiceLoader;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
@@ -46,8 +45,6 @@ import 
org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
 import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
 import org.apache.commons.compress.utils.IOUtils;
-import org.apache.commons.compress.utils.Lists;
-import org.apache.commons.compress.utils.ServiceLoaderIterator;
 import org.apache.commons.compress.utils.Sets;
 
 /**
@@ -204,10 +201,6 @@ public class ArchiveStreamFactory implements 
ArchiveStreamProvider {
 
     private SortedMap<String, ArchiveStreamProvider> 
archiveOutputStreamProviders;
 
-    private static ArrayList<ArchiveStreamProvider> 
findArchiveStreamProviders() {
-        return Lists.newArrayList(serviceLoaderIterator());
-    }
-
     static void putAll(final Set<String> names, final ArchiveStreamProvider 
provider,
             final TreeMap<String, ArchiveStreamProvider> map) {
         for (final String name : names) {
@@ -215,10 +208,10 @@ public class ArchiveStreamFactory implements 
ArchiveStreamProvider {
         }
     }
 
-    private static Iterator<ArchiveStreamProvider> serviceLoaderIterator() {
-        return new ServiceLoaderIterator<>(ArchiveStreamProvider.class);
+    private static Iterable<ArchiveStreamProvider> 
archiveStreamProviderIterable() {
+        return ServiceLoader.load(ArchiveStreamProvider.class, 
ClassLoader.getSystemClassLoader());
     }
-
+    
     private static String toKey(final String name) {
         return name.toUpperCase(Locale.ROOT);
     }
@@ -254,7 +247,7 @@ public class ArchiveStreamFactory implements 
ArchiveStreamProvider {
         return 
AccessController.doPrivileged((PrivilegedAction<SortedMap<String, 
ArchiveStreamProvider>>) () -> {
             final TreeMap<String, ArchiveStreamProvider> map = new TreeMap<>();
             putAll(DEFAULT.getInputStreamArchiveNames(), DEFAULT, map);
-            for (final ArchiveStreamProvider provider : 
findArchiveStreamProviders()) {
+            for (final ArchiveStreamProvider provider : 
archiveStreamProviderIterable()) {
                 putAll(provider.getInputStreamArchiveNames(), provider, map);
             }
             return map;
@@ -292,7 +285,7 @@ public class ArchiveStreamFactory implements 
ArchiveStreamProvider {
         return 
AccessController.doPrivileged((PrivilegedAction<SortedMap<String, 
ArchiveStreamProvider>>) () -> {
             final TreeMap<String, ArchiveStreamProvider> map = new TreeMap<>();
             putAll(DEFAULT.getOutputStreamArchiveNames(), DEFAULT, map);
-            for (final ArchiveStreamProvider provider : 
findArchiveStreamProviders()) {
+            for (final ArchiveStreamProvider provider : 
archiveStreamProviderIterable()) {
                 putAll(provider.getOutputStreamArchiveNames(), provider, map);
             }
             return map;
diff --git 
a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
 
b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
index db0d3056..25a0ae44 100644
--- 
a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
+++ 
b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
@@ -23,10 +23,9 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
-import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.Locale;
+import java.util.ServiceLoader;
 import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
@@ -60,8 +59,6 @@ import 
org.apache.commons.compress.compressors.zstandard.ZstdCompressorInputStre
 import 
org.apache.commons.compress.compressors.zstandard.ZstdCompressorOutputStream;
 import org.apache.commons.compress.compressors.zstandard.ZstdUtils;
 import org.apache.commons.compress.utils.IOUtils;
-import org.apache.commons.compress.utils.Lists;
-import org.apache.commons.compress.utils.ServiceLoaderIterator;
 import org.apache.commons.compress.utils.Sets;
 
 /**
@@ -248,7 +245,7 @@ public class CompressorStreamFactory implements 
CompressorStreamProvider {
         return 
AccessController.doPrivileged((PrivilegedAction<SortedMap<String, 
CompressorStreamProvider>>) () -> {
             final TreeMap<String, CompressorStreamProvider> map = new 
TreeMap<>();
             putAll(SINGLETON.getInputStreamCompressorNames(), SINGLETON, map);
-            for (final CompressorStreamProvider provider : 
findCompressorStreamProviders()) {
+            for (final CompressorStreamProvider provider : 
archiveStreamProviderIterable()) {
                 putAll(provider.getInputStreamCompressorNames(), provider, 
map);
             }
             return map;
@@ -286,15 +283,12 @@ public class CompressorStreamFactory implements 
CompressorStreamProvider {
         return 
AccessController.doPrivileged((PrivilegedAction<SortedMap<String, 
CompressorStreamProvider>>) () -> {
             final TreeMap<String, CompressorStreamProvider> map = new 
TreeMap<>();
             putAll(SINGLETON.getOutputStreamCompressorNames(), SINGLETON, map);
-            for (final CompressorStreamProvider provider : 
findCompressorStreamProviders()) {
+            for (final CompressorStreamProvider provider : 
archiveStreamProviderIterable()) {
                 putAll(provider.getOutputStreamCompressorNames(), provider, 
map);
             }
             return map;
         });
     }
-    private static ArrayList<CompressorStreamProvider> 
findCompressorStreamProviders() {
-        return Lists.newArrayList(serviceLoaderIterator());
-    }
 
     public static String getBrotli() {
         return BROTLI;
@@ -367,8 +361,8 @@ public class CompressorStreamFactory implements 
CompressorStreamProvider {
         }
     }
 
-    private static Iterator<CompressorStreamProvider> serviceLoaderIterator() {
-        return new ServiceLoaderIterator<>(CompressorStreamProvider.class);
+    private static Iterable<CompressorStreamProvider> 
archiveStreamProviderIterable() {
+        return ServiceLoader.load(CompressorStreamProvider.class, 
ClassLoader.getSystemClassLoader());
     }
 
     private static String toKey(final String name) {
diff --git 
a/src/main/java/org/apache/commons/compress/utils/ServiceLoaderIterator.java 
b/src/main/java/org/apache/commons/compress/utils/ServiceLoaderIterator.java
index 2ad9135a..08856bba 100644
--- a/src/main/java/org/apache/commons/compress/utils/ServiceLoaderIterator.java
+++ b/src/main/java/org/apache/commons/compress/utils/ServiceLoaderIterator.java
@@ -31,7 +31,9 @@ import java.util.ServiceLoader;
  * @param <E>
  *            The service to load
  * @since 1.13
+ * @deprecated No longer needed.
  */
+@Deprecated
 public class ServiceLoaderIterator<E> implements Iterator<E> {
 
     private E nextServiceLoader;

Reply via email to