You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by GitBox <gi...@apache.org> on 2021/04/29 13:26:01 UTC

[GitHub] [maven-artifact-transfer] cstamas opened a new pull request #24: [MSHARED-987] Make use of SISU

cstamas opened a new pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24


   https://issues.apache.org/jira/browse/MSHARED-987
   
   Drop all the reflection hoops and loops, and organize into api-provider layout. Should have NO IMPACT on consumers.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854121719


   Note to myself: I'd do one more thing in this PR: move out things into own packages (the "provider" ones), as currently all I did is just move out things in their corresponding module retaining original packages. This means that the 3 (new) modules have overlapping packages that is not nice. Given maven-3.0 and maven-3.1 (and future ones) should contain only component implementations (of those interfaces in m-a-t-api), we could just put them all under `org.apache.maven.shared.transfer.internal.maven30` and `org.apache.maven.shared.transfer.internal.maven31` etc package.
   
   WDYT?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830850967


   So to say, "restructure" the code, make these modules and remove the reflection cruft (to make easier to maintain and more readable), and then we merge this PR, and then as 2nd iteration we go and solve those NPEs and other stuff we think are not needed (the two 3.0.x related repomanagers, are to be merged into one class actually). But again, _this PR is not that PR_ 😄 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-915128652


   Any other comment? I'd like to merge or drop this, is lingering for way too long...


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-829348216


   As mentioned above UTs pass OK
   The ITs pass, **except for maven 3.0.5**, reason: it seems it was not yet honoring "sisu index" (`META-INF/sisu/javax.inject.Named`). (ProjectInstaller pass OK, as it does not invoke 3.0.x).
   
   Now, **this is a reason** to drop 3.0.x line, as I don't want to write anymore `plexus.xml`, while we have SISU.
   
   Essentially, this means that regarding "components" maven 3.0.x and 3.1.x line "speak different languages". Maven 3.1.x+ "knows" sisu-index, while maven 3.0.x does NOT. IMO, I see really no reason to support 3.0.x.
   
   Please test this, inspect ITs and ping here.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-915269142


   Maven Deploy Plugin must be tested.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-915140926


   > To me the change is too big to validate, so it must proof itself for the several plugins out there that depend on it.
   
   Ok, @slachiewicz tested with m-dependency-p, which other plugins you have on your mind?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on a change in pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on a change in pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#discussion_r624734045



##########
File path: maven-3.0.x/pom.xml
##########
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer-maven-3.0.x</artifactId>
+
+  <name>Apache Maven Artifact Transfer Maven 3.0.x provider</name>
+
+  <properties>
+    <maven30x.version>3.0</maven30x.version>
+    <sonatypeAether.version>1.7</sonatypeAether.version>

Review comment:
       updated, as maven went 3.0.5, sonatype aether MUST go in lockstep, is 1.13.1




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830850011


   Can you explain why we need `Maven302RepositoryManager`  instead of just `Maven302RepositoryManager`?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830850698


   > Can you explain why we need `Maven302RepositoryManager` instead of just `Maven302RepositoryManager`?
   
   Again, old code that I did not touch (aside of making it component). I wanted to make this reshuffle least volatile re old code, keep it unchanged as much is posslble


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854119930


   @slachiewicz cool, thanks for testing, maybe drop here some more plugins that use m-a-t and have nice IT suite, so I could test some of those as well...


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-852851846


   I will check when I can...


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] slachiewicz commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
slachiewicz commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-852881088


   tested with m-dependency-plugin, works OOB


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-924643199


   > There are so many changes that I will blindly trust you here.
   
   Agreed, that's why I want to move forward, as IMHO people will realize how _simpler_ this will be than the current master "swamp" of fragile reflection magic.
   
   Thanks for approving. There are 2 approvals on this PR. Is it enough?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830844133


   General remark @michael-o : I did not made any other code change then:
   * added to methods ProjectBuildingRequest
   * removed reflection bits, replaced with direct calls
   * removed some reflection utilities, replaced with direct calls
   
   My point is, that those NPE comments of your are about _old code_, I did not introduce any logic/code change in that area, and IMO we can do those later as improvement, but for now I'd leave code as is (is really just "reshuffled" into modules + changes I wrote above).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-924620981


   So anything else needed here?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-915321903


   Question to reviews: Do we really need Sisu support for Maven 3.0.x? I'd rather drop it and focus on 3.1.x+ only.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-915321903


   Question to reviews. Do we really need Sisu support for Maven 3.0.x? I'd rather drop it and focus on 3.1.x+ only.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] elilja commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
