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 2025-07-22 12:54:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/maven-resolver (Old)
 and      /work/SRC/openSUSE:Factory/.maven-resolver.new.8875 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "maven-resolver"

Tue Jul 22 12:54:23 2025 rev:24 rq:1294967 version:1.9.24

Changes:
--------
New Changes file:

--- /dev/null   2025-07-03 00:32:22.244000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.maven-resolver.new.8875/maven-resolver-supplier.changes
 2025-07-22 12:54:41.378029227 +0200
@@ -0,0 +1,500 @@
+-------------------------------------------------------------------
+Tue Jul 22 07:22:59 UTC 2025 - Fridrich Strba <fst...@suse.com>
+
+- Update to upstream version 1.9.24
+  * New features and improvements
+    + Metadata type out of coordinates
+    + RFC9457 implementation
+    + Intern context strings
+  * Maintenance
+    + Align plexus-util version with Maven
+    + Align guice version with Maven
+    + Enable Github Issues (1.9.x branch)
+- Build also maven-resolver-supplier package in separate spec file
+
+-------------------------------------------------------------------
+Tue Jun  3 08:20:23 UTC 2025 - Fridrich Strba <fst...@suse.com>
+
+- Add dependency on objectweb-asm to build with sisu 0.9.0.M4
+
+-------------------------------------------------------------------
+Mon May 26 10:21:33 UTC 2025 - Fridrich Strba <fst...@suse.com>
+
+- Update to upstream version 1.9.23
+  * Bug
+    + MRESOLVER-659: NPE in trusted checksum post processor if
+  * Improvement
+    + MRESOLVER-680: Disable checksum by default for .sigstore.json
+      as well
+    + MRESOLVER-703: HTTP transport should expose config for max
+      redirects
+
+-------------------------------------------------------------------
+Tue Aug 27 08:51:42 UTC 2024 - Fridrich Strba <fst...@suse.com>
+
+- Upgrade to upstream version 1.9.22
+  * Bug
+    + MRESOLVER-572: Resolver-Supplier unusable in OSGi runtimes
+    + MRESOLVER-574: Invalid Cookie set under proxy conditions
+    + MRESOLVER-586: In typical setups, DefaultArtifact copies the
+      same maps over and over again
+    + MRESOLVER-587: Memory consumption improvements
+  * New Feature
+    + MRESOLVER-571: Import o.e.aether packages with the exact same
+      version in OSGi metadata
+  * Improvement
+    + MRESOLVER-570: Remove excessive strictness of OSGi dependency
+      metadata
+  * Task
+    + MRESOLVER-576: Allow co-release of Resolver 1.x and 2.x
+
+-------------------------------------------------------------------
+Wed Jun 12 10:33:43 UTC 2024 - Fridrich Strba <fst...@suse.com>
+
+- Upgrade to upstream version 1.9.20
+  * Bug
+    + MRESOLVER-483: PreorderNodeListGenerator bug: may print
+      trailing ":"
+    + MRESOLVER-522: File locking threads not entering critical
+      region were "oversleeping"
+    + MRESOLVER-547: BF collector always copies artifacts, even
+      when it should not
+  * Improvement
+    + MRESOLVER-536: Skip setting last modified time when FS does
+      not support it
+
+-------------------------------------------------------------------
+Tue Apr  2 17:30:32 UTC 2024 - Fridrich Strba <fst...@suse.com>
+
+- Add dependency on plexus-xml where relevant
+  * this will be needed for smooth upgrade to plexus-utils 4.0.0
+
+-------------------------------------------------------------------
+Tue Jan 30 07:02:35 UTC 2024 - Fridrich Strba <fst...@suse.com>
+
+- Upgrade to upstream version 1.9.18
+  * Bug
+    + MRESOLVER-372: Sporadic AccessDeniedEx on Windows
+    + MRESOLVER-441: Undo FileUtils changes that altered non-Windows
+      execution path
+  * Improvement
+    + MRESOLVER-396: Native transport should retry on HTTP 429
+      (Retry-After)
+  * Task
+    + MRESOLVER-397: Deprecate Guice modules
+    + MRESOLVER-405: Get rid of component name string literals, make
+      them constants and reusable
+    + MRESOLVER-433: Expose configuration for inhibiting
+      Expect-Continue handshake in 1.x
+    + MRESOLVER-435: Refresh download page
+    + MRESOLVER-437: Resolver should not override given HTTP
+      transport default use of expect-continue handshake
+
+-------------------------------------------------------------------
+Thu Sep 21 12:10:01 UTC 2023 - Fridrich Strba <fst...@suse.com>
+
+- Upgrade to upstream version 1.9.15
+  * Bug
+    + MRESOLVER-373: Remove lock upgrading code
+    + MRESOLVER-375: Several key aspects are broken in provided and
+      trusted checksum feature
+    + MRESOLVER-376: StackOverflowError at
+      BfDependencyCollector.processDependency
+    + MRESOLVER-380: Lock diagnostic: attempted lock step is
+      recorded, but on failed attempt is not removed
+    + MRESOLVER-393: Transport HTTP does not retain last modified as
+      sent by remote end
+  * Improvement
+    + MRESOLVER-220: Modify signaling for unsupported operations
+    + MRESOLVER-382: Define local outgoing (bind) address
+    + MRESOLVER-385: Reduce default value for
+      aether.connector.http.connectionMaxTtl
+  * Task
+    + MRESOLVER-378: Update parent POM to 40
+    + MRESOLVER-381: Undo MRESOLVER-373 as it was fixed by other
+      means
+    + MRESOLVER-386: Make all injected ctors public, deprecate all
+      def ctors
+    + MRESOLVER-388: Transport HTTP old codec proper override
+
+-------------------------------------------------------------------
+Mon Jun 19 15:06:45 UTC 2023 - Fridrich Strba <fst...@suse.com>
+
+- Upgrade to upstream version 1.9.12
+  * Bug
+    + [MRESOLVER-371] Unjustified WARNING log added by
+      MRESOLVER-364
+    + [MRESOLVER-361] Unreliable TCP and retries on upload
+    + [MRESOLVER-357] ConflictResolver STANDARD verbosity
+      misbehaves
+    + [MRESOLVER-352] Duplicate METADATA_DOWNLOADING event is
+      being sent
+  * Improvement
+    + [MRESOLVER-360] disable checksum by default for .sigstore
+      in addition to .asc
+  * New Feature
+    + [MRESOLVER-370] Lock factory should dump lock states on
+      failure
+    + [MRESOLVER-353] Make aether.checksums.algorithms settable
+      per remote repository
+  * Task
+    + [MRESOLVER-366] Upgrade build plugins
+    + [MRESOLVER-364] Revert MRESOLVER-132
+    + [MRESOLVER-359] Make build be explicit about build time
+      requirements
+    + [MRESOLVER-356] Remove Guava (is unused)
+    + [MRESOLVER-354] Document expected checksums
+
+-------------------------------------------------------------------
+Wed May  3 10:30:23 UTC 2023 - Fridrich Strba <fst...@suse.com>
+
+- Upgrade to upstream version 1.9.8
+  * Bug
+    + [MRESOLVER-345] Conflict resolution in verbose mode is
+      sensitive to version ordering
+    + [MRESOLVER-348] SslConfig httpSecurityMode change is not
+      detected
+    + [MRESOLVER-339] Preemptive Auth broken when default ports used
+    + [MRESOLVER-325] [REGRESSION] Suddenly seeing I/O errors under
+      windows aborting the build
+    + [MRESOLVER-330] Static name mapper is unusable with file-lock
+      factory
+    + [MRESOLVER-314] Getting "IllegalArgumentException: Comparison
+      method violates its general contract!"
+    + [MRESOLVER-316] DF collector enters endless loop when
+      collecting org.webjars.npm:musquette:1.1.1
+    + [MRESOLVER-298] javax.inject should be provided or optional
+    + [MRESOLVER-305] Evaluate blocked repositories also when
+      retrieving metadata
+    + [MRESOLVER-309] PrefixesRemoteRepositoryFilterSource aborts
+      the build while it should not
+    + [MRESOLVER-313] Artifact file permissions are 0600 and not
+      implicitly set by umask
+    + [MRESOLVER-296] FileProcessor.write( File, InputStream ) is
+      defunct
+    + [MRESOLVER-292] Documented and used param names mismatch
+    + [MRESOLVER-294] Fix JapiCmp configuration and document it
+    + [MRESOLVER-285] File locking on Windows knows to misbehave
+    + [MRESOLVER-246] m-deploy-p will create hashes for hashes
+    + [MRESOLVER-265] Discrepancy between produced and recognized
+      checksums
+    + [MRESOLVER-241] Resolver checksum calculation should be driven
+      by layout
+    + [MRESOLVER-242] When no remote checksums provided by layout,
+      transfer inevitably fails/warns
+    + [MRESOLVER-250] Usage of descriptors map in DataPool prevents
+      gargabe collection
+  * New Feature
+    + [MRESOLVER-32] Support parallel artifact/metadata uploads
+    + [MRESOLVER-319] Support parallel deploy
+    + [MRESOLVER-297] Chained LRM
+    + [MRESOLVER-167] Support forcing specific repositories for
+      artifacts
+    + [MRESOLVER-268] Apply artifact checksum verification for any
+      resolved artifact
+    + [MRESOLVER-274] Introduce Remote Repository Filter feature
+    + [MRESOLVER-275] Introduce trusted checksums source
+    + [MRESOLVER-276] Resolver post-processor
+    + [MRESOLVER-278] BREAKING: Introduce RepositorySystem shutdown
+      hooks
+    + [MRESOLVER-236] Make it possible to resolve .asc on a 'fail'
+      respository.
+  * Improvement
+    + [MRESOLVER-346] Too eager locking
+    + [MRESOLVER-347] Better connection pool configuration (reuse,
+      max TTL, maxPerRoute)
+    + [MRESOLVER-349] Adapter when locking should "give up and
+      retry"
+    + [MRESOLVER-350] Get rid of commons-lang dependency
+    + [MRESOLVER-327] Make tranport-http obey system properties
+      regarding proxy settings
+    + [MRESOLVER-340] Make WebDAV "dance" disabled by default
+    + [MRESOLVER-341] Add option for preemptive PUT Auth
+    + [MRESOLVER-315] Implement preemptive authentication feature
+      for transport-http
+    + [MRESOLVER-328] The transport-http should be able to ignore
+      cert errors
+    + [MRESOLVER-337] Real cause when artifact not found with
+      repository filtering
+    + [MRESOLVER-287] Get rid of deprecated finalize methods
+    + [MRESOLVER-317] Improvements for BF collector
+    + [MRESOLVER-318] Cleanup redundant code and centralize executor
+      handling
+    + [MRESOLVER-303] Make checksum detection reusable
+    + [MRESOLVER-290] Improve file handling resolver wide
+    + [MRESOLVER-7] Download dependency POMs in parallel in BF
+      collector
+    + [MRESOLVER-266] Simplify adapter creation and align
+      configuration for it
+    + [MRESOLVER-269] Allow more compact storage of provided
+      checksums
+    + [MRESOLVER-273] Create more compact File locking layout/mapper
+    + [MRESOLVER-284] BREAKING: Some Sisu parameters needs to be
+      bound
+    + [MRESOLVER-286] Improve basic connector closed state handling
+    + [MRESOLVER-240] Using breadth-first approach to resolve Maven
+      dependencies
+    + [MRESOLVER-247] Avoid unnecessary dependency resolution by a
+      Skip solution based on BFS
+    + [MRESOLVER-248] Make DF and BF collector implementations
+      coexist
+  * Task
+    + [MRESOLVER-326] Resolver transport-http should retry on
+      failures
+    + [MRESOLVER-331] Make DefaultTrackingFileManager write directly
+      to tracking files
+    + [MRESOLVER-333] Distinguish better resolver errors for
+      artifact availability
+    + [MRESOLVER-320] Investigate slower resolving speeds as
+      reported by users
+    + [MRESOLVER-291] Undo MRESOLVER-284
+    + [MRESOLVER-279] Simplify and improve trusted checksum sources
+    + [MRESOLVER-281] Update configurations page with new elements
+    + [MRESOLVER-282] Drop PartialFile
+    + [MRESOLVER-230] Make supported checksum algorithms extensible
+    + [MRESOLVER-231] Extend “smart checksum” feature
+    + [MRESOLVER-234] Introduce “provided” checksums feature
+    + [MRESOLVER-237] Make all checksum mismatches handled same
+    + [MRESOLVER-239] Update and sanitize dependencies
+    + [MRESOLVER-244] Deprecate FileTransformer API
+    + [MRESOLVER-245] Isolate Hazelcast tests
+  * Dependency upgrade
+    + [MRESOLVER-311] Upgrade Parent to 39
+    + [MRESOLVER-293] Update dependencies, align with Maven
+    + [MRESOLVER-272] Update parent POM to 37, remove plugin version
+      overrides, update bnd
+    + [MRESOLVER-280] Upgrade invoker, install, deploy, require
+      maven 3.8.4+
+    + [MRESOLVER-251] Upgrade Redisson to 3.17.5
+    + [MRESOLVER-249] Update Hazelcast to 5.1.1 in
+      named-locks-hazelcast module
+
+-------------------------------------------------------------------
+Sat May 21 19:48:19 UTC 2022 - Fridrich Strba <fst...@suse.com>
+
+- Add an alias for the wagon connector
+
+-------------------------------------------------------------------
+Wed Mar 30 10:13:22 UTC 2022 - Fridrich Strba <fst...@suse.com>
+
+- Build against the standalone JavaEE modules unconditionally
+
+-------------------------------------------------------------------
+Sat Mar 19 13:38:39 UTC 2022 - Fridrich Strba <fst...@suse.com>
+
+- Remove the javax.annotation:javax.annotation-api dependency on
+  distribution versions that do not incorporate the JavaEE modules
+
+-------------------------------------------------------------------
+Thu Mar 17 03:20:22 UTC 2022 - Fridrich Strba <fst...@suse.com>
+
+- Add the glassfish-annotation-api jar to the build classpath
+
+-------------------------------------------------------------------
+Fri Mar 11 12:10:26 UTC 2022 - Fridrich Strba <fst...@suse.com>
+
+- Upgrade to upstream version 1.7.3
+  * Bug
++++ 203 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:Factory/.maven-resolver.new.8875/maven-resolver-supplier.changes
--- /work/SRC/openSUSE:Factory/maven-resolver/maven-resolver.changes    
2025-06-03 17:54:43.900572090 +0200
+++ /work/SRC/openSUSE:Factory/.maven-resolver.new.8875/maven-resolver.changes  
2025-07-22 12:54:41.414030726 +0200
@@ -1,0 +2,14 @@
+Tue Jul 22 07:22:59 UTC 2025 - Fridrich Strba <fst...@suse.com>
+
+- Update to upstream version 1.9.24
+  * New features and improvements
+    + Metadata type out of coordinates
+    + RFC9457 implementation
+    + Intern context strings
+  * Maintenance
+    + Align plexus-util version with Maven
+    + Align guice version with Maven
+    + Enable Github Issues (1.9.x branch)
+- Build also maven-resolver-supplier package in separate spec file
+
+-------------------------------------------------------------------

