Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package maven-resolver for openSUSE:Factory checked in at 2026-02-17 16:48:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/maven-resolver (Old) and /work/SRC/openSUSE:Factory/.maven-resolver.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "maven-resolver" Tue Feb 17 16:48:30 2026 rev:26 rq:1333415 version:1.9.26 Changes: -------- --- /work/SRC/openSUSE:Factory/maven-resolver/maven-resolver-supplier.changes 2025-12-17 18:40:20.276528623 +0100 +++ /work/SRC/openSUSE:Factory/.maven-resolver.new.1977/maven-resolver-supplier.changes 2026-02-17 16:49:46.621525373 +0100 @@ -1,0 +2,22 @@ +Thu Feb 12 17:14:40 UTC 2026 - Fridrich Strba <[email protected]> + +- Update to upstream version 1.9.26 + * New features and improvements + + GH-1773: Treat 410 Gone as 404 Not Found + + GH-1737: Revert partially parallel upload change + * Bug Fixes + + GH-1768; Drastically simplify auth caching + + [1.9.x] Bug: GH-1703 Locally cached artifacts defy RRF + * Documentation updates + + Clarify that HTTP Transport uses Apache HTTP Client + * Dependency updates + + Bump org.redisson:redisson from 3.52.0 to 4.2.0 + + Bump commons-codec:commons-codec from 1.20.0 to 1.21.0 + + Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.26 + to 1.27 + + Bump org.apache.maven:maven-parent from 46 to 47 + + Bump com.github.siom79.japicmp:japicmp-maven-plugin from + 0.25.0 to 0.25.4 + + Bump mavenVersion from 3.9.11 to 3.9.12 + +------------------------------------------------------------------- maven-resolver.changes: same change Old: ---- maven-resolver-1.9.25-source-release.zip New: ---- maven-resolver-1.9.26-source-release.zip ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ maven-resolver-supplier.spec ++++++ --- /var/tmp/diff_new_pack.O9yWPC/_old 2026-02-17 16:49:55.653902889 +0100 +++ /var/tmp/diff_new_pack.O9yWPC/_new 2026-02-17 16:49:55.669903558 +0100 @@ -1,7 +1,7 @@ # # spec file for package maven-resolver-supplier # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %global base_name maven-resolver %define _buildshell /bin/bash Name: %{base_name}-supplier -Version: 1.9.25 +Version: 1.9.26 Release: 0 Summary: Apache Maven Artifact Resolver library License: Apache-2.0 ++++++ maven-resolver.spec ++++++ --- /var/tmp/diff_new_pack.O9yWPC/_old 2026-02-17 16:49:55.909913589 +0100 +++ /var/tmp/diff_new_pack.O9yWPC/_new 2026-02-17 16:49:55.917913924 +0100 @@ -1,7 +1,7 @@ # # spec file for package maven-resolver # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %global base_name maven-resolver %define _buildshell /bin/bash Name: %{base_name} -Version: 1.9.25 +Version: 1.9.26 Release: 0 Summary: Apache Maven Artifact Resolver library License: Apache-2.0 ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.O9yWPC/_old 2026-02-17 16:49:56.257928135 +0100 +++ /var/tmp/diff_new_pack.O9yWPC/_new 2026-02-17 16:49:56.313930476 +0100 @@ -1,6 +1,6 @@ -mtime: 1765957984 -commit: 6d869c8623c954d38b3b20ebd14673e88421c06056377a6869a9b82d85fd17b3 +mtime: 1771262348 +commit: c4e0d66ca11d583bd4b2ef1510bf8035362cdd78caf98289cb676258b75284bd url: https://src.opensuse.org/java-packages/maven-resolver.git -revision: 6d869c8623c954d38b3b20ebd14673e88421c06056377a6869a9b82d85fd17b3 +revision: c4e0d66ca11d583bd4b2ef1510bf8035362cdd78caf98289cb676258b75284bd projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-02-16 18:20:29.000000000 +0100 @@ -0,0 +1 @@ +.osc ++++++ maven-resolver-1.9.25-source-release.zip -> maven-resolver-1.9.26-source-release.zip ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/.gitignore new/maven-resolver-1.9.26/.gitignore --- old/maven-resolver-1.9.25/.gitignore 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/.gitignore 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ -target/ -.project -.classpath -.settings/ -.idea -*.iml -*.ipr -*.iws -pom.xml.versionsBackup -.checkstyle - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/NOTICE new/maven-resolver-1.9.26/NOTICE --- old/maven-resolver-1.9.25/NOTICE 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/NOTICE 2026-02-12 15:31:48.000000000 +0100 @@ -1,5 +1,5 @@ Maven Artifact Resolver -Copyright 2010-2025 The Apache Software Foundation +Copyright 2010-2026 The Apache Software Foundation This product includes software developed at diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-api/pom.xml new/maven-resolver-1.9.26/maven-resolver-api/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-api/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-api/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-api</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-connector-basic/pom.xml new/maven-resolver-1.9.26/maven-resolver-connector-basic/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-connector-basic/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-connector-basic/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-connector-basic</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java new/maven-resolver-1.9.26/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java --- old/maven-resolver-1.9.25/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java 2026-02-12 15:31:48.000000000 +0100 @@ -188,6 +188,8 @@ RunnableErrorForwarder errorForwarder = new RunnableErrorForwarder(); List<ChecksumAlgorithmFactory> checksumAlgorithmFactories = layout.getChecksumAlgorithmFactories(); + boolean first = true; + for (MetadataDownload transfer : safeMetadataDownloads) { URI location = layout.getLocation(transfer.getMetadata(), false); @@ -209,7 +211,12 @@ checksumLocations, null, listener); - executor.execute(errorForwarder.wrap(task)); + if (first) { + task.run(); + first = false; + } else { + executor.execute(errorForwarder.wrap(task)); + } } for (ArtifactDownload transfer : safeArtifactDownloads) { @@ -249,7 +256,12 @@ providedChecksums, listener); } - executor.execute(errorForwarder.wrap(task)); + if (first) { + task.run(); + first = false; + } else { + executor.execute(errorForwarder.wrap(task)); + } } errorForwarder.await(); @@ -267,6 +279,8 @@ Executor executor = getExecutor(parallelPut ? safeArtifactUploads.size() + safeMetadataUploads.size() : 1); RunnableErrorForwarder errorForwarder = new RunnableErrorForwarder(); + boolean first = true; + for (ArtifactUpload transfer : safeArtifactUploads) { URI location = layout.getLocation(transfer.getArtifact(), true); @@ -280,7 +294,12 @@ Runnable task = new PutTaskRunner( location, transfer.getFile(), transfer.getFileTransformer(), checksumLocations, listener); - executor.execute(errorForwarder.wrap(task)); + if (first) { + task.run(); + first = false; + } else { + executor.execute(errorForwarder.wrap(task)); + } } errorForwarder.await(); // make sure all artifacts are PUT before we go with Metadata @@ -298,7 +317,12 @@ Runnable task = new PutTaskRunner(location, transfer.getFile(), checksumLocations, listener); - executor.execute(errorForwarder.wrap(task)); + if (first) { + task.run(); + first = false; + } else { + executor.execute(errorForwarder.wrap(task)); + } } errorForwarder.await(); // make sure each group is done before starting next group diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-demos/.gitignore new/maven-resolver-1.9.26/maven-resolver-demos/.gitignore --- old/maven-resolver-1.9.25/maven-resolver-demos/.gitignore 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-demos/.gitignore 1970-01-01 01:00:00.000000000 +0100 @@ -1,8 +0,0 @@ -target/ -.project -.classpath -.settings/ -.idea -*.iml -*.ipr -*.iws diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-demos/maven-resolver-demo-maven-plugin/pom.xml new/maven-resolver-1.9.26/maven-resolver-demos/maven-resolver-demo-maven-plugin/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-demos/maven-resolver-demo-maven-plugin/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-demos/maven-resolver-demo-maven-plugin/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-demos</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>resolver-demo-maven-plugin</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml new/maven-resolver-1.9.26/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver-demos</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-demo-snippets</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-demos/pom.xml new/maven-resolver-1.9.26/maven-resolver-demos/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-demos/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-demos/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-demos</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-impl/pom.xml new/maven-resolver-1.9.26/maven-resolver-impl/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-impl/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-impl/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-impl</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java new/maven-resolver-1.9.26/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java --- old/maven-resolver-1.9.25/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java 2026-02-12 15:31:48.000000000 +0100 @@ -362,9 +362,10 @@ new LocalArtifactRequest( artifact, filteredRemoteRepositories, request.getRequestContext())); result.setLocalArtifactResult(local); - boolean found = (filter != null && local.isAvailable()) || isLocallyInstalled(local, versionResult); - // with filtering it is availability that drives logic - // without filtering it is simply presence of file that drives the logic + boolean found = (filter != null && local.isAvailable()) + || (filter == null && isLocallyInstalled(local, versionResult)); + // with filtering: availability drives the logic + // without filtering: simply presence of file drives the logic // "interop" logic with simple LRM leads to RRF breakage: hence is ignored when filtering in effect if (found) { if (local.getRepository() != null) { @@ -480,6 +481,18 @@ } } + /** + * This is the method that checks local artifact result if no RRF being used. Unlike with RRF, where only + * {@link LocalArtifactResult#isAvailable()} is checked, here we perform multiple checks: + * <ul> + * <li>if {@link LocalArtifactResult#isAvailable()} is {@code true}, return {@code true}</li> + * <li>if {@link LocalArtifactResult#getRepository()} is instance of {@link LocalRepository}, return {@code true}</li> + * <li>if {@link LocalArtifactResult#getRepository()} is {@code null} and request had zero remote repositories set, return {@code true}</li> + * </ul> + * Note: the third check is interfering with RRF, as RRF may make list of remote repositories empty, that was + * originally non-empty, by eliminating remote repositories to consider. + * Hence, we may use this method ONLY if RRF is inactive. + */ private boolean isLocallyInstalled(LocalArtifactResult lar, VersionResult vr) { if (lar.isAvailable()) { return true; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java new/maven-resolver-1.9.26/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java --- old/maven-resolver-1.9.25/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java 2026-02-12 15:31:48.000000000 +0100 @@ -34,6 +34,7 @@ import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.ArtifactProperties; import org.eclipse.aether.artifact.DefaultArtifact; +import org.eclipse.aether.impl.RemoteRepositoryFilterManager; import org.eclipse.aether.impl.UpdateCheckManager; import org.eclipse.aether.impl.VersionResolver; import org.eclipse.aether.internal.impl.filter.DefaultRemoteRepositoryFilterManager; @@ -63,6 +64,7 @@ import org.eclipse.aether.resolution.VersionResult; import org.eclipse.aether.spi.connector.ArtifactDownload; import org.eclipse.aether.spi.connector.MetadataDownload; +import org.eclipse.aether.spi.connector.filter.RemoteRepositoryFilter; import org.eclipse.aether.spi.connector.filter.RemoteRepositoryFilterSource; import org.eclipse.aether.transfer.ArtifactNotFoundException; import org.eclipse.aether.transfer.ArtifactTransferException; @@ -96,7 +98,7 @@ private HashMap<String, RemoteRepositoryFilterSource> remoteRepositoryFilterSources; - private DefaultRemoteRepositoryFilterManager remoteRepositoryFilterManager; + private RemoteRepositoryFilterManager remoteRepositoryFilterManager; @Before public void setup() { @@ -886,4 +888,115 @@ resolved = resolved.setFile(null); assertEquals(artifact, resolved); } + + @Test + public void testCachedButFilteredOut() { + remoteRepositoryFilterManager = new RemoteRepositoryFilterManager() { + @Override + public RemoteRepositoryFilter getRemoteRepositoryFilter(RepositorySystemSession session) { + return new RemoteRepositoryFilter() { + @Override + public Result acceptArtifact(RemoteRepository remoteRepository, Artifact artifact) { + return new Result() { + @Override + public boolean isAccepted() { + return false; + } + + @Override + public String reasoning() { + return "REFUSED"; + } + }; + } + + @Override + public Result acceptMetadata(RemoteRepository remoteRepository, Metadata metadata) { + return new Result() { + @Override + public boolean isAccepted() { + return true; + } + + @Override + public String reasoning() { + return "OK"; + } + }; + } + }; + } + }; + session.setLocalRepositoryManager(new LocalRepositoryManager() { + public LocalRepository getRepository() { + return null; + } + + public String getPathForRemoteMetadata(Metadata metadata, RemoteRepository repository, String context) { + return null; + } + + public String getPathForRemoteArtifact(Artifact artifact, RemoteRepository repository, String context) { + return null; + } + + public String getPathForLocalMetadata(Metadata metadata) { + return null; + } + + public String getPathForLocalArtifact(Artifact artifact) { + return null; + } + + public LocalArtifactResult find(RepositorySystemSession session, LocalArtifactRequest request) { + LocalArtifactResult result = new LocalArtifactResult(request); + result.setAvailable(false); + try { + result.setFile(TestFileUtils.createTempFile("")); + } catch (IOException e) { + e.printStackTrace(); + } + return result; + } + + public void add(RepositorySystemSession session, LocalArtifactRegistration request) {} + + public LocalMetadataResult find(RepositorySystemSession session, LocalMetadataRequest request) { + LocalMetadataResult result = new LocalMetadataResult(request); + try { + result.setFile(TestFileUtils.createTempFile("")); + } catch (IOException e) { + e.printStackTrace(); + } + return result; + } + + public void add(RepositorySystemSession session, LocalMetadataRegistration request) {} + }); + + // rebuild resolver with our filter + resolver = new DefaultArtifactResolver(); + resolver.setFileProcessor(new TestFileProcessor()); + resolver.setRepositoryEventDispatcher(new StubRepositoryEventDispatcher()); + resolver.setVersionResolver(new StubVersionResolver()); + resolver.setUpdateCheckManager(new StaticUpdateCheckManager(false)); + resolver.setRepositoryConnectorProvider(repositoryConnectorProvider); + resolver.setRemoteRepositoryManager(new StubRemoteRepositoryManager()); + resolver.setSyncContextFactory(new StubSyncContextFactory()); + resolver.setOfflineController(new DefaultOfflineController()); + resolver.setArtifactResolverPostProcessors(Collections.emptyMap()); + resolver.setRemoteRepositoryFilterManager(remoteRepositoryFilterManager); + + ArtifactRequest request = new ArtifactRequest(artifact, null, ""); + request.addRepository(new RemoteRepository.Builder("id", "default", "file:///").build()); + + // resolver should throw + try { + resolver.resolveArtifact(session, request); + fail("Should throw ArtifactResolutionException"); + } catch (ArtifactResolutionException ex) { + // message should contain present=true, available=false, filter message + assertTrue(ex.getMessage().contains("gid:aid:ext:ver (present, but unavailable): REFUSED")); + } + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-named-locks/pom.xml new/maven-resolver-1.9.26/maven-resolver-named-locks/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-named-locks/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-named-locks/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-named-locks</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-named-locks-hazelcast/pom.xml new/maven-resolver-1.9.26/maven-resolver-named-locks-hazelcast/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-named-locks-hazelcast/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-named-locks-hazelcast/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-named-locks-hazelcast</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-named-locks-redisson/pom.xml new/maven-resolver-1.9.26/maven-resolver-named-locks-redisson/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-named-locks-redisson/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-named-locks-redisson/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-named-locks-redisson</artifactId> @@ -45,7 +45,7 @@ <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> - <version>3.52.0</version> + <version>4.2.0</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-spi/pom.xml new/maven-resolver-1.9.26/maven-resolver-spi/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-spi/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-spi/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-spi</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-supplier/pom.xml new/maven-resolver-1.9.26/maven-resolver-supplier/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-supplier/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-supplier/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-supplier</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-test-util/pom.xml new/maven-resolver-1.9.26/maven-resolver-test-util/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-test-util/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-test-util/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-test-util</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-classpath/pom.xml new/maven-resolver-1.9.26/maven-resolver-transport-classpath/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-transport-classpath/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-classpath/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-transport-classpath</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-file/pom.xml new/maven-resolver-1.9.26/maven-resolver-transport-file/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-transport-file/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-file/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-transport-file</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-http/pom.xml new/maven-resolver-1.9.26/maven-resolver-transport-http/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-transport-http/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-http/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,13 +23,13 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-transport-http</artifactId> <name>Maven Artifact Resolver Transport HTTP</name> - <description>A transport implementation for repositories using http:// and https:// URLs.</description> + <description>A transport implementation for repositories using http:// and https:// URLs based on Apache HTTP Client 4.5.</description> <properties> <jettyVersion>9.4.58.v20250814</jettyVersion> @@ -78,7 +78,7 @@ <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> - <version>1.20.0</version> + <version>1.21.0</version> <scope>runtime</scope> </dependency> <dependency> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/AuthSchemePool.java new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/AuthSchemePool.java --- old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/AuthSchemePool.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/AuthSchemePool.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,60 +0,0 @@ -/* - * 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. - */ -package org.eclipse.aether.transport.http; - -import java.util.LinkedList; - -import org.apache.http.auth.AuthScheme; -import org.apache.http.client.config.AuthSchemes; -import org.apache.http.impl.auth.BasicScheme; - -/** - * Pool of (equivalent) auth schemes for a single host. - */ -final class AuthSchemePool { - - private final LinkedList<AuthScheme> authSchemes; - - private String schemeName; - - AuthSchemePool() { - authSchemes = new LinkedList<>(); - } - - public synchronized AuthScheme get() { - AuthScheme authScheme = null; - if (!authSchemes.isEmpty()) { - authScheme = authSchemes.removeLast(); - } else if (AuthSchemes.BASIC.equalsIgnoreCase(schemeName)) { - authScheme = new BasicScheme(); - } - return authScheme; - } - - public synchronized void put(AuthScheme authScheme) { - if (authScheme == null) { - return; - } - if (!authScheme.getSchemeName().equals(schemeName)) { - schemeName = authScheme.getSchemeName(); - authSchemes.clear(); - } - authSchemes.add(authScheme); - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java --- old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java 2026-02-12 15:31:48.000000000 +0100 @@ -29,7 +29,6 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.TimeUnit; -import org.apache.http.HttpHost; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.HttpClientConnectionManager; import org.apache.http.conn.socket.ConnectionSocketFactory; @@ -95,8 +94,6 @@ private final ConcurrentMap<CompoundKey, Object> userTokens; - private final ConcurrentMap<HttpHost, AuthSchemePool> authSchemePools; - private final ConcurrentMap<CompoundKey, Boolean> expectContinues; public static GlobalState get(RepositorySystemSession session) { @@ -126,7 +123,6 @@ private GlobalState() { connectionManagers = new ConcurrentHashMap<>(); userTokens = new ConcurrentHashMap<>(); - authSchemePools = new ConcurrentHashMap<>(); expectContinues = new ConcurrentHashMap<>(); } @@ -216,10 +212,6 @@ } } - public ConcurrentMap<HttpHost, AuthSchemePool> getAuthSchemePools() { - return authSchemePools; - } - public Boolean getExpectContinue(CompoundKey key) { return expectContinues.get(key); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java --- old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java 2026-02-12 15:31:48.000000000 +0100 @@ -49,6 +49,7 @@ import org.apache.http.HttpStatus; import org.apache.http.auth.AuthSchemeProvider; import org.apache.http.auth.AuthScope; +import org.apache.http.client.AuthCache; import org.apache.http.client.CredentialsProvider; import org.apache.http.client.HttpRequestRetryHandler; import org.apache.http.client.HttpResponseException; @@ -76,6 +77,7 @@ import org.apache.http.impl.auth.KerberosSchemeFactory; import org.apache.http.impl.auth.NTLMSchemeFactory; import org.apache.http.impl.auth.SPNegoSchemeFactory; +import org.apache.http.impl.client.BasicAuthCache; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; import org.apache.http.impl.client.HttpClientBuilder; @@ -99,6 +101,7 @@ import org.eclipse.aether.transport.http.RFC9457.RFC9457Reporter; import org.eclipse.aether.util.ConfigUtils; import org.eclipse.aether.util.FileUtils; +import org.eclipse.aether.util.StringDigestUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -155,6 +158,10 @@ private final boolean supportWebDav; + private final AuthCache authCache; + + private static final Object AUTH_CACHE_MUTEX = new Object(); + @SuppressWarnings("checkstyle:methodlength") HttpTransporter( Map<String, ChecksumExtractor> checksumExtractors, @@ -358,6 +365,20 @@ builder.setConnectionReuseStrategy(NoConnectionReuseStrategy.INSTANCE); } + if (session.getCache() != null) { + String authCacheKey = getClass().getSimpleName() + "-" + repository.getId() + "-" + + StringDigestUtil.sha1(repository.toString()); + synchronized (AUTH_CACHE_MUTEX) { + AuthCache cache = (AuthCache) session.getCache().get(session, authCacheKey); + if (cache == null) { + cache = new BasicAuthCache(); + session.getCache().put(session, authCacheKey, cache); + } + this.authCache = cache; + } + } else { + this.authCache = new BasicAuthCache(); + } this.client = builder.build(); } @@ -423,9 +444,11 @@ @Override public int classify(Throwable error) { - if (error instanceof HttpResponseException - && ((HttpResponseException) error).getStatusCode() == HttpStatus.SC_NOT_FOUND) { - return ERROR_NOT_FOUND; + if (error instanceof HttpResponseException) { + int statusCode = ((HttpResponseException) error).getStatusCode(); + if (statusCode == HttpStatus.SC_NOT_FOUND || statusCode == HttpStatus.SC_GONE) { + return ERROR_NOT_FOUND; + } } return ERROR_OTHER; } @@ -502,10 +525,10 @@ private void execute(HttpUriRequest request, EntityGetter getter) throws Exception { try { SharingHttpContext context = new SharingHttpContext(state); + context.setAuthCache(authCache); prepare(request, context); try (CloseableHttpResponse response = client.execute(server, request, context)) { try { - context.close(); handleStatus(response); if (getter != null) { getter.handle(response); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java --- old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java 2026-02-12 15:31:48.000000000 +0100 @@ -19,11 +19,7 @@ package org.eclipse.aether.transport.http; import java.io.Closeable; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import org.apache.http.HttpHost; -import org.apache.http.auth.AuthScheme; import org.apache.http.conn.HttpClientConnectionManager; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.repository.RemoteRepository; @@ -48,8 +44,6 @@ private volatile Boolean webDav; - private final ConcurrentMap<HttpHost, AuthSchemePool> authSchemePools; - LocalState(RepositorySystemSession session, RemoteRepository repo, ConnMgrConfig connMgrConfig) { global = GlobalState.get(session); userToken = this; @@ -57,12 +51,10 @@ connMgr = GlobalState.newConnectionManager(connMgrConfig); userTokenKey = null; expectContinueKey = null; - authSchemePools = new ConcurrentHashMap<>(); } else { connMgr = global.getConnectionManager(connMgrConfig); userTokenKey = new CompoundKey(repo.getId(), repo.getUrl(), repo.getAuthentication(), repo.getProxy()); expectContinueKey = new CompoundKey(repo.getUrl(), repo.getProxy()); - authSchemePools = global.getAuthSchemePools(); } } @@ -107,26 +99,6 @@ this.webDav = webDav; } - public AuthScheme getAuthScheme(HttpHost host) { - AuthSchemePool pool = authSchemePools.get(host); - if (pool != null) { - return pool.get(); - } - return null; - } - - public void setAuthScheme(HttpHost host, AuthScheme authScheme) { - AuthSchemePool pool = authSchemePools.get(host); - if (pool == null) { - AuthSchemePool p = new AuthSchemePool(); - pool = authSchemePools.putIfAbsent(host, p); - if (pool == null) { - pool = p; - } - } - pool.put(authScheme); - } - @Override public void close() { if (global == null) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java --- old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,95 +0,0 @@ -/* - * 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. - */ -package org.eclipse.aether.transport.http; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.apache.http.HttpHost; -import org.apache.http.auth.AuthScheme; -import org.apache.http.client.AuthCache; - -/** - * Auth scheme cache that upon clearing releases all cached schemes into a pool for future reuse by other requests, - * thereby reducing challenge-response roundtrips. - */ -final class SharingAuthCache implements AuthCache { - - private final LocalState state; - - private final ConcurrentHashMap<HttpHost, AuthScheme> authSchemes; - - SharingAuthCache(LocalState state) { - this.state = state; - authSchemes = new ConcurrentHashMap<>(); - } - - private static HttpHost toKey(HttpHost host) { - if (host.getPort() <= 0) { - int port = host.getSchemeName().equalsIgnoreCase("https") ? 443 : 80; - return new HttpHost(host.getHostName(), port, host.getSchemeName()); - } - return host; - } - - @Override - public AuthScheme get(HttpHost host) { - host = toKey(host); - AuthScheme authScheme = authSchemes.get(host); - if (authScheme == null) { - authScheme = state.getAuthScheme(host); - if (authScheme != null) { - authSchemes.put(host, authScheme); - } - } - return authScheme; - } - - @Override - public void put(HttpHost host, AuthScheme authScheme) { - host = toKey(host); - if (authScheme != null) { - authSchemes.put(host, authScheme); - } else { - authSchemes.remove(host); - } - } - - @Override - public void remove(HttpHost host) { - authSchemes.remove(toKey(host)); - } - - @Override - public void clear() { - share(); - authSchemes.clear(); - } - - private void share() { - for (Map.Entry<HttpHost, AuthScheme> entry : authSchemes.entrySet()) { - state.setAuthScheme(entry.getKey(), entry.getValue()); - } - } - - @Override - public String toString() { - return authSchemes.toString(); - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingHttpContext.java new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingHttpContext.java --- old/maven-resolver-1.9.25/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingHttpContext.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingHttpContext.java 2026-02-12 15:31:48.000000000 +0100 @@ -18,8 +18,6 @@ */ package org.eclipse.aether.transport.http; -import java.io.Closeable; - import org.apache.http.client.protocol.HttpClientContext; /** @@ -28,16 +26,12 @@ * @see <a href="http://hc.apache.org/httpcomponents-client-ga/tutorial/html/advanced.html#stateful_conn">Stateful HTTP * connections</a> */ -final class SharingHttpContext extends HttpClientContext implements Closeable { +final class SharingHttpContext extends HttpClientContext { private final LocalState state; - private final SharingAuthCache authCache; - SharingHttpContext(LocalState state) { this.state = state; - authCache = new SharingAuthCache(state); - super.setAttribute(HttpClientContext.AUTH_CACHE, authCache); } @Override @@ -65,9 +59,4 @@ } return super.removeAttribute(id); } - - @Override - public void close() { - authCache.clear(); - } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java new/maven-resolver-1.9.26/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java --- old/maven-resolver-1.9.25/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java 2026-02-12 15:31:48.000000000 +0100 @@ -146,6 +146,7 @@ assertEquals(Transporter.ERROR_OTHER, transporter.classify(new FileNotFoundException())); assertEquals(Transporter.ERROR_OTHER, transporter.classify(new HttpResponseException(403, "Forbidden"))); assertEquals(Transporter.ERROR_NOT_FOUND, transporter.classify(new HttpResponseException(404, "Not Found"))); + assertEquals(Transporter.ERROR_NOT_FOUND, transporter.classify(new HttpResponseException(410, "Gone"))); } @Test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-transport-wagon/pom.xml new/maven-resolver-1.9.26/maven-resolver-transport-wagon/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-transport-wagon/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-transport-wagon/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-transport-wagon</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/maven-resolver-util/pom.xml new/maven-resolver-1.9.26/maven-resolver-util/pom.xml --- old/maven-resolver-1.9.25/maven-resolver-util/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/maven-resolver-util/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,7 +23,7 @@ <parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> </parent> <artifactId>maven-resolver-util</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/pom.xml new/maven-resolver-1.9.26/pom.xml --- old/maven-resolver-1.9.25/pom.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/pom.xml 2026-02-12 15:31:48.000000000 +0100 @@ -23,13 +23,13 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven-parent</artifactId> - <version>45</version> + <version>47</version> <relativePath /> </parent> <groupId>org.apache.maven.resolver</groupId> <artifactId>maven-resolver</artifactId> - <version>1.9.25</version> + <version>1.9.26</version> <packaging>pom</packaging> <name>Maven Artifact Resolver</name> @@ -65,7 +65,7 @@ <scm> <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-resolver.git</connection> <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-resolver.git</developerConnection> - <tag>maven-resolver-1.9.25</tag> + <tag>maven-resolver-1.9.26</tag> <url>https://github.com/apache/maven-resolver/tree/${project.scm.tag}</url> </scm> <issueManagement> @@ -89,15 +89,15 @@ <failsafe.redirectTestOutputToFile>${surefire.redirectTestOutputToFile}</failsafe.redirectTestOutputToFile> <maven.site.path>resolver-archives/resolver-LATEST-1.x</maven.site.path> <checkstyle.violation.ignore>None</checkstyle.violation.ignore> - <sisuVersion>0.9.0.M4</sisuVersion> + <sisuVersion>1.0.0</sisuVersion> <!-- the same version as in Maven 3.9.x --> <guiceVersion>5.1.0</guiceVersion> <slf4jVersion>1.7.36</slf4jVersion> <!-- used by supplier and demo only --> - <mavenVersion>3.9.11</mavenVersion> + <mavenVersion>3.9.12</mavenVersion> <minimalMavenBuildVersion>[3.8.7,)</minimalMavenBuildVersion> <minimalJavaBuildVersion>[1.8.0-362,)</minimalJavaBuildVersion> - <project.build.outputTimestamp>2025-12-06T12:51:05Z</project.build.outputTimestamp> + <project.build.outputTimestamp>2026-02-12T15:31:48Z</project.build.outputTimestamp> <bnd.instructions.additions /> </properties> @@ -246,7 +246,7 @@ <plugin> <groupId>com.github.siom79.japicmp</groupId> <artifactId>japicmp-maven-plugin</artifactId> - <version>0.25.0</version> + <version>0.25.4</version> <configuration> <oldVersion> <!-- We compare same module against 1.8.0 set as "baseline" --> @@ -547,7 +547,7 @@ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>animal-sniffer-maven-plugin</artifactId> - <version>1.26</version> + <version>1.27</version> <configuration> <signature> <groupId>org.codehaus.mojo.signature</groupId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/src/site/markdown/configuration.md new/maven-resolver-1.9.26/src/site/markdown/configuration.md --- old/maven-resolver-1.9.25/src/site/markdown/configuration.md 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/src/site/markdown/configuration.md 2026-02-12 15:31:48.000000000 +0100 @@ -32,7 +32,7 @@ | `aether.checksums.algorithms` | String | Comma-separated list of checksum algorithms with which checksums are validated (downloaded) and generated (uploaded). Resolver by default supports following algorithms: `MD5`, `SHA-1`, `SHA-256` and `SHA-512`. New algorithms can be added by implementing `ChecksumAlgorithmFactory` component. | `"SHA-1,MD5"` | yes | | `aether.conflictResolver.verbose` | boolean | Flag controlling the conflict resolver's verbose mode. | `false` | no | | `aether.connector.basic.threads` or `maven.artifact.threads` | int | Number of threads to use for uploading/downloading. | `5` | no | -| `aether.connector.basic.parallelPut` | boolean | Enables or disables parallel PUT processing (parallel deploys) on basic connector globally or per remote repository. When disabled, connector behaves exactly as in Maven 3.8.x did: GETs are parallel while PUTs are sequential. | `true` | yes | +| `aether.connector.basic.parallelPut` | boolean | Enables or disables parallel PUT processing (parallel deploys) on basic connector globally or per remote repository. When disabled, connector behaves exactly as in Maven 3.8.x did: GETs are parallel while PUTs are sequential. When enabled, connector will issue first PUT individually and only once completed the rest of PUTs in parallel. | `true` | yes | | `aether.connector.classpath.loader` | ClassLoader | `ClassLoader` from which resources should be retrieved which start with the `classpath:` protocol. | `Thread.currentThread().getContextClassLoader()` | no | | `aether.connector.connectTimeout` | long | Connect timeout in milliseconds. | `10000` | yes | | `aether.connector.http.bind.address` | String | Set the outgoing interface (globally or per remote repository). Valid values are local accessible IP addresses or host names. The default will use the system's default route. Invalid addresses will result in HttpTransport creation failure. | - | yes | diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maven-resolver-1.9.25/src/site/xdoc/index.xml new/maven-resolver-1.9.26/src/site/xdoc/index.xml --- old/maven-resolver-1.9.25/src/site/xdoc/index.xml 2025-12-06 12:51:06.000000000 +0100 +++ new/maven-resolver-1.9.26/src/site/xdoc/index.xml 2026-02-12 15:31:48.000000000 +0100 @@ -60,7 +60,7 @@ <area shape="rect" coords="6,284,212,320" href="/ref/current/maven-repository-metadata/" /> <area shape="rect" coords="0,1,266,329" href="/ref/current/" /> <area shape="rect" coords="689,200,775,236" href="/wagon/" /> - <area shape="rect" coords="689,243,791,278" href="https://hc.apache.org/httpcomponents-client-ga/index.html" /> + <area shape="rect" coords="689,243,791,278" href="https://hc.apache.org/httpcomponents-client-4.5.x/index.html" /> <area shape="rect" coords="689,34,774,70" href="https://ant.apache.org/" /> </map> </p> ++++++ maven-resolver-build.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/common.xml new/common.xml --- old/common.xml 2025-12-17 08:33:26.445062069 +0100 +++ new/common.xml 2026-02-12 18:13:26.500467766 +0100 @@ -3,7 +3,7 @@ <project name="common" basedir="."> <property file="build.properties"/> - <property name="project.version" value="1.9.25"/> + <property name="project.version" value="1.9.26"/> <property name="project.groupId" value="org.apache.maven.resolver"/> <property name="project.url" value="https://maven.apache.org/resolver/"/>
