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

rzo1 pushed a commit to branch cleanup/submit-tools-resolver-2
in repository https://gitbox.apache.org/repos/asf/storm.git

commit 2acc08dc844c75a0213835b5f49a0c318c081322
Author: Richard Zowalla <[email protected]>
AuthorDate: Fri May 1 20:51:00 2026 +0200

    storm-submit-tools: modernize Java code, no API surface changes
    
    Safe modernization of the dependency resolver tool, keeping
    maven-resolver 1.9.27 and the existing transport-http stack:
    
    - Drop Guava Iterables.filter/Predicate for Stream API + method ref
    - Replace deprecated new URL(String) with URI/URI.toURL (URL ctor is
      flagged for removal in JDK 20+)
    - catch (Throwable) -> catch (Exception); let Errors propagate
    - DependencyResolver: setRoot(deps[0])+addDependency(rest) was a subtle
      bug (the first dep was promoted to "root" of the resolution which
      alters scope/exclusion handling); replaced with setDependencies(deps)
    - Collections.EMPTY_LIST -> Collections.emptyList(); size()==0 -> isEmpty()
    - Drop unused Booter.newLocalRepository()
    - Make RepositorySystemFactory and Booter final + private ctor
    
    Note on a possible Resolver 2.x / supplier-pattern upgrade: the
    maven-resolver-supplier artifact in the 2.x line is still alpha (last
    release 2.0.0-alpha-8); Maven 4 is at rc-5 with a new
    org.apache.maven.api.Session abstraction that is a much larger code
    change. Keeping the existing DefaultServiceLocator path until that
    ecosystem stabilizes; the Java cleanups here apply regardless of which
    supplier path we eventually pick.
---
 .../submit/command/DependencyResolverMain.java     | 34 +++++++++-------------
 .../org/apache/storm/submit/dependency/Booter.java | 18 ++++--------
 .../submit/dependency/DependencyResolver.java      |  9 ++----
 .../submit/dependency/RepositorySystemFactory.java |  9 +++---
 4 files changed, 26 insertions(+), 44 deletions(-)

diff --git 
a/storm-submit-tools/src/main/java/org/apache/storm/submit/command/DependencyResolverMain.java
 
b/storm-submit-tools/src/main/java/org/apache/storm/submit/command/DependencyResolverMain.java
index cd5a4a472..ccfaa2766 100644
--- 
a/storm-submit-tools/src/main/java/org/apache/storm/submit/command/DependencyResolverMain.java
+++ 
b/storm-submit-tools/src/main/java/org/apache/storm/submit/command/DependencyResolverMain.java
@@ -19,12 +19,11 @@
 package org.apache.storm.submit.command;
 
 import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
 
 import java.io.File;
 import java.net.MalformedURLException;
-import java.net.URL;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
@@ -33,6 +32,7 @@ import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import net.minidev.json.JSONValue;
 