Old:
----
  maven-resolver-1.9.23-source-release.zip

New:
----
  _multibuild
  maven-resolver-1.9.24-source-release.zip
  maven-resolver-supplier.changes
  maven-resolver-supplier.spec
  pre_checkin.sh

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ maven-resolver-supplier.spec ++++++
#
# spec file for package maven-resolver-supplier
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%global base_name maven-resolver
%define _buildshell /bin/bash
Name:           %{base_name}-supplier
Version:        1.9.24
Release:        0
Summary:        Apache Maven Artifact Resolver library
License:        Apache-2.0
Group:          Development/Libraries/Java
URL:            https://maven.apache.org/resolver/
Source0:        
https://archive.apache.org/dist/maven/resolver/%{base_name}-%{version}-source-release.zip
Source1:        %{base_name}-build.tar.xz
BuildRequires:  ant
BuildRequires:  atinject
BuildRequires:  fdupes
BuildRequires:  javapackages-local
BuildRequires:  maven-lib
BuildRequires:  maven-resolver-api
BuildRequires:  maven-resolver-connector-basic
BuildRequires:  maven-resolver-impl
BuildRequires:  maven-resolver-named-locks
BuildRequires:  maven-resolver-spi
BuildRequires:  maven-resolver-transport-file
BuildRequires:  maven-resolver-transport-http
BuildRequires:  maven-resolver-util
BuildRequires:  sisu-inject
BuildRequires:  slf4j
BuildRequires:  unzip
BuildRequires:  xmvn-install
BuildRequires:  xmvn-resolve
BuildArch:      noarch

%description
A helper module to provide RepositorySystem instances.

%package        javadoc
Summary:        API documentation for %{name}
Group:          Documentation/HTML

%description    javadoc
This package provides %{summary}.

%prep
%setup -q -n %{base_name}-%{version} -a1

# requires internet connection
rm 
maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/{HttpServer,HttpTransporterTest}.java
%pom_remove_dep org.eclipse.jetty: maven-resolver-transport-http

%pom_remove_plugin -r :bnd-maven-plugin
%pom_remove_plugin -r org.codehaus.mojo:animal-sniffer-maven-plugin
%pom_remove_plugin -r :japicmp-maven-plugin
%pom_remove_plugin -r :maven-enforcer-plugin

%pom_disable_module maven-resolver-demos
%pom_disable_module maven-resolver-named-locks-hazelcast
%pom_disable_module maven-resolver-named-locks-redisson
%pom_disable_module maven-resolver-transport-classpath

# generate OSGi manifests
for pom in $(find -mindepth 2 -name pom.xml) ; do
  %pom_add_plugin "org.apache.felix:maven-bundle-plugin" $pom \
  "<configuration>
    <instructions>
      <Bundle-SymbolicName>\${project.groupId}$(sed 
's:./maven-resolver::;s:/pom.xml::;s:-:.:g' <<< $pom)</Bundle-SymbolicName>
      
<Export-Package>!org.eclipse.aether.internal*,org.eclipse.aether*</Export-Package>
      <_nouses>true</_nouses>
    </instructions>
  </configuration>
  <executions>
    <execution>
      <id>create-manifest</id>
      <phase>process-classes</phase>
      <goals><goal>manifest</goal></goals>
    </execution>
  </executions>"