elilja commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-916045879


   > Question to reviews: Do we really need Sisu support for Maven 3.0.x? I'd rather drop it and focus on 3.1.x+ only.
   
   Several other Maven components already set 3.1.1 as a minimum, so spending time here for 3.0.x would be waste of time, it seems


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854121719


   Note to myself: I'd do one more thing in this PR: move out things into own packages (the "provider" ones), as currently all I did is just move out things in their place retaining original packages. This means that the 3 (new) modules have overlapping packages that is not nice. Given maven-3.0 and maven-3.1 (and future one) should contain only (java interface) component implementations, we could just put them all under `org.apache.maven.shared.transfer.internal.maven30` and `org.apache.maven.shared.transfer.internal.maven31` etc package.
   
   WDYT?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830849772


   > 
   > 
   > General remark @michael-o : I did not made any other code change then:
   > 
   >     * added ProjectBuildingRequest parameter to methods, removed some unneeded members (like remote repositories).
   > 
   >     * removed reflection bits, replaced with direct calls
   > 
   >     * removed some reflection utilities, replaced with direct calls
   > 
   > 
   > My point is, that those NPE comments of your are about _old code_, I did not introduce any logic/code change in that area, and IMO we can do those later as improvement, but for now I'd leave code as is (is really just "reshuffled" into modules + changes I wrote above).
   
   I agree with that.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-852847100


   I will check when I can...


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854121719


   Note to myself: I'd do one more thing in this PR: move out things into own packages (the "provider" ones), as currently all I did is just move out things in their corresponding module retaining original packages. This means that the 3 (new) modules have overlapping packages that is not nice. Given maven-3.0 and maven-3.1 (and future one) should contain only component implementations (of those interfaces in m-a-t-api), we could just put them all under `org.apache.maven.shared.transfer.internal.maven30` and `org.apache.maven.shared.transfer.internal.maven31` etc package.
   
   WDYT?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830872440


   Added some cleanup (properties may need more) and for fun disabled 3.0.5 in ITs, and added 3.6.3 and 3.8.1, so ITs now run on "3.1.1", "3.2.5", "3.3.9", "3.5.4", "3.6.3", "3.8.1" and all pass OK


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] rfscholte commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
rfscholte commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830853914


   I think I know what you've done. Whereas I started with the single jar approach,  you separated the code into modules.
   I can't see the new structure, but I know there were sometimes even 3 implementation due to changes in Aether. How did you solve that?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830844133


   General remark @michael-o : I did not made any other code change then:
   * added ProjectBuildingRequest parameter to methods, removed some unneeded members (like remote repositories).
   * removed reflection bits, replaced with direct calls
   * removed some reflection utilities, replaced with direct calls
   
   My point is, that those NPE comments of your are about _old code_, I did not introduce any logic/code change in that area, and IMO we can do those later as improvement, but for now I'd leave code as is (is really just "reshuffled" into modules + changes I wrote above).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on a change in pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on a change in pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#discussion_r624734205



##########
File path: maven-3.1.x/pom.xml
##########
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer-maven-3.1.x</artifactId>
+
+  <name>Apache Maven Artifact Transfer Maven 3.1.x provider</name>
+
+  <properties>
+    <maven31x.version>3.1.0</maven31x.version>

Review comment:
       fixed

##########
File path: maven-artifact-transfer-api/pom.xml
##########
@@ -0,0 +1,107 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer-api</artifactId>
+
+  <name>Apache Maven Artifact Transfer API</name>
+
+  <dependencies>
+    <!-- Maven 3.0.x: all provided -->
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>3.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>3.0</version>

