From cd85b001ebc92769cd6f7ea8b9df16520f9f95da Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 19 Jul 2013 14:45:45 +0200 Subject: [PATCH 01/19] Add symlinks to Sonatype Aether --- aether.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/aether.spec b/aether.spec index fa92561..83d2c7a 100644 --- a/aether.spec +++ b/aether.spec @@ -6,7 +6,7 @@ Name: aether Version: 1.13.1 -Release: 11%{?dist} +Release: 12%{?dist} Summary: Sonatype library to resolve, install and deploy artifacts the Maven way License: EPL or ASL 2.0 URL: https://docs.sonatype.org/display/AETHER/Home @@ -155,7 +155,7 @@ done # Keep compatibility with packages that use old JAR locations until # they migrate. -%mvn_file ":{%{name}-{*}}" %{name}/@1 %{name}/@2 +%mvn_file ":{%{name}-{*}}" %{name}/@1 %{name}/@2 sonatype-%{name}/@1 %build %mvn_build -s @@ -171,6 +171,7 @@ done %doc README.md %doc LICENSE-ASL LICENSE-EPL %dir %{_javadir}/%{name} +%dir %{_javadir}/sonatype-%{name} %files connector-file -f .mfiles-%{name}-connector-file %files connector-wagon -f .mfiles-%{name}-connector-wagon @@ -186,6 +187,9 @@ done %endif %changelog +* Fri Jul 19 2013 Mikolaj Izdebski - 1.13.1-12 +- Add symlinks to Sonatype Aether + * Wed Jun 26 2013 Mikolaj Izdebski - 1.13.1-11 - Install license files - Resolves: rhbz#958116 From 3feb71af98dfa0797a9445f7260b1ddf6d68832b Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 19 Jul 2013 12:50:20 +0200 Subject: [PATCH 02/19] Update to upstream version 0.9.0.M2 --- .gitignore | 1 + aether.spec | 62 +++++++++++++++++++++++++++++++---------------------- sources | 4 +--- 3 files changed, 38 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index 577fd4c..bd08fe0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /aether-1.13.1.tar.bz2 /LICENSE-2.0.txt /epl-v10.html +/aether-0.9.0.M2.tar.bz2 diff --git a/aether.spec b/aether.spec index 83d2c7a..e0ca13b 100644 --- a/aether.spec +++ b/aether.spec @@ -4,42 +4,36 @@ %bcond_without ahc %endif +%global vertag M2 + Name: aether -Version: 1.13.1 -Release: 12%{?dist} +Epoch: 1 +Version: 0.9.0 +Release: 0.%{vertag}.1%{?dist} Summary: Sonatype library to resolve, install and deploy artifacts the Maven way License: EPL or ASL 2.0 URL: https://docs.sonatype.org/display/AETHER/Home -# git clone https://github.com/sonatype/sonatype-aether.git -# git archive --prefix="aether-1.11/" --format=tar aether-1.11 | bzip2 > aether-1.11.tar.bz2 -Source0: %{name}-%{version}.tar.bz2 -Source1: http://www.apache.org/licenses/LICENSE-2.0.txt -Source2: http://www.eclipse.org/legal/epl-v10.html BuildArch: noarch +Source0: http://git.eclipse.org/c/%{name}/%{name}-core.git/snapshot/%{name}-%{version}.%{vertag}.tar.bz2 + +# Temporarly BuildRequire Sonatype Aether +BuildRequires: aether < 1:0 + BuildRequires: maven-local BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) +BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) >= 1.7 BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds) BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) BuildRequires: mvn(org.codehaus.plexus:plexus-utils) BuildRequires: mvn(org.slf4j:slf4j-api) BuildRequires: mvn(org.sonatype.forge:forge-parent) +BuildRequires: mvn(org.sonatype.plugins:sisu-maven-plugin) BuildRequires: mvn(org.sonatype.sisu:sisu-inject-plexus) %if %{with ahc} BuildRequires: mvn(com.ning:async-http-client) %endif -# Require all subpackages for now, until all packages that use aether -# migrate to appropriate subpackages. See rhbz #958143 -# TODO: Remove these once the above bug is closed. -Requires: %{name}-api = %{version}-%{release} -Requires: %{name}-connector-file = %{version}-%{release} -Requires: %{name}-connector-wagon = %{version}-%{release} -Requires: %{name}-impl = %{version}-%{release} -Requires: %{name}-spi = %{version}-%{release} -Requires: %{name}-test-util = %{version}-%{release} -Requires: %{name}-util = %{version}-%{release} - %description Aether is a standalone library to resolve, install and deploy artifacts the Maven way. @@ -120,9 +114,7 @@ artifacts the Maven way. This package provides Java API documentation for Aether. %prep -%setup -q -cp -p %{SOURCE1} LICENSE-ASL -cp -p %{SOURCE2} LICENSE-EPL +%setup -q -n %{name}-%{version}.%{vertag} %if %{without ahc} %pom_disable_module aether-connector-asynchttpclient @@ -145,17 +137,20 @@ for module in asynchttpclient wagon; do ( # Animal sniffer is not useful in Fedora for module in . aether-connector-wagon aether-util aether-api \ aether-impl aether-connector-asynchttpclient \ - aether-connector-file aether-demo aether-test-util; do + aether-connector-file aether-test-util; do %pom_remove_plugin :animal-sniffer-maven-plugin $module done +%pom_remove_plugin :maven-enforcer-plugin + # Workaround for rhbz#911365 %pom_xpath_inject pom:project "" %pom_add_dep cglib:cglib:any:test +%pom_add_dep aopalliance:aopalliance:any:test # Keep compatibility with packages that use old JAR locations until # they migrate. -%mvn_file ":{%{name}-{*}}" %{name}/@1 %{name}/@2 sonatype-%{name}/@1 +%mvn_file ":{%{name}-{*}}" %{name}/@1 %{name}/@2 %build %mvn_build -s @@ -163,13 +158,23 @@ done %install %mvn_install +install -d -m 755 %{buildroot}%{_javadir}/sonatype-%{name} +for jar in %{_javadir}/sonatype-%{name}/*; do + mod=`basename ${jar/.jar/}` + cp -p %{_javadir}/%{name}/$mod.jar %{buildroot}%{_javadir}/sonatype-%{name}/ + cp -p %{_mavenpomdir}/JPP.%{name}-$mod.pom %{buildroot}%{_mavenpomdir}/JPP.sonatype-%{name}-$mod.pom + %add_maven_depmap JPP.sonatype-%{name}-$mod.pom sonatype-%{name}/$mod.jar -f $mod +done +cp -p %{_mavenpomdir}/JPP.%{name}-org.sonatype.%{name}@%{name}.pom %{buildroot}%{_mavenpomdir}/JPP.sonatype-%{name}-%{name}.pom +%add_maven_depmap JPP.sonatype-%{name}-%{name}.pom -f %{name} + %files -f .mfiles-%{name} %doc README.md -%doc LICENSE-ASL LICENSE-EPL +%doc epl-v10.html notice.html %files api -f .mfiles-%{name}-api %doc README.md -%doc LICENSE-ASL LICENSE-EPL +%doc epl-v10.html notice.html %dir %{_javadir}/%{name} %dir %{_javadir}/sonatype-%{name} @@ -180,13 +185,18 @@ done %files test-util -f .mfiles-%{name}-test-util %files util -f .mfiles-%{name}-util %files javadoc -f .mfiles-javadoc -%doc LICENSE-ASL LICENSE-EPL +%doc epl-v10.html notice.html %if %{with ahc} %files connector-asynchttpclient -f .mfiles-%{name}-connector-asynchttpclient %endif %changelog +* Fri Jul 19 2013 Mikolaj Izdebski - 1:0.9.0-0.M2.1 +- Switch upstream from Sonatype to Eclipse +- Update to upstream version 0.9.0.M2 +- Install Sonatype Aether in pararell to Eclipse Aether + * Fri Jul 19 2013 Mikolaj Izdebski - 1.13.1-12 - Add symlinks to Sonatype Aether diff --git a/sources b/sources index f0dd05f..f17102d 100644 --- a/sources +++ b/sources @@ -1,3 +1 @@ -a02f091d4e00e8fe6f35508ba60d95e6 aether-1.13.1.tar.bz2 -3b83ef96387f14655fc854ddc3c6bd57 LICENSE-2.0.txt -d0fc088e4e5216422c217d39853d8601 epl-v10.html +e454062f186024aeb7b8c16343735d31 aether-0.9.0.M2.tar.bz2 From 9dea1b24e9d36236fb8a42d2a3ece532d4b5cc64 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Thu, 25 Jul 2013 10:27:27 +0200 Subject: [PATCH 03/19] Remove remains of Sonatype Aether - Port from Sonatype Sisu to Eclipse Sisu, resolves: rhbz#985691 --- aether.spec | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/aether.spec b/aether.spec index e0ca13b..a51440d 100644 --- a/aether.spec +++ b/aether.spec @@ -9,16 +9,15 @@ Name: aether Epoch: 1 Version: 0.9.0 -Release: 0.%{vertag}.1%{?dist} -Summary: Sonatype library to resolve, install and deploy artifacts the Maven way -License: EPL or ASL 2.0 -URL: https://docs.sonatype.org/display/AETHER/Home +Release: 0.2.%{vertag}%{?dist} +Summary: Library to resolve, install and deploy artifacts the Maven way +License: EPL +URL: http://eclipse.org/aether BuildArch: noarch Source0: http://git.eclipse.org/c/%{name}/%{name}-core.git/snapshot/%{name}-%{version}.%{vertag}.tar.bz2 -# Temporarly BuildRequire Sonatype Aether -BuildRequires: aether < 1:0 +Patch0001: 0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch BuildRequires: maven-local BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) @@ -26,10 +25,10 @@ BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) >= 1.7 BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds) BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) BuildRequires: mvn(org.codehaus.plexus:plexus-utils) +BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin) +BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) BuildRequires: mvn(org.slf4j:slf4j-api) BuildRequires: mvn(org.sonatype.forge:forge-parent) -BuildRequires: mvn(org.sonatype.plugins:sisu-maven-plugin) -BuildRequires: mvn(org.sonatype.sisu:sisu-inject-plexus) %if %{with ahc} BuildRequires: mvn(com.ning:async-http-client) %endif @@ -148,6 +147,8 @@ done %pom_add_dep cglib:cglib:any:test %pom_add_dep aopalliance:aopalliance:any:test +%patch0001 -p1 + # Keep compatibility with packages that use old JAR locations until # they migrate. %mvn_file ":{%{name}-{*}}" %{name}/@1 %{name}/@2 @@ -158,16 +159,6 @@ done %install %mvn_install -install -d -m 755 %{buildroot}%{_javadir}/sonatype-%{name} -for jar in %{_javadir}/sonatype-%{name}/*; do - mod=`basename ${jar/.jar/}` - cp -p %{_javadir}/%{name}/$mod.jar %{buildroot}%{_javadir}/sonatype-%{name}/ - cp -p %{_mavenpomdir}/JPP.%{name}-$mod.pom %{buildroot}%{_mavenpomdir}/JPP.sonatype-%{name}-$mod.pom - %add_maven_depmap JPP.sonatype-%{name}-$mod.pom sonatype-%{name}/$mod.jar -f $mod -done -cp -p %{_mavenpomdir}/JPP.%{name}-org.sonatype.%{name}@%{name}.pom %{buildroot}%{_mavenpomdir}/JPP.sonatype-%{name}-%{name}.pom -%add_maven_depmap JPP.sonatype-%{name}-%{name}.pom -f %{name} - %files -f .mfiles-%{name} %doc README.md %doc epl-v10.html notice.html @@ -176,7 +167,6 @@ cp -p %{_mavenpomdir}/JPP.%{name}-org.sonatype.%{name}@%{name}.pom %{buildroot}% %doc README.md %doc epl-v10.html notice.html %dir %{_javadir}/%{name} -%dir %{_javadir}/sonatype-%{name} %files connector-file -f .mfiles-%{name}-connector-file %files connector-wagon -f .mfiles-%{name}-connector-wagon @@ -192,6 +182,10 @@ cp -p %{_mavenpomdir}/JPP.%{name}-org.sonatype.%{name}@%{name}.pom %{buildroot}% %endif %changelog +* Thu Jul 25 2013 Mikolaj Izdebski - 1:0.9.0-0.2.M2 +- Remove remains of Sonatype Aether +- Port from Sonatype Sisu to Eclipse Sisu, resolves: rhbz#985691 + * Fri Jul 19 2013 Mikolaj Izdebski - 1:0.9.0-0.M2.1 - Switch upstream from Sonatype to Eclipse - Update to upstream version 0.9.0.M2 From 16c9b56fca22805ab2a5b72db1b40a7a3becd3ac Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Thu, 25 Jul 2013 10:41:04 +0200 Subject: [PATCH 04/19] Add forgotten patch --- ...t-from-Sonatype-Sisu-to-Eclipse-Sisu.patch | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch diff --git a/0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch b/0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch new file mode 100644 index 0000000..a96506a --- /dev/null +++ b/0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch @@ -0,0 +1,77 @@ +From 625bb36df9da578eb5bf552bd6123aaa07ebb71f Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Thu, 25 Jul 2013 07:32:20 +0200 +Subject: [PATCH] Port from Sonatype Sisu to Eclipse Sisu + +--- + aether-connector-file/pom.xml | 4 ++-- + aether-connector-wagon/pom.xml | 4 ++-- + aether-impl/pom.xml | 4 ++-- + pom.xml | 6 +++--- + 4 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/aether-connector-file/pom.xml b/aether-connector-file/pom.xml +index a194621..7fe06af 100644 +--- a/aether-connector-file/pom.xml ++++ b/aether-connector-file/pom.xml +@@ -54,8 +54,8 @@ + true + + +- org.sonatype.sisu +- sisu-inject-plexus ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus + test + + +diff --git a/aether-connector-wagon/pom.xml b/aether-connector-wagon/pom.xml +index ba5b90e..0601fa9 100644 +--- a/aether-connector-wagon/pom.xml ++++ b/aether-connector-wagon/pom.xml +@@ -72,8 +72,8 @@ + true + + +- org.sonatype.sisu +- sisu-inject-plexus ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus + true + + +diff --git a/aether-impl/pom.xml b/aether-impl/pom.xml +index 58c5773..c5fdbd6 100644 +--- a/aether-impl/pom.xml ++++ b/aether-impl/pom.xml +@@ -54,8 +54,8 @@ + true + + +- org.sonatype.sisu +- sisu-inject-plexus ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus + provided + true + +diff --git a/pom.xml b/pom.xml +index ff9ce8f..6d7f7f7 100644 +--- a/pom.xml ++++ b/pom.xml +@@ -208,9 +208,9 @@ + + + +- org.sonatype.sisu +- sisu-inject-plexus +- 2.3.0 ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus ++ 0.0.0.M2a + + + +-- +1.8.1.4 + From 283f79caf8c94a75249163f42c21c8d2619db7e9 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 12 Aug 2013 07:43:53 +0200 Subject: [PATCH 05/19] Update to upstream version 0.9.0.M3 --- .gitignore | 1 + aether.spec | 128 +++++++++++++++++++++++++--------------------------- sources | 2 +- 3 files changed, 64 insertions(+), 67 deletions(-) diff --git a/.gitignore b/.gitignore index bd08fe0..5563398 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /LICENSE-2.0.txt /epl-v10.html /aether-0.9.0.M2.tar.bz2 +/aether-0.9.0.M3.tar.bz2 diff --git a/aether.spec b/aether.spec index a51440d..c2113c5 100644 --- a/aether.spec +++ b/aether.spec @@ -1,15 +1,9 @@ -# Conditionals to build Aether with or without AHC connector -# (connector for Async Http Client). -%if 0%{?fedora} -%bcond_without ahc -%endif - -%global vertag M2 +%global vertag M3 Name: aether Epoch: 1 Version: 0.9.0 -Release: 0.2.%{vertag}%{?dist} +Release: 0.3.%{vertag}%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -17,21 +11,18 @@ BuildArch: noarch Source0: http://git.eclipse.org/c/%{name}/%{name}-core.git/snapshot/%{name}-%{version}.%{vertag}.tar.bz2 -Patch0001: 0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch - BuildRequires: maven-local +BuildRequires: mvn(javax.inject:javax.inject) +BuildRequires: mvn(org.apache.httpcomponents:httpclient) BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) >= 1.7 BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds) BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) BuildRequires: mvn(org.codehaus.plexus:plexus-utils) -BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin) BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) +BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin) +BuildRequires: mvn(org.slf4j:jcl-over-slf4j) BuildRequires: mvn(org.slf4j:slf4j-api) -BuildRequires: mvn(org.sonatype.forge:forge-parent) -%if %{with ahc} -BuildRequires: mvn(com.ning:async-http-client) -%endif %description Aether is a standalone library to resolve, install and deploy artifacts @@ -45,31 +36,13 @@ Aether is a standalone library to resolve, install and deploy artifacts the Maven way. This package provides application programming interface for Aether repository system. -%if %{with ahc} -%package connector-asynchttpclient -Summary: Aether connector for Async Http Client +%package connector-basic +Summary: Aether Connector Basic -%description connector-asynchttpclient +%description connector-basic Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides Aether repository -connector implementation based on Async Http Client. -%endif - -%package connector-file -Summary: Aether connector for file URLs - -%description connector-file -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides Aether repository -connector implementation for repositories using file:// URLs. - -%package connector-wagon -Summary: Aether connector for Maven Wagon - -%description connector-wagon -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides Aether repository -connector implementation based on Maven Wagon. +artifacts the Maven way. This package provides repository connector +implementation for repositories using URI-based layouts. %package impl Summary: Implementation of Aether repository system @@ -96,6 +69,40 @@ Aether is a standalone library to resolve, install and deploy artifacts the Maven way. This package provides collection of utility classes that ease testing of Aether repository system. +%package transport-classpath +Summary: Aether Transport Classpath + +%description transport-classpath +Aether is a standalone library to resolve, install and deploy +artifacts the Maven way. This package provides a transport +implementation for repositories using classpath:// URLs. + +%package transport-file +Summary: Aether Transport File + +%description transport-file +Aether is a standalone library to resolve, install and deploy +artifacts the Maven way. This package provides a transport +implementation for repositories using file:// URLs. + +%package transport-http +Summary: Aether Transport HTTP +Obsoletes: %{name}-connector-asynchttpclient < %{epoch}:%{version}-%{release} + +%description transport-http +Aether is a standalone library to resolve, install and deploy +artifacts the Maven way. This package provides a transport +implementation for repositories using http:// and https:// URLs. + +%package transport-wagon +Summary: Aether Transport Wagon +Obsoletes: %{name}-connector-wagon < %{epoch}:%{version}-%{release} + +%description transport-wagon +Aether is a standalone library to resolve, install and deploy +artifacts the Maven way. This package provides a transport +implementation based on Maven Wagon. + %package util Summary: Aether utilities @@ -115,31 +122,24 @@ for Aether. %prep %setup -q -n %{name}-%{version}.%{vertag} -%if %{without ahc} -%pom_disable_module aether-connector-asynchttpclient -%endif - -# we'd need org.sonatype.http-testing-harness so let's remove async -# and wagon http tests (leave others enabled) -for module in asynchttpclient wagon; do ( - cd ./aether-connector-$module - rm -rf src/test - # Removes all dependencies with test scope - %pom_xpath_remove "pom:dependency[pom:scope[text()='test']]" -) done - # Remove clirr plugin %pom_remove_plugin :clirr-maven-plugin %pom_remove_plugin :clirr-maven-plugin aether-api +%pom_remove_plugin :clirr-maven-plugin aether-util %pom_remove_plugin :clirr-maven-plugin aether-spi # Animal sniffer is not useful in Fedora -for module in . aether-connector-wagon aether-util aether-api \ - aether-impl aether-connector-asynchttpclient \ - aether-connector-file aether-test-util; do +for module in . aether-api aether-connector-basic aether-impl \ + aether-spi aether-test-util aether-transport-file \ + aether-transport-classpath aether-transport-http \ + aether-transport-wagon aether-util; do %pom_remove_plugin :animal-sniffer-maven-plugin $module done +# HTTP transport tests require Jetty 7 and networking. +rm -rf aether-transport-http/src/test +%pom_xpath_remove "pom:dependency[pom:scope='test']" aether-transport-http + %pom_remove_plugin :maven-enforcer-plugin # Workaround for rhbz#911365 @@ -147,12 +147,6 @@ done %pom_add_dep cglib:cglib:any:test %pom_add_dep aopalliance:aopalliance:any:test -%patch0001 -p1 - -# Keep compatibility with packages that use old JAR locations until -# they migrate. -%mvn_file ":{%{name}-{*}}" %{name}/@1 %{name}/@2 - %build %mvn_build -s @@ -168,20 +162,22 @@ done %doc epl-v10.html notice.html %dir %{_javadir}/%{name} -%files connector-file -f .mfiles-%{name}-connector-file -%files connector-wagon -f .mfiles-%{name}-connector-wagon +%files connector-basic -f .mfiles-%{name}-connector-basic %files impl -f .mfiles-%{name}-impl %files spi -f .mfiles-%{name}-spi %files test-util -f .mfiles-%{name}-test-util +%files transport-classpath -f .mfiles-%{name}-transport-classpath +%files transport-file -f .mfiles-%{name}-transport-file +%files transport-http -f .mfiles-%{name}-transport-http +%files transport-wagon -f .mfiles-%{name}-transport-wagon %files util -f .mfiles-%{name}-util %files javadoc -f .mfiles-javadoc %doc epl-v10.html notice.html -%if %{with ahc} -%files connector-asynchttpclient -f .mfiles-%{name}-connector-asynchttpclient -%endif - %changelog +* Mon Aug 12 2013 Mikolaj Izdebski - 1:0.9.0-0.3.M3 +- Update to upstream version 0.9.0.M3 + * Thu Jul 25 2013 Mikolaj Izdebski - 1:0.9.0-0.2.M2 - Remove remains of Sonatype Aether - Port from Sonatype Sisu to Eclipse Sisu, resolves: rhbz#985691 diff --git a/sources b/sources index f17102d..d0e616c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e454062f186024aeb7b8c16343735d31 aether-0.9.0.M2.tar.bz2 +c81ef36155719a0cdc1473654e2f0d3b aether-0.9.0.M3.tar.bz2 From 4c3fba1655d4dc916e0bb00916a060f8ea152ffa Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 14 Aug 2013 07:28:26 +0200 Subject: [PATCH 06/19] Add missing Obsoletes: aether-connector-file - Resolves: rhbz#996764 --- aether.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/aether.spec b/aether.spec index c2113c5..3aea9e2 100644 --- a/aether.spec +++ b/aether.spec @@ -3,7 +3,7 @@ Name: aether Epoch: 1 Version: 0.9.0 -Release: 0.3.%{vertag}%{?dist} +Release: 0.4.%{vertag}%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -79,6 +79,7 @@ implementation for repositories using classpath:// URLs. %package transport-file Summary: Aether Transport File +Obsoletes: %{name}-connector-file < %{epoch}:%{version}-%{release} %description transport-file Aether is a standalone library to resolve, install and deploy @@ -175,6 +176,10 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Wed Aug 14 2013 Mikolaj Izdebski - 1:0.9.0-0.4.M3 +- Add missing Obsoletes: aether-connector-file +- Resolves: rhbz#996764 + * Mon Aug 12 2013 Mikolaj Izdebski - 1:0.9.0-0.3.M3 - Update to upstream version 0.9.0.M3 From 9cd0008db00baa94045dec30ea3385ef2c961732 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 6 Jan 2014 12:29:22 +0100 Subject: [PATCH 07/19] Update to upstream version 0.9.0.M4 --- .gitignore | 1 + ...t-from-Sonatype-Sisu-to-Eclipse-Sisu.patch | 77 ------------------- aether.spec | 19 +++-- sources | 2 +- 4 files changed, 15 insertions(+), 84 deletions(-) delete mode 100644 0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch diff --git a/.gitignore b/.gitignore index 5563398..a73a911 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /epl-v10.html /aether-0.9.0.M2.tar.bz2 /aether-0.9.0.M3.tar.bz2 +/aether-0.9.0.M4.tar.bz2 diff --git a/0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch b/0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch deleted file mode 100644 index a96506a..0000000 --- a/0001-Port-from-Sonatype-Sisu-to-Eclipse-Sisu.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 625bb36df9da578eb5bf552bd6123aaa07ebb71f Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -Date: Thu, 25 Jul 2013 07:32:20 +0200 -Subject: [PATCH] Port from Sonatype Sisu to Eclipse Sisu - ---- - aether-connector-file/pom.xml | 4 ++-- - aether-connector-wagon/pom.xml | 4 ++-- - aether-impl/pom.xml | 4 ++-- - pom.xml | 6 +++--- - 4 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/aether-connector-file/pom.xml b/aether-connector-file/pom.xml -index a194621..7fe06af 100644 ---- a/aether-connector-file/pom.xml -+++ b/aether-connector-file/pom.xml -@@ -54,8 +54,8 @@ - true - - -- org.sonatype.sisu -- sisu-inject-plexus -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus - test - - -diff --git a/aether-connector-wagon/pom.xml b/aether-connector-wagon/pom.xml -index ba5b90e..0601fa9 100644 ---- a/aether-connector-wagon/pom.xml -+++ b/aether-connector-wagon/pom.xml -@@ -72,8 +72,8 @@ - true - - -- org.sonatype.sisu -- sisu-inject-plexus -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus - true - - -diff --git a/aether-impl/pom.xml b/aether-impl/pom.xml -index 58c5773..c5fdbd6 100644 ---- a/aether-impl/pom.xml -+++ b/aether-impl/pom.xml -@@ -54,8 +54,8 @@ - true - - -- org.sonatype.sisu -- sisu-inject-plexus -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus - provided - true - -diff --git a/pom.xml b/pom.xml -index ff9ce8f..6d7f7f7 100644 ---- a/pom.xml -+++ b/pom.xml -@@ -208,9 +208,9 @@ - - - -- org.sonatype.sisu -- sisu-inject-plexus -- 2.3.0 -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus -+ 0.0.0.M2a - - - --- -1.8.1.4 - diff --git a/aether.spec b/aether.spec index 3aea9e2..9a7e299 100644 --- a/aether.spec +++ b/aether.spec @@ -1,9 +1,9 @@ -%global vertag M3 +%global vertag M4 Name: aether Epoch: 1 Version: 0.9.0 -Release: 0.4.%{vertag}%{?dist} +Release: 0.5.%{vertag}%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -12,15 +12,19 @@ BuildArch: noarch Source0: http://git.eclipse.org/c/%{name}/%{name}-core.git/snapshot/%{name}-%{version}.%{vertag}.tar.bz2 BuildRequires: maven-local +BuildRequires: mvn(com.google.inject:guice::no_aop:) BuildRequires: mvn(javax.inject:javax.inject) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) BuildRequires: mvn(org.apache.httpcomponents:httpclient) BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) >= 1.7 BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds) BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) +BuildRequires: mvn(org.codehaus.plexus:plexus-component-metadata) BuildRequires: mvn(org.codehaus.plexus:plexus-utils) BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin) +BuildRequires: mvn(org.hamcrest:hamcrest-library) BuildRequires: mvn(org.slf4j:jcl-over-slf4j) BuildRequires: mvn(org.slf4j:slf4j-api) @@ -143,10 +147,9 @@ rm -rf aether-transport-http/src/test %pom_remove_plugin :maven-enforcer-plugin -# Workaround for rhbz#911365 -%pom_xpath_inject pom:project "" -%pom_add_dep cglib:cglib:any:test -%pom_add_dep aopalliance:aopalliance:any:test +# Upstream uses Sisu 0.0.0.M4, but Fedora has 0.0.0.M5. In M5 scope +# of Guice dependency was changed from "compile" to "provided". +%pom_add_dep com.google.inject:guice::provided . "no_aop" %build %mvn_build -s @@ -176,6 +179,10 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Mon Jan 6 2014 Mikolaj Izdebski - 1:0.9.0-0.5.M4 +- Update to upstream version 0.9.0.M4 +- Remove workaround for rhbz#911365 + * Wed Aug 14 2013 Mikolaj Izdebski - 1:0.9.0-0.4.M3 - Add missing Obsoletes: aether-connector-file - Resolves: rhbz#996764 diff --git a/sources b/sources index d0e616c..b65fc40 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c81ef36155719a0cdc1473654e2f0d3b aether-0.9.0.M3.tar.bz2 +99a4baf37db10571489ce22cf406b21a aether-0.9.0.M4.tar.bz2 From 6be6f93b83f53bb19d13eba17a09207ebdd222e5 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Thu, 27 Feb 2014 12:12:35 +0100 Subject: [PATCH 08/19] Update to upstream version 0.9.0 --- .gitignore | 1 + aether.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a73a911..50563ac 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /aether-0.9.0.M2.tar.bz2 /aether-0.9.0.M3.tar.bz2 /aether-0.9.0.M4.tar.bz2 +/aether-0.9.0.v20140226.tar.bz2 diff --git a/aether.spec b/aether.spec index 9a7e299..d0376f8 100644 --- a/aether.spec +++ b/aether.spec @@ -1,9 +1,9 @@ -%global vertag M4 +%global vertag v20140226 Name: aether Epoch: 1 Version: 0.9.0 -Release: 0.5.%{vertag}%{?dist} +Release: 1%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -179,6 +179,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Thu Feb 27 2014 Mikolaj Izdebski - 1:0.9.0-1 +- Update to upstream version 0.9.0 + * Mon Jan 6 2014 Mikolaj Izdebski - 1:0.9.0-0.5.M4 - Update to upstream version 0.9.0.M4 - Remove workaround for rhbz#911365 diff --git a/sources b/sources index b65fc40..fb0a569 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -99a4baf37db10571489ce22cf406b21a aether-0.9.0.M4.tar.bz2 +d8b7fc11debcff3e00adb293e1c4e910 aether-0.9.0.v20140226.tar.bz2 From 6a7530291cf368045a8aeba8d569de9349110b53 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Tue, 1 Apr 2014 19:46:30 +0200 Subject: [PATCH 09/19] Update to upstream version 0.9.1 --- .gitignore | 1 + aether.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 50563ac..c588b32 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /aether-0.9.0.M3.tar.bz2 /aether-0.9.0.M4.tar.bz2 /aether-0.9.0.v20140226.tar.bz2 +/aether-0.9.1.v20140329.tar.bz2 diff --git a/aether.spec b/aether.spec index d0376f8..01e8639 100644 --- a/aether.spec +++ b/aether.spec @@ -1,8 +1,8 @@ -%global vertag v20140226 +%global vertag v20140329 Name: aether Epoch: 1 -Version: 0.9.0 +Version: 0.9.1 Release: 1%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL @@ -179,6 +179,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Tue Apr 1 2014 Mikolaj Izdebski - 1:0.9.1-1 +- Update to upstream version 0.9.1 + * Thu Feb 27 2014 Mikolaj Izdebski - 1:0.9.0-1 - Update to upstream version 0.9.0 diff --git a/sources b/sources index fb0a569..24ea99d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d8b7fc11debcff3e00adb293e1c4e910 aether-0.9.0.v20140226.tar.bz2 +9d00a9373af62b3cdcacbcbd8c35fc05 aether-0.9.1.v20140329.tar.bz2 From e54dd57f24bb282cae29888e6e359d94ef02f8cd Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Tue, 20 May 2014 10:08:54 +0200 Subject: [PATCH 10/19] Update to upstream version 1.0.0 --- .gitignore | 1 + aether.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index c588b32..38b6eef 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /aether-0.9.0.M4.tar.bz2 /aether-0.9.0.v20140226.tar.bz2 /aether-0.9.1.v20140329.tar.bz2 +/aether-1.0.0.v20140518.tar.bz2 diff --git a/aether.spec b/aether.spec index 01e8639..3e234e6 100644 --- a/aether.spec +++ b/aether.spec @@ -1,8 +1,8 @@ -%global vertag v20140329 +%global vertag v20140518 Name: aether Epoch: 1 -Version: 0.9.1 +Version: 1.0.0 Release: 1%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL @@ -179,6 +179,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Tue May 20 2014 Mikolaj Izdebski - 1:1.0.0-1 +- Update to upstream version 1.0.0 + * Tue Apr 1 2014 Mikolaj Izdebski - 1:0.9.1-1 - Update to upstream version 0.9.1 diff --git a/sources b/sources index 24ea99d..8570003 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9d00a9373af62b3cdcacbcbd8c35fc05 aether-0.9.1.v20140329.tar.bz2 +abc98e42c2df50436728e721bd56cdbe aether-1.0.0.v20140518.tar.bz2 From 39787e65740101499f8af20310f8faeeecd3cda1 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 21 May 2014 10:10:56 +0200 Subject: [PATCH 11/19] Bring back Plexus support --- ...3-Remove-support-for-Plexus-IoC-fram.patch | 2047 +++++++++++++++++ aether.spec | 8 +- 2 files changed, 2054 insertions(+), 1 deletion(-) create mode 100644 0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch diff --git a/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch b/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch new file mode 100644 index 0000000..8630982 --- /dev/null +++ b/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch @@ -0,0 +1,2047 @@ +From 7c7d1f459729d60cc4fa96ad723fbfcefaffc9ef Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Wed, 21 May 2014 10:08:34 +0200 +Subject: [PATCH] Revert "Bug 433953 - Remove support for Plexus IoC framework" + +This reverts commit c5edb824e8ae5336cf10fc8cbe745a01ca760d6d. +--- + aether-connector-basic/pom.xml | 15 ++++ + .../basic/BasicRepositoryConnectorFactory.java | 16 ++++- + .../aether/connector/basic/PlexusSupportTest.java | 83 ++++++++++++++++++++++ + aether-impl/pom.xml | 16 +++++ + .../internal/impl/DefaultArtifactResolver.java | 22 +++++- + .../impl/DefaultChecksumPolicyProvider.java | 6 +- + .../internal/impl/DefaultDependencyCollector.java | 34 ++++++--- + .../aether/internal/impl/DefaultDeployer.java | 28 +++++++- + .../aether/internal/impl/DefaultFileProcessor.java | 10 +-- + .../aether/internal/impl/DefaultInstaller.java | 24 ++++++- + .../impl/DefaultLocalRepositoryProvider.java | 19 ++++- + .../internal/impl/DefaultMetadataResolver.java | 20 +++++- + .../internal/impl/DefaultOfflineController.java | 12 +++- + .../impl/DefaultRemoteRepositoryManager.java | 14 +++- + .../impl/DefaultRepositoryConnectorProvider.java | 19 ++++- + .../impl/DefaultRepositoryEventDispatcher.java | 22 +++++- + .../impl/DefaultRepositoryLayoutProvider.java | 19 ++++- + .../internal/impl/DefaultRepositorySystem.java | 23 +++++- + .../internal/impl/DefaultSyncContextFactory.java | 4 +- + .../internal/impl/DefaultTransporterProvider.java | 19 ++++- + .../internal/impl/DefaultUpdateCheckManager.java | 13 +++- + .../internal/impl/DefaultUpdatePolicyAnalyzer.java | 12 +++- + .../EnhancedLocalRepositoryManagerFactory.java | 10 +++ + .../impl/Maven2RepositoryLayoutFactory.java | 4 +- + .../aether/internal/impl/PlexusLoggerFactory.java | 78 ++++++++++++++++++++ + .../impl/SimpleLocalRepositoryManagerFactory.java | 10 +++ + .../org/eclipse/aether/impl/PlexusSupportTest.java | 66 +++++++++++++++++ + aether-transport-classpath/pom.xml | 15 ++++ + .../classpath/ClasspathTransporterFactory.java | 12 +++- + .../transport/classpath/PlexusSupportTest.java | 42 +++++++++++ + aether-transport-file/pom.xml | 15 ++++ + .../transport/file/FileTransporterFactory.java | 12 +++- + .../aether/transport/file/PlexusSupportTest.java | 41 +++++++++++ + aether-transport-http/pom.xml | 15 ++++ + .../transport/http/HttpTransporterFactory.java | 12 +++- + .../aether/transport/http/PlexusSupportTest.java | 41 +++++++++++ + .../transport/wagon/WagonTransporterFactory.java | 12 ++++ + 37 files changed, 794 insertions(+), 41 deletions(-) + create mode 100644 aether-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PlexusSupportTest.java + create mode 100644 aether-impl/src/main/java/org/eclipse/aether/internal/impl/PlexusLoggerFactory.java + create mode 100644 aether-impl/src/test/java/org/eclipse/aether/impl/PlexusSupportTest.java + create mode 100644 aether-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/PlexusSupportTest.java + create mode 100644 aether-transport-file/src/test/java/org/eclipse/aether/transport/file/PlexusSupportTest.java + create mode 100644 aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java + +diff --git a/aether-connector-basic/pom.xml b/aether-connector-basic/pom.xml +index ee208a8..08429a3 100644 +--- a/aether-connector-basic/pom.xml ++++ b/aether-connector-basic/pom.xml +@@ -51,6 +51,17 @@ + true + + ++ org.codehaus.plexus ++ plexus-component-annotations ++ provided ++ true ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus ++ test ++ ++ + org.sonatype.sisu + sisu-guice + no_aop +@@ -80,6 +91,10 @@ + animal-sniffer-maven-plugin + + ++ org.codehaus.plexus ++ plexus-component-metadata ++ ++ + org.eclipse.sisu + sisu-maven-plugin + +diff --git a/aether-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java b/aether-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java +index b1f0576..265a800 100644 +--- a/aether-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java ++++ b/aether-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2013, 2014 Sonatype, Inc. ++ * Copyright (c) 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -13,6 +13,8 @@ package org.eclipse.aether.connector.basic; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.RemoteRepository; + import org.eclipse.aether.spi.connector.RepositoryConnector; +@@ -34,18 +36,24 @@ import org.eclipse.aether.transfer.NoRepositoryConnectorException; + * {@link org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory repository layouts} for the transfers. + */ + @Named( "basic" ) ++@Component( role = RepositoryConnectorFactory.class, hint = "basic" ) + public final class BasicRepositoryConnectorFactory + implements RepositoryConnectorFactory, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private TransporterProvider transporterProvider; + ++ @Requirement + private RepositoryLayoutProvider layoutProvider; + ++ @Requirement + private ChecksumPolicyProvider checksumPolicyProvider; + ++ @Requirement + private FileProcessor fileProcessor; + + private float priority; +@@ -93,6 +101,12 @@ public final class BasicRepositoryConnectorFactory + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + /** + * Sets the transporter provider to use for this component. + * +diff --git a/aether-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PlexusSupportTest.java b/aether-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PlexusSupportTest.java +new file mode 100644 +index 0000000..e57e508 +--- /dev/null ++++ b/aether-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PlexusSupportTest.java +@@ -0,0 +1,83 @@ ++/******************************************************************************* ++ * Copyright (c) 2013 Sonatype, Inc. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * ++ * Contributors: ++ * Sonatype, Inc. - initial API and implementation ++ *******************************************************************************/ ++package org.eclipse.aether.connector.basic; ++ ++import org.codehaus.plexus.ContainerConfiguration; ++import org.codehaus.plexus.PlexusTestCase; ++import org.eclipse.aether.RepositorySystemSession; ++import org.eclipse.aether.internal.test.util.TestFileProcessor; ++import org.eclipse.aether.internal.test.util.TestLoggerFactory; ++import org.eclipse.aether.repository.RemoteRepository; ++import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; ++import org.eclipse.aether.spi.connector.checksum.ChecksumPolicy; ++import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider; ++import org.eclipse.aether.spi.connector.layout.RepositoryLayout; ++import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider; ++import org.eclipse.aether.spi.connector.transport.Transporter; ++import org.eclipse.aether.spi.connector.transport.TransporterProvider; ++import org.eclipse.aether.spi.io.FileProcessor; ++import org.eclipse.aether.spi.log.LoggerFactory; ++import org.eclipse.aether.transfer.TransferResource; ++ ++/** ++ */ ++public class PlexusSupportTest ++ extends PlexusTestCase ++{ ++ ++ @Override ++ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) ++ { ++ containerConfiguration.setClassPathScanning( "cache" ); ++ } ++ ++ public void testExistenceOfPlexusComponentMetadata() ++ throws Exception ++ { ++ RepositoryLayoutProvider layoutProvider = new RepositoryLayoutProvider() ++ { ++ public RepositoryLayout newRepositoryLayout( RepositorySystemSession session, RemoteRepository repository ) ++ { ++ return null; ++ } ++ }; ++ TransporterProvider transporterProvider = new TransporterProvider() ++ { ++ public Transporter newTransporter( RepositorySystemSession session, RemoteRepository repository ) ++ { ++ return null; ++ } ++ }; ++ ChecksumPolicyProvider checksumPolicyProvider = new ChecksumPolicyProvider() ++ { ++ public ChecksumPolicy newChecksumPolicy( RepositorySystemSession session, RemoteRepository repository, ++ TransferResource resource, String policy ) ++ { ++ return null; ++ } ++ ++ public String getEffectiveChecksumPolicy( RepositorySystemSession session, String policy1, String policy2 ) ++ { ++ return null; ++ } ++ }; ++ getContainer().addComponent( new TestLoggerFactory(), LoggerFactory.class, null ); ++ getContainer().addComponent( new TestFileProcessor(), FileProcessor.class, null ); ++ getContainer().addComponent( layoutProvider, RepositoryLayoutProvider.class, null ); ++ getContainer().addComponent( transporterProvider, TransporterProvider.class, null ); ++ getContainer().addComponent( checksumPolicyProvider, ChecksumPolicyProvider.class, null ); ++ ++ RepositoryConnectorFactory factory = lookup( RepositoryConnectorFactory.class, "basic" ); ++ assertNotNull( factory ); ++ assertEquals( BasicRepositoryConnectorFactory.class, factory.getClass() ); ++ } ++ ++} +diff --git a/aether-impl/pom.xml b/aether-impl/pom.xml +index 9627aff..a39794f 100644 +--- a/aether-impl/pom.xml ++++ b/aether-impl/pom.xml +@@ -51,6 +51,18 @@ + true + + ++ org.codehaus.plexus ++ plexus-component-annotations ++ provided ++ true ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus ++ provided ++ true ++ ++ + org.eclipse.sisu + org.eclipse.sisu.inject + provided +@@ -93,6 +105,10 @@ + animal-sniffer-maven-plugin + + ++ org.codehaus.plexus ++ plexus-component-metadata ++ ++ + org.eclipse.sisu + sisu-maven-plugin + +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java +index 2426b52..9fb8aab 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -22,11 +22,13 @@ import java.util.concurrent.atomic.AtomicBoolean; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositoryEvent; +-import org.eclipse.aether.RepositoryEvent.EventType; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.RequestTrace; + import org.eclipse.aether.SyncContext; ++import org.eclipse.aether.RepositoryEvent.EventType; + import org.eclipse.aether.artifact.Artifact; + import org.eclipse.aether.artifact.ArtifactProperties; + import org.eclipse.aether.impl.ArtifactResolver; +@@ -71,28 +73,38 @@ import org.eclipse.aether.util.ConfigUtils; + /** + */ + @Named ++@Component( role = ArtifactResolver.class ) + public class DefaultArtifactResolver + implements ArtifactResolver, Service + { + + private static final String CONFIG_PROP_SNAPSHOT_NORMALIZATION = "aether.artifactResolver.snapshotNormalization"; + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private FileProcessor fileProcessor; + ++ @Requirement + private RepositoryEventDispatcher repositoryEventDispatcher; + ++ @Requirement + private VersionResolver versionResolver; + ++ @Requirement + private UpdateCheckManager updateCheckManager; + ++ @Requirement + private RepositoryConnectorProvider repositoryConnectorProvider; + ++ @Requirement + private RemoteRepositoryManager remoteRepositoryManager; + ++ @Requirement + private SyncContextFactory syncContextFactory; + ++ @Requirement + private OfflineController offlineController; + + public DefaultArtifactResolver() +@@ -137,6 +149,12 @@ public class DefaultArtifactResolver + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultArtifactResolver setFileProcessor( FileProcessor fileProcessor ) + { + if ( fileProcessor == null ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java +index b1d2f6a..3ebc07a 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2013, 2014 Sonatype, Inc. ++ * Copyright (c) 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -13,6 +13,8 @@ package org.eclipse.aether.internal.impl; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.RemoteRepository; + import org.eclipse.aether.repository.RepositoryPolicy; +@@ -27,6 +29,7 @@ import org.eclipse.aether.transfer.TransferResource; + /** + */ + @Named ++@Component( role = ChecksumPolicyProvider.class ) + public final class DefaultChecksumPolicyProvider + implements ChecksumPolicyProvider, Service + { +@@ -37,6 +40,7 @@ public final class DefaultChecksumPolicyProvider + + private static final int ORDINAL_FAIL = 2; + ++ @Requirement( role = LoggerFactory.class ) + private LoggerFactory loggerFactory = NullLoggerFactory.INSTANCE; + + public DefaultChecksumPolicyProvider() +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java +index 404897c..1cb0ceb 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java +@@ -10,17 +10,8 @@ + *******************************************************************************/ + package org.eclipse.aether.internal.impl; + +-import java.util.ArrayList; +-import java.util.Collection; +-import java.util.Collections; +-import java.util.HashSet; +-import java.util.LinkedHashMap; +-import java.util.List; +-import java.util.Map; +- +-import javax.inject.Inject; +-import javax.inject.Named; +- ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.DefaultRepositorySystemSession; + import org.eclipse.aether.RepositoryException; + import org.eclipse.aether.RepositorySystemSession; +@@ -61,9 +52,20 @@ import org.eclipse.aether.util.graph.manager.DependencyManagerUtils; + import org.eclipse.aether.util.graph.transformer.TransformationContextKeys; + import org.eclipse.aether.version.Version; + ++import javax.inject.Inject; ++import javax.inject.Named; ++import java.util.ArrayList; ++import java.util.Collection; ++import java.util.Collections; ++import java.util.HashSet; ++import java.util.LinkedHashMap; ++import java.util.List; ++import java.util.Map; ++ + /** + */ + @Named ++@Component( role = DependencyCollector.class ) + public class DefaultDependencyCollector + implements DependencyCollector, Service + { +@@ -72,12 +74,16 @@ public class DefaultDependencyCollector + + private static final String CONFIG_PROP_MAX_CYCLES = "aether.dependencyCollector.maxCycles"; + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private RemoteRepositoryManager remoteRepositoryManager; + ++ @Requirement + private ArtifactDescriptorReader descriptorReader; + ++ @Requirement + private VersionRangeResolver versionRangeResolver; + + public DefaultDependencyCollector() +@@ -110,6 +116,12 @@ public class DefaultDependencyCollector + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultDependencyCollector setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager ) + { + if ( remoteRepositoryManager == null ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java +index b349576..10e3dba 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -22,12 +22,14 @@ import java.util.Set; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositoryEvent; +-import org.eclipse.aether.RepositoryEvent.EventType; + import org.eclipse.aether.RepositoryException; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.RequestTrace; + import org.eclipse.aether.SyncContext; ++import org.eclipse.aether.RepositoryEvent.EventType; + import org.eclipse.aether.artifact.Artifact; + import org.eclipse.aether.deployment.DeployRequest; + import org.eclipse.aether.deployment.DeployResult; +@@ -68,26 +70,36 @@ import org.eclipse.aether.transfer.TransferEvent; + /** + */ + @Named ++@Component( role = Deployer.class ) + public class DefaultDeployer + implements Deployer, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private FileProcessor fileProcessor; + ++ @Requirement + private RepositoryEventDispatcher repositoryEventDispatcher; + ++ @Requirement + private RepositoryConnectorProvider repositoryConnectorProvider; + ++ @Requirement + private RemoteRepositoryManager remoteRepositoryManager; + ++ @Requirement + private UpdateCheckManager updateCheckManager; + ++ @Requirement( role = MetadataGeneratorFactory.class ) + private Collection metadataFactories = new ArrayList(); + ++ @Requirement + private SyncContextFactory syncContextFactory; + ++ @Requirement + private OfflineController offlineController; + + public DefaultDeployer() +@@ -132,6 +144,12 @@ public class DefaultDeployer + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultDeployer setFileProcessor( FileProcessor fileProcessor ) + { + if ( fileProcessor == null ) +@@ -205,6 +223,12 @@ public class DefaultDeployer + return this; + } + ++ DefaultDeployer setMetadataFactories( List metadataFactories ) ++ { ++ // plexus support ++ return setMetadataGeneratorFactories( metadataFactories ); ++ } ++ + public DefaultDeployer setSyncContextFactory( SyncContextFactory syncContextFactory ) + { + if ( syncContextFactory == null ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java +index 04ab2b6..2933e26 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2012 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -21,12 +21,14 @@ import java.nio.ByteBuffer; + + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; + import org.eclipse.aether.spi.io.FileProcessor; + + /** + * A utility class helping with file-based operations. + */ + @Named ++@Component( role = FileProcessor.class ) + public class DefaultFileProcessor + implements FileProcessor + { +@@ -47,9 +49,9 @@ public class DefaultFileProcessor + } + + /** +- * Thread-safe variant of {@link File#mkdirs()}. Creates the directory named by the given abstract pathname, +- * including any necessary but nonexistent parent directories. Note that if this operation fails it may have +- * succeeded in creating some of the necessary parent directories. ++ * Thread-safe variant of {@link File#mkdirs()}. Adapted from Java 6. Creates the directory named by the given ++ * abstract pathname, including any necessary but nonexistent parent directories. Note that if this operation fails ++ * it may have succeeded in creating some of the necessary parent directories. + * + * @param directory The directory to create, may be {@code null}. + * @return {@code true} if and only if the directory was created, along with all necessary parent directories; +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java +index a6e0a29..f0e5086 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -20,11 +20,13 @@ import java.util.Set; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositoryEvent; +-import org.eclipse.aether.RepositoryEvent.EventType; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.RequestTrace; + import org.eclipse.aether.SyncContext; ++import org.eclipse.aether.RepositoryEvent.EventType; + import org.eclipse.aether.artifact.Artifact; + import org.eclipse.aether.impl.Installer; + import org.eclipse.aether.impl.MetadataGenerator; +@@ -49,18 +51,24 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; + /** + */ + @Named ++@Component( role = Installer.class ) + public class DefaultInstaller + implements Installer, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private FileProcessor fileProcessor; + ++ @Requirement + private RepositoryEventDispatcher repositoryEventDispatcher; + ++ @Requirement( role = MetadataGeneratorFactory.class ) + private Collection metadataFactories = new ArrayList(); + ++ @Requirement + private SyncContextFactory syncContextFactory; + + public DefaultInstaller() +@@ -95,6 +103,12 @@ public class DefaultInstaller + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultInstaller setFileProcessor( FileProcessor fileProcessor ) + { + if ( fileProcessor == null ) +@@ -138,6 +152,12 @@ public class DefaultInstaller + return this; + } + ++ DefaultInstaller setMetadataFactories( List metadataFactories ) ++ { ++ // plexus support ++ return setMetadataGeneratorFactories( metadataFactories ); ++ } ++ + public DefaultInstaller setSyncContextFactory( SyncContextFactory syncContextFactory ) + { + if ( syncContextFactory == null ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java +index 89a705e..342ab38 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -18,6 +18,8 @@ import java.util.Set; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.impl.LocalRepositoryProvider; + import org.eclipse.aether.repository.LocalRepository; +@@ -33,12 +35,15 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; + /** + */ + @Named ++@Component( role = LocalRepositoryProvider.class ) + public class DefaultLocalRepositoryProvider + implements LocalRepositoryProvider, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement( role = LocalRepositoryManagerFactory.class ) + private Collection managerFactories = new ArrayList(); + + public DefaultLocalRepositoryProvider() +@@ -65,6 +70,12 @@ public class DefaultLocalRepositoryProvider + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultLocalRepositoryProvider addLocalRepositoryManagerFactory( LocalRepositoryManagerFactory factory ) + { + if ( factory == null ) +@@ -88,6 +99,12 @@ public class DefaultLocalRepositoryProvider + return this; + } + ++ DefaultLocalRepositoryProvider setManagerFactories( List factories ) ++ { ++ // plexus support ++ return setLocalRepositoryManagerFactories( factories ); ++ } ++ + public LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession session, LocalRepository repository ) + throws NoLocalRepositoryManagerException + { +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java +index c064a0f..e22c0c0 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -27,11 +27,13 @@ import java.util.concurrent.TimeUnit; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositoryEvent; +-import org.eclipse.aether.RepositoryEvent.EventType; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.RequestTrace; + import org.eclipse.aether.SyncContext; ++import org.eclipse.aether.RepositoryEvent.EventType; + import org.eclipse.aether.impl.MetadataResolver; + import org.eclipse.aether.impl.OfflineController; + import org.eclipse.aether.impl.RemoteRepositoryManager; +@@ -69,24 +71,32 @@ import org.eclipse.aether.util.concurrency.WorkerThreadFactory; + /** + */ + @Named ++@Component( role = MetadataResolver.class ) + public class DefaultMetadataResolver + implements MetadataResolver, Service + { + + private static final String CONFIG_PROP_THREADS = "aether.metadataResolver.threads"; + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private RepositoryEventDispatcher repositoryEventDispatcher; + ++ @Requirement + private UpdateCheckManager updateCheckManager; + ++ @Requirement + private RepositoryConnectorProvider repositoryConnectorProvider; + ++ @Requirement + private RemoteRepositoryManager remoteRepositoryManager; + ++ @Requirement + private SyncContextFactory syncContextFactory; + ++ @Requirement + private OfflineController offlineController; + + public DefaultMetadataResolver() +@@ -127,6 +137,12 @@ public class DefaultMetadataResolver + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultMetadataResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher ) + { + if ( repositoryEventDispatcher == null ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java +index 561ba8c..7bce2be 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2012, 2014 Sonatype, Inc. ++ * Copyright (c) 2012, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -15,6 +15,8 @@ import java.util.regex.Pattern; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.impl.OfflineController; + import org.eclipse.aether.repository.RemoteRepository; +@@ -27,6 +29,7 @@ import org.eclipse.aether.transfer.RepositoryOfflineException; + import org.eclipse.aether.util.ConfigUtils; + + @Named ++@Component( role = OfflineController.class ) + public class DefaultOfflineController + implements OfflineController, Service + { +@@ -37,6 +40,7 @@ public class DefaultOfflineController + + private static final Pattern SEP = Pattern.compile( "\\s*,\\s*" ); + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + + public DefaultOfflineController() +@@ -61,6 +65,12 @@ public class DefaultOfflineController + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public void checkOffline( RepositorySystemSession session, RemoteRepository repository ) + throws RepositoryOfflineException + { +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java +index ccb618a..fa2cf89 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -17,6 +17,8 @@ import java.util.ListIterator; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.impl.RemoteRepositoryManager; + import org.eclipse.aether.impl.UpdatePolicyAnalyzer; +@@ -38,14 +40,18 @@ import org.eclipse.aether.util.StringUtils; + /** + */ + @Named ++@Component( role = RemoteRepositoryManager.class ) + public class DefaultRemoteRepositoryManager + implements RemoteRepositoryManager, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private UpdatePolicyAnalyzer updatePolicyAnalyzer; + ++ @Requirement + private ChecksumPolicyProvider checksumPolicyProvider; + + public DefaultRemoteRepositoryManager() +@@ -75,6 +81,12 @@ public class DefaultRemoteRepositoryManager + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultRemoteRepositoryManager setUpdatePolicyAnalyzer( UpdatePolicyAnalyzer updatePolicyAnalyzer ) + { + if ( updatePolicyAnalyzer == null ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java +index 40f1100..ab0edc1 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2012, 2014 Sonatype, Inc. ++ * Copyright (c) 2012, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -18,6 +18,8 @@ import java.util.Set; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.impl.RepositoryConnectorProvider; + import org.eclipse.aether.repository.Authentication; +@@ -35,12 +37,15 @@ import org.eclipse.aether.transfer.NoRepositoryConnectorException; + /** + */ + @Named ++@Component( role = RepositoryConnectorProvider.class ) + public class DefaultRepositoryConnectorProvider + implements RepositoryConnectorProvider, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement( role = RepositoryConnectorFactory.class ) + private Collection connectorFactories = new ArrayList(); + + public DefaultRepositoryConnectorProvider() +@@ -67,6 +72,12 @@ public class DefaultRepositoryConnectorProvider + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultRepositoryConnectorProvider addRepositoryConnectorFactory( RepositoryConnectorFactory factory ) + { + if ( factory == null ) +@@ -90,6 +101,12 @@ public class DefaultRepositoryConnectorProvider + return this; + } + ++ DefaultRepositoryConnectorProvider setConnectorFactories( List factories ) ++ { ++ // plexus support ++ return setRepositoryConnectorFactories( factories ); ++ } ++ + public RepositoryConnector newRepositoryConnector( RepositorySystemSession session, RemoteRepository repository ) + throws NoRepositoryConnectorException + { +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java +index 03eabcf..fec70f4 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2012 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -12,11 +12,14 @@ package org.eclipse.aether.internal.impl; + + import java.util.ArrayList; + import java.util.Collection; ++import java.util.List; + import java.util.Set; + + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositoryEvent; + import org.eclipse.aether.RepositoryListener; + import org.eclipse.aether.impl.RepositoryEventDispatcher; +@@ -29,12 +32,15 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; + /** + */ + @Named ++@Component( role = RepositoryEventDispatcher.class ) + public class DefaultRepositoryEventDispatcher + implements RepositoryEventDispatcher, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement( role = RepositoryListener.class ) + private Collection listeners = new ArrayList(); + + public DefaultRepositoryEventDispatcher() +@@ -55,6 +61,12 @@ public class DefaultRepositoryEventDispatcher + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultRepositoryEventDispatcher addRepositoryListener( RepositoryListener listener ) + { + if ( listener == null ) +@@ -78,10 +90,16 @@ public class DefaultRepositoryEventDispatcher + return this; + } + ++ DefaultRepositoryEventDispatcher setListeners( List listeners ) ++ { ++ // plexus support ++ return setRepositoryListeners( listeners ); ++ } ++ + public void initService( ServiceLocator locator ) + { + setLoggerFactory( locator.getService( LoggerFactory.class ) ); +- setRepositoryListeners( locator.getServices( RepositoryListener.class ) ); ++ setListeners( locator.getServices( RepositoryListener.class ) ); + } + + public void dispatch( RepositoryEvent event ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java +index 6fff271..efc9c0a 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2013, 2014 Sonatype, Inc. ++ * Copyright (c) 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -18,6 +18,8 @@ import java.util.Set; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.RemoteRepository; + import org.eclipse.aether.spi.connector.layout.RepositoryLayout; +@@ -33,12 +35,15 @@ import org.eclipse.aether.transfer.NoRepositoryLayoutException; + /** + */ + @Named ++@Component( role = RepositoryLayoutProvider.class ) + public final class DefaultRepositoryLayoutProvider + implements RepositoryLayoutProvider, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement( role = RepositoryLayoutFactory.class ) + private Collection factories = new ArrayList(); + + public DefaultRepositoryLayoutProvider() +@@ -65,6 +70,12 @@ public final class DefaultRepositoryLayoutProvider + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultRepositoryLayoutProvider addRepositoryLayoutFactory( RepositoryLayoutFactory factory ) + { + if ( factory == null ) +@@ -88,6 +99,12 @@ public final class DefaultRepositoryLayoutProvider + return this; + } + ++ DefaultRepositoryLayoutProvider setFactories( List factories ) ++ { ++ // plexus support ++ return setRepositoryLayoutFactories( factories ); ++ } ++ + public RepositoryLayout newRepositoryLayout( RepositorySystemSession session, RemoteRepository repository ) + throws NoRepositoryLayoutException + { +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java +index 8882814..14258bc 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -17,6 +17,8 @@ import java.util.List; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystem; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.RequestTrace; +@@ -78,32 +80,45 @@ import org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor; + /** + */ + @Named ++@Component( role = RepositorySystem.class ) + public class DefaultRepositorySystem + implements RepositorySystem, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private VersionResolver versionResolver; + ++ @Requirement + private VersionRangeResolver versionRangeResolver; + ++ @Requirement + private ArtifactResolver artifactResolver; + ++ @Requirement + private MetadataResolver metadataResolver; + ++ @Requirement + private ArtifactDescriptorReader artifactDescriptorReader; + ++ @Requirement + private DependencyCollector dependencyCollector; + ++ @Requirement + private Installer installer; + ++ @Requirement + private Deployer deployer; + ++ @Requirement + private LocalRepositoryProvider localRepositoryProvider; + ++ @Requirement + private SyncContextFactory syncContextFactory; + ++ @Requirement + private RemoteRepositoryManager remoteRepositoryManager; + + public DefaultRepositorySystem() +@@ -155,6 +170,12 @@ public class DefaultRepositorySystem + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultRepositorySystem setVersionResolver( VersionResolver versionResolver ) + { + if ( versionResolver == null ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultSyncContextFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultSyncContextFactory.java +index 2910131..a00753d 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultSyncContextFactory.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultSyncContextFactory.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2012 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -14,6 +14,7 @@ import java.util.Collection; + + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.SyncContext; + import org.eclipse.aether.artifact.Artifact; +@@ -25,6 +26,7 @@ import org.eclipse.aether.metadata.Metadata; + * synchronization but merely completes the repository system. + */ + @Named ++@Component( role = SyncContextFactory.class ) + public class DefaultSyncContextFactory + implements SyncContextFactory + { +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java +index 60b64b6..2852103 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2013, 2014 Sonatype, Inc. ++ * Copyright (c) 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -18,6 +18,8 @@ import java.util.Set; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.RemoteRepository; + import org.eclipse.aether.spi.connector.transport.Transporter; +@@ -33,12 +35,15 @@ import org.eclipse.aether.transfer.NoTransporterException; + /** + */ + @Named ++@Component( role = TransporterProvider.class ) + public final class DefaultTransporterProvider + implements TransporterProvider, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement( role = TransporterFactory.class ) + private Collection factories = new ArrayList(); + + public DefaultTransporterProvider() +@@ -65,6 +70,12 @@ public final class DefaultTransporterProvider + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultTransporterProvider addTransporterFactory( TransporterFactory factory ) + { + if ( factory == null ) +@@ -88,6 +99,12 @@ public final class DefaultTransporterProvider + return this; + } + ++ DefaultTransporterProvider setFactories( List factories ) ++ { ++ // plexus support ++ return setTransporterFactories( factories ); ++ } ++ + public Transporter newTransporter( RepositorySystemSession session, RemoteRepository repository ) + throws NoTransporterException + { +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java +index 652f026..9ebd3cf 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -22,6 +22,8 @@ import java.util.concurrent.ConcurrentHashMap; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.SessionData; + import org.eclipse.aether.artifact.Artifact; +@@ -47,12 +49,15 @@ import org.eclipse.aether.util.ConfigUtils; + /** + */ + @Named ++@Component( role = UpdateCheckManager.class ) + public class DefaultUpdateCheckManager + implements UpdateCheckManager, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private UpdatePolicyAnalyzer updatePolicyAnalyzer; + + private static final String UPDATED_KEY_SUFFIX = ".lastUpdated"; +@@ -95,6 +100,12 @@ public class DefaultUpdateCheckManager + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public DefaultUpdateCheckManager setUpdatePolicyAnalyzer( UpdatePolicyAnalyzer updatePolicyAnalyzer ) + { + if ( updatePolicyAnalyzer == null ) +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java +index adc07f5..7735ea8 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2010, 2014 Sonatype, Inc. ++ * Copyright (c) 2010, 2012 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -15,6 +15,8 @@ import java.util.Calendar; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.impl.UpdatePolicyAnalyzer; + import org.eclipse.aether.repository.RepositoryPolicy; +@@ -27,10 +29,12 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; + /** + */ + @Named ++@Component( role = UpdatePolicyAnalyzer.class ) + public class DefaultUpdatePolicyAnalyzer + implements UpdatePolicyAnalyzer, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + + public DefaultUpdatePolicyAnalyzer() +@@ -55,6 +59,12 @@ public class DefaultUpdatePolicyAnalyzer + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public String getEffectiveUpdatePolicy( RepositorySystemSession session, String policy1, String policy2 ) + { + return ordinalOfUpdatePolicy( policy1 ) < ordinalOfUpdatePolicy( policy2 ) ? policy1 : policy2; +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java +index 4ee698b..1c7ab46 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java +@@ -13,6 +13,8 @@ package org.eclipse.aether.internal.impl; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.LocalRepository; + import org.eclipse.aether.repository.LocalRepositoryManager; +@@ -32,10 +34,12 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; + * emulating physically separated artifact caches per remote repository. + */ + @Named( "enhanced" ) ++@Component( role = LocalRepositoryManagerFactory.class, hint = "enhanced" ) + public class EnhancedLocalRepositoryManagerFactory + implements LocalRepositoryManagerFactory, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + + private float priority = 10; +@@ -75,6 +79,12 @@ public class EnhancedLocalRepositoryManagerFactory + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public float getPriority() + { + return priority; +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java +index 0d95be2..c48a305 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2013, 2014 Sonatype, Inc. ++ * Copyright (c) 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -18,6 +18,7 @@ import java.util.List; + + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.artifact.Artifact; + import org.eclipse.aether.metadata.Metadata; +@@ -31,6 +32,7 @@ import org.eclipse.aether.util.ConfigUtils; + * Provides a Maven-2 repository layout for repositories with content type {@code "default"}. + */ + @Named( "maven2" ) ++@Component( role = RepositoryLayoutFactory.class, hint = "maven2" ) + public final class Maven2RepositoryLayoutFactory + implements RepositoryLayoutFactory + { +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PlexusLoggerFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PlexusLoggerFactory.java +new file mode 100644 +index 0000000..362cca2 +--- /dev/null ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PlexusLoggerFactory.java +@@ -0,0 +1,78 @@ ++/******************************************************************************* ++ * Copyright (c) 2010, 2011 Sonatype, Inc. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * ++ * Contributors: ++ * Sonatype, Inc. - initial API and implementation ++ *******************************************************************************/ ++package org.eclipse.aether.internal.impl; ++ ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; ++import org.codehaus.plexus.logging.LoggerManager; ++import org.eclipse.aether.spi.log.Logger; ++import org.eclipse.aether.spi.log.LoggerFactory; ++ ++/** ++ * A logger factory that delegates to Plexus logging. ++ */ ++@Component( role = LoggerFactory.class ) ++public class PlexusLoggerFactory ++ implements LoggerFactory ++{ ++ ++ @Requirement ++ private LoggerManager loggerManager; ++ ++ public Logger getLogger( String name ) ++ { ++ return new PlexusLogger( loggerManager.getLoggerForComponent( name ) ); ++ } ++ ++ private static final class PlexusLogger ++ implements Logger ++ { ++ ++ private final org.codehaus.plexus.logging.Logger logger; ++ ++ public PlexusLogger( org.codehaus.plexus.logging.Logger logger ) ++ { ++ this.logger = logger; ++ } ++ ++ public boolean isDebugEnabled() ++ { ++ return logger.isDebugEnabled(); ++ } ++ ++ public void debug( String msg ) ++ { ++ logger.debug( msg ); ++ } ++ ++ public void debug( String msg, Throwable error ) ++ { ++ logger.debug( msg, error ); ++ } ++ ++ public boolean isWarnEnabled() ++ { ++ return logger.isWarnEnabled(); ++ } ++ ++ public void warn( String msg ) ++ { ++ logger.warn( msg ); ++ } ++ ++ public void warn( String msg, Throwable error ) ++ { ++ logger.warn( msg, error ); ++ } ++ ++ } ++ ++} +diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java +index bc2122f..43e1026 100644 +--- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java ++++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java +@@ -13,6 +13,8 @@ package org.eclipse.aether.internal.impl; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.LocalRepository; + import org.eclipse.aether.repository.LocalRepositoryManager; +@@ -28,10 +30,12 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; + * Creates local repository managers for repository type {@code "simple"}. + */ + @Named( "simple" ) ++@Component( role = LocalRepositoryManagerFactory.class, hint = "simple" ) + public class SimpleLocalRepositoryManagerFactory + implements LocalRepositoryManagerFactory, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + + private float priority; +@@ -71,6 +75,12 @@ public class SimpleLocalRepositoryManagerFactory + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public float getPriority() + { + return priority; +diff --git a/aether-impl/src/test/java/org/eclipse/aether/impl/PlexusSupportTest.java b/aether-impl/src/test/java/org/eclipse/aether/impl/PlexusSupportTest.java +new file mode 100644 +index 0000000..26324ef +--- /dev/null ++++ b/aether-impl/src/test/java/org/eclipse/aether/impl/PlexusSupportTest.java +@@ -0,0 +1,66 @@ ++/******************************************************************************* ++ * Copyright (c) 2010, 2011 Sonatype, Inc. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * ++ * Contributors: ++ * Sonatype, Inc. - initial API and implementation ++ *******************************************************************************/ ++package org.eclipse.aether.impl; ++ ++import java.util.List; ++ ++import org.codehaus.plexus.ContainerConfiguration; ++import org.codehaus.plexus.PlexusTestCase; ++import org.eclipse.aether.RepositorySystem; ++import org.eclipse.aether.impl.ArtifactDescriptorReader; ++import org.eclipse.aether.impl.VersionRangeResolver; ++import org.eclipse.aether.impl.VersionResolver; ++import org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory; ++import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider; ++import org.eclipse.aether.spi.connector.transport.TransporterProvider; ++import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory; ++ ++/** ++ */ ++public class PlexusSupportTest ++ extends PlexusTestCase ++{ ++ ++ @Override ++ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) ++ { ++ containerConfiguration.setClassPathScanning( "cache" ); ++ } ++ ++ public void testExistenceOfPlexusComponentMetadata() ++ throws Exception ++ { ++ getContainer().addComponent( new StubVersionRangeResolver(), VersionRangeResolver.class, null ); ++ getContainer().addComponent( new StubVersionResolver(), VersionResolver.class, null ); ++ getContainer().addComponent( new StubArtifactDescriptorReader(), ArtifactDescriptorReader.class, null ); ++ ++ RepositorySystem repoSystem = lookup( RepositorySystem.class ); ++ assertNotNull( repoSystem ); ++ assertSame( repoSystem, lookup( RepositorySystem.class ) ); ++ ++ List lrmfs = getContainer().lookupList( LocalRepositoryManagerFactory.class ); ++ assertNotNull( lrmfs ); ++ assertEquals( 2, lrmfs.size() ); ++ ++ List rlfs = getContainer().lookupList( RepositoryLayoutFactory.class ); ++ assertNotNull( rlfs ); ++ assertEquals( 1, rlfs.size() ); ++ ++ RepositoryLayoutProvider rlp = lookup( RepositoryLayoutProvider.class ); ++ assertNotNull( rlp ); ++ assertSame( rlp, lookup( RepositoryLayoutProvider.class ) ); ++ ++ TransporterProvider tp = lookup( TransporterProvider.class ); ++ assertNotNull( tp ); ++ assertSame( tp, lookup( TransporterProvider.class ) ); ++ } ++ ++} +diff --git a/aether-transport-classpath/pom.xml b/aether-transport-classpath/pom.xml +index b980591..8d7dc0e 100644 +--- a/aether-transport-classpath/pom.xml ++++ b/aether-transport-classpath/pom.xml +@@ -51,6 +51,17 @@ + true + + ++ org.codehaus.plexus ++ plexus-component-annotations ++ provided ++ true ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus ++ test ++ ++ + org.sonatype.sisu + sisu-guice + no_aop +@@ -80,6 +91,10 @@ + animal-sniffer-maven-plugin + + ++ org.codehaus.plexus ++ plexus-component-metadata ++ ++ + org.eclipse.sisu + sisu-maven-plugin + +diff --git a/aether-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java b/aether-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java +index 4a7c470..06acb89 100644 +--- a/aether-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java ++++ b/aether-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2013, 2014 Sonatype, Inc. ++ * Copyright (c) 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -13,6 +13,8 @@ package org.eclipse.aether.transport.classpath; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.RemoteRepository; + import org.eclipse.aether.spi.connector.transport.Transporter; +@@ -33,6 +35,7 @@ import org.eclipse.aether.transfer.NoTransporterException; + * Note: Such repositories are read-only and uploads to them are generally not supported. + */ + @Named( "classpath" ) ++@Component( role = TransporterFactory.class, hint = "classpath" ) + public final class ClasspathTransporterFactory + implements TransporterFactory, Service + { +@@ -44,6 +47,7 @@ public final class ClasspathTransporterFactory + */ + public static final String CONFIG_PROP_CLASS_LOADER = "aether.connector.classpath.loader"; + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + + private float priority; +@@ -81,6 +85,12 @@ public final class ClasspathTransporterFactory + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public float getPriority() + { + return priority; +diff --git a/aether-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/PlexusSupportTest.java b/aether-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/PlexusSupportTest.java +new file mode 100644 +index 0000000..c984df6 +--- /dev/null ++++ b/aether-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/PlexusSupportTest.java +@@ -0,0 +1,42 @@ ++/******************************************************************************* ++ * Copyright (c) 2013 Sonatype, Inc. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * ++ * Contributors: ++ * Sonatype, Inc. - initial API and implementation ++ *******************************************************************************/ ++package org.eclipse.aether.transport.classpath; ++ ++import org.codehaus.plexus.ContainerConfiguration; ++import org.codehaus.plexus.PlexusTestCase; ++import org.eclipse.aether.internal.test.util.TestLoggerFactory; ++import org.eclipse.aether.spi.connector.transport.TransporterFactory; ++import org.eclipse.aether.spi.log.LoggerFactory; ++import org.eclipse.aether.transport.classpath.ClasspathTransporterFactory; ++ ++/** ++ */ ++public class PlexusSupportTest ++ extends PlexusTestCase ++{ ++ ++ @Override ++ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) ++ { ++ containerConfiguration.setClassPathScanning( "cache" ); ++ } ++ ++ public void testExistenceOfPlexusComponentMetadata() ++ throws Exception ++ { ++ getContainer().addComponent( new TestLoggerFactory(), LoggerFactory.class, null ); ++ ++ TransporterFactory factory = lookup( TransporterFactory.class, "classpath" ); ++ assertNotNull( factory ); ++ assertEquals( ClasspathTransporterFactory.class, factory.getClass() ); ++ } ++ ++} +diff --git a/aether-transport-file/pom.xml b/aether-transport-file/pom.xml +index 35bf5b1..0d4a252 100644 +--- a/aether-transport-file/pom.xml ++++ b/aether-transport-file/pom.xml +@@ -51,6 +51,17 @@ + true + + ++ org.codehaus.plexus ++ plexus-component-annotations ++ provided ++ true ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus ++ test ++ ++ + org.sonatype.sisu + sisu-guice + no_aop +@@ -80,6 +91,10 @@ + animal-sniffer-maven-plugin + + ++ org.codehaus.plexus ++ plexus-component-metadata ++ ++ + org.eclipse.sisu + sisu-maven-plugin + +diff --git a/aether-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java b/aether-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java +index 08e337c..0969167 100644 +--- a/aether-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java ++++ b/aether-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2013, 2014 Sonatype, Inc. ++ * Copyright (c) 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -13,6 +13,8 @@ package org.eclipse.aether.transport.file; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.RemoteRepository; + import org.eclipse.aether.spi.connector.transport.Transporter; +@@ -28,10 +30,12 @@ import org.eclipse.aether.transfer.NoTransporterException; + * A transporter factory for repositories using the {@code file:} protocol. + */ + @Named( "file" ) ++@Component( role = TransporterFactory.class, hint = "file" ) + public final class FileTransporterFactory + implements TransporterFactory, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + + private float priority; +@@ -69,6 +73,12 @@ public final class FileTransporterFactory + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public float getPriority() + { + return priority; +diff --git a/aether-transport-file/src/test/java/org/eclipse/aether/transport/file/PlexusSupportTest.java b/aether-transport-file/src/test/java/org/eclipse/aether/transport/file/PlexusSupportTest.java +new file mode 100644 +index 0000000..f579995 +--- /dev/null ++++ b/aether-transport-file/src/test/java/org/eclipse/aether/transport/file/PlexusSupportTest.java +@@ -0,0 +1,41 @@ ++/******************************************************************************* ++ * Copyright (c) 2013 Sonatype, Inc. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * ++ * Contributors: ++ * Sonatype, Inc. - initial API and implementation ++ *******************************************************************************/ ++package org.eclipse.aether.transport.file; ++ ++import org.codehaus.plexus.ContainerConfiguration; ++import org.codehaus.plexus.PlexusTestCase; ++import org.eclipse.aether.internal.test.util.TestLoggerFactory; ++import org.eclipse.aether.spi.connector.transport.TransporterFactory; ++import org.eclipse.aether.spi.log.LoggerFactory; ++ ++/** ++ */ ++public class PlexusSupportTest ++ extends PlexusTestCase ++{ ++ ++ @Override ++ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) ++ { ++ containerConfiguration.setClassPathScanning( "cache" ); ++ } ++ ++ public void testExistenceOfPlexusComponentMetadata() ++ throws Exception ++ { ++ getContainer().addComponent( new TestLoggerFactory(), LoggerFactory.class, null ); ++ ++ TransporterFactory factory = lookup( TransporterFactory.class, "file" ); ++ assertNotNull( factory ); ++ assertEquals( FileTransporterFactory.class, factory.getClass() ); ++ } ++ ++} +diff --git a/aether-transport-http/pom.xml b/aether-transport-http/pom.xml +index feb9adb..c911c0e 100644 +--- a/aether-transport-http/pom.xml ++++ b/aether-transport-http/pom.xml +@@ -68,6 +68,17 @@ + true + + ++ org.codehaus.plexus ++ plexus-component-annotations ++ provided ++ true ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus ++ test ++ ++ + org.sonatype.sisu + sisu-guice + no_aop +@@ -109,6 +120,10 @@ + animal-sniffer-maven-plugin + + ++ org.codehaus.plexus ++ plexus-component-metadata ++ ++ + org.eclipse.sisu + sisu-maven-plugin + +diff --git a/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java b/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java +index 2636bdf..69ed839 100644 +--- a/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java ++++ b/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java +@@ -1,5 +1,5 @@ + /******************************************************************************* +- * Copyright (c) 2013, 2014 Sonatype, Inc. ++ * Copyright (c) 2013 Sonatype, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at +@@ -13,6 +13,8 @@ package org.eclipse.aether.transport.http; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.RemoteRepository; + import org.eclipse.aether.spi.connector.transport.Transporter; +@@ -29,10 +31,12 @@ import org.eclipse.aether.transfer.NoTransporterException; + * support uploads to WebDAV servers and resumable downloads. + */ + @Named( "http" ) ++@Component( role = TransporterFactory.class, hint = "http" ) + public final class HttpTransporterFactory + implements TransporterFactory, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + + private float priority = 5; +@@ -70,6 +74,12 @@ public final class HttpTransporterFactory + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + public float getPriority() + { + return priority; +diff --git a/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java b/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java +new file mode 100644 +index 0000000..a0f6c86 +--- /dev/null ++++ b/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java +@@ -0,0 +1,41 @@ ++/******************************************************************************* ++ * Copyright (c) 2013 Sonatype, Inc. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * ++ * Contributors: ++ * Sonatype, Inc. - initial API and implementation ++ *******************************************************************************/ ++package org.eclipse.aether.transport.http; ++ ++import org.codehaus.plexus.ContainerConfiguration; ++import org.codehaus.plexus.PlexusTestCase; ++import org.eclipse.aether.internal.test.util.TestLoggerFactory; ++import org.eclipse.aether.spi.connector.transport.TransporterFactory; ++import org.eclipse.aether.spi.log.LoggerFactory; ++ ++/** ++ */ ++public class PlexusSupportTest ++ extends PlexusTestCase ++{ ++ ++ @Override ++ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) ++ { ++ containerConfiguration.setClassPathScanning( "cache" ); ++ } ++ ++ public void testExistenceOfPlexusComponentMetadata() ++ throws Exception ++ { ++ getContainer().addComponent( new TestLoggerFactory(), LoggerFactory.class, null ); ++ ++ TransporterFactory factory = lookup( TransporterFactory.class, "http" ); ++ assertNotNull( factory ); ++ assertEquals( HttpTransporterFactory.class, factory.getClass() ); ++ } ++ ++} +diff --git a/aether-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java b/aether-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java +index 5d91358..be57919 100644 +--- a/aether-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java ++++ b/aether-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java +@@ -13,6 +13,8 @@ package org.eclipse.aether.transport.wagon; + import javax.inject.Inject; + import javax.inject.Named; + ++import org.codehaus.plexus.component.annotations.Component; ++import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositorySystemSession; + import org.eclipse.aether.repository.RemoteRepository; + import org.eclipse.aether.spi.connector.transport.Transporter; +@@ -30,14 +32,18 @@ import org.eclipse.aether.transfer.NoTransporterException; + * unless one or more wagon implementations are registered with the {@link WagonProvider}. + */ + @Named( "wagon" ) ++@Component( role = TransporterFactory.class, hint = "wagon" ) + public final class WagonTransporterFactory + implements TransporterFactory, Service + { + ++ @Requirement( role = LoggerFactory.class ) + private Logger logger = NullLoggerFactory.LOGGER; + ++ @Requirement + private WagonProvider wagonProvider; + ++ @Requirement + private WagonConfigurator wagonConfigurator; + + private float priority = -1; +@@ -80,6 +86,12 @@ public final class WagonTransporterFactory + return this; + } + ++ void setLogger( LoggerFactory loggerFactory ) ++ { ++ // plexus support ++ setLoggerFactory( loggerFactory ); ++ } ++ + /** + * Sets the wagon provider to use to acquire and release wagon instances. + * +-- +1.9.0 + diff --git a/aether.spec b/aether.spec index 3e234e6..a83eb5b 100644 --- a/aether.spec +++ b/aether.spec @@ -3,7 +3,7 @@ Name: aether Epoch: 1 Version: 1.0.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -11,6 +11,8 @@ BuildArch: noarch Source0: http://git.eclipse.org/c/%{name}/%{name}-core.git/snapshot/%{name}-%{version}.%{vertag}.tar.bz2 +Patch1: 0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch + BuildRequires: maven-local BuildRequires: mvn(com.google.inject:guice::no_aop:) BuildRequires: mvn(javax.inject:javax.inject) @@ -126,6 +128,7 @@ for Aether. %prep %setup -q -n %{name}-%{version}.%{vertag} +%patch1 -p1 # Remove clirr plugin %pom_remove_plugin :clirr-maven-plugin @@ -179,6 +182,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Wed May 21 2014 Mikolaj Izdebski - 1:1.0.0-2 +- Bring back Plexus support + * Tue May 20 2014 Mikolaj Izdebski - 1:1.0.0-1 - Update to upstream version 1.0.0 From c2af24729187d502d51f067f1a3f210099816f31 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 6 Jun 2014 19:13:49 -0500 Subject: [PATCH 12/19] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- aether.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aether.spec b/aether.spec index a83eb5b..6799256 100644 --- a/aether.spec +++ b/aether.spec @@ -3,7 +3,7 @@ Name: aether Epoch: 1 Version: 1.0.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -182,6 +182,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Sat Jun 07 2014 Fedora Release Engineering - 1:1.0.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Wed May 21 2014 Mikolaj Izdebski - 1:1.0.0-2 - Bring back Plexus support From 4902fcc8bcaba9926a1368302d596c9c3c38b45d Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 4 Feb 2015 07:23:04 +0100 Subject: [PATCH 13/19] Update to upstream version 1.0.1 --- .gitignore | 1 + ...3-Remove-support-for-Plexus-IoC-fram.patch | 29 ++++++++++--------- aether.spec | 9 ++++-- sources | 2 +- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 38b6eef..b193711 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /aether-0.9.0.v20140226.tar.bz2 /aether-0.9.1.v20140329.tar.bz2 /aether-1.0.0.v20140518.tar.bz2 +/aether-1.0.1.v20141111.tar.bz2 diff --git a/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch b/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch index 8630982..85986c7 100644 --- a/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch +++ b/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch @@ -1,6 +1,6 @@ -From 7c7d1f459729d60cc4fa96ad723fbfcefaffc9ef Mon Sep 17 00:00:00 2001 +From b74b2f6299605ec0dfca4aabb21fb3fe13844d47 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski -Date: Wed, 21 May 2014 10:08:34 +0200 +Date: Wed, 4 Feb 2015 07:26:24 +0100 Subject: [PATCH] Revert "Bug 433953 - Remove support for Plexus IoC framework" This reverts commit c5edb824e8ae5336cf10fc8cbe745a01ca760d6d. @@ -51,7 +51,7 @@ This reverts commit c5edb824e8ae5336cf10fc8cbe745a01ca760d6d. create mode 100644 aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java diff --git a/aether-connector-basic/pom.xml b/aether-connector-basic/pom.xml -index ee208a8..08429a3 100644 +index 747f9dc..5363540 100644 --- a/aether-connector-basic/pom.xml +++ b/aether-connector-basic/pom.xml @@ -51,6 +51,17 @@ @@ -231,7 +231,7 @@ index 0000000..e57e508 + +} diff --git a/aether-impl/pom.xml b/aether-impl/pom.xml -index 9627aff..a39794f 100644 +index cad3afd..832ed85 100644 --- a/aether-impl/pom.xml +++ b/aether-impl/pom.xml @@ -51,6 +51,18 @@ @@ -843,7 +843,7 @@ index 561ba8c..7bce2be 100644 throws RepositoryOfflineException { diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java -index ccb618a..fa2cf89 100644 +index 8a54d62..7b13b3f 100644 --- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java +++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java @@ -1,5 +1,5 @@ @@ -853,16 +853,16 @@ index ccb618a..fa2cf89 100644 * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at -@@ -17,6 +17,8 @@ import java.util.ListIterator; +@@ -18,6 +18,8 @@ import java.util.ListIterator; import javax.inject.Inject; import javax.inject.Named; +import org.codehaus.plexus.component.annotations.Component; +import org.codehaus.plexus.component.annotations.Requirement; + import org.eclipse.aether.RepositoryCache; import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.impl.RemoteRepositoryManager; - import org.eclipse.aether.impl.UpdatePolicyAnalyzer; -@@ -38,14 +40,18 @@ import org.eclipse.aether.util.StringUtils; +@@ -40,6 +42,7 @@ import org.eclipse.aether.util.StringUtils; /** */ @Named @@ -870,6 +870,9 @@ index ccb618a..fa2cf89 100644 public class DefaultRemoteRepositoryManager implements RemoteRepositoryManager, Service { +@@ -77,10 +80,13 @@ public class DefaultRemoteRepositoryManager + + } + @Requirement( role = LoggerFactory.class ) private Logger logger = NullLoggerFactory.LOGGER; @@ -881,7 +884,7 @@ index ccb618a..fa2cf89 100644 private ChecksumPolicyProvider checksumPolicyProvider; public DefaultRemoteRepositoryManager() -@@ -75,6 +81,12 @@ public class DefaultRemoteRepositoryManager +@@ -110,6 +116,12 @@ public class DefaultRemoteRepositoryManager return this; } @@ -1616,7 +1619,7 @@ index 0000000..26324ef + +} diff --git a/aether-transport-classpath/pom.xml b/aether-transport-classpath/pom.xml -index b980591..8d7dc0e 100644 +index 41d0506..c7775cb 100644 --- a/aether-transport-classpath/pom.xml +++ b/aether-transport-classpath/pom.xml @@ -51,6 +51,17 @@ @@ -1746,7 +1749,7 @@ index 0000000..c984df6 + +} diff --git a/aether-transport-file/pom.xml b/aether-transport-file/pom.xml -index 35bf5b1..0d4a252 100644 +index 40a2190..2a30814 100644 --- a/aether-transport-file/pom.xml +++ b/aether-transport-file/pom.xml @@ -51,6 +51,17 @@ @@ -1872,7 +1875,7 @@ index 0000000..f579995 + +} diff --git a/aether-transport-http/pom.xml b/aether-transport-http/pom.xml -index feb9adb..c911c0e 100644 +index e86dcc7..e7432ea 100644 --- a/aether-transport-http/pom.xml +++ b/aether-transport-http/pom.xml @@ -68,6 +68,17 @@ @@ -2043,5 +2046,5 @@ index 5d91358..be57919 100644 * Sets the wagon provider to use to acquire and release wagon instances. * -- -1.9.0 +2.1.0 diff --git a/aether.spec b/aether.spec index 6799256..3e73b12 100644 --- a/aether.spec +++ b/aether.spec @@ -1,9 +1,9 @@ -%global vertag v20140518 +%global vertag v20141111 Name: aether Epoch: 1 -Version: 1.0.0 -Release: 3%{?dist} +Version: 1.0.1 +Release: 1%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -182,6 +182,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Wed Feb 4 2015 Mikolaj Izdebski - 1:1.0.1-1 +- Update to upstream version 1.0.1 + * Sat Jun 07 2014 Fedora Release Engineering - 1:1.0.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild diff --git a/sources b/sources index 8570003..b0f865d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -abc98e42c2df50436728e721bd56cdbe aether-1.0.0.v20140518.tar.bz2 +512224326be56bac3caf9780224311b8 aether-1.0.1.v20141111.tar.bz2 From 99be90a0eb119c49797ec4e955d2c34ba53a88f5 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 4 Feb 2015 13:34:37 +0100 Subject: [PATCH 14/19] Update to upstream version 1.0.2 --- .gitignore | 1 + aether.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b193711..1f2be75 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /aether-0.9.1.v20140329.tar.bz2 /aether-1.0.0.v20140518.tar.bz2 /aether-1.0.1.v20141111.tar.bz2 +/aether-1.0.2.v20150114.tar.bz2 diff --git a/aether.spec b/aether.spec index 3e73b12..b6f0eae 100644 --- a/aether.spec +++ b/aether.spec @@ -1,8 +1,8 @@ -%global vertag v20141111 +%global vertag v20150114 Name: aether Epoch: 1 -Version: 1.0.1 +Version: 1.0.2 Release: 1%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL @@ -182,6 +182,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Wed Feb 4 2015 Mikolaj Izdebski - 1:1.0.2-1 +- Update to upstream version 1.0.2 + * Wed Feb 4 2015 Mikolaj Izdebski - 1:1.0.1-1 - Update to upstream version 1.0.1 diff --git a/sources b/sources index b0f865d..5c2fa8f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -512224326be56bac3caf9780224311b8 aether-1.0.1.v20141111.tar.bz2 +cc5ef065625e9bd5dd94acde8221e103 aether-1.0.2.v20150114.tar.bz2 From 85eeae6464c05d829a46dc615cccdbe87916152d Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Tue, 16 Jun 2015 23:40:01 +0000 Subject: [PATCH 15/19] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- aether.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aether.spec b/aether.spec index b6f0eae..45e4a3a 100644 --- a/aether.spec +++ b/aether.spec @@ -3,7 +3,7 @@ Name: aether Epoch: 1 Version: 1.0.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -182,6 +182,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Tue Jun 16 2015 Fedora Release Engineering - 1:1.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Wed Feb 4 2015 Mikolaj Izdebski - 1:1.0.2-1 - Update to upstream version 1.0.2 From e7b3568b441cd63ee0d044fb931fe301b11c3909 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Thu, 23 Jul 2015 14:30:08 +0200 Subject: [PATCH 16/19] Remove Plexus support --- ...3-Remove-support-for-Plexus-IoC-fram.patch | 2050 ----------------- aether.spec | 8 +- 2 files changed, 4 insertions(+), 2054 deletions(-) delete mode 100644 0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch diff --git a/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch b/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch deleted file mode 100644 index 85986c7..0000000 --- a/0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch +++ /dev/null @@ -1,2050 +0,0 @@ -From b74b2f6299605ec0dfca4aabb21fb3fe13844d47 Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -Date: Wed, 4 Feb 2015 07:26:24 +0100 -Subject: [PATCH] Revert "Bug 433953 - Remove support for Plexus IoC framework" - -This reverts commit c5edb824e8ae5336cf10fc8cbe745a01ca760d6d. ---- - aether-connector-basic/pom.xml | 15 ++++ - .../basic/BasicRepositoryConnectorFactory.java | 16 ++++- - .../aether/connector/basic/PlexusSupportTest.java | 83 ++++++++++++++++++++++ - aether-impl/pom.xml | 16 +++++ - .../internal/impl/DefaultArtifactResolver.java | 22 +++++- - .../impl/DefaultChecksumPolicyProvider.java | 6 +- - .../internal/impl/DefaultDependencyCollector.java | 34 ++++++--- - .../aether/internal/impl/DefaultDeployer.java | 28 +++++++- - .../aether/internal/impl/DefaultFileProcessor.java | 10 +-- - .../aether/internal/impl/DefaultInstaller.java | 24 ++++++- - .../impl/DefaultLocalRepositoryProvider.java | 19 ++++- - .../internal/impl/DefaultMetadataResolver.java | 20 +++++- - .../internal/impl/DefaultOfflineController.java | 12 +++- - .../impl/DefaultRemoteRepositoryManager.java | 14 +++- - .../impl/DefaultRepositoryConnectorProvider.java | 19 ++++- - .../impl/DefaultRepositoryEventDispatcher.java | 22 +++++- - .../impl/DefaultRepositoryLayoutProvider.java | 19 ++++- - .../internal/impl/DefaultRepositorySystem.java | 23 +++++- - .../internal/impl/DefaultSyncContextFactory.java | 4 +- - .../internal/impl/DefaultTransporterProvider.java | 19 ++++- - .../internal/impl/DefaultUpdateCheckManager.java | 13 +++- - .../internal/impl/DefaultUpdatePolicyAnalyzer.java | 12 +++- - .../EnhancedLocalRepositoryManagerFactory.java | 10 +++ - .../impl/Maven2RepositoryLayoutFactory.java | 4 +- - .../aether/internal/impl/PlexusLoggerFactory.java | 78 ++++++++++++++++++++ - .../impl/SimpleLocalRepositoryManagerFactory.java | 10 +++ - .../org/eclipse/aether/impl/PlexusSupportTest.java | 66 +++++++++++++++++ - aether-transport-classpath/pom.xml | 15 ++++ - .../classpath/ClasspathTransporterFactory.java | 12 +++- - .../transport/classpath/PlexusSupportTest.java | 42 +++++++++++ - aether-transport-file/pom.xml | 15 ++++ - .../transport/file/FileTransporterFactory.java | 12 +++- - .../aether/transport/file/PlexusSupportTest.java | 41 +++++++++++ - aether-transport-http/pom.xml | 15 ++++ - .../transport/http/HttpTransporterFactory.java | 12 +++- - .../aether/transport/http/PlexusSupportTest.java | 41 +++++++++++ - .../transport/wagon/WagonTransporterFactory.java | 12 ++++ - 37 files changed, 794 insertions(+), 41 deletions(-) - create mode 100644 aether-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PlexusSupportTest.java - create mode 100644 aether-impl/src/main/java/org/eclipse/aether/internal/impl/PlexusLoggerFactory.java - create mode 100644 aether-impl/src/test/java/org/eclipse/aether/impl/PlexusSupportTest.java - create mode 100644 aether-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/PlexusSupportTest.java - create mode 100644 aether-transport-file/src/test/java/org/eclipse/aether/transport/file/PlexusSupportTest.java - create mode 100644 aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java - -diff --git a/aether-connector-basic/pom.xml b/aether-connector-basic/pom.xml -index 747f9dc..5363540 100644 ---- a/aether-connector-basic/pom.xml -+++ b/aether-connector-basic/pom.xml -@@ -51,6 +51,17 @@ - true - - -+ org.codehaus.plexus -+ plexus-component-annotations -+ provided -+ true -+ -+ -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus -+ test -+ -+ - org.sonatype.sisu - sisu-guice - no_aop -@@ -80,6 +91,10 @@ - animal-sniffer-maven-plugin - - -+ org.codehaus.plexus -+ plexus-component-metadata -+ -+ - org.eclipse.sisu - sisu-maven-plugin - -diff --git a/aether-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java b/aether-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java -index b1f0576..265a800 100644 ---- a/aether-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java -+++ b/aether-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2013, 2014 Sonatype, Inc. -+ * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -13,6 +13,8 @@ package org.eclipse.aether.connector.basic; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.RemoteRepository; - import org.eclipse.aether.spi.connector.RepositoryConnector; -@@ -34,18 +36,24 @@ import org.eclipse.aether.transfer.NoRepositoryConnectorException; - * {@link org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory repository layouts} for the transfers. - */ - @Named( "basic" ) -+@Component( role = RepositoryConnectorFactory.class, hint = "basic" ) - public final class BasicRepositoryConnectorFactory - implements RepositoryConnectorFactory, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private TransporterProvider transporterProvider; - -+ @Requirement - private RepositoryLayoutProvider layoutProvider; - -+ @Requirement - private ChecksumPolicyProvider checksumPolicyProvider; - -+ @Requirement - private FileProcessor fileProcessor; - - private float priority; -@@ -93,6 +101,12 @@ public final class BasicRepositoryConnectorFactory - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - /** - * Sets the transporter provider to use for this component. - * -diff --git a/aether-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PlexusSupportTest.java b/aether-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PlexusSupportTest.java -new file mode 100644 -index 0000000..e57e508 ---- /dev/null -+++ b/aether-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PlexusSupportTest.java -@@ -0,0 +1,83 @@ -+/******************************************************************************* -+ * Copyright (c) 2013 Sonatype, Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Sonatype, Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.aether.connector.basic; -+ -+import org.codehaus.plexus.ContainerConfiguration; -+import org.codehaus.plexus.PlexusTestCase; -+import org.eclipse.aether.RepositorySystemSession; -+import org.eclipse.aether.internal.test.util.TestFileProcessor; -+import org.eclipse.aether.internal.test.util.TestLoggerFactory; -+import org.eclipse.aether.repository.RemoteRepository; -+import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; -+import org.eclipse.aether.spi.connector.checksum.ChecksumPolicy; -+import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider; -+import org.eclipse.aether.spi.connector.layout.RepositoryLayout; -+import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider; -+import org.eclipse.aether.spi.connector.transport.Transporter; -+import org.eclipse.aether.spi.connector.transport.TransporterProvider; -+import org.eclipse.aether.spi.io.FileProcessor; -+import org.eclipse.aether.spi.log.LoggerFactory; -+import org.eclipse.aether.transfer.TransferResource; -+ -+/** -+ */ -+public class PlexusSupportTest -+ extends PlexusTestCase -+{ -+ -+ @Override -+ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) -+ { -+ containerConfiguration.setClassPathScanning( "cache" ); -+ } -+ -+ public void testExistenceOfPlexusComponentMetadata() -+ throws Exception -+ { -+ RepositoryLayoutProvider layoutProvider = new RepositoryLayoutProvider() -+ { -+ public RepositoryLayout newRepositoryLayout( RepositorySystemSession session, RemoteRepository repository ) -+ { -+ return null; -+ } -+ }; -+ TransporterProvider transporterProvider = new TransporterProvider() -+ { -+ public Transporter newTransporter( RepositorySystemSession session, RemoteRepository repository ) -+ { -+ return null; -+ } -+ }; -+ ChecksumPolicyProvider checksumPolicyProvider = new ChecksumPolicyProvider() -+ { -+ public ChecksumPolicy newChecksumPolicy( RepositorySystemSession session, RemoteRepository repository, -+ TransferResource resource, String policy ) -+ { -+ return null; -+ } -+ -+ public String getEffectiveChecksumPolicy( RepositorySystemSession session, String policy1, String policy2 ) -+ { -+ return null; -+ } -+ }; -+ getContainer().addComponent( new TestLoggerFactory(), LoggerFactory.class, null ); -+ getContainer().addComponent( new TestFileProcessor(), FileProcessor.class, null ); -+ getContainer().addComponent( layoutProvider, RepositoryLayoutProvider.class, null ); -+ getContainer().addComponent( transporterProvider, TransporterProvider.class, null ); -+ getContainer().addComponent( checksumPolicyProvider, ChecksumPolicyProvider.class, null ); -+ -+ RepositoryConnectorFactory factory = lookup( RepositoryConnectorFactory.class, "basic" ); -+ assertNotNull( factory ); -+ assertEquals( BasicRepositoryConnectorFactory.class, factory.getClass() ); -+ } -+ -+} -diff --git a/aether-impl/pom.xml b/aether-impl/pom.xml -index cad3afd..832ed85 100644 ---- a/aether-impl/pom.xml -+++ b/aether-impl/pom.xml -@@ -51,6 +51,18 @@ - true - - -+ org.codehaus.plexus -+ plexus-component-annotations -+ provided -+ true -+ -+ -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus -+ provided -+ true -+ -+ - org.eclipse.sisu - org.eclipse.sisu.inject - provided -@@ -93,6 +105,10 @@ - animal-sniffer-maven-plugin - - -+ org.codehaus.plexus -+ plexus-component-metadata -+ -+ - org.eclipse.sisu - sisu-maven-plugin - -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java -index 2426b52..9fb8aab 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -22,11 +22,13 @@ import java.util.concurrent.atomic.AtomicBoolean; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositoryEvent; --import org.eclipse.aether.RepositoryEvent.EventType; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.RequestTrace; - import org.eclipse.aether.SyncContext; -+import org.eclipse.aether.RepositoryEvent.EventType; - import org.eclipse.aether.artifact.Artifact; - import org.eclipse.aether.artifact.ArtifactProperties; - import org.eclipse.aether.impl.ArtifactResolver; -@@ -71,28 +73,38 @@ import org.eclipse.aether.util.ConfigUtils; - /** - */ - @Named -+@Component( role = ArtifactResolver.class ) - public class DefaultArtifactResolver - implements ArtifactResolver, Service - { - - private static final String CONFIG_PROP_SNAPSHOT_NORMALIZATION = "aether.artifactResolver.snapshotNormalization"; - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private FileProcessor fileProcessor; - -+ @Requirement - private RepositoryEventDispatcher repositoryEventDispatcher; - -+ @Requirement - private VersionResolver versionResolver; - -+ @Requirement - private UpdateCheckManager updateCheckManager; - -+ @Requirement - private RepositoryConnectorProvider repositoryConnectorProvider; - -+ @Requirement - private RemoteRepositoryManager remoteRepositoryManager; - -+ @Requirement - private SyncContextFactory syncContextFactory; - -+ @Requirement - private OfflineController offlineController; - - public DefaultArtifactResolver() -@@ -137,6 +149,12 @@ public class DefaultArtifactResolver - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultArtifactResolver setFileProcessor( FileProcessor fileProcessor ) - { - if ( fileProcessor == null ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java -index b1d2f6a..3ebc07a 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2013, 2014 Sonatype, Inc. -+ * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -13,6 +13,8 @@ package org.eclipse.aether.internal.impl; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.RemoteRepository; - import org.eclipse.aether.repository.RepositoryPolicy; -@@ -27,6 +29,7 @@ import org.eclipse.aether.transfer.TransferResource; - /** - */ - @Named -+@Component( role = ChecksumPolicyProvider.class ) - public final class DefaultChecksumPolicyProvider - implements ChecksumPolicyProvider, Service - { -@@ -37,6 +40,7 @@ public final class DefaultChecksumPolicyProvider - - private static final int ORDINAL_FAIL = 2; - -+ @Requirement( role = LoggerFactory.class ) - private LoggerFactory loggerFactory = NullLoggerFactory.INSTANCE; - - public DefaultChecksumPolicyProvider() -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java -index 404897c..1cb0ceb 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java -@@ -10,17 +10,8 @@ - *******************************************************************************/ - package org.eclipse.aether.internal.impl; - --import java.util.ArrayList; --import java.util.Collection; --import java.util.Collections; --import java.util.HashSet; --import java.util.LinkedHashMap; --import java.util.List; --import java.util.Map; -- --import javax.inject.Inject; --import javax.inject.Named; -- -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.DefaultRepositorySystemSession; - import org.eclipse.aether.RepositoryException; - import org.eclipse.aether.RepositorySystemSession; -@@ -61,9 +52,20 @@ import org.eclipse.aether.util.graph.manager.DependencyManagerUtils; - import org.eclipse.aether.util.graph.transformer.TransformationContextKeys; - import org.eclipse.aether.version.Version; - -+import javax.inject.Inject; -+import javax.inject.Named; -+import java.util.ArrayList; -+import java.util.Collection; -+import java.util.Collections; -+import java.util.HashSet; -+import java.util.LinkedHashMap; -+import java.util.List; -+import java.util.Map; -+ - /** - */ - @Named -+@Component( role = DependencyCollector.class ) - public class DefaultDependencyCollector - implements DependencyCollector, Service - { -@@ -72,12 +74,16 @@ public class DefaultDependencyCollector - - private static final String CONFIG_PROP_MAX_CYCLES = "aether.dependencyCollector.maxCycles"; - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private RemoteRepositoryManager remoteRepositoryManager; - -+ @Requirement - private ArtifactDescriptorReader descriptorReader; - -+ @Requirement - private VersionRangeResolver versionRangeResolver; - - public DefaultDependencyCollector() -@@ -110,6 +116,12 @@ public class DefaultDependencyCollector - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultDependencyCollector setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager ) - { - if ( remoteRepositoryManager == null ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java -index b349576..10e3dba 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -22,12 +22,14 @@ import java.util.Set; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositoryEvent; --import org.eclipse.aether.RepositoryEvent.EventType; - import org.eclipse.aether.RepositoryException; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.RequestTrace; - import org.eclipse.aether.SyncContext; -+import org.eclipse.aether.RepositoryEvent.EventType; - import org.eclipse.aether.artifact.Artifact; - import org.eclipse.aether.deployment.DeployRequest; - import org.eclipse.aether.deployment.DeployResult; -@@ -68,26 +70,36 @@ import org.eclipse.aether.transfer.TransferEvent; - /** - */ - @Named -+@Component( role = Deployer.class ) - public class DefaultDeployer - implements Deployer, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private FileProcessor fileProcessor; - -+ @Requirement - private RepositoryEventDispatcher repositoryEventDispatcher; - -+ @Requirement - private RepositoryConnectorProvider repositoryConnectorProvider; - -+ @Requirement - private RemoteRepositoryManager remoteRepositoryManager; - -+ @Requirement - private UpdateCheckManager updateCheckManager; - -+ @Requirement( role = MetadataGeneratorFactory.class ) - private Collection metadataFactories = new ArrayList(); - -+ @Requirement - private SyncContextFactory syncContextFactory; - -+ @Requirement - private OfflineController offlineController; - - public DefaultDeployer() -@@ -132,6 +144,12 @@ public class DefaultDeployer - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultDeployer setFileProcessor( FileProcessor fileProcessor ) - { - if ( fileProcessor == null ) -@@ -205,6 +223,12 @@ public class DefaultDeployer - return this; - } - -+ DefaultDeployer setMetadataFactories( List metadataFactories ) -+ { -+ // plexus support -+ return setMetadataGeneratorFactories( metadataFactories ); -+ } -+ - public DefaultDeployer setSyncContextFactory( SyncContextFactory syncContextFactory ) - { - if ( syncContextFactory == null ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java -index 04ab2b6..2933e26 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2012 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -21,12 +21,14 @@ import java.nio.ByteBuffer; - - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; - import org.eclipse.aether.spi.io.FileProcessor; - - /** - * A utility class helping with file-based operations. - */ - @Named -+@Component( role = FileProcessor.class ) - public class DefaultFileProcessor - implements FileProcessor - { -@@ -47,9 +49,9 @@ public class DefaultFileProcessor - } - - /** -- * Thread-safe variant of {@link File#mkdirs()}. Creates the directory named by the given abstract pathname, -- * including any necessary but nonexistent parent directories. Note that if this operation fails it may have -- * succeeded in creating some of the necessary parent directories. -+ * Thread-safe variant of {@link File#mkdirs()}. Adapted from Java 6. Creates the directory named by the given -+ * abstract pathname, including any necessary but nonexistent parent directories. Note that if this operation fails -+ * it may have succeeded in creating some of the necessary parent directories. - * - * @param directory The directory to create, may be {@code null}. - * @return {@code true} if and only if the directory was created, along with all necessary parent directories; -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java -index a6e0a29..f0e5086 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -20,11 +20,13 @@ import java.util.Set; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositoryEvent; --import org.eclipse.aether.RepositoryEvent.EventType; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.RequestTrace; - import org.eclipse.aether.SyncContext; -+import org.eclipse.aether.RepositoryEvent.EventType; - import org.eclipse.aether.artifact.Artifact; - import org.eclipse.aether.impl.Installer; - import org.eclipse.aether.impl.MetadataGenerator; -@@ -49,18 +51,24 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; - /** - */ - @Named -+@Component( role = Installer.class ) - public class DefaultInstaller - implements Installer, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private FileProcessor fileProcessor; - -+ @Requirement - private RepositoryEventDispatcher repositoryEventDispatcher; - -+ @Requirement( role = MetadataGeneratorFactory.class ) - private Collection metadataFactories = new ArrayList(); - -+ @Requirement - private SyncContextFactory syncContextFactory; - - public DefaultInstaller() -@@ -95,6 +103,12 @@ public class DefaultInstaller - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultInstaller setFileProcessor( FileProcessor fileProcessor ) - { - if ( fileProcessor == null ) -@@ -138,6 +152,12 @@ public class DefaultInstaller - return this; - } - -+ DefaultInstaller setMetadataFactories( List metadataFactories ) -+ { -+ // plexus support -+ return setMetadataGeneratorFactories( metadataFactories ); -+ } -+ - public DefaultInstaller setSyncContextFactory( SyncContextFactory syncContextFactory ) - { - if ( syncContextFactory == null ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java -index 89a705e..342ab38 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -18,6 +18,8 @@ import java.util.Set; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.impl.LocalRepositoryProvider; - import org.eclipse.aether.repository.LocalRepository; -@@ -33,12 +35,15 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; - /** - */ - @Named -+@Component( role = LocalRepositoryProvider.class ) - public class DefaultLocalRepositoryProvider - implements LocalRepositoryProvider, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement( role = LocalRepositoryManagerFactory.class ) - private Collection managerFactories = new ArrayList(); - - public DefaultLocalRepositoryProvider() -@@ -65,6 +70,12 @@ public class DefaultLocalRepositoryProvider - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultLocalRepositoryProvider addLocalRepositoryManagerFactory( LocalRepositoryManagerFactory factory ) - { - if ( factory == null ) -@@ -88,6 +99,12 @@ public class DefaultLocalRepositoryProvider - return this; - } - -+ DefaultLocalRepositoryProvider setManagerFactories( List factories ) -+ { -+ // plexus support -+ return setLocalRepositoryManagerFactories( factories ); -+ } -+ - public LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession session, LocalRepository repository ) - throws NoLocalRepositoryManagerException - { -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java -index c064a0f..e22c0c0 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -27,11 +27,13 @@ import java.util.concurrent.TimeUnit; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositoryEvent; --import org.eclipse.aether.RepositoryEvent.EventType; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.RequestTrace; - import org.eclipse.aether.SyncContext; -+import org.eclipse.aether.RepositoryEvent.EventType; - import org.eclipse.aether.impl.MetadataResolver; - import org.eclipse.aether.impl.OfflineController; - import org.eclipse.aether.impl.RemoteRepositoryManager; -@@ -69,24 +71,32 @@ import org.eclipse.aether.util.concurrency.WorkerThreadFactory; - /** - */ - @Named -+@Component( role = MetadataResolver.class ) - public class DefaultMetadataResolver - implements MetadataResolver, Service - { - - private static final String CONFIG_PROP_THREADS = "aether.metadataResolver.threads"; - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private RepositoryEventDispatcher repositoryEventDispatcher; - -+ @Requirement - private UpdateCheckManager updateCheckManager; - -+ @Requirement - private RepositoryConnectorProvider repositoryConnectorProvider; - -+ @Requirement - private RemoteRepositoryManager remoteRepositoryManager; - -+ @Requirement - private SyncContextFactory syncContextFactory; - -+ @Requirement - private OfflineController offlineController; - - public DefaultMetadataResolver() -@@ -127,6 +137,12 @@ public class DefaultMetadataResolver - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultMetadataResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher ) - { - if ( repositoryEventDispatcher == null ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java -index 561ba8c..7bce2be 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2012, 2014 Sonatype, Inc. -+ * Copyright (c) 2012, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -15,6 +15,8 @@ import java.util.regex.Pattern; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.impl.OfflineController; - import org.eclipse.aether.repository.RemoteRepository; -@@ -27,6 +29,7 @@ import org.eclipse.aether.transfer.RepositoryOfflineException; - import org.eclipse.aether.util.ConfigUtils; - - @Named -+@Component( role = OfflineController.class ) - public class DefaultOfflineController - implements OfflineController, Service - { -@@ -37,6 +40,7 @@ public class DefaultOfflineController - - private static final Pattern SEP = Pattern.compile( "\\s*,\\s*" ); - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - - public DefaultOfflineController() -@@ -61,6 +65,12 @@ public class DefaultOfflineController - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public void checkOffline( RepositorySystemSession session, RemoteRepository repository ) - throws RepositoryOfflineException - { -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java -index 8a54d62..7b13b3f 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -18,6 +18,8 @@ import java.util.ListIterator; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositoryCache; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.impl.RemoteRepositoryManager; -@@ -40,6 +42,7 @@ import org.eclipse.aether.util.StringUtils; - /** - */ - @Named -+@Component( role = RemoteRepositoryManager.class ) - public class DefaultRemoteRepositoryManager - implements RemoteRepositoryManager, Service - { -@@ -77,10 +80,13 @@ public class DefaultRemoteRepositoryManager - - } - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private UpdatePolicyAnalyzer updatePolicyAnalyzer; - -+ @Requirement - private ChecksumPolicyProvider checksumPolicyProvider; - - public DefaultRemoteRepositoryManager() -@@ -110,6 +116,12 @@ public class DefaultRemoteRepositoryManager - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultRemoteRepositoryManager setUpdatePolicyAnalyzer( UpdatePolicyAnalyzer updatePolicyAnalyzer ) - { - if ( updatePolicyAnalyzer == null ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java -index 40f1100..ab0edc1 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2012, 2014 Sonatype, Inc. -+ * Copyright (c) 2012, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -18,6 +18,8 @@ import java.util.Set; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.impl.RepositoryConnectorProvider; - import org.eclipse.aether.repository.Authentication; -@@ -35,12 +37,15 @@ import org.eclipse.aether.transfer.NoRepositoryConnectorException; - /** - */ - @Named -+@Component( role = RepositoryConnectorProvider.class ) - public class DefaultRepositoryConnectorProvider - implements RepositoryConnectorProvider, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement( role = RepositoryConnectorFactory.class ) - private Collection connectorFactories = new ArrayList(); - - public DefaultRepositoryConnectorProvider() -@@ -67,6 +72,12 @@ public class DefaultRepositoryConnectorProvider - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultRepositoryConnectorProvider addRepositoryConnectorFactory( RepositoryConnectorFactory factory ) - { - if ( factory == null ) -@@ -90,6 +101,12 @@ public class DefaultRepositoryConnectorProvider - return this; - } - -+ DefaultRepositoryConnectorProvider setConnectorFactories( List factories ) -+ { -+ // plexus support -+ return setRepositoryConnectorFactories( factories ); -+ } -+ - public RepositoryConnector newRepositoryConnector( RepositorySystemSession session, RemoteRepository repository ) - throws NoRepositoryConnectorException - { -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java -index 03eabcf..fec70f4 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2012 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -12,11 +12,14 @@ package org.eclipse.aether.internal.impl; - - import java.util.ArrayList; - import java.util.Collection; -+import java.util.List; - import java.util.Set; - - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositoryEvent; - import org.eclipse.aether.RepositoryListener; - import org.eclipse.aether.impl.RepositoryEventDispatcher; -@@ -29,12 +32,15 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; - /** - */ - @Named -+@Component( role = RepositoryEventDispatcher.class ) - public class DefaultRepositoryEventDispatcher - implements RepositoryEventDispatcher, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement( role = RepositoryListener.class ) - private Collection listeners = new ArrayList(); - - public DefaultRepositoryEventDispatcher() -@@ -55,6 +61,12 @@ public class DefaultRepositoryEventDispatcher - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultRepositoryEventDispatcher addRepositoryListener( RepositoryListener listener ) - { - if ( listener == null ) -@@ -78,10 +90,16 @@ public class DefaultRepositoryEventDispatcher - return this; - } - -+ DefaultRepositoryEventDispatcher setListeners( List listeners ) -+ { -+ // plexus support -+ return setRepositoryListeners( listeners ); -+ } -+ - public void initService( ServiceLocator locator ) - { - setLoggerFactory( locator.getService( LoggerFactory.class ) ); -- setRepositoryListeners( locator.getServices( RepositoryListener.class ) ); -+ setListeners( locator.getServices( RepositoryListener.class ) ); - } - - public void dispatch( RepositoryEvent event ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java -index 6fff271..efc9c0a 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2013, 2014 Sonatype, Inc. -+ * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -18,6 +18,8 @@ import java.util.Set; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.RemoteRepository; - import org.eclipse.aether.spi.connector.layout.RepositoryLayout; -@@ -33,12 +35,15 @@ import org.eclipse.aether.transfer.NoRepositoryLayoutException; - /** - */ - @Named -+@Component( role = RepositoryLayoutProvider.class ) - public final class DefaultRepositoryLayoutProvider - implements RepositoryLayoutProvider, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement( role = RepositoryLayoutFactory.class ) - private Collection factories = new ArrayList(); - - public DefaultRepositoryLayoutProvider() -@@ -65,6 +70,12 @@ public final class DefaultRepositoryLayoutProvider - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultRepositoryLayoutProvider addRepositoryLayoutFactory( RepositoryLayoutFactory factory ) - { - if ( factory == null ) -@@ -88,6 +99,12 @@ public final class DefaultRepositoryLayoutProvider - return this; - } - -+ DefaultRepositoryLayoutProvider setFactories( List factories ) -+ { -+ // plexus support -+ return setRepositoryLayoutFactories( factories ); -+ } -+ - public RepositoryLayout newRepositoryLayout( RepositorySystemSession session, RemoteRepository repository ) - throws NoRepositoryLayoutException - { -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java -index 8882814..14258bc 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -17,6 +17,8 @@ import java.util.List; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystem; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.RequestTrace; -@@ -78,32 +80,45 @@ import org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor; - /** - */ - @Named -+@Component( role = RepositorySystem.class ) - public class DefaultRepositorySystem - implements RepositorySystem, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private VersionResolver versionResolver; - -+ @Requirement - private VersionRangeResolver versionRangeResolver; - -+ @Requirement - private ArtifactResolver artifactResolver; - -+ @Requirement - private MetadataResolver metadataResolver; - -+ @Requirement - private ArtifactDescriptorReader artifactDescriptorReader; - -+ @Requirement - private DependencyCollector dependencyCollector; - -+ @Requirement - private Installer installer; - -+ @Requirement - private Deployer deployer; - -+ @Requirement - private LocalRepositoryProvider localRepositoryProvider; - -+ @Requirement - private SyncContextFactory syncContextFactory; - -+ @Requirement - private RemoteRepositoryManager remoteRepositoryManager; - - public DefaultRepositorySystem() -@@ -155,6 +170,12 @@ public class DefaultRepositorySystem - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultRepositorySystem setVersionResolver( VersionResolver versionResolver ) - { - if ( versionResolver == null ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultSyncContextFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultSyncContextFactory.java -index 2910131..a00753d 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultSyncContextFactory.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultSyncContextFactory.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2012 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -14,6 +14,7 @@ import java.util.Collection; - - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.SyncContext; - import org.eclipse.aether.artifact.Artifact; -@@ -25,6 +26,7 @@ import org.eclipse.aether.metadata.Metadata; - * synchronization but merely completes the repository system. - */ - @Named -+@Component( role = SyncContextFactory.class ) - public class DefaultSyncContextFactory - implements SyncContextFactory - { -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java -index 60b64b6..2852103 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2013, 2014 Sonatype, Inc. -+ * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -18,6 +18,8 @@ import java.util.Set; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.RemoteRepository; - import org.eclipse.aether.spi.connector.transport.Transporter; -@@ -33,12 +35,15 @@ import org.eclipse.aether.transfer.NoTransporterException; - /** - */ - @Named -+@Component( role = TransporterProvider.class ) - public final class DefaultTransporterProvider - implements TransporterProvider, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement( role = TransporterFactory.class ) - private Collection factories = new ArrayList(); - - public DefaultTransporterProvider() -@@ -65,6 +70,12 @@ public final class DefaultTransporterProvider - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultTransporterProvider addTransporterFactory( TransporterFactory factory ) - { - if ( factory == null ) -@@ -88,6 +99,12 @@ public final class DefaultTransporterProvider - return this; - } - -+ DefaultTransporterProvider setFactories( List factories ) -+ { -+ // plexus support -+ return setTransporterFactories( factories ); -+ } -+ - public Transporter newTransporter( RepositorySystemSession session, RemoteRepository repository ) - throws NoTransporterException - { -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java -index 652f026..9ebd3cf 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -22,6 +22,8 @@ import java.util.concurrent.ConcurrentHashMap; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.SessionData; - import org.eclipse.aether.artifact.Artifact; -@@ -47,12 +49,15 @@ import org.eclipse.aether.util.ConfigUtils; - /** - */ - @Named -+@Component( role = UpdateCheckManager.class ) - public class DefaultUpdateCheckManager - implements UpdateCheckManager, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private UpdatePolicyAnalyzer updatePolicyAnalyzer; - - private static final String UPDATED_KEY_SUFFIX = ".lastUpdated"; -@@ -95,6 +100,12 @@ public class DefaultUpdateCheckManager - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public DefaultUpdateCheckManager setUpdatePolicyAnalyzer( UpdatePolicyAnalyzer updatePolicyAnalyzer ) - { - if ( updatePolicyAnalyzer == null ) -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java -index adc07f5..7735ea8 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2010, 2014 Sonatype, Inc. -+ * Copyright (c) 2010, 2012 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -15,6 +15,8 @@ import java.util.Calendar; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.impl.UpdatePolicyAnalyzer; - import org.eclipse.aether.repository.RepositoryPolicy; -@@ -27,10 +29,12 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; - /** - */ - @Named -+@Component( role = UpdatePolicyAnalyzer.class ) - public class DefaultUpdatePolicyAnalyzer - implements UpdatePolicyAnalyzer, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - - public DefaultUpdatePolicyAnalyzer() -@@ -55,6 +59,12 @@ public class DefaultUpdatePolicyAnalyzer - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public String getEffectiveUpdatePolicy( RepositorySystemSession session, String policy1, String policy2 ) - { - return ordinalOfUpdatePolicy( policy1 ) < ordinalOfUpdatePolicy( policy2 ) ? policy1 : policy2; -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java -index 4ee698b..1c7ab46 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java -@@ -13,6 +13,8 @@ package org.eclipse.aether.internal.impl; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.LocalRepository; - import org.eclipse.aether.repository.LocalRepositoryManager; -@@ -32,10 +34,12 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; - * emulating physically separated artifact caches per remote repository. - */ - @Named( "enhanced" ) -+@Component( role = LocalRepositoryManagerFactory.class, hint = "enhanced" ) - public class EnhancedLocalRepositoryManagerFactory - implements LocalRepositoryManagerFactory, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - - private float priority = 10; -@@ -75,6 +79,12 @@ public class EnhancedLocalRepositoryManagerFactory - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public float getPriority() - { - return priority; -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java -index 0d95be2..c48a305 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2013, 2014 Sonatype, Inc. -+ * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -18,6 +18,7 @@ import java.util.List; - - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.artifact.Artifact; - import org.eclipse.aether.metadata.Metadata; -@@ -31,6 +32,7 @@ import org.eclipse.aether.util.ConfigUtils; - * Provides a Maven-2 repository layout for repositories with content type {@code "default"}. - */ - @Named( "maven2" ) -+@Component( role = RepositoryLayoutFactory.class, hint = "maven2" ) - public final class Maven2RepositoryLayoutFactory - implements RepositoryLayoutFactory - { -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PlexusLoggerFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PlexusLoggerFactory.java -new file mode 100644 -index 0000000..362cca2 ---- /dev/null -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/PlexusLoggerFactory.java -@@ -0,0 +1,78 @@ -+/******************************************************************************* -+ * Copyright (c) 2010, 2011 Sonatype, Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Sonatype, Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.aether.internal.impl; -+ -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; -+import org.codehaus.plexus.logging.LoggerManager; -+import org.eclipse.aether.spi.log.Logger; -+import org.eclipse.aether.spi.log.LoggerFactory; -+ -+/** -+ * A logger factory that delegates to Plexus logging. -+ */ -+@Component( role = LoggerFactory.class ) -+public class PlexusLoggerFactory -+ implements LoggerFactory -+{ -+ -+ @Requirement -+ private LoggerManager loggerManager; -+ -+ public Logger getLogger( String name ) -+ { -+ return new PlexusLogger( loggerManager.getLoggerForComponent( name ) ); -+ } -+ -+ private static final class PlexusLogger -+ implements Logger -+ { -+ -+ private final org.codehaus.plexus.logging.Logger logger; -+ -+ public PlexusLogger( org.codehaus.plexus.logging.Logger logger ) -+ { -+ this.logger = logger; -+ } -+ -+ public boolean isDebugEnabled() -+ { -+ return logger.isDebugEnabled(); -+ } -+ -+ public void debug( String msg ) -+ { -+ logger.debug( msg ); -+ } -+ -+ public void debug( String msg, Throwable error ) -+ { -+ logger.debug( msg, error ); -+ } -+ -+ public boolean isWarnEnabled() -+ { -+ return logger.isWarnEnabled(); -+ } -+ -+ public void warn( String msg ) -+ { -+ logger.warn( msg ); -+ } -+ -+ public void warn( String msg, Throwable error ) -+ { -+ logger.warn( msg, error ); -+ } -+ -+ } -+ -+} -diff --git a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java -index bc2122f..43e1026 100644 ---- a/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java -+++ b/aether-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java -@@ -13,6 +13,8 @@ package org.eclipse.aether.internal.impl; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.LocalRepository; - import org.eclipse.aether.repository.LocalRepositoryManager; -@@ -28,10 +30,12 @@ import org.eclipse.aether.spi.log.NullLoggerFactory; - * Creates local repository managers for repository type {@code "simple"}. - */ - @Named( "simple" ) -+@Component( role = LocalRepositoryManagerFactory.class, hint = "simple" ) - public class SimpleLocalRepositoryManagerFactory - implements LocalRepositoryManagerFactory, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - - private float priority; -@@ -71,6 +75,12 @@ public class SimpleLocalRepositoryManagerFactory - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public float getPriority() - { - return priority; -diff --git a/aether-impl/src/test/java/org/eclipse/aether/impl/PlexusSupportTest.java b/aether-impl/src/test/java/org/eclipse/aether/impl/PlexusSupportTest.java -new file mode 100644 -index 0000000..26324ef ---- /dev/null -+++ b/aether-impl/src/test/java/org/eclipse/aether/impl/PlexusSupportTest.java -@@ -0,0 +1,66 @@ -+/******************************************************************************* -+ * Copyright (c) 2010, 2011 Sonatype, Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Sonatype, Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.aether.impl; -+ -+import java.util.List; -+ -+import org.codehaus.plexus.ContainerConfiguration; -+import org.codehaus.plexus.PlexusTestCase; -+import org.eclipse.aether.RepositorySystem; -+import org.eclipse.aether.impl.ArtifactDescriptorReader; -+import org.eclipse.aether.impl.VersionRangeResolver; -+import org.eclipse.aether.impl.VersionResolver; -+import org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory; -+import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider; -+import org.eclipse.aether.spi.connector.transport.TransporterProvider; -+import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory; -+ -+/** -+ */ -+public class PlexusSupportTest -+ extends PlexusTestCase -+{ -+ -+ @Override -+ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) -+ { -+ containerConfiguration.setClassPathScanning( "cache" ); -+ } -+ -+ public void testExistenceOfPlexusComponentMetadata() -+ throws Exception -+ { -+ getContainer().addComponent( new StubVersionRangeResolver(), VersionRangeResolver.class, null ); -+ getContainer().addComponent( new StubVersionResolver(), VersionResolver.class, null ); -+ getContainer().addComponent( new StubArtifactDescriptorReader(), ArtifactDescriptorReader.class, null ); -+ -+ RepositorySystem repoSystem = lookup( RepositorySystem.class ); -+ assertNotNull( repoSystem ); -+ assertSame( repoSystem, lookup( RepositorySystem.class ) ); -+ -+ List lrmfs = getContainer().lookupList( LocalRepositoryManagerFactory.class ); -+ assertNotNull( lrmfs ); -+ assertEquals( 2, lrmfs.size() ); -+ -+ List rlfs = getContainer().lookupList( RepositoryLayoutFactory.class ); -+ assertNotNull( rlfs ); -+ assertEquals( 1, rlfs.size() ); -+ -+ RepositoryLayoutProvider rlp = lookup( RepositoryLayoutProvider.class ); -+ assertNotNull( rlp ); -+ assertSame( rlp, lookup( RepositoryLayoutProvider.class ) ); -+ -+ TransporterProvider tp = lookup( TransporterProvider.class ); -+ assertNotNull( tp ); -+ assertSame( tp, lookup( TransporterProvider.class ) ); -+ } -+ -+} -diff --git a/aether-transport-classpath/pom.xml b/aether-transport-classpath/pom.xml -index 41d0506..c7775cb 100644 ---- a/aether-transport-classpath/pom.xml -+++ b/aether-transport-classpath/pom.xml -@@ -51,6 +51,17 @@ - true - - -+ org.codehaus.plexus -+ plexus-component-annotations -+ provided -+ true -+ -+ -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus -+ test -+ -+ - org.sonatype.sisu - sisu-guice - no_aop -@@ -80,6 +91,10 @@ - animal-sniffer-maven-plugin - - -+ org.codehaus.plexus -+ plexus-component-metadata -+ -+ - org.eclipse.sisu - sisu-maven-plugin - -diff --git a/aether-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java b/aether-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java -index 4a7c470..06acb89 100644 ---- a/aether-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java -+++ b/aether-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2013, 2014 Sonatype, Inc. -+ * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -13,6 +13,8 @@ package org.eclipse.aether.transport.classpath; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.RemoteRepository; - import org.eclipse.aether.spi.connector.transport.Transporter; -@@ -33,6 +35,7 @@ import org.eclipse.aether.transfer.NoTransporterException; - * Note: Such repositories are read-only and uploads to them are generally not supported. - */ - @Named( "classpath" ) -+@Component( role = TransporterFactory.class, hint = "classpath" ) - public final class ClasspathTransporterFactory - implements TransporterFactory, Service - { -@@ -44,6 +47,7 @@ public final class ClasspathTransporterFactory - */ - public static final String CONFIG_PROP_CLASS_LOADER = "aether.connector.classpath.loader"; - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - - private float priority; -@@ -81,6 +85,12 @@ public final class ClasspathTransporterFactory - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public float getPriority() - { - return priority; -diff --git a/aether-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/PlexusSupportTest.java b/aether-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/PlexusSupportTest.java -new file mode 100644 -index 0000000..c984df6 ---- /dev/null -+++ b/aether-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/PlexusSupportTest.java -@@ -0,0 +1,42 @@ -+/******************************************************************************* -+ * Copyright (c) 2013 Sonatype, Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Sonatype, Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.aether.transport.classpath; -+ -+import org.codehaus.plexus.ContainerConfiguration; -+import org.codehaus.plexus.PlexusTestCase; -+import org.eclipse.aether.internal.test.util.TestLoggerFactory; -+import org.eclipse.aether.spi.connector.transport.TransporterFactory; -+import org.eclipse.aether.spi.log.LoggerFactory; -+import org.eclipse.aether.transport.classpath.ClasspathTransporterFactory; -+ -+/** -+ */ -+public class PlexusSupportTest -+ extends PlexusTestCase -+{ -+ -+ @Override -+ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) -+ { -+ containerConfiguration.setClassPathScanning( "cache" ); -+ } -+ -+ public void testExistenceOfPlexusComponentMetadata() -+ throws Exception -+ { -+ getContainer().addComponent( new TestLoggerFactory(), LoggerFactory.class, null ); -+ -+ TransporterFactory factory = lookup( TransporterFactory.class, "classpath" ); -+ assertNotNull( factory ); -+ assertEquals( ClasspathTransporterFactory.class, factory.getClass() ); -+ } -+ -+} -diff --git a/aether-transport-file/pom.xml b/aether-transport-file/pom.xml -index 40a2190..2a30814 100644 ---- a/aether-transport-file/pom.xml -+++ b/aether-transport-file/pom.xml -@@ -51,6 +51,17 @@ - true - - -+ org.codehaus.plexus -+ plexus-component-annotations -+ provided -+ true -+ -+ -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus -+ test -+ -+ - org.sonatype.sisu - sisu-guice - no_aop -@@ -80,6 +91,10 @@ - animal-sniffer-maven-plugin - - -+ org.codehaus.plexus -+ plexus-component-metadata -+ -+ - org.eclipse.sisu - sisu-maven-plugin - -diff --git a/aether-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java b/aether-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java -index 08e337c..0969167 100644 ---- a/aether-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java -+++ b/aether-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2013, 2014 Sonatype, Inc. -+ * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -13,6 +13,8 @@ package org.eclipse.aether.transport.file; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.RemoteRepository; - import org.eclipse.aether.spi.connector.transport.Transporter; -@@ -28,10 +30,12 @@ import org.eclipse.aether.transfer.NoTransporterException; - * A transporter factory for repositories using the {@code file:} protocol. - */ - @Named( "file" ) -+@Component( role = TransporterFactory.class, hint = "file" ) - public final class FileTransporterFactory - implements TransporterFactory, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - - private float priority; -@@ -69,6 +73,12 @@ public final class FileTransporterFactory - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public float getPriority() - { - return priority; -diff --git a/aether-transport-file/src/test/java/org/eclipse/aether/transport/file/PlexusSupportTest.java b/aether-transport-file/src/test/java/org/eclipse/aether/transport/file/PlexusSupportTest.java -new file mode 100644 -index 0000000..f579995 ---- /dev/null -+++ b/aether-transport-file/src/test/java/org/eclipse/aether/transport/file/PlexusSupportTest.java -@@ -0,0 +1,41 @@ -+/******************************************************************************* -+ * Copyright (c) 2013 Sonatype, Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Sonatype, Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.aether.transport.file; -+ -+import org.codehaus.plexus.ContainerConfiguration; -+import org.codehaus.plexus.PlexusTestCase; -+import org.eclipse.aether.internal.test.util.TestLoggerFactory; -+import org.eclipse.aether.spi.connector.transport.TransporterFactory; -+import org.eclipse.aether.spi.log.LoggerFactory; -+ -+/** -+ */ -+public class PlexusSupportTest -+ extends PlexusTestCase -+{ -+ -+ @Override -+ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) -+ { -+ containerConfiguration.setClassPathScanning( "cache" ); -+ } -+ -+ public void testExistenceOfPlexusComponentMetadata() -+ throws Exception -+ { -+ getContainer().addComponent( new TestLoggerFactory(), LoggerFactory.class, null ); -+ -+ TransporterFactory factory = lookup( TransporterFactory.class, "file" ); -+ assertNotNull( factory ); -+ assertEquals( FileTransporterFactory.class, factory.getClass() ); -+ } -+ -+} -diff --git a/aether-transport-http/pom.xml b/aether-transport-http/pom.xml -index e86dcc7..e7432ea 100644 ---- a/aether-transport-http/pom.xml -+++ b/aether-transport-http/pom.xml -@@ -68,6 +68,17 @@ - true - - -+ org.codehaus.plexus -+ plexus-component-annotations -+ provided -+ true -+ -+ -+ org.eclipse.sisu -+ org.eclipse.sisu.plexus -+ test -+ -+ - org.sonatype.sisu - sisu-guice - no_aop -@@ -109,6 +120,10 @@ - animal-sniffer-maven-plugin - - -+ org.codehaus.plexus -+ plexus-component-metadata -+ -+ - org.eclipse.sisu - sisu-maven-plugin - -diff --git a/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java b/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java -index 2636bdf..69ed839 100644 ---- a/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java -+++ b/aether-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java -@@ -1,5 +1,5 @@ - /******************************************************************************* -- * Copyright (c) 2013, 2014 Sonatype, Inc. -+ * Copyright (c) 2013 Sonatype, Inc. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at -@@ -13,6 +13,8 @@ package org.eclipse.aether.transport.http; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.RemoteRepository; - import org.eclipse.aether.spi.connector.transport.Transporter; -@@ -29,10 +31,12 @@ import org.eclipse.aether.transfer.NoTransporterException; - * support uploads to WebDAV servers and resumable downloads. - */ - @Named( "http" ) -+@Component( role = TransporterFactory.class, hint = "http" ) - public final class HttpTransporterFactory - implements TransporterFactory, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - - private float priority = 5; -@@ -70,6 +74,12 @@ public final class HttpTransporterFactory - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - public float getPriority() - { - return priority; -diff --git a/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java b/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java -new file mode 100644 -index 0000000..a0f6c86 ---- /dev/null -+++ b/aether-transport-http/src/test/java/org/eclipse/aether/transport/http/PlexusSupportTest.java -@@ -0,0 +1,41 @@ -+/******************************************************************************* -+ * Copyright (c) 2013 Sonatype, Inc. -+ * All rights reserved. This program and the accompanying materials -+ * are made available under the terms of the Eclipse Public License v1.0 -+ * which accompanies this distribution, and is available at -+ * http://www.eclipse.org/legal/epl-v10.html -+ * -+ * Contributors: -+ * Sonatype, Inc. - initial API and implementation -+ *******************************************************************************/ -+package org.eclipse.aether.transport.http; -+ -+import org.codehaus.plexus.ContainerConfiguration; -+import org.codehaus.plexus.PlexusTestCase; -+import org.eclipse.aether.internal.test.util.TestLoggerFactory; -+import org.eclipse.aether.spi.connector.transport.TransporterFactory; -+import org.eclipse.aether.spi.log.LoggerFactory; -+ -+/** -+ */ -+public class PlexusSupportTest -+ extends PlexusTestCase -+{ -+ -+ @Override -+ protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) -+ { -+ containerConfiguration.setClassPathScanning( "cache" ); -+ } -+ -+ public void testExistenceOfPlexusComponentMetadata() -+ throws Exception -+ { -+ getContainer().addComponent( new TestLoggerFactory(), LoggerFactory.class, null ); -+ -+ TransporterFactory factory = lookup( TransporterFactory.class, "http" ); -+ assertNotNull( factory ); -+ assertEquals( HttpTransporterFactory.class, factory.getClass() ); -+ } -+ -+} -diff --git a/aether-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java b/aether-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java -index 5d91358..be57919 100644 ---- a/aether-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java -+++ b/aether-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java -@@ -13,6 +13,8 @@ package org.eclipse.aether.transport.wagon; - import javax.inject.Inject; - import javax.inject.Named; - -+import org.codehaus.plexus.component.annotations.Component; -+import org.codehaus.plexus.component.annotations.Requirement; - import org.eclipse.aether.RepositorySystemSession; - import org.eclipse.aether.repository.RemoteRepository; - import org.eclipse.aether.spi.connector.transport.Transporter; -@@ -30,14 +32,18 @@ import org.eclipse.aether.transfer.NoTransporterException; - * unless one or more wagon implementations are registered with the {@link WagonProvider}. - */ - @Named( "wagon" ) -+@Component( role = TransporterFactory.class, hint = "wagon" ) - public final class WagonTransporterFactory - implements TransporterFactory, Service - { - -+ @Requirement( role = LoggerFactory.class ) - private Logger logger = NullLoggerFactory.LOGGER; - -+ @Requirement - private WagonProvider wagonProvider; - -+ @Requirement - private WagonConfigurator wagonConfigurator; - - private float priority = -1; -@@ -80,6 +86,12 @@ public final class WagonTransporterFactory - return this; - } - -+ void setLogger( LoggerFactory loggerFactory ) -+ { -+ // plexus support -+ setLoggerFactory( loggerFactory ); -+ } -+ - /** - * Sets the wagon provider to use to acquire and release wagon instances. - * --- -2.1.0 - diff --git a/aether.spec b/aether.spec index 45e4a3a..0d352b5 100644 --- a/aether.spec +++ b/aether.spec @@ -3,7 +3,7 @@ Name: aether Epoch: 1 Version: 1.0.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -11,8 +11,6 @@ BuildArch: noarch Source0: http://git.eclipse.org/c/%{name}/%{name}-core.git/snapshot/%{name}-%{version}.%{vertag}.tar.bz2 -Patch1: 0001-Revert-Bug-433953-Remove-support-for-Plexus-IoC-fram.patch - BuildRequires: maven-local BuildRequires: mvn(com.google.inject:guice::no_aop:) BuildRequires: mvn(javax.inject:javax.inject) @@ -128,7 +126,6 @@ for Aether. %prep %setup -q -n %{name}-%{version}.%{vertag} -%patch1 -p1 # Remove clirr plugin %pom_remove_plugin :clirr-maven-plugin @@ -182,6 +179,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Thu Jul 23 2015 Mikolaj Izdebski - 1:1.0.2-3 +- Remove Plexus support + * Tue Jun 16 2015 Fedora Release Engineering - 1:1.0.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild From b0bd40e0656ed7d189bc0b6071ef8a29d7cf1da8 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 3 Feb 2016 16:01:14 +0000 Subject: [PATCH 17/19] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- aether.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aether.spec b/aether.spec index 0d352b5..ead890d 100644 --- a/aether.spec +++ b/aether.spec @@ -3,7 +3,7 @@ Name: aether Epoch: 1 Version: 1.0.2 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -179,6 +179,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Wed Feb 03 2016 Fedora Release Engineering - 1:1.0.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Thu Jul 23 2015 Mikolaj Izdebski - 1:1.0.2-3 - Remove Plexus support From ae260af152abd95f6fec09130b02e72cb106042a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 10 Feb 2017 05:47:34 +0000 Subject: [PATCH 18/19] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- aether.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aether.spec b/aether.spec index ead890d..cceca43 100644 --- a/aether.spec +++ b/aether.spec @@ -3,7 +3,7 @@ Name: aether Epoch: 1 Version: 1.0.2 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Library to resolve, install and deploy artifacts the Maven way License: EPL URL: http://eclipse.org/aether @@ -179,6 +179,9 @@ rm -rf aether-transport-http/src/test %doc epl-v10.html notice.html %changelog +* Fri Feb 10 2017 Fedora Release Engineering - 1:1.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Wed Feb 03 2016 Fedora Release Engineering - 1:1.0.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild From 45818e21822c7c48b7037302677d3b5f88ced32f Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 19 Apr 2017 12:44:19 +0200 Subject: [PATCH 19/19] dead.package --- aether.spec | 312 --------------------------------------------------- dead.package | 1 + sources | 1 - 3 files changed, 1 insertion(+), 313 deletions(-) delete mode 100644 aether.spec create mode 100644 dead.package delete mode 100644 sources diff --git a/aether.spec b/aether.spec deleted file mode 100644 index cceca43..0000000 --- a/aether.spec +++ /dev/null @@ -1,312 +0,0 @@ -%global vertag v20150114 - -Name: aether -Epoch: 1 -Version: 1.0.2 -Release: 5%{?dist} -Summary: Library to resolve, install and deploy artifacts the Maven way -License: EPL -URL: http://eclipse.org/aether -BuildArch: noarch - -Source0: http://git.eclipse.org/c/%{name}/%{name}-core.git/snapshot/%{name}-%{version}.%{vertag}.tar.bz2 - -BuildRequires: maven-local -BuildRequires: mvn(com.google.inject:guice::no_aop:) -BuildRequires: mvn(javax.inject:javax.inject) -BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) -BuildRequires: mvn(org.apache.httpcomponents:httpclient) -BuildRequires: mvn(org.apache.maven.wagon:wagon-provider-api) -BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) >= 1.7 -BuildRequires: mvn(org.codehaus.plexus:plexus-classworlds) -BuildRequires: mvn(org.codehaus.plexus:plexus-component-annotations) -BuildRequires: mvn(org.codehaus.plexus:plexus-component-metadata) -BuildRequires: mvn(org.codehaus.plexus:plexus-utils) -BuildRequires: mvn(org.eclipse.sisu:org.eclipse.sisu.plexus) -BuildRequires: mvn(org.eclipse.sisu:sisu-maven-plugin) -BuildRequires: mvn(org.hamcrest:hamcrest-library) -BuildRequires: mvn(org.slf4j:jcl-over-slf4j) -BuildRequires: mvn(org.slf4j:slf4j-api) - -%description -Aether is a standalone library to resolve, install and deploy artifacts -the Maven way. - -%package api -Summary: Aether API - -%description api -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides application -programming interface for Aether repository system. - -%package connector-basic -Summary: Aether Connector Basic - -%description connector-basic -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides repository connector -implementation for repositories using URI-based layouts. - -%package impl -Summary: Implementation of Aether repository system - -%description impl -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides implementation of -Aether repository system. - -%package spi -Summary: Aether SPI - -%description spi -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package contains Aether service -provider interface (SPI) for repository system implementations and -repository connectors. - -%package test-util -Summary: Aether test utilities - -%description test-util -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides collection of utility -classes that ease testing of Aether repository system. - -%package transport-classpath -Summary: Aether Transport Classpath - -%description transport-classpath -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides a transport -implementation for repositories using classpath:// URLs. - -%package transport-file -Summary: Aether Transport File -Obsoletes: %{name}-connector-file < %{epoch}:%{version}-%{release} - -%description transport-file -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides a transport -implementation for repositories using file:// URLs. - -%package transport-http -Summary: Aether Transport HTTP -Obsoletes: %{name}-connector-asynchttpclient < %{epoch}:%{version}-%{release} - -%description transport-http -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides a transport -implementation for repositories using http:// and https:// URLs. - -%package transport-wagon -Summary: Aether Transport Wagon -Obsoletes: %{name}-connector-wagon < %{epoch}:%{version}-%{release} - -%description transport-wagon -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides a transport -implementation based on Maven Wagon. - -%package util -Summary: Aether utilities - -%description util -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides a collection of -utility classes to ease usage of Aether repository system. - -%package javadoc -Summary: Java API documentation for Aether - -%description javadoc -Aether is a standalone library to resolve, install and deploy -artifacts the Maven way. This package provides Java API documentation -for Aether. - -%prep -%setup -q -n %{name}-%{version}.%{vertag} - -# Remove clirr plugin -%pom_remove_plugin :clirr-maven-plugin -%pom_remove_plugin :clirr-maven-plugin aether-api -%pom_remove_plugin :clirr-maven-plugin aether-util -%pom_remove_plugin :clirr-maven-plugin aether-spi - -# Animal sniffer is not useful in Fedora -for module in . aether-api aether-connector-basic aether-impl \ - aether-spi aether-test-util aether-transport-file \ - aether-transport-classpath aether-transport-http \ - aether-transport-wagon aether-util; do - %pom_remove_plugin :animal-sniffer-maven-plugin $module -done - -# HTTP transport tests require Jetty 7 and networking. -rm -rf aether-transport-http/src/test -%pom_xpath_remove "pom:dependency[pom:scope='test']" aether-transport-http - -%pom_remove_plugin :maven-enforcer-plugin - -# Upstream uses Sisu 0.0.0.M4, but Fedora has 0.0.0.M5. In M5 scope -# of Guice dependency was changed from "compile" to "provided". -%pom_add_dep com.google.inject:guice::provided . "no_aop" - -%build -%mvn_build -s - -%install -%mvn_install - -%files -f .mfiles-%{name} -%doc README.md -%doc epl-v10.html notice.html - -%files api -f .mfiles-%{name}-api -%doc README.md -%doc epl-v10.html notice.html -%dir %{_javadir}/%{name} - -%files connector-basic -f .mfiles-%{name}-connector-basic -%files impl -f .mfiles-%{name}-impl -%files spi -f .mfiles-%{name}-spi -%files test-util -f .mfiles-%{name}-test-util -%files transport-classpath -f .mfiles-%{name}-transport-classpath -%files transport-file -f .mfiles-%{name}-transport-file -%files transport-http -f .mfiles-%{name}-transport-http -%files transport-wagon -f .mfiles-%{name}-transport-wagon -%files util -f .mfiles-%{name}-util -%files javadoc -f .mfiles-javadoc -%doc epl-v10.html notice.html - -%changelog -* Fri Feb 10 2017 Fedora Release Engineering - 1:1.0.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 03 2016 Fedora Release Engineering - 1:1.0.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jul 23 2015 Mikolaj Izdebski - 1:1.0.2-3 -- Remove Plexus support - -* Tue Jun 16 2015 Fedora Release Engineering - 1:1.0.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Wed Feb 4 2015 Mikolaj Izdebski - 1:1.0.2-1 -- Update to upstream version 1.0.2 - -* Wed Feb 4 2015 Mikolaj Izdebski - 1:1.0.1-1 -- Update to upstream version 1.0.1 - -* Sat Jun 07 2014 Fedora Release Engineering - 1:1.0.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed May 21 2014 Mikolaj Izdebski - 1:1.0.0-2 -- Bring back Plexus support - -* Tue May 20 2014 Mikolaj Izdebski - 1:1.0.0-1 -- Update to upstream version 1.0.0 - -* Tue Apr 1 2014 Mikolaj Izdebski - 1:0.9.1-1 -- Update to upstream version 0.9.1 - -* Thu Feb 27 2014 Mikolaj Izdebski - 1:0.9.0-1 -- Update to upstream version 0.9.0 - -* Mon Jan 6 2014 Mikolaj Izdebski - 1:0.9.0-0.5.M4 -- Update to upstream version 0.9.0.M4 -- Remove workaround for rhbz#911365 - -* Wed Aug 14 2013 Mikolaj Izdebski - 1:0.9.0-0.4.M3 -- Add missing Obsoletes: aether-connector-file -- Resolves: rhbz#996764 - -* Mon Aug 12 2013 Mikolaj Izdebski - 1:0.9.0-0.3.M3 -- Update to upstream version 0.9.0.M3 - -* Thu Jul 25 2013 Mikolaj Izdebski - 1:0.9.0-0.2.M2 -- Remove remains of Sonatype Aether -- Port from Sonatype Sisu to Eclipse Sisu, resolves: rhbz#985691 - -* Fri Jul 19 2013 Mikolaj Izdebski - 1:0.9.0-0.M2.1 -- Switch upstream from Sonatype to Eclipse -- Update to upstream version 0.9.0.M2 -- Install Sonatype Aether in pararell to Eclipse Aether - -* Fri Jul 19 2013 Mikolaj Izdebski - 1.13.1-12 -- Add symlinks to Sonatype Aether - -* Wed Jun 26 2013 Mikolaj Izdebski - 1.13.1-11 -- Install license files -- Resolves: rhbz#958116 - -* Fri May 10 2013 Mikolaj Izdebski - 1.13.1-10 -- Conditionally build without AHC connector - -* Thu May 2 2013 Mikolaj Izdebski - 1.13.1-9 -- Install compat JAR symlinks -- Resolves: rhbz#958558 - -* Tue Apr 30 2013 Mikolaj Izdebski - 1.13.1-8 -- Complete spec file rewrite -- Build with xmvn -- Split into multiple subpackages, resolves: rhbz#916142 -- Update to current packaging guidelines - -* Thu Feb 7 2013 Mikolaj Izdebski - 1.13.1-7 -- Build with xmvn -- Disable animal sniffer -- Remove R on jboss-parent, resolves: rhbz#908583 - -* Wed Feb 06 2013 Java SIG - 1.13.1-6 -- Update for https://fedoraproject.org/wiki/Fedora_19_Maven_Rebuild -- Replace maven BuildRequires with maven-local - -* Mon Aug 27 2012 Mikolaj Izdebski - 1.13.1-5 -- Disable animal-sniffer on RHEL - -* Wed Jul 18 2012 Fedora Release Engineering - 1.13.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Thu Jun 28 2012 Mikolaj Izdebski - 1.13.1-3 -- Replace pom.xml patches with pom macros - -* Thu Apr 19 2012 Alexander Kurtakov 1.13.1-2 -- Install aether-connector-asynchttpclient - it was build but not installed. - -* Tue Jan 31 2012 Stanislav Ochotnicky - 1.13.1-1 -- Update to latest upstream -- Update spec to latest guidelines - -* Thu Jan 12 2012 Fedora Release Engineering - 1.11-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Jun 8 2011 Alexander Kurtakov 1.11-3 -- Build with maven 3.x. -- Do not require maven - not found in dependencies in poms. -- Guidelines fixes. - -* Mon Feb 28 2011 Stanislav Ochotnicky - 1.11-2 -- Rebuild after bugfix update to plexus-containers (#675865) - -* Fri Feb 25 2011 Stanislav Ochotnicky - 1.11-1 -- Update to latest version -- Add ASL 2.0 back as optional license - -* Mon Feb 07 2011 Fedora Release Engineering - 1.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Wed Jan 19 2011 Stanislav Ochotnicky - 1.9-1 -- License changed to EPL -- Add async-http-client to BR/R -- Update to latest version - -* Wed Dec 8 2010 Stanislav Ochotnicky - 1.7-3 -- Make jars/javadocs versionless -- Remove buildroot and clean section - -* Wed Oct 13 2010 Stanislav Ochotnicky - 1.7-2 -- Explained how to get tarball properly -- Removed noreplace on depmap fragment - -* Mon Oct 11 2010 Stanislav Ochotnicky - 1.7-1 -- Initial Package diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..3ad7a67 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Replaced by maven-resolver diff --git a/sources b/sources deleted file mode 100644 index 5c2fa8f..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -cc5ef065625e9bd5dd94acde8221e103 aether-1.0.2.v20150114.tar.bz2