done
%pom_add_plugin "org.apache.maven.plugins:maven-jar-plugin" pom.xml \
"<configuration>
  <archive>
    
<manifestFile>\${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
  </archive>
</configuration>"

%{mvn_package} :maven-resolver __noinstall
%{mvn_alias} 'org.apache.maven.resolver:maven-resolver{*}' 
'org.eclipse.aether:aether@1'
%{mvn_alias} 'org.apache.maven.resolver:maven-resolver-transport-wagon' 
'org.eclipse.aether:aether-connector-wagon'
%{mvn_file} ':%{base_name}{*}' %{base_name}/%{base_name}@1 aether/aether@1

# Try to avoid sucking in dependencies on packages that are not built at this 
moment
%pom_remove_parent .
%pom_remove_plugin :maven-jar-plugin .

%build
mkdir -p lib
build-jar-repository -s lib \
  atinject \
  maven-resolver/maven-resolver-api \
  maven-resolver/maven-resolver-util \
  maven-resolver/maven-resolver-spi \
  maven-resolver/maven-resolver-named-locks \
  maven-resolver/maven-resolver-impl \
  maven-resolver/maven-resolver-connector-basic \
  maven-resolver/maven-resolver-transport-file \
  maven-resolver/maven-resolver-transport-http \
  maven/maven-resolver-provider \
  maven/maven-model-builder \
  org.eclipse.sisu.inject \
  slf4j/api
ant \
  -f %{name}/build.xml \
  -Dtest.skip=true \
  package javadoc

%{mvn_artifact} pom.xml

%{mvn_artifact} %{name}/pom.xml %{name}/target/%{name}-%{version}.jar

%install
%mvn_install -J %{name}/target/site/apidocs
%fdupes -s %{buildroot}%{_javadocdir}

%files -f .mfiles
%license LICENSE NOTICE

%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE

%changelog

++++++ maven-resolver.spec ++++++
--- /var/tmp/diff_new_pack.JtvL6K/_old  2025-07-22 12:54:42.154061542 +0200
+++ /var/tmp/diff_new_pack.JtvL6K/_new  2025-07-22 12:54:42.158061708 +0200
@@ -16,22 +16,23 @@
 #
 
 
+%global base_name maven-resolver
 %define _buildshell /bin/bash
-%bcond_with tests
-Name:           maven-resolver
-Version:        1.9.23
+Name:           %{base_name}
+Version:        1.9.24
 Release:        0
 Summary:        Apache Maven Artifact Resolver library
 License:        Apache-2.0
 Group:          Development/Libraries/Java
 URL:            https://maven.apache.org/resolver/
-Source0:        
https://archive.apache.org/dist/maven/resolver/%{name}-%{version}-source-release.zip
-Source1:        %{name}-build.tar.xz
+Source0:        
https://archive.apache.org/dist/maven/resolver/%{base_name}-%{version}-source-release.zip
+Source1:        %{base_name}-build.tar.xz
 BuildRequires:  ant
 BuildRequires:  apache-commons-lang3
 BuildRequires:  atinject
 BuildRequires:  fdupes
 BuildRequires:  glassfish-annotation-api
+BuildRequires:  google-gson
 BuildRequires:  google-guice
 BuildRequires:  httpcomponents-client
 BuildRequires:  httpcomponents-core
@@ -49,13 +50,6 @@
 BuildRequires:  xmvn-install
 BuildRequires:  xmvn-resolve
 BuildArch:      noarch
-%if %{with tests}
-BuildRequires:  ant-junit
-BuildRequires:  cglib
-BuildRequires:  mockito
-BuildRequires:  objenesis
-BuildRequires:  plexus-containers-component-annotations
-%endif
 
 %description
 Apache Maven Artifact Resolver is a library for working with artifact
@@ -149,7 +143,7 @@
 This package provides %{summary}.
 
 %prep
-%setup -q -a1
+%setup -q -n %{base_name}-%{version} -a1
 
 # requires internet connection
 rm 
maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/{HttpServer,HttpTransporterTest}.java
@@ -158,6 +152,7 @@
 %pom_remove_plugin -r :bnd-maven-plugin
 %pom_remove_plugin -r org.codehaus.mojo:animal-sniffer-maven-plugin
 %pom_remove_plugin -r :japicmp-maven-plugin
+%pom_remove_plugin -r :maven-enforcer-plugin
 
 %pom_disable_module maven-resolver-demos
 %pom_disable_module maven-resolver-named-locks-hazelcast
@@ -193,7 +188,7 @@
 %{mvn_package} :maven-resolver-{*}  @1
 %{mvn_alias} 'org.apache.maven.resolver:maven-resolver{*}' 
'org.eclipse.aether:aether@1'
 %{mvn_alias} 'org.apache.maven.resolver:maven-resolver-transport-wagon' 
'org.eclipse.aether:aether-connector-wagon'
-%{mvn_file} ':maven-resolver{*}' %{name}/maven-resolver@1 aether/aether@1
+%{mvn_file} ':%{base_name}{*}' %{base_name}/%{base_name}@1 aether/aether@1
 
 # Try to avoid sucking in dependencies on packages that are not built at this 
moment
 %pom_remove_parent .
@@ -205,6 +200,7 @@
   atinject \
   commons-lang3 \
   glassfish-annotation-api \
+  google-gson/gson \
   guice/google-guice-no_aop \
   httpcomponents/httpclient \
   httpcomponents/httpcore \
@@ -216,26 +212,16 @@
   plexus/utils \
   plexus/xml \
   slf4j/api
-%if %{with tests}
-build-jar-repository -s lib \
-  cglib/cglib \
-  mockito/mockito-core \
-  objenesis/objenesis \
-  plexus-containers/plexus-component-annotations \
-  slf4j/simple
-%endif
-%{ant} \
-%if %{without tests}
+ant \
   -Dtest.skip=true \
-%endif
   package javadoc
 
 %{mvn_artifact} pom.xml
 
 mkdir -p target/site/apidocs
 for i in api spi test-util util named-locks impl connector-basic 
transport-classpath transport-file transport-http transport-wagon; do
-  cp -r %{name}-${i}/target/site/apidocs target/site/apidocs/%{name}-${i}
-  %{mvn_artifact} %{name}-${i}/pom.xml 
%{name}-${i}/target/%{name}-${i}-%{version}.jar
+  cp -r %{base_name}-${i}/target/site/apidocs 
target/site/apidocs/%{base_name}-${i}
+  %{mvn_artifact} %{base_name}-${i}/pom.xml 
%{base_name}-${i}/target/%{base_name}-${i}-%{version}.jar
 done
 
 %install

++++++ _multibuild ++++++
<multibuild>
  <flavor>maven-resolver-supplier</flavor>
</multibuild>

++++++ maven-resolver-1.9.23-source-release.zip -> 
maven-resolver-1.9.24-source-release.zip ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-resolver-1.9.23/README.md 
new/maven-resolver-1.9.24/README.md
--- old/maven-resolver-1.9.23/README.md 2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/README.md 2025-06-26 19:08:04.000000000 +0200
@@ -17,7 +17,6 @@
 Contributing to [Apache Maven Artifact 
Resolver](https://maven.apache.org/resolver/)
 ======================
 
-[![ASF 
Jira](https://img.shields.io/endpoint?url=https%3A%2F%2Fmaven.apache.org%2Fbadges%2Fasf_jira-MRESOLVER.json)][jira]
 [![Apache License, Version 2.0, January 
2004](https://img.shields.io/github/license/apache/maven.svg?label=License)][license]
 [![Maven 
Central](https://img.shields.io/maven-central/v/org.apache.maven.resolver/maven-resolver.svg?label=Maven%20Central)](https://search.maven.org/artifact/org.apache.maven.resolver/maven-resolver)
 [![Reproducible 
Builds](https://img.shields.io/badge/Reproducible_Builds-ok-green?labelColor=blue)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/apache/maven/resolver/maven-resolver/README.md)
@@ -25,7 +24,7 @@
 [![Jenkins 
tests](https://img.shields.io/jenkins/t/https/ci-maven.apache.org/job/Maven/job/maven-box/job/maven-resolver/job/master.svg)][test-results]
 
 
-You have found a bug or you have an idea for a cool new feature? Contributing
+You have found a bug, or you have an idea for a cool new feature? Contributing
 code is a great way to give something back to the open source community. Before
 you dig right into the code, there are a few guidelines that we need
 contributors to follow so that we can have a chance of keeping on top of
@@ -34,7 +33,6 @@
 Getting Started
 ---------------
 
-+ Make sure you have a [JIRA account](https://issues.apache.org/jira/).
 + Make sure you have a [GitHub account](https://github.com/signup/free).
 + If you're planning to implement a new feature, it makes sense to discuss 
your changes
   on the [dev list][ml-list] first.
@@ -60,37 +58,23 @@
   + Create minimal diffs - disable on save actions like reformat source code 
or organize imports.
     If you feel the source code should be reformatted, create a separate PR 
for this change.
   + Check for unnecessary whitespace with `git diff --check` before committing.
-+ Make sure your commit messages are in the proper format. Your commit message 
should contain the key of the JIRA issue.
-```
-[MRESOLVER-XXX] - Subject of the JIRA Ticket
- Optional supplemental description.
-```
 + Make sure you have added the necessary tests (JUnit/IT) for your changes.
 + Run all the tests with `mvn -Prun-its verify` to assure nothing else was 
accidentally broken.
 + Submit a pull request to the repository in the Apache organization.
-+ Update your JIRA ticket and include a link to the pull request in the ticket.
 
 If you plan to contribute on a regular basis, please consider filing a 
[contributor license agreement][cla].
 
-Making Trivial Changes
-----------------------
-
-For changes of a trivial nature to comments and documentation, it is not always
-necessary to create a new ticket in JIRA.  In this case, it is appropriate to
-start the first line of a commit with '(doc)' instead of a ticket number.
-
 Additional Resources
 --------------------
 
 + [Contributing 
patches](https://maven.apache.org/guides/development/guide-maven-development.html#Creating_and_submitting_a_patch)
-+ [Apache Maven Artifact Resolver project page][jira]
 + [Contributor License Agreement][cla]
 + [General GitHub documentation](https://help.github.com/)
 + [GitHub pull request 
documentation](https://help.github.com/send-pull-requests/)
-+ [Apache Maven Twitter Account](https://twitter.com/ASFMavenProject)
-+ #Maven IRC channel on freenode.org
++ [Apache Maven X Account](https://x.com/ASFMavenProject)
++ [Apache Maven Bluesky Account](https://bsky.app/profile/maven.apache.org)
++ [Apache Maven Mastodon 
Account](https://mastodon.social/deck/@asfmavenproj...@fosstodon.org)
 
-[jira]: https://issues.apache.org/jira/projects/MRESOLVER/
 [license]: https://www.apache.org/licenses/LICENSE-2.0
 [ml-list]: https://maven.apache.org/mailing-lists.html
 [code-style]: https://maven.apache.org/developers/conventions/code.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-resolver-1.9.23/maven-resolver-api/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-api/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-api/pom.xml        2025-05-05 
19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-api/pom.xml        2025-06-26 
19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-api</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
        2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
        2025-06-26 19:08:04.000000000 +0200
@@ -284,7 +284,7 @@
      * @return This request for chaining, never {@code null}.
      */
     public CollectRequest setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
      2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
      2025-06-26 19:08:04.000000000 +0200
@@ -251,7 +251,7 @@
     }
 
     public void setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
     }
 
     public Map<Object, Object> getData() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
  2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
  2025-06-26 19:08:04.000000000 +0200
@@ -93,7 +93,7 @@
      * @return This query for chaining, never {@code null}.
      */
     public LocalArtifactRequest setContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
  2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
  2025-06-26 19:08:04.000000000 +0200
@@ -89,7 +89,7 @@
      * @return This query for chaining, never {@code null}.
      */
     public LocalMetadataRequest setContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicyRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicyRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicyRequest.java
       2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorPolicyRequest.java
       2025-06-26 19:08:04.000000000 +0200
@@ -85,7 +85,7 @@
      * @return This request for chaining, never {@code null}.
      */
     public ArtifactDescriptorPolicyRequest setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java
     2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java
     2025-06-26 19:08:04.000000000 +0200
@@ -138,7 +138,7 @@
      * @return This request for chaining, never {@code null}.
      */
     public ArtifactDescriptorRequest setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java
       2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java
       2025-06-26 19:08:04.000000000 +0200
@@ -176,7 +176,7 @@
      * @return This request for chaining, never {@code null}.
      */
     public ArtifactRequest setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataRequest.java
       2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataRequest.java
       2025-06-26 19:08:04.000000000 +0200
@@ -129,7 +129,7 @@
      * @return This request for chaining, never {@code null}.
      */
     public MetadataRequest setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeRequest.java
   2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeRequest.java
   2025-06-26 19:08:04.000000000 +0200
@@ -138,7 +138,7 @@
      * @return This request for chaining, never {@code null}.
      */
     public VersionRangeRequest setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRequest.java
 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRequest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRequest.java
        2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRequest.java
        2025-06-26 19:08:04.000000000 +0200
@@ -138,7 +138,7 @@
      * @return This request for chaining, never {@code null}.
      */
     public VersionRequest setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-connector-basic/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-connector-basic/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-connector-basic/pom.xml    
2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-connector-basic/pom.xml    
2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-connector-basic</artifactId>
@@ -62,6 +62,7 @@
     <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-demos/maven-resolver-demo-maven-plugin/pom.xml
 
new/maven-resolver-1.9.24/maven-resolver-demos/maven-resolver-demo-maven-plugin/pom.xml
--- 
old/maven-resolver-1.9.23/maven-resolver-demos/maven-resolver-demo-maven-plugin/pom.xml
     2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-demos/maven-resolver-demo-maven-plugin/pom.xml
     2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver-demos</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>resolver-demo-maven-plugin</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
 
new/maven-resolver-1.9.24/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
--- 
old/maven-resolver-1.9.23/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
 2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
 2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver-demos</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-demo-snippets</artifactId>
@@ -86,6 +86,7 @@
     <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
       <optional>true</optional>
     </dependency>
     <dependency>
@@ -98,11 +99,6 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-xml</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-resolver-1.9.23/maven-resolver-demos/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-demos/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-demos/pom.xml      2025-05-05 
19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-demos/pom.xml      2025-06-26 
19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-demos</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-resolver-1.9.23/maven-resolver-impl/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-impl/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-impl/pom.xml       2025-05-05 
19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-impl/pom.xml       2025-06-26 
19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-impl</artifactId>
@@ -76,6 +76,7 @@
     <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
       <scope>provided</scope>
       <optional>true</optional>
     </dependency>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalPathComposer.java
 
new/maven-resolver-1.9.24/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalPathComposer.java
--- 
old/maven-resolver-1.9.23/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalPathComposer.java
  2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalPathComposer.java
  2025-06-26 19:08:04.000000000 +0200
@@ -89,13 +89,19 @@
     }
 
     private String insertRepositoryKey(String metadataType, String 
repositoryKey) {
-        String result;
-        int idx = metadataType.indexOf('.');
-        if (idx < 0) {
-            result = metadataType + '-' + repositoryKey;
+        if (metadataType.contains("/") && !metadataType.endsWith("/")) {
+            int lastSlash = metadataType.lastIndexOf('/');
+            return metadataType.substring(0, lastSlash + 1)
+                    + insertRepositoryKey(metadataType.substring(lastSlash + 
1), repositoryKey);
         } else {
-            result = metadataType.substring(0, idx) + '-' + repositoryKey + 
metadataType.substring(idx);
+            String result;
+            int idx = metadataType.indexOf('.');
+            if (idx < 0) {
+                result = metadataType + '-' + repositoryKey;
+            } else {
+                result = metadataType.substring(0, idx) + '-' + repositoryKey 
+ metadataType.substring(idx);
+            }
+            return result;
         }
-        return result;
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-named-locks/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-named-locks/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-named-locks/pom.xml        
2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-named-locks/pom.xml        
2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-named-locks</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-named-locks-hazelcast/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-named-locks-hazelcast/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-named-locks-hazelcast/pom.xml      
2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-named-locks-hazelcast/pom.xml      
2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-named-locks-hazelcast</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-named-locks-redisson/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-named-locks-redisson/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-named-locks-redisson/pom.xml       
2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-named-locks-redisson/pom.xml       
2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-named-locks-redisson</artifactId>
@@ -45,7 +45,7 @@
     <dependency>
       <groupId>org.redisson</groupId>
       <artifactId>redisson</artifactId>
-      <version>3.46.0</version>
+      <version>3.50.0</version>
       <exclusions>
         <exclusion>
           <groupId>org.slf4j</groupId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-resolver-1.9.23/maven-resolver-spi/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-spi/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-spi/pom.xml        2025-05-05 
19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-spi/pom.xml        2025-06-26 
19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-spi</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactDownload.java
 
new/maven-resolver-1.9.24/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactDownload.java
--- 
old/maven-resolver-1.9.23/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactDownload.java
   2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactDownload.java
   2025-06-26 19:08:04.000000000 +0200
@@ -143,7 +143,7 @@
      * @return This transfer for chaining, never {@code null}.
      */
     public ArtifactDownload setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/MetadataDownload.java
 
new/maven-resolver-1.9.24/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/MetadataDownload.java
--- 
old/maven-resolver-1.9.23/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/MetadataDownload.java
   2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/MetadataDownload.java
   2025-06-26 19:08:04.000000000 +0200
@@ -110,7 +110,7 @@
      * @return This transfer for chaining, never {@code null}.
      */
     public MetadataDownload setRequestContext(String context) {
-        this.context = (context != null) ? context : "";
+        this.context = (context != null) ? context.intern() : "";
         return this;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-supplier/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-supplier/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-supplier/pom.xml   2025-05-05 
19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-supplier/pom.xml   2025-06-26 
19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-supplier</artifactId>
@@ -102,11 +102,6 @@
     </dependency>
 
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-xml</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <scope>test</scope>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-test-util/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-test-util/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-test-util/pom.xml  2025-05-05 
19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-test-util/pom.xml  2025-06-26 
19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-test-util</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-classpath/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-transport-classpath/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-transport-classpath/pom.xml        
2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-transport-classpath/pom.xml        
2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-transport-classpath</artifactId>
@@ -53,6 +53,7 @@
     <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-file/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-transport-file/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-transport-file/pom.xml     
2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-transport-file/pom.xml     
2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-transport-file</artifactId>
@@ -49,6 +49,7 @@
     <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-transport-http/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-transport-http/pom.xml     
2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-transport-http/pom.xml     
2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-transport-http</artifactId>
@@ -49,6 +49,11 @@
       <artifactId>maven-resolver-util</artifactId>
     </dependency>
     <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>2.13.1</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.httpcomponents</groupId>
       <artifactId>httpclient</artifactId>
       <version>4.5.14</version>
@@ -91,6 +96,7 @@
     <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
--- 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
        2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
        2025-06-26 19:08:04.000000000 +0200
@@ -95,6 +95,8 @@
 import org.eclipse.aether.spi.connector.transport.TransportTask;
 import org.eclipse.aether.transfer.NoTransporterException;
 import org.eclipse.aether.transfer.TransferCancelledException;
+import org.eclipse.aether.transport.http.RFC9457.HttpRFC9457Exception;
+import org.eclipse.aether.transport.http.RFC9457.RFC9457Reporter;
 import org.eclipse.aether.util.ConfigUtils;
 import org.eclipse.aether.util.FileUtils;
 import org.slf4j.Logger;
@@ -380,6 +382,10 @@
     private static HttpHost toHost(Proxy proxy) {
         HttpHost host = null;
         if (proxy != null) {
+            // in Maven, the proxy.protocol is used for proxy matching against 
remote repository protocol; no TLS proxy
+            // support
+            // https://github.com/apache/maven/issues/2519
+            // https://github.com/apache/maven-resolver/issues/745
             host = new HttpHost(proxy.getHost(), proxy.getPort());
         }
         return host;
@@ -624,9 +630,12 @@
         }
     }
 
-    private void handleStatus(CloseableHttpResponse response) throws 
HttpResponseException {
+    private void handleStatus(CloseableHttpResponse response) throws 
HttpResponseException, HttpRFC9457Exception {
         int status = response.getStatusLine().getStatusCode();
         if (status >= 300) {
+            if (RFC9457Reporter.INSTANCE.isRFC9457Message(response)) {
+                RFC9457Reporter.INSTANCE.generateException(response);
+            }
             throw new HttpResponseException(status, 
response.getStatusLine().getReasonPhrase() + " (" + status + ")");
         }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/HttpRFC9457Exception.java
 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/HttpRFC9457Exception.java
--- 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/HttpRFC9457Exception.java
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/HttpRFC9457Exception.java
   2025-06-26 19:08:04.000000000 +0200
@@ -0,0 +1,53 @@
+/*
+ * 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.RFC9457;
+
+import java.io.IOException;
+
+/**
+ * Exception thrown by {@code HttpTransporter} in case of errors.
+ *
+ * @since 1.9.24
+ */
+public class HttpRFC9457Exception extends IOException {
+    private final int statusCode;
+
+    private final String reasonPhrase;
+
+    private final RFC9457Payload payload;
+
+    public HttpRFC9457Exception(int statusCode, String reasonPhrase, 
RFC9457Payload payload) {
+        super(payload.toString());
+        this.statusCode = statusCode;
+        this.reasonPhrase = reasonPhrase;
+        this.payload = payload;
+    }
+
+    public int getStatusCode() {
+        return statusCode;
+    }
+
+    public String getReasonPhrase() {
+        return reasonPhrase;
+    }
+
+    public RFC9457Payload getPayload() {
+        return payload;
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Parser.java
 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Parser.java
--- 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Parser.java
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Parser.java
  2025-06-26 19:08:04.000000000 +0200
@@ -0,0 +1,73 @@
+/*
+ * 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.RFC9457;
+
+import java.lang.reflect.Type;
+import java.net.URI;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
+
+public class RFC9457Parser {
+    private static final Gson GSON = new GsonBuilder()
+            .registerTypeAdapter(RFC9457Payload.class, new 
RFC9457PayloadAdapter())
+            .create();
+
+    public static RFC9457Payload parse(String data) {
+        return GSON.fromJson(data, RFC9457Payload.class);
+    }
+
+    private static class RFC9457PayloadAdapter implements 
JsonDeserializer<RFC9457Payload> {
+        @Override
+        public RFC9457Payload deserialize(
+                final JsonElement json, final Type typeOfT, final 
JsonDeserializationContext context)
+                throws JsonParseException {
+            JsonObject asJsonObject = json.getAsJsonObject();
+            URI type = parseNullableURI(asJsonObject, "type", "about:blank");
+            Integer status = parseStatus(asJsonObject);
+            String title = parseNullableString(asJsonObject, "title");
+            String detail = parseNullableString(asJsonObject, "detail");
+            URI instance = parseNullableURI(asJsonObject, "instance", null);
+            return new RFC9457Payload(type, status, title, detail, instance);
+        }
+    }
+
+    private static Integer parseStatus(JsonObject jsonObject) {
+        return jsonObject.get("status") == null || 
jsonObject.get("status").isJsonNull()
+                ? null
+                : jsonObject.get("status").getAsInt();
+    }
+
+    private static String parseNullableString(JsonObject jsonObject, String 
key) {
+        return jsonObject.get(key) == null || jsonObject.get(key).isJsonNull()
+                ? null
+                : jsonObject.get(key).getAsString();
+    }
+
+    private static URI parseNullableURI(JsonObject jsonObject, String key, 
String defaultValue) {
+        return !jsonObject.has(key) || jsonObject.get(key).isJsonNull()
+                ? defaultValue != null ? URI.create(defaultValue) : null
+                : URI.create(jsonObject.get(key).getAsString());
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Payload.java
 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Payload.java
--- 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Payload.java
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Payload.java
 2025-06-26 19:08:04.000000000 +0200
@@ -0,0 +1,78 @@
+/*
+ * 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.RFC9457;
+
+import java.net.URI;
+
+public class RFC9457Payload {
+    public static final RFC9457Payload INSTANCE = new RFC9457Payload();
+
+    private final URI type;
+
+    private final Integer status;
+
+    private final String title;
+
+    private final String detail;
+
+    private final URI instance;
+
+    private RFC9457Payload() {
+        this(null, null, null, null, null);
+    }
+
+    public RFC9457Payload(
+            final URI type, final Integer status, final String title, final 
String detail, final URI instance) {
+        this.type = type;
+        this.status = status;
+        this.title = title;
+        this.detail = detail;
+        this.instance = instance;
+    }
+
+    public URI getType() {
+        return type;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getDetail() {
+        return detail;
+    }
+
+    public URI getInstance() {
+        return instance;
+    }
+
+    @Override
+    public String toString() {
+        return "RFC9457Payload {" + "type="
+                + type + ", status="
+                + status + ", title='"
+                + title + ", detail='"
+                + detail + ", instance="
+                + instance + '}';
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Reporter.java
 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Reporter.java
--- 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Reporter.java
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/RFC9457/RFC9457Reporter.java
        2025-06-26 19:08:04.000000000 +0200
@@ -0,0 +1,80 @@
+/*
+ * 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.RFC9457;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+
+import org.apache.http.Header;
+import org.apache.http.HttpHeaders;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.util.EntityUtils;
+
+public class RFC9457Reporter {
+    public static final RFC9457Reporter INSTANCE = new RFC9457Reporter();
+
+    public boolean isRFC9457Message(CloseableHttpResponse response) {
+        Header[] headers = response.getHeaders(HttpHeaders.CONTENT_TYPE);
+        if (headers.length > 0) {
+            String contentType = headers[0].getValue();
+            return hasRFC9457ContentType(contentType);
+        }
+        return false;
+    }
+
+    public void generateException(CloseableHttpResponse response) throws 
HttpRFC9457Exception {
+        int statusCode = getStatusCode(response);
+        String reasonPhrase = getReasonPhrase(response);
+
+        String body;
+        try {
+            body = getBody(response);
+        } catch (IOException ignore) {
+            // No body found but it is representing a RFC 9457 message due to 
the content type.
+            throw new HttpRFC9457Exception(statusCode, reasonPhrase, 
RFC9457Payload.INSTANCE);
+        }
+
+        if (body != null && !body.isEmpty()) {
+            RFC9457Payload rfc9457Payload = RFC9457Parser.parse(body);
+            throw new HttpRFC9457Exception(statusCode, reasonPhrase, 
rfc9457Payload);
+        }
+        throw new HttpRFC9457Exception(statusCode, reasonPhrase, 
RFC9457Payload.INSTANCE);
+    }
+
+    private String getBody(final CloseableHttpResponse response) throws 
IOException {
+        return EntityUtils.toString(response.getEntity(), 
StandardCharsets.UTF_8);
+    }
+
+    private int getStatusCode(final CloseableHttpResponse response) {
+        return response.getStatusLine().getStatusCode();
+    }
+
+    private String getReasonPhrase(final CloseableHttpResponse response) {
+        String reasonPhrase = response.getStatusLine().getReasonPhrase();
+        if (reasonPhrase == null || reasonPhrase.isEmpty()) {
+            return "";
+        }
+        int statusCode = getStatusCode(response);
+        return reasonPhrase + " (" + statusCode + ")";
+    }
+
+    private boolean hasRFC9457ContentType(String contentType) {
+        return "application/problem+json".equals(contentType);
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
--- 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
     2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
     2025-06-26 19:08:04.000000000 +0200
@@ -25,6 +25,9 @@
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
@@ -35,6 +38,8 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import com.google.gson.Gson;
+import org.eclipse.aether.transport.http.RFC9457.RFC9457Payload;
 import org.eclipse.aether.util.ChecksumUtils;
 import org.eclipse.jetty.http.HttpHeader;
 import org.eclipse.jetty.http.HttpMethod;
@@ -116,7 +121,7 @@
 
     private final AtomicInteger connectionsToClose = new AtomicInteger(0);
 
-    private List<LogEntry> logEntries = Collections.synchronizedList(new 
ArrayList<>());
+    private final List<LogEntry> logEntries = Collections.synchronizedList(new 
ArrayList<>());
 
     public String getHost() {
         return "localhost";
@@ -229,6 +234,7 @@
         handlers.addHandler(new AuthHandler());
         handlers.addHandler(new RedirectHandler());
         handlers.addHandler(new RepoHandler());
+        handlers.addHandler(new RFC9457Handler());
 
         server = new Server();
         httpConnector = new ServerConnector(server);
@@ -278,7 +284,7 @@
                 }
                 headers.put(name, buffer.toString());
             }
-            logEntries.add(new LogEntry(req.getMethod(), req.getPathInfo(), 
Collections.unmodifiableMap(headers)));
+            logEntries.add(new LogEntry(req.getMethod(), req.getOriginalURI(), 
Collections.unmodifiableMap(headers)));
         }
     }
 
@@ -478,6 +484,46 @@
         }
     }
 
+    private class RFC9457Handler extends AbstractHandler {
+        @Override
+        public void handle(
+                final String target,
+                final Request req,
+                final HttpServletRequest request,
+                final HttpServletResponse response)
+                throws IOException {
+            String path = req.getPathInfo().substring(1);
+
+            if (!path.startsWith("rfc9457/")) {
+                return;
+            }
+            req.setHandled(true);
+
+            if (HttpMethod.GET.is(req.getMethod())) {
+                response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+                response.setHeader(HttpHeader.CONTENT_TYPE.asString(), 
"application/problem+json");
+                RFC9457Payload rfc9457Payload;
+                if (path.endsWith("missing_fields.txt")) {
+                    rfc9457Payload = new RFC9457Payload(null, null, null, 
null, null);
+                } else {
+                    rfc9457Payload = new RFC9457Payload(
+                            
URI.create("https://example.com/probs/out-of-credit";),
+                            HttpServletResponse.SC_FORBIDDEN,
+                            "You do not have enough credit.",
+                            "Your current balance is 30, but that costs 50.",
+                            URI.create("/account/12345/msgs/abc"));
+                }
+                try (OutputStream outputStream = response.getOutputStream()) {
+                    
outputStream.write(buildRFC9457Message(rfc9457Payload).getBytes(StandardCharsets.UTF_8));
+                }
+            }
+        }
+    }
+
+    private String buildRFC9457Message(RFC9457Payload payload) {
+        return new Gson().toJson(payload, RFC9457Payload.class);
+    }
+
     static boolean checkBasicAuth(String credentials, String username, String 
password) {
         if (credentials != null) {
             int space = credentials.indexOf(' ');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
    2025-05-05 19:56:42.000000000 +0200
+++ 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
    2025-06-26 19:08:04.000000000 +0200
@@ -49,6 +49,7 @@
 import org.eclipse.aether.spi.connector.transport.TransporterFactory;
 import org.eclipse.aether.transfer.NoTransporterException;
 import org.eclipse.aether.transfer.TransferCancelledException;
+import org.eclipse.aether.transport.http.RFC9457.HttpRFC9457Exception;
 import org.eclipse.aether.util.repository.AuthenticationBuilder;
 import org.junit.After;
 import org.junit.Before;
@@ -1246,4 +1247,36 @@
         newTransporter("HTTPS://localhost");
         newTransporter("HttpS://localhost");
     }
+
+    @Test
+    public void testGetRFC9457Response() throws Exception {
+        try {
+            transporter.get(new GetTask(URI.create("rfc9457/file.txt")));
+            fail("Expected error");
+        } catch (HttpRFC9457Exception e) {
+            assertEquals(403, e.getStatusCode());
+            assertEquals(e.getPayload().getType(), 
URI.create("https://example.com/probs/out-of-credit";));
+            assertEquals(403, e.getPayload().getStatus().intValue());
+            assertEquals("You do not have enough credit.", 
e.getPayload().getTitle());
+            assertEquals(
+                    "Your current balance is 30, but that costs 50.",
+                    e.getPayload().getDetail());
+            assertEquals(e.getPayload().getInstance(), 
URI.create("/account/12345/msgs/abc"));
+        }
+    }
+
+    @Test
+    public void testGetRFC9457ResponseWithMissingFields() throws Exception {
+        try {
+            transporter.get(new 
GetTask(URI.create("rfc9457/missing_fields.txt")));
+            fail("Expected error");
+        } catch (HttpRFC9457Exception e) {
+            assertEquals(403, e.getStatusCode());
+            assertEquals(e.getPayload().getType(), URI.create("about:blank"));
+            assertNull(e.getPayload().getStatus());
+            assertNull(e.getPayload().getTitle());
+            assertNull(e.getPayload().getDetail());
+            assertNull(e.getPayload().getInstance());
+        }
+    }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/RFC9457/RFC9457ParserTest.java
 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/RFC9457/RFC9457ParserTest.java
--- 
old/maven-resolver-1.9.23/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/RFC9457/RFC9457ParserTest.java
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/maven-resolver-1.9.24/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/RFC9457/RFC9457ParserTest.java
      2025-06-26 19:08:04.000000000 +0200
@@ -0,0 +1,76 @@
+/*
+ * 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.RFC9457;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+public class RFC9457ParserTest {
+
+    @Test
+    public void testParseAllFields() {
+        String data =
+                
"{\"type\":\"https://example.com/error\",\"status\":400,\"title\":\"Bad 
Request\",\"detail\":\"The request could not be understood by the server due to 
malformed syntax.\",\"instance\":\"https://example.com/error/400\"}";;
+        RFC9457Payload payload = RFC9457Parser.parse(data);
+
+        assertEquals("https://example.com/error";, 
payload.getType().toString());
+        assertEquals(400, payload.getStatus().intValue());
+        assertEquals("Bad Request", payload.getTitle());
+        assertEquals("The request could not be understood by the server due to 
malformed syntax.", payload.getDetail());
+        assertEquals("https://example.com/error/400";, 
payload.getInstance().toString());
+    }
+
+    @Test
+    public void testParseWithMissingFields() {
+        String data = 
"{\"type\":\"https://example.com/other_error\",\"status\":403}";;
+        RFC9457Payload payload = RFC9457Parser.parse(data);
+
+        assertEquals("https://example.com/other_error";, 
payload.getType().toString());
+        assertEquals(403, payload.getStatus().intValue());
+        assertNull(payload.getTitle());
+        assertNull(payload.getDetail());
+        assertNull(payload.getInstance());
+    }
+
+    @Test
+    public void testParseWithNoFields() {
+        String data = "{}";
+        RFC9457Payload payload = RFC9457Parser.parse(data);
+
+        assertEquals("about:blank", payload.getType().toString());
+        assertNull(payload.getStatus());
+        assertNull(payload.getTitle());
+        assertNull(payload.getDetail());
+        assertNull(payload.getInstance());
+    }
+
+    @Test
+    public void testParseWithNullFields() {
+        String data = 
"{\"type\":null,\"status\":null,\"title\":null,\"detail\":null,\"instance\":null}";
+        RFC9457Payload payload = RFC9457Parser.parse(data);
+
+        assertEquals("about:blank", payload.getType().toString());
+        assertNull(payload.getStatus());
+        assertNull(payload.getTitle());
+        assertNull(payload.getDetail());
+        assertNull(payload.getInstance());
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/maven-resolver-1.9.23/maven-resolver-transport-wagon/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-transport-wagon/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-transport-wagon/pom.xml    
2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-transport-wagon/pom.xml    
2025-06-26 19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-transport-wagon</artifactId>
@@ -67,11 +67,6 @@
       <optional>true</optional>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-xml</artifactId>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
       <groupId>org.eclipse.sisu</groupId>
       <artifactId>org.eclipse.sisu.plexus</artifactId>
       <optional>true</optional>
@@ -79,6 +74,7 @@
     <dependency>
       <groupId>com.google.inject</groupId>
       <artifactId>guice</artifactId>
+      <classifier>classes</classifier>
       <scope>test</scope>
     </dependency>
     <dependency>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-resolver-1.9.23/maven-resolver-util/pom.xml 
new/maven-resolver-1.9.24/maven-resolver-util/pom.xml
--- old/maven-resolver-1.9.23/maven-resolver-util/pom.xml       2025-05-05 
19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/maven-resolver-util/pom.xml       2025-06-26 
19:08:04.000000000 +0200
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.maven.resolver</groupId>
     <artifactId>maven-resolver</artifactId>
-    <version>1.9.23</version>
+    <version>1.9.24</version>
   </parent>
 
   <artifactId>maven-resolver-util</artifactId>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-resolver-1.9.23/pom.xml 
new/maven-resolver-1.9.24/pom.xml
--- old/maven-resolver-1.9.23/pom.xml   2025-05-05 19:56:42.000000000 +0200
+++ new/maven-resolver-1.9.24/pom.xml   2025-06-26 19:08:04.000000000 +0200
@@ -23,13 +23,13 @@
   <parent>
     <groupId>org.apache.maven</groupId>
     <artifactId>maven-parent</artifactId>
-    <version>44</version>
+    <version>45</version>
     <relativePath />
   </parent>
 
   <groupId>org.apache.maven.resolver</groupId>
   <artifactId>maven-resolver</artifactId>
-  <version>1.9.23</version>
+  <version>1.9.24</version>
   <packaging>pom</packaging>
 
   <name>Maven Artifact Resolver</name>
@@ -65,12 +65,12 @@
   <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.23</tag>
+    <tag>maven-resolver-1.9.24</tag>
     <url>https://github.com/apache/maven-resolver/tree/${project.scm.tag}</url>
   </scm>
   <issueManagement>
-    <system>jira</system>
-    <url>https://issues.apache.org/jira/browse/MRESOLVER</url>
+    <system>GitHub Issues</system>
+    <url>https://github.com/apache/maven-resolver/issues</url>
   </issueManagement>
   <ciManagement>
     <system>Jenkins</system>
@@ -89,14 +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.M3</sisuVersion>
-    <guiceVersion>6.0.0</guiceVersion>
+    <sisuVersion>0.9.0.M4</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.9</mavenVersion>
+    <mavenVersion>3.9.10</mavenVersion>
     <minimalMavenBuildVersion>[3.8.7,)</minimalMavenBuildVersion>
     <minimalJavaBuildVersion>[1.8.0-362,)</minimalJavaBuildVersion>
-    
<project.build.outputTimestamp>2025-05-05T19:56:41Z</project.build.outputTimestamp>
+    
<project.build.outputTimestamp>2025-06-26T19:08:04Z</project.build.outputTimestamp>
     <bnd.instructions.additions />
   </properties>
 
@@ -192,12 +193,8 @@
       <dependency>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-utils</artifactId>
-        <version>4.0.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-xml</artifactId>
-        <version>3.0.2</version>
+        <!-- the same version as in Maven 3.9,x -->
+        <version>3.6.0</version>
       </dependency>
 
       <dependency>
@@ -216,17 +213,12 @@
         <groupId>org.eclipse.sisu</groupId>
         <artifactId>org.eclipse.sisu.plexus</artifactId>
         <version>${sisuVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>javax.enterprise</groupId>
-            <artifactId>cdi-api</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
       <dependency>
         <groupId>com.google.inject</groupId>
         <artifactId>guice</artifactId>
         <version>${guiceVersion}</version>
+        <classifier>classes</classifier>
       </dependency>
       <dependency>
         <groupId>com.google.guava</groupId>
@@ -509,6 +501,38 @@
     </pluginManagement>
     <plugins>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>ensure-no-guice-with-asm</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <bannedDependencies>
+                  <excludes>
+                    <!-- we use com.google.inject:classes:guice -->
+                    <exclude>com.google.inject:guice:*</exclude>
+                  </excludes>
+                  <includes>
+                    <include>com.google.inject:guice:*:jar:*:classes</include>
+                  </includes>
+                  <message>use guice without asm shaded in.</message>
+                </bannedDependencies>
+                <bannedDependencies>
+                  <excludes>
+                    <exclude>org.codehaus.plexus:plexus-xml</exclude>
+                  </excludes>
+                  <message>plexus-xml should not be used with plexus-util 
3.6.0</message>
+                </bannedDependencies>
+              </rules>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
         <groupId>biz.aQute.bnd</groupId>
         <artifactId>bnd-maven-plugin</artifactId>
         <executions>

++++++ 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-05-11 06:19:27.569424682 +0200
+++ new/common.xml      2025-06-27 06:45:25.048129550 +0200
@@ -3,7 +3,7 @@
 <project name="common" basedir=".">
 
   <property file="build.properties"/>
-  <property name="project.version" value="1.9.23"/>
+  <property name="project.version" value="1.9.24"/>
   <property name="project.groupId" value="org.apache.maven.resolver"/>
   <property name="project.url" value="https://maven.apache.org/resolver/"/>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/maven-resolver-supplier/build.xml 
new/maven-resolver-supplier/build.xml
--- old/maven-resolver-supplier/build.xml       1970-01-01 01:00:00.000000000 
+0100
+++ new/maven-resolver-supplier/build.xml       2025-07-01 09:21:22.622911134 
+0200
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="maven-resolver-supplier" default="package" basedir=".">
+
+  <!-- ====================================================================== 
-->
+  <!-- Build environment properties                                           
-->
+  <!-- ====================================================================== 
-->
+
+  <include file="../common.xml"/>
+  <property file="build.properties"/>
+
+  <property name="project.artifactId" value="maven-resolver-supplier"/>
+  <property name="project.name" value="Maven Artifact Resolver Instance 
Supplier"/>
+  <property name="project.description"
+            value="A helper module to provide RepositorySystem instances."/>
+
+  <property name="build.finalName" 
value="${project.artifactId}-${project.version}"/>
+  <property name="build.dir" value="target"/>
+  <property name="build.outputDir" value="${build.dir}/classes"/>
+  <property name="build.srcDir" value="src/main/java"/>
+  <property name="build.resourceDir" value="src/main/resources"/>
+  <property name="build.testOutputDir" value="${build.dir}/test-classes"/>
+  <property name="build.testDir" value="src/test/java"/>
+  <property name="build.testResourceDir" value="src/test/resources"/>
+  <property name="test.reports" value="${build.dir}/test-reports"/>
+  <property name="reporting.outputDirectory" value="${build.dir}/site"/>
+
+  <!-- ====================================================================== 
-->
+  <!-- Defining classpaths                                                    
-->
+  <!-- ====================================================================== 
-->
+
+  <path id="build.classpath">
+    <pathelement location="../maven-resolver-api/target/classes"/>
+    <pathelement location="../maven-resolver-util/target/classes"/>
+    <pathelement location="../maven-resolver-spi/target/classes"/>
+    <pathelement location="../maven-resolver-named-locks/target/classes"/>
+    <pathelement location="../maven-resolver-impl/target/classes"/>
+    <pathelement location="../maven-resolver-connector-basic/target/classes"/>
+    <pathelement location="../maven-resolver-transport-file/target/classes"/>
+    <pathelement location="../maven-resolver-transport-http/target/classes"/>
+    <fileset dir="../lib">
+      <include name="**/*.jar"/>
+    </fileset>
+  </path>
+  <path id="build.test.classpath">
+    <pathelement location="../maven-resolver-api/target/classes"/>
+    <pathelement location="../maven-resolver-util/target/classes"/>
+    <pathelement location="../maven-resolver-spi/target/classes"/>
+    <pathelement location="../maven-resolver-named-locks/target/classes"/>
+    <pathelement location="../maven-resolver-impl/target/classes"/>
+    <pathelement location="../maven-resolver-connector-basic/target/classes"/>
+    <pathelement location="../maven-resolver-transport-file/target/classes"/>
+    <pathelement location="../maven-resolver-transport-http/target/classes"/>
+    <fileset dir="../lib">
+      <include name="**/*.jar"/>
+    </fileset>
+  </path>
+
+  <!-- ====================================================================== 
-->
+  <!-- Cleaning up target                                                     
-->
+  <!-- ====================================================================== 
-->
+
+  <target name="clean" description="Clean the output directory">
+    <delete dir="${build.dir}"/>
+  </target>
+
+  <!-- ====================================================================== 
-->
+  <!-- Compilation target                                                     
-->
+  <!-- ====================================================================== 
-->
+
+  <target name="compile" description="Compile the code">
+    <mkdir dir="${build.outputDir}"/>
+    <javac destdir="${build.outputDir}" 
+           nowarn="false" 
+           encoding="utf-8" 
+           debug="true" 
+           optimize="false" 
+           deprecation="true" 
+           release="${compiler.release}" 
+           target="${compiler.target}" 
+           verbose="false" 
+           fork="false" 
+           source="${compiler.source}">
+      <src>
+        <pathelement location="${build.srcDir}"/>
+      </src>
+      <classpath refid="build.classpath"/>
+    </javac>
+  </target>
+
+  <!-- ====================================================================== 
-->
+  <!-- Test-compilation target                                                
-->
+  <!-- ====================================================================== 
-->
+
+  <target name="compile-tests" 
+          depends="compile" 
+          description="Compile the test code" 
+          unless="test.skip">
+    <mkdir dir="${build.testOutputDir}"/>
+    <javac destdir="${build.testOutputDir}" 
+           nowarn="false" 
+           encoding="utf-8" 
+           debug="true" 
+           optimize="false" 
+           deprecation="true" 
+           release="${compiler.release}" 
+           target="${compiler.target}" 
+           verbose="false" 
+           fork="false" 
+           source="${compiler.source}">
+      <src>
+        <pathelement location="${build.testDir}"/>
+      </src>
+      <classpath>
+        <path refid="build.test.classpath"/>
+        <pathelement location="${build.outputDir}"/>
+      </classpath>
+    </javac>
+  </target>
+
+  <!-- ====================================================================== 
-->
+  <!-- Run all tests                                                          
-->
+  <!-- ====================================================================== 
-->
+
+  <target name="test" 
+          depends="compile-tests, junit-missing" 
+          unless="junit.skipped" 
+          description="Run the test cases">
+    <mkdir dir="${test.reports}"/>
+    <junit printSummary="yes" haltonerror="true" haltonfailure="true" 
fork="true" dir=".">
+      <sysproperty key="basedir" value="."/>
+      <formatter type="xml"/>
+      <formatter type="plain" usefile="false"/>
+      <classpath>
+        <path refid="build.test.classpath"/>
+        <pathelement location="${build.outputDir}"/>
+        <pathelement location="${build.testOutputDir}"/>
+      </classpath>
+      <batchtest todir="${test.reports}" unless="test">
+        <fileset dir="${build.testDir}">
+          <include name="**/Test*.java"/>
+          <include name="**/*Test.java"/>
+          <include name="**/*TestCase.java"/>
+          <exclude name="**/*Abstract*Test.java"/>
+        </fileset>
+      </batchtest>
+      <batchtest todir="${test.reports}" if="test">
+        <fileset dir="${build.testDir}">
+          <include name="**/${test}.java"/>
+          <exclude name="**/*Abstract*Test.java"/>
+        </fileset>
+      </batchtest>
+    </junit>
+  </target>
+
+  <target name="test-junit-present">
+    <available classname="junit.framework.Test" property="junit.present" 
classpathref="build.test.classpath"/>
+  </target>
+
+  <target name="test-junit-status" 
+          depends="test-junit-present">
+    <condition property="junit.missing">
+      <and>
+        <isfalse value="${junit.present}"/>
+        <isfalse value="${test.skip}"/>
+      </and>
+    </condition>
+    <condition property="junit.skipped">
+      <or>
+        <isfalse value="${junit.present}"/>
+        <istrue value="${test.skip}"/>
+      </or>
+    </condition>
+  </target>
+
+  <target name="junit-missing" 
+          depends="test-junit-status" 
+          if="junit.missing">
+    <echo>=================================== WARNING 
===================================</echo>
+    <echo> JUnit is not present in the test classpath or your $ANT_HOME/lib 
directory. Tests not executed.</echo>
+    
<echo>===============================================================================</echo>
+  </target>
+
+  <!-- ====================================================================== 
-->
+  <!-- Javadoc target                                                         
-->
+  <!-- ====================================================================== 
-->
+
+  <target name="javadoc" description="Generates the Javadoc of the 
application">
+    <javadoc sourcepath="${build.srcDir}" 
+             packagenames="*" 
+             destdir="${reporting.outputDirectory}/apidocs" 
+             access="protected" 
+             source="${compiler.source}" 
+             verbose="false" 
+             locale="en" 
+             version="true" 
+             use="true" 
+             author="true" 
+             splitindex="false" 
+             nodeprecated="false" 
+             nodeprecatedlist="false" 
+             notree="false" 
+             noindex="false" 
+             nohelp="false" 
+             nonavbar="false" 
+             serialwarn="false" 
+             encoding="UTF-8" 
+             linksource="true" 
+             breakiterator="false">
+      <classpath refid="build.classpath"/>
+      <group title="API"/>
+      <group title="SPI"/>
+      <group title="Utilities"/>
+      <group title="Repository Connectors"/>
+      <group title="Transporters"/>
+      <group title="Implementation"/>
+      <group title="Demo Maven Plugin"/>
+      <group title="Demo Snippets"/>
+      <group title="Internals"/>
+      <tag name="noextend" 
+               scope="all" 
+               description="Restriction:"/>
+      <tag name="noimplement" 
+               scope="all" 
+               description="Restriction:"/>
+      <tag name="noinstantiate" 
+               scope="all" 
+               description="Restriction:"/>
+      <tag name="nooverride" 
+               scope="all" 
+               description="Restriction:"/>
+      <tag name="noreference" 
+               scope="all" 
+               description="Restriction:"/>
+      <tag name="provisional" 
+               scope="all" 
+               description="Provisional:"/>
+    </javadoc>
+  </target>
+
+  <!-- ====================================================================== 
-->
+  <!-- Package target                                                         
-->
+  <!-- ====================================================================== 
-->
+
+  <target name="package" depends="compile,test" description="Package the 
application">
+    <jar jarfile="${build.dir}/${build.finalName}.jar" 
+         compress="true" 
+         index="false" 
+         basedir="${build.outputDir}" 
+         excludes="**/package.html">
+      <manifest>
+               <attribute name="Automatic-Module-Name" 
value="${project.groupId}.supplier"/>
+               <attribute name="Bundle-Description" 
value="${project.description}"/>
+               <attribute name="Bundle-DocURL" 
value="${project.url}${project.artifactId}/"/>
+               <attribute name="Bundle-License" 
value="https://www.apache.org/licenses/LICENSE-2.0.txt"/>
+               <attribute name="Bundle-ManifestVersion" value="2"/>
+               <attribute name="Bundle-Name" value="${project.name}"/>
+               <attribute name="Bundle-SymbolicName" 
value="${project.groupId}.supplier"/>
+               <attribute name="Bundle-Vendor" 
value="${project.organization.name}"/>
+               <attribute name="Bundle-Version" value="${project.version}"/>
+               <attribute name="Export-Package" 
value="org.eclipse.aether.supplier;uses:=&quot;org.apache.maven.model.building,org.apache.maven.repository.internal,org.eclipse.aether,org.eclipse.aether.connector.basic,org.eclipse.aether.impl,org.eclipse.aether.internal.impl,org.eclipse.aether.internal.impl.collect,org.eclipse.aether.internal.impl.synccontext.named,org.eclipse.aether.named,org.eclipse.aether.spi.checksums,org.eclipse.aether.spi.connector,org.eclipse.aether.spi.connector.checksum,org.eclipse.aether.spi.connector.filter,org.eclipse.aether.spi.connector.layout,org.eclipse.aether.spi.connector.transport,org.eclipse.aether.spi.io,org.eclipse.aether.spi.resolution,org.eclipse.aether.spi.synccontext,org.eclipse.aether.transport.http&quot;;version=&quot;${project.version}&quot;"/>
+               <attribute name="Implementation-Title" value="${project.name}"/>
+               <attribute name="Implementation-URL" 
value="${project.url}${project.artifactId}/"/>
+               <attribute name="Implementation-Vendor" 
value="${project.organization.name}"/>
+               <attribute name="Implementation-Vendor-Id" 
value="${project.groupId}"/>
+               <attribute name="Implementation-Version" 
value="${project.version}"/>
+               <attribute name="Import-Package" 
value="org.apache.maven.model.building,org.apache.maven.repository.internal,org.eclipse.aether.connector.basic,org.eclipse.aether.impl,org.eclipse.aether.internal.impl.checksum,org.eclipse.aether.internal.impl.collect.bf,org.eclipse.aether.internal.impl.collect.df,org.eclipse.aether.internal.impl.collect,org.eclipse.aether.internal.impl.filter,org.eclipse.aether.internal.impl.resolution,org.eclipse.aether.internal.impl.synccontext.named,org.eclipse.aether.internal.impl.synccontext,org.eclipse.aether.internal.impl,org.eclipse.aether.named.providers,org.eclipse.aether.named,org.eclipse.aether.spi.checksums,org.eclipse.aether.spi.connector.checksum,org.eclipse.aether.spi.connector.filter,org.eclipse.aether.spi.connector.layout,org.eclipse.aether.spi.connector.transport,org.eclipse.aether.spi.connector,org.eclipse.aether.spi.io,org.eclipse.aether.spi.resolution,org.eclipse.aether.spi.synccontext,org.eclipse.aether.transport.file,org.eclipse.aether.tran
 sport.http,org.eclipse.aether"/>
+               <attribute name="JavaPackages-ArtifactId" 
value="${project.artifactId}"/>
+               <attribute name="JavaPackages-GroupId" 
value="${project.groupId}"/>
+               <attribute name="JavaPackages-Version" 
value="${project.version}"/>
+               <attribute name="Private-Package" 
value="org.eclipse.aether.spi.log,org.eclipse.aether.spi.localrepo,org.eclipse.aether.spi.io,org.eclipse.aether.spi.connector,org.eclipse.aether.spi.connector.checksum,org.eclipse.aether.spi.connector.layout,org.eclipse.aether.spi.connector.transport,org.eclipse.aether.spi.locator"/>
+               <attribute name="Require-Capability" 
value="osgi.ee;filter:=&quot;(&amp;(osgi.ee=JavaSE)(version=${compiler.target}))&quot;"/>
+               <attribute name="Specification-Title" value="${project.name}"/>
+               <attribute name="Specification-Vendor" 
value="${project.organization.name}"/>
+               <attribute name="Specification-Version" 
value="${spec.version}"/>
+      </manifest>
+    </jar>
+  </target>
+
+</project>

++++++ pre_checkin.sh ++++++
#!/bin/sh
cp maven-resolver.changes maven-resolver-supplier.changes

Reply via email to