Review comment:
       moved




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-829350347


   but now to "drop 3.0.x", it is simple as dropping module for 3.0.x :wink: 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854121719


   Note to myself: I'd do one more thing in this PR: move out things into own packages (the "provider" ones), as currently all I did is just move out things in their place retaining original packages. This means that the 3 (new) modules have overlapping packages that is not nice. Given maven-3.0 and maven-3.1 (and future one) should contain only (java interface) component implementations, we could just put them all under `org.apache.maven.shared.transfer.internal.maven30` etc package.
   
   WDYT?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-845740357


   Hint for plugin developers: IF your plugin is Maven 3.1+ AND you care for planet, then just exclude bits and make some penguins float longer on icebergs:
   ```xml
       <dependency>
         <groupId>org.apache.maven.shared</groupId>
         <artifactId>maven-artifact-transfer</artifactId>
         <version>2.0.0-SNAPSHOT</version>
         <exclusions>
           <exclusion>
             <groupId>org.apache.maven.shared</groupId>
             <artifactId>maven-artifact-transfer-maven-3.0.x</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
   ```
   The rest of m-artifact-transfer should be unaffected.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830857877


   > I think I know what you've done. Whereas I started with the single jar approach, you separated the code into modules.
   > I can't see the new structure, but I know there were sometimes even 3 implementation due to changes in Aether. How did you solve that?
   
   I found max two implementations (3.0 and 3.0.2) of RepositoryManager, the rest was "clean" (one 3.0 and one 3.1). So unsure where there are 3 implementations...
   
   In short, all the DefaultXXX classes extends this one
   https://github.com/apache/maven-artifact-transfer/blob/MSHARED-987-providers/maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/support/DelegatorSupport.java
   
   And Selector (currently very roughly implemented, but we can easily refine it once needed for more differentiation)
   https://github.com/apache/maven-artifact-transfer/blob/MSHARED-987-providers/maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/support/Selector.java
   
   It uses two key things:
   * SISU: on "collection lookup" (injecting map of components) will silently skip components that cannot be loaded due CNFEx (so org.sonatype using things will be silently omitted from delegate map in maven 3.1, and other way around, org.eclipse using things will be omitted in maven 3.0 (note: this does not stand for DIRECT lookup, ie. if you lookup single component by key, and you get CNFex, SISU will fail naturally).
   * Selector: then "narrows" and selects "proper" component (by detected runtime) from the map
   
   Note: sisu injection of map does NOT instantiate all found components, as map is "lazy" (sisu detail), so at the end, you end with ONLY ONE instantiated component doing the work for given runtime (components are created atomically when they are getted from map).
   
   Re selection: it is simple (only 3.0 vs 3.1) as I found no case of finer selection needed (there was 3.0 vs 3.0.2, but we upped 3.0 to 3.0.5). But, if needed, we can create fine grained or even hierarchical versioning, and make Selector "smarter", but as I said, is currently not needed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on a change in pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on a change in pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#discussion_r624734298



##########
File path: maven-artifact-transfer/pom.xml
##########
@@ -0,0 +1,188 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer</artifactId>
+
+  <name>Apache Maven Artifact Transfer</name>
+
+  <properties>
+    <downstreamMaven.version>3.1.0</downstreamMaven.version>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer-maven-3.0.x</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer-maven-3.1.x</artifactId>
+    </dependency>
+
+    <!-- Original dependencies consumers expect to have -->
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>${downstreamMaven.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>${downstreamMaven.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-common-artifact-filters</artifactId>
+      <version>${artifactFilters.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+
+
+    <!-- TEST -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>animal-sniffer-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>run-its</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+            <dependencies>
+              <dependency>
+                <groupId>org.codehaus.groovy</groupId>
+                <artifactId>groovy</artifactId>
+                <version>3.0.7</version>
+              </dependency>
+              <dependency>
+                <groupId>org.codehaus.gmaven.runtime</groupId>
+                <artifactId>gmaven-runtime-2.0</artifactId>
+                <version>1.5</version>
+              </dependency>
+            </dependencies>
+            <configuration>
+              <addTestClassPath>true</addTestClassPath>
+              <debug>false</debug>
+              <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+              <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+              <projectsDirectory>src/it</projectsDirectory>
+              <showVersion>true</showVersion>
+              <pomIncludes>
+                <pomInclude>*/pom.xml</pomInclude>
+              </pomIncludes>
+              <preBuildHookScript>setup</preBuildHookScript>
+              <postBuildHookScript>verify</postBuildHookScript>
+              <settingsFile>src/it/settings.xml</settingsFile>
+              <!-- Currently working with more than one thread does not work, cause
+                it is not guaranteed that the setup-config project is build at first. see
+                also http://jira.codehaus.org/browse/MINVOKER-147 -->
+              <parallelThreads>1</parallelThreads>
+              <filterProperties>
+                <repository.proxy.url>${repository.proxy.url}</repository.proxy.url>
+                <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+              </filterProperties>
+              <extraArtifacts>
+                <extraArtifact>org.apache.maven:apache-maven:3.0.5:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.1.1:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.2.5:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.3.1:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.3.9:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.5.0:tar.gz:bin</extraArtifact>

Review comment:
       fixed, and added 3.6.3 and 3.8.1 as well




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854121719


   Note to myself: I'd do one more thing in this PR: move out things into own packages (the "provider" ones), as currently all I did is just move out things in their place retaining original packages. This means that the 3 (new) modules have overlapping packages that is not nice. Given maven-3.0 and maven-3.1 (and future one) should contain only component implementations (of those interfaces in m-a-t-api), we could just put them all under `org.apache.maven.shared.transfer.internal.maven30` and `org.apache.maven.shared.transfer.internal.maven31` etc package.
   
   WDYT?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-852822569


   Um, anyone? 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on a change in pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on a change in pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#discussion_r624734173



##########
File path: maven-3.0.x/src/main/java/org/apache/maven/shared/transfer/repository/internal/Maven302RepositoryManager.java
##########
@@ -20,18 +20,24 @@
  */
 
 import org.sonatype.aether.RepositorySystem;
-import org.sonatype.aether.RepositorySystemSession;
 import org.sonatype.aether.repository.LocalRepository;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 /**
- * 
+ *
  */
-class Maven302RepositoryManager
-    extends Maven30RepositoryManager
+@Singleton
+@Named( "maven-3.0.2" )

Review comment:
       fixed, as maven 3.0.x went to maven 3.0.5 (but kept original code, just make other abstract and this one MAVEN_3_0_X)




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas merged pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas merged pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-918918350


   Plugin full IT suites:
   * m-dependency-p (just upped the versoin of m-a-t, as I guess @slachiewicz did): all ok
   * m-install-p: all ok, needs changes https://github.com/apache/maven-install-plugin/pull/12
   * m-deploy-p: fails same ITs that fail on master, needs changes https://github.com/apache/maven-deploy-plugin/pull/18
   
   m-deploy-p failed ITs on master are these
   [ERROR] The following builds failed:
   [ERROR] *  deploy-attached-sources/pom.xml
   [ERROR] *  MDEPLOY-212/pom.xml
   [ERROR] *  MDEPLOY-213/pom.xml


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830850011


   Can you explain why we need `Maven302RepositoryManager?  instead of just `Maven302RepositoryManager`?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-844999113


   @rfscholte with latest changes all the ITs pass with 3.0.5 as well (so your request accomplished), so ITs now run on "3.0.5", "3.1.1", "3.2.5", "3.3.9", "3.5.4", "3.6.3", "3.8.1" and all pass OK. Please review.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on a change in pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on a change in pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#discussion_r624734274



##########
File path: maven-artifact-transfer/pom.xml
##########
@@ -0,0 +1,188 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer</artifactId>
+
+  <name>Apache Maven Artifact Transfer</name>
+
+  <properties>
+    <downstreamMaven.version>3.1.0</downstreamMaven.version>

Review comment:
       fixed




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-845740357


   Hint for plugin developers: IF your plugin is Maven 3.1+ AND you want to use artifact-transfer AND you care for planet, then just exclude bits and make some penguins float longer on icebergs:
   ```xml
       <dependency>
         <groupId>org.apache.maven.shared</groupId>
         <artifactId>maven-artifact-transfer</artifactId>
         <version>2.0.0-SNAPSHOT</version>
         <exclusions>
           <exclusion>
             <groupId>org.apache.maven.shared</groupId>
             <artifactId>maven-artifact-transfer-maven-3.0.x</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
   ```
   The rest of m-artifact-transfer should be unaffected.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] slachiewicz commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
slachiewicz commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-916112786


   See comments here https://github.com/apache/maven-artifact-transfer/pull/23


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830872440


   Added some cleanup (properties may need more) and for fun disabled 3.0.5 mvn in its, and added 3.6.3 and 3.8.1


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-924734705


   @cstamas Go ahead a merge it. I appreciate your high quality work.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas edited a comment on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas edited a comment on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854121719






-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854119930






-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-854121719


   Note to myself: I'd do one more thing in this PR: move out things into own packages (the "provider" ones), as currently all I did is just move out things in their place retaining original packages. This means that the 3 (new) modules have overlapping packages that is not nice. Given maven-3.0 and maven-3.1 (and future one) should contain only (java interface) component implementations, we could just put them all under `org.apache.maven.shared.transfer.internal.maven30` etc package


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] rfscholte commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
rfscholte commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-915137419


   To me the change is too big to validate, so it must proof itself for the several plugins out there that depend on it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on a change in pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on a change in pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#discussion_r624730059



##########
File path: maven-3.0.x/pom.xml
##########
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer-maven-3.0.x</artifactId>
+
+  <name>Apache Maven Artifact Transfer Maven 3.0.x provider</name>
+
+  <properties>
+    <maven30x.version>3.0</maven30x.version>
+    <sonatypeAether.version>1.7</sonatypeAether.version>

Review comment:
       ? https://repo1.maven.org/maven2/org/sonatype/aether/aether-api/1.7/




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] michael-o commented on a change in pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
michael-o commented on a change in pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#discussion_r624720934



##########
File path: maven-3.0.x/pom.xml
##########
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer-maven-3.0.x</artifactId>
+
+  <name>Apache Maven Artifact Transfer Maven 3.0.x provider</name>
+
+  <properties>
+    <maven30x.version>3.0</maven30x.version>
+    <sonatypeAether.version>1.7</sonatypeAether.version>

Review comment:
       Does not exist in Maven Central: https://search.maven.org/artifact/org.sonatype.aether/aether-api

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/DefaultArtifactInstaller.java
##########
@@ -0,0 +1,89 @@
+package org.apache.maven.shared.transfer.artifact.install.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.install.ArtifactInstaller;
+import org.apache.maven.shared.transfer.artifact.install.ArtifactInstallerException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.io.File;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactInstaller
+        extends DelegatorSupport<ArtifactInstallerDelegate>
+        implements ArtifactInstaller
+{
+    @Inject
+    public DefaultArtifactInstaller( Map<String, ArtifactInstallerDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public void install( ProjectBuildingRequest request,
+                         Collection<Artifact> mavenArtifacts )
+            throws ArtifactInstallerException, IllegalArgumentException
+    {
+        validateParameters( request, mavenArtifacts );
+        delegate.install( request, mavenArtifacts );
+    }
+
+    public void install( ProjectBuildingRequest request,
+                         File localRepository,
+                         Collection<Artifact> mavenArtifacts ) throws ArtifactInstallerException
+    {
+        validateParameters( request, mavenArtifacts );
+        if ( localRepository == null )
+        {
+            throw new IllegalArgumentException( "The parameter localRepository is not allowed to be null." );
+        }
+        if ( !localRepository.isDirectory() )
+        {
+            throw new IllegalArgumentException( "The parameter localRepository must be a directory." );
+        }
+        delegate.install( request, localRepository, mavenArtifacts );
+    }
+
+    private void validateParameters( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
+    {
+        if ( request == null )
+        {
+            throw new IllegalArgumentException( "The parameter request is not allowed to be null." );
+        }
+        if ( mavenArtifacts == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/DefaultArtifactResolver.java
##########
@@ -0,0 +1,89 @@
+package org.apache.maven.shared.transfer.artifact.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactResolver
+        extends DelegatorSupport<ArtifactResolverDelegate>
+        implements ArtifactResolver
+{
+    @Inject
+    public DefaultArtifactResolver( Map<String, ArtifactResolverDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
+                                           Artifact mavenArtifact )
+            throws ArtifactResolverException, IllegalArgumentException
+    {
+        validateParameters( buildingRequest, mavenArtifact );
+        return delegate.resolveArtifact( buildingRequest, mavenArtifact );
+    }
+
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
+                                           ArtifactCoordinate coordinate )
+            throws ArtifactResolverException, IllegalArgumentException
+    {
+        validateParameters( buildingRequest, coordinate );
+        return delegate.resolveArtifact( buildingRequest, coordinate );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Artifact mavenArtifact )
+    {
+        if ( buildingRequest == null )
+        {
+            throw new IllegalArgumentException( "The parameter buildingRequest is not allowed to be null." );
+        }
+        if ( mavenArtifact == null )
+        {
+            throw new IllegalArgumentException( "The parameter mavenArtifact is not allowed to be null." );
+        }
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, ArtifactCoordinate coordinate )
+    {
+        if ( buildingRequest == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer/pom.xml
##########
@@ -0,0 +1,188 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer</artifactId>
+
+  <name>Apache Maven Artifact Transfer</name>
+
+  <properties>
+    <downstreamMaven.version>3.1.0</downstreamMaven.version>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer-maven-3.0.x</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-artifact-transfer-maven-3.1.x</artifactId>
+    </dependency>
+
+    <!-- Original dependencies consumers expect to have -->
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>${downstreamMaven.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>${downstreamMaven.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-common-artifact-filters</artifactId>
+      <version>${artifactFilters.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+
+
+    <!-- TEST -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>animal-sniffer-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>run-its</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+            <dependencies>
+              <dependency>
+                <groupId>org.codehaus.groovy</groupId>
+                <artifactId>groovy</artifactId>
+                <version>3.0.7</version>
+              </dependency>
+              <dependency>
+                <groupId>org.codehaus.gmaven.runtime</groupId>
+                <artifactId>gmaven-runtime-2.0</artifactId>
+                <version>1.5</version>
+              </dependency>
+            </dependencies>
+            <configuration>
+              <addTestClassPath>true</addTestClassPath>
+              <debug>false</debug>
+              <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+              <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+              <projectsDirectory>src/it</projectsDirectory>
+              <showVersion>true</showVersion>
+              <pomIncludes>
+                <pomInclude>*/pom.xml</pomInclude>
+              </pomIncludes>
+              <preBuildHookScript>setup</preBuildHookScript>
+              <postBuildHookScript>verify</postBuildHookScript>
+              <settingsFile>src/it/settings.xml</settingsFile>
+              <!-- Currently working with more than one thread does not work, cause
+                it is not guaranteed that the setup-config project is build at first. see
+                also http://jira.codehaus.org/browse/MINVOKER-147 -->
+              <parallelThreads>1</parallelThreads>
+              <filterProperties>
+                <repository.proxy.url>${repository.proxy.url}</repository.proxy.url>
+                <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+              </filterProperties>
+              <extraArtifacts>
+                <extraArtifact>org.apache.maven:apache-maven:3.0.5:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.1.1:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.2.5:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.3.1:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.3.9:tar.gz:bin</extraArtifact>
+                <extraArtifact>org.apache.maven:apache-maven:3.5.0:tar.gz:bin</extraArtifact>

Review comment:
       3.5.4

##########
File path: maven-3.0.x/pom.xml
##########
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer-maven-3.0.x</artifactId>
+
+  <name>Apache Maven Artifact Transfer Maven 3.0.x provider</name>
+
+  <properties>
+    <maven30x.version>3.0</maven30x.version>

Review comment:
       We use Mavn 3.0.5 as bare minimum.

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/DefaultArtifactDeployer.java
##########
@@ -0,0 +1,80 @@
+package org.apache.maven.shared.transfer.artifact.deploy.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.deploy.ArtifactDeployer;
+import org.apache.maven.shared.transfer.artifact.deploy.ArtifactDeployerException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactDeployer
+        extends DelegatorSupport<ArtifactDeployerDelegate>
+        implements ArtifactDeployer
+{
+    @Inject
+    public DefaultArtifactDeployer( Map<String, ArtifactDeployerDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public void deploy( ProjectBuildingRequest request,
+                        Collection<Artifact> mavenArtifacts ) throws ArtifactDeployerException
+    {
+        validateParameters( request, mavenArtifacts );
+        delegate.deploy( request, mavenArtifacts );
+    }
+
+    public void deploy( ProjectBuildingRequest request,
+                        ArtifactRepository remoteRepository,
+                        Collection<Artifact> mavenArtifacts ) throws ArtifactDeployerException
+    {
+        validateParameters( request, mavenArtifacts );
+        delegate.deploy( request, remoteRepository, mavenArtifacts );
+    }
+
+    private void validateParameters( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
+    {
+        if ( request == null )
+        {
+            throw new IllegalArgumentException( "The parameter request is not allowed to be null." );
+        }
+        if ( mavenArtifacts == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/pom.xml
##########
@@ -0,0 +1,107 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer-api</artifactId>
+
+  <name>Apache Maven Artifact Transfer API</name>
+
+  <dependencies>
+    <!-- Maven 3.0.x: all provided -->
+    <dependency>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>3.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>3.0</version>

Review comment:
       Move version to property?

##########
File path: maven-3.1.x/pom.xml
##########
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer-maven-3.1.x</artifactId>
+
+  <name>Apache Maven Artifact Transfer Maven 3.1.x provider</name>
+
+  <properties>
+    <maven31x.version>3.1.0</maven31x.version>

Review comment:
       I think this should be 3.1.1 too.

##########
File path: maven-3.0.x/src/main/java/org/apache/maven/shared/transfer/repository/internal/Maven302RepositoryManager.java
##########
@@ -20,18 +20,24 @@
  */
 
 import org.sonatype.aether.RepositorySystem;
-import org.sonatype.aether.RepositorySystemSession;
 import org.sonatype.aether.repository.LocalRepository;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 /**
- * 
+ *
  */
-class Maven302RepositoryManager
-    extends Maven30RepositoryManager
+@Singleton
+@Named( "maven-3.0.2" )

Review comment:
       I think this can be dropped because we won't get lower than 3.0.5.

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/DefaultArtifactDeployer.java
##########
@@ -0,0 +1,80 @@
+package org.apache.maven.shared.transfer.artifact.deploy.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.deploy.ArtifactDeployer;
+import org.apache.maven.shared.transfer.artifact.deploy.ArtifactDeployerException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactDeployer
+        extends DelegatorSupport<ArtifactDeployerDelegate>
+        implements ArtifactDeployer
+{
+    @Inject
+    public DefaultArtifactDeployer( Map<String, ArtifactDeployerDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public void deploy( ProjectBuildingRequest request,
+                        Collection<Artifact> mavenArtifacts ) throws ArtifactDeployerException
+    {
+        validateParameters( request, mavenArtifacts );
+        delegate.deploy( request, mavenArtifacts );
+    }
+
+    public void deploy( ProjectBuildingRequest request,
+                        ArtifactRepository remoteRepository,
+                        Collection<Artifact> mavenArtifacts ) throws ArtifactDeployerException
+    {
+        validateParameters( request, mavenArtifacts );
+        delegate.deploy( request, remoteRepository, mavenArtifacts );
+    }
+
+    private void validateParameters( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
+    {
+        if ( request == null )
+        {
+            throw new IllegalArgumentException( "The parameter request is not allowed to be null." );

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/DefaultArtifactResolver.java
##########
@@ -0,0 +1,89 @@
+package org.apache.maven.shared.transfer.artifact.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactResolver
+        extends DelegatorSupport<ArtifactResolverDelegate>
+        implements ArtifactResolver
+{
+    @Inject
+    public DefaultArtifactResolver( Map<String, ArtifactResolverDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
+                                           Artifact mavenArtifact )
+            throws ArtifactResolverException, IllegalArgumentException
+    {
+        validateParameters( buildingRequest, mavenArtifact );
+        return delegate.resolveArtifact( buildingRequest, mavenArtifact );
+    }
+
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
+                                           ArtifactCoordinate coordinate )
+            throws ArtifactResolverException, IllegalArgumentException
+    {
+        validateParameters( buildingRequest, coordinate );
+        return delegate.resolveArtifact( buildingRequest, coordinate );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Artifact mavenArtifact )
+    {
+        if ( buildingRequest == null )
+        {
+            throw new IllegalArgumentException( "The parameter buildingRequest is not allowed to be null." );
+        }
+        if ( mavenArtifact == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/DefaultArtifactInstaller.java
##########
@@ -0,0 +1,89 @@
+package org.apache.maven.shared.transfer.artifact.install.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.install.ArtifactInstaller;
+import org.apache.maven.shared.transfer.artifact.install.ArtifactInstallerException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.io.File;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactInstaller
+        extends DelegatorSupport<ArtifactInstallerDelegate>
+        implements ArtifactInstaller
+{
+    @Inject
+    public DefaultArtifactInstaller( Map<String, ArtifactInstallerDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public void install( ProjectBuildingRequest request,
+                         Collection<Artifact> mavenArtifacts )
+            throws ArtifactInstallerException, IllegalArgumentException
+    {
+        validateParameters( request, mavenArtifacts );
+        delegate.install( request, mavenArtifacts );
+    }
+
+    public void install( ProjectBuildingRequest request,
+                         File localRepository,
+                         Collection<Artifact> mavenArtifacts ) throws ArtifactInstallerException
+    {
+        validateParameters( request, mavenArtifacts );
+        if ( localRepository == null )
+        {
+            throw new IllegalArgumentException( "The parameter localRepository is not allowed to be null." );
+        }
+        if ( !localRepository.isDirectory() )
+        {
+            throw new IllegalArgumentException( "The parameter localRepository must be a directory." );
+        }
+        delegate.install( request, localRepository, mavenArtifacts );
+    }
+
+    private void validateParameters( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
+    {
+        if ( request == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/DefaultArtifactResolver.java
##########
@@ -0,0 +1,89 @@
+package org.apache.maven.shared.transfer.artifact.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactResolver
+        extends DelegatorSupport<ArtifactResolverDelegate>
+        implements ArtifactResolver
+{
+    @Inject
+    public DefaultArtifactResolver( Map<String, ArtifactResolverDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
+                                           Artifact mavenArtifact )
+            throws ArtifactResolverException, IllegalArgumentException
+    {
+        validateParameters( buildingRequest, mavenArtifact );
+        return delegate.resolveArtifact( buildingRequest, mavenArtifact );
+    }
+
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
+                                           ArtifactCoordinate coordinate )
+            throws ArtifactResolverException, IllegalArgumentException
+    {
+        validateParameters( buildingRequest, coordinate );
+        return delegate.resolveArtifact( buildingRequest, coordinate );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Artifact mavenArtifact )
+    {
+        if ( buildingRequest == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/DefaultArtifactInstaller.java
##########
@@ -0,0 +1,89 @@
+package org.apache.maven.shared.transfer.artifact.install.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.install.ArtifactInstaller;
+import org.apache.maven.shared.transfer.artifact.install.ArtifactInstallerException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.io.File;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactInstaller
+        extends DelegatorSupport<ArtifactInstallerDelegate>
+        implements ArtifactInstaller
+{
+    @Inject
+    public DefaultArtifactInstaller( Map<String, ArtifactInstallerDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public void install( ProjectBuildingRequest request,
+                         Collection<Artifact> mavenArtifacts )
+            throws ArtifactInstallerException, IllegalArgumentException
+    {
+        validateParameters( request, mavenArtifacts );
+        delegate.install( request, mavenArtifacts );
+    }
+
+    public void install( ProjectBuildingRequest request,
+                         File localRepository,
+                         Collection<Artifact> mavenArtifacts ) throws ArtifactInstallerException
+    {
+        validateParameters( request, mavenArtifacts );
+        if ( localRepository == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/DefaultArtifactResolver.java
##########
@@ -0,0 +1,89 @@
+package org.apache.maven.shared.transfer.artifact.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultArtifactResolver
+        extends DelegatorSupport<ArtifactResolverDelegate>
+        implements ArtifactResolver
+{
+    @Inject
+    public DefaultArtifactResolver( Map<String, ArtifactResolverDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
+                                           Artifact mavenArtifact )
+            throws ArtifactResolverException, IllegalArgumentException
+    {
+        validateParameters( buildingRequest, mavenArtifact );
+        return delegate.resolveArtifact( buildingRequest, mavenArtifact );
+    }
+
+    public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest,
+                                           ArtifactCoordinate coordinate )
+            throws ArtifactResolverException, IllegalArgumentException
+    {
+        validateParameters( buildingRequest, coordinate );
+        return delegate.resolveArtifact( buildingRequest, coordinate );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Artifact mavenArtifact )
+    {
+        if ( buildingRequest == null )
+        {
+            throw new IllegalArgumentException( "The parameter buildingRequest is not allowed to be null." );
+        }
+        if ( mavenArtifact == null )
+        {
+            throw new IllegalArgumentException( "The parameter mavenArtifact is not allowed to be null." );
+        }
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, ArtifactCoordinate coordinate )
+    {
+        if ( buildingRequest == null )
+        {
+            throw new IllegalArgumentException( "The parameter buildingRequest is not allowed to be null." );
+        }
+        if ( coordinate == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/DefaultDependencyCollector.java
##########
@@ -0,0 +1,105 @@
+package org.apache.maven.shared.transfer.dependencies.collect.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
+import org.apache.maven.shared.transfer.dependencies.collect.CollectorResult;
+import org.apache.maven.shared.transfer.dependencies.collect.DependencyCollector;
+import org.apache.maven.shared.transfer.dependencies.collect.DependencyCollectorException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultDependencyCollector
+        extends DelegatorSupport<DependencyCollectorDelegate>
+        implements DependencyCollector
+{
+    @Inject
+    public DefaultDependencyCollector( Map<String, DependencyCollectorDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest,
+                                                Dependency root ) throws DependencyCollectorException
+    {
+        validateParameters( buildingRequest, root );
+        return delegate.collectDependencies( buildingRequest, root );
+    }
+
+    public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest,
+                                                DependableCoordinate root ) throws DependencyCollectorException
+    {
+        validateParameters( buildingRequest, root );
+        return delegate.collectDependencies( buildingRequest, root );
+    }
+
+    public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest,
+                                                Model root ) throws DependencyCollectorException
+    {
+        validateParameters( buildingRequest, root );
+        return delegate.collectDependencies( buildingRequest, root );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate root )
+    {
+        validateBuildingRequest( buildingRequest );
+        validateRoot( root );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Dependency root )
+    {
+        validateBuildingRequest( buildingRequest );
+        validateRoot( root );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Model root )
+    {
+        validateBuildingRequest( buildingRequest );
+        validateRoot( root );
+    }
+
+    private void validateBuildingRequest( ProjectBuildingRequest buildingRequest )
+    {
+        if ( buildingRequest == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/DefaultDependencyResolver.java
##########
@@ -0,0 +1,107 @@
+package org.apache.maven.shared.transfer.dependencies.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
+import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolver;
+import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultDependencyResolver
+        extends DelegatorSupport<DependencyResolverDelegate>
+        implements DependencyResolver
+{
+    @Inject
+    public DefaultDependencyResolver( Map<String, DependencyResolverDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         DependableCoordinate coordinate,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateParameters( buildingRequest, coordinate );
+        return delegate.resolveDependencies( buildingRequest, coordinate, filter );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         Model model,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateParameters( buildingRequest, model );
+        return delegate.resolveDependencies( buildingRequest, model, filter );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         Collection<Dependency> dependencies,
+                                                         Collection<Dependency> managedDependencies,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateBuildingRequest( buildingRequest );
+        return delegate.resolveDependencies( buildingRequest, dependencies, managedDependencies, filter );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate coordinate )
+    {
+        validateBuildingRequest( buildingRequest );
+        if ( coordinate == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/DefaultDependencyCollector.java
##########
@@ -0,0 +1,105 @@
+package org.apache.maven.shared.transfer.dependencies.collect.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
+import org.apache.maven.shared.transfer.dependencies.collect.CollectorResult;
+import org.apache.maven.shared.transfer.dependencies.collect.DependencyCollector;
+import org.apache.maven.shared.transfer.dependencies.collect.DependencyCollectorException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultDependencyCollector
+        extends DelegatorSupport<DependencyCollectorDelegate>
+        implements DependencyCollector
+{
+    @Inject
+    public DefaultDependencyCollector( Map<String, DependencyCollectorDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest,
+                                                Dependency root ) throws DependencyCollectorException
+    {
+        validateParameters( buildingRequest, root );
+        return delegate.collectDependencies( buildingRequest, root );
+    }
+
+    public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest,
+                                                DependableCoordinate root ) throws DependencyCollectorException
+    {
+        validateParameters( buildingRequest, root );
+        return delegate.collectDependencies( buildingRequest, root );
+    }
+
+    public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest,
+                                                Model root ) throws DependencyCollectorException
+    {
+        validateParameters( buildingRequest, root );
+        return delegate.collectDependencies( buildingRequest, root );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate root )
+    {
+        validateBuildingRequest( buildingRequest );
+        validateRoot( root );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Dependency root )
+    {
+        validateBuildingRequest( buildingRequest );
+        validateRoot( root );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Model root )
+    {
+        validateBuildingRequest( buildingRequest );
+        validateRoot( root );
+    }
+
+    private void validateBuildingRequest( ProjectBuildingRequest buildingRequest )
+    {
+        if ( buildingRequest == null )
+        {
+            throw new IllegalArgumentException( "The parameter buildingRequest is not allowed to be null." );
+        }
+    }
+
+    private void validateRoot( Object root )
+    {
+        if ( root == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/DefaultDependencyResolver.java
##########
@@ -0,0 +1,107 @@
+package org.apache.maven.shared.transfer.dependencies.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
+import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolver;
+import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultDependencyResolver
+        extends DelegatorSupport<DependencyResolverDelegate>
+        implements DependencyResolver
+{
+    @Inject
+    public DefaultDependencyResolver( Map<String, DependencyResolverDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         DependableCoordinate coordinate,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateParameters( buildingRequest, coordinate );
+        return delegate.resolveDependencies( buildingRequest, coordinate, filter );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         Model model,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateParameters( buildingRequest, model );
+        return delegate.resolveDependencies( buildingRequest, model, filter );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         Collection<Dependency> dependencies,
+                                                         Collection<Dependency> managedDependencies,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateBuildingRequest( buildingRequest );
+        return delegate.resolveDependencies( buildingRequest, dependencies, managedDependencies, filter );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate coordinate )
+    {
+        validateBuildingRequest( buildingRequest );
+        if ( coordinate == null )
+        {
+            throw new IllegalArgumentException( "The parameter coordinate is not allowed to be null." );
+        }
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Model model )
+    {
+        validateBuildingRequest( buildingRequest );
+        if ( model == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer-api/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/DefaultDependencyResolver.java
##########
@@ -0,0 +1,107 @@
+package org.apache.maven.shared.transfer.dependencies.resolve.internal;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
+import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolver;
+import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException;
+import org.apache.maven.shared.transfer.support.DelegatorSupport;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ *
+ */
+@Singleton
+@Named
+public class DefaultDependencyResolver
+        extends DelegatorSupport<DependencyResolverDelegate>
+        implements DependencyResolver
+{
+    @Inject
+    public DefaultDependencyResolver( Map<String, DependencyResolverDelegate> delegates )
+    {
+        super( delegates );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         DependableCoordinate coordinate,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateParameters( buildingRequest, coordinate );
+        return delegate.resolveDependencies( buildingRequest, coordinate, filter );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         Model model,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateParameters( buildingRequest, model );
+        return delegate.resolveDependencies( buildingRequest, model, filter );
+    }
+
+    public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
+                                                         Collection<Dependency> dependencies,
+                                                         Collection<Dependency> managedDependencies,
+                                                         TransformableFilter filter )
+            throws DependencyResolverException
+    {
+        validateBuildingRequest( buildingRequest );
+        return delegate.resolveDependencies( buildingRequest, dependencies, managedDependencies, filter );
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate coordinate )
+    {
+        validateBuildingRequest( buildingRequest );
+        if ( coordinate == null )
+        {
+            throw new IllegalArgumentException( "The parameter coordinate is not allowed to be null." );
+        }
+    }
+
+    private void validateParameters( ProjectBuildingRequest buildingRequest, Model model )
+    {
+        validateBuildingRequest( buildingRequest );
+        if ( model == null )
+        {
+            throw new IllegalArgumentException( "The parameter model is not allowed to be null." );
+        }
+
+    }
+
+    private void validateBuildingRequest( ProjectBuildingRequest buildingRequest )
+    {
+        if ( buildingRequest == null )

Review comment:
       NPE

##########
File path: maven-artifact-transfer/pom.xml
##########
@@ -0,0 +1,188 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.shared</groupId>
+    <artifactId>maven-artifact-transfer-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>maven-artifact-transfer</artifactId>
+
+  <name>Apache Maven Artifact Transfer</name>
+
+  <properties>
+    <downstreamMaven.version>3.1.0</downstreamMaven.version>

Review comment:
       3.1.1




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


[GitHub] [maven-artifact-transfer] cstamas commented on pull request #24: [MSHARED-987] Make use of SISU

Posted by GitBox <gi...@apache.org>.
cstamas commented on pull request #24:
URL: https://github.com/apache/maven-artifact-transfer/pull/24#issuecomment-830849694


   Applied PR comments (sans NPE, see above why), all ITs pass except the 3.0.5  (as before, as it's sisu does not speak sisu index)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org