@@ -70,7 +70,7 @@ public class DependencyResolverMain {
      * @throws ParseException If there's parsing error on option parse.
      * @throws MalformedURLException If proxy URL is malformed.
      */
-    public static void main(String[] args) throws ParseException, 
MalformedURLException {
+    public static void main(String[] args) throws ParseException, 
MalformedURLException, URISyntaxException {
         Options options = buildOptions();
         CommandLineParser parser = new DefaultParser();
         CommandLine commandLine = parser.parse(options, args);
@@ -117,28 +117,21 @@ public class DependencyResolverMain {
 
             List<ArtifactResult> artifactResults = 
resolver.resolve(dependencies);
 
-            Iterable<ArtifactResult> missingArtifacts = 
filterMissingArtifacts(artifactResults);
-            if (missingArtifacts.iterator().hasNext()) {
+            List<ArtifactResult> missingArtifacts = artifactResults.stream()
+                    .filter(ArtifactResult::isMissing)
+                    .collect(Collectors.toList());
+            if (!missingArtifacts.isEmpty()) {
                 printMissingArtifactsToSysErr(missingArtifacts);
                 throw new RuntimeException("Some artifacts are not resolved");
             }
 
             
System.out.println(JSONValue.toJSONString(transformArtifactResultToArtifactToPaths(artifactResults)));
             System.out.flush();
-        } catch (Throwable e) {
+        } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
 
-    private static Iterable<ArtifactResult> 
filterMissingArtifacts(List<ArtifactResult> artifactResults) {
-        return Iterables.filter(artifactResults, new 
Predicate<ArtifactResult>() {
-            @Override
-            public boolean apply(ArtifactResult artifactResult) {
-                return artifactResult.isMissing();
-            }
-        });
-    }
-
     private static void printMissingArtifactsToSysErr(Iterable<ArtifactResult> 
missingArtifacts) {
         for (ArtifactResult artifactResult : missingArtifacts) {
             System.err.println("ArtifactResult : " + artifactResult + " / 
Errors : " + artifactResult.getExceptions());
@@ -173,14 +166,15 @@ public class DependencyResolverMain {
         return remoteRepositories;
     }
 
-    private static Proxy parseProxyArg(String proxyUrl, String proxyUsername, 
String proxyPassword) throws MalformedURLException {
-        URL url = new URL(proxyUrl);
+    private static Proxy parseProxyArg(String proxyUrl, String proxyUsername, 
String proxyPassword)
+            throws MalformedURLException, URISyntaxException {
+        URI uri = new URI(proxyUrl);
         if (StringUtils.isNotEmpty(proxyUsername) && 
StringUtils.isNotEmpty(proxyPassword)) {
             AuthenticationBuilder authBuilder = new AuthenticationBuilder();
             authBuilder.addUsername(proxyUsername).addPassword(proxyPassword);
-            return new Proxy(url.getProtocol(), url.getHost(), url.getPort(), 
authBuilder.build());
+            return new Proxy(uri.getScheme(), uri.getHost(), uri.getPort(), 
authBuilder.build());
         } else {
-            return new Proxy(url.getProtocol(), url.getHost(), url.getPort());
+            return new Proxy(uri.getScheme(), uri.getHost(), uri.getPort());
         }
     }
 
diff --git 
a/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/Booter.java
 
b/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/Booter.java
index 87b5e7688..94c82d395 100644
--- 
a/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/Booter.java
+++ 
b/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/Booter.java
@@ -27,10 +27,10 @@ import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.RemoteRepository;
 
-/**
- * Manage mvn repository.
- */
-public class Booter {
+public final class Booter {
+    private Booter() {
+    }
+
     public static RepositorySystem newRepositorySystem() {
         return RepositorySystemFactory.newRepositorySystem();
     }
@@ -38,20 +38,12 @@ public class Booter {
     public static RepositorySystemSession newRepositorySystemSession(
         RepositorySystem system, String localRepoPath) {
         DefaultRepositorySystemSession session = 
MavenRepositorySystemUtils.newSession();
-
-        LocalRepository localRepo =
-                new LocalRepository(new File(localRepoPath).getAbsolutePath());
+        LocalRepository localRepo = new LocalRepository(new 
File(localRepoPath).getAbsolutePath());
         
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, 
localRepo));
-
         return session;
     }
 
     public static RemoteRepository newCentralRepository() {
         return new RemoteRepository.Builder("central", "default", 
"https://repo1.maven.org/maven2/";).build();
     }
-
-    public static RemoteRepository newLocalRepository() {
-        return new RemoteRepository.Builder("local",
-                "default", "file://" + System.getProperty("user.home") + 
"/.m2/repository").build();
-    }
 }
diff --git 
a/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/DependencyResolver.java
 
b/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/DependencyResolver.java
index 5eb3bd506..e99b72377 100644
--- 
a/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/DependencyResolver.java
+++ 
b/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/DependencyResolver.java
@@ -108,15 +108,12 @@ public class DependencyResolver {
     public List<ArtifactResult> resolve(List<Dependency> dependencies) throws
             DependencyResolutionException, ArtifactResolutionException {
 
-        if (dependencies.size() == 0) {
-            return Collections.EMPTY_LIST;
+        if (dependencies.isEmpty()) {
+            return Collections.emptyList();
         }
 
         CollectRequest collectRequest = new CollectRequest();
-        collectRequest.setRoot(dependencies.get(0));
-        for (int idx = 1; idx < dependencies.size(); idx++) {
-            collectRequest.addDependency(dependencies.get(idx));
-        }
+        collectRequest.setDependencies(dependencies);
 
         for (RemoteRepository repository : remoteRepositories) {
             collectRequest.addRepository(repository);
diff --git 
a/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/RepositorySystemFactory.java
 
b/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/RepositorySystemFactory.java
index 0783baff6..f9a04c32a 100644
--- 
a/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/RepositorySystemFactory.java
+++ 
b/storm-submit-tools/src/main/java/org/apache/storm/submit/dependency/RepositorySystemFactory.java
@@ -28,10 +28,10 @@ import 
org.eclipse.aether.spi.connector.transport.TransporterFactory;
 import org.eclipse.aether.transport.file.FileTransporterFactory;
 import org.eclipse.aether.transport.http.HttpTransporterFactory;
 
-/**
- * Get maven repository instance.
- */
-public class RepositorySystemFactory {
+public final class RepositorySystemFactory {
+    private RepositorySystemFactory() {
+    }
+
     public static RepositorySystem newRepositorySystem() {
         DefaultServiceLocator locator = 
MavenRepositorySystemUtils.newServiceLocator();
         locator.addService(RepositoryConnectorFactory.class, 
BasicRepositoryConnectorFactory.class);
@@ -47,5 +47,4 @@ public class RepositorySystemFactory {
 
         return locator.getService(RepositorySystem.class);
     }
-
 }

Reply via email to