[MSHARED-987] Make use of SISU (#24) Drop all the reflection hoops and loops, and organize into api-provider layout. Should have NO IMPACT on consumers. Implement using this SISU based pattern: https://github.com/cstamas/providers In short: SISU loads components lazily, and silently skips component that throws CNFEx during load. Moreover, Selector "figures our" current environment, more narrowing used delegate. Changes at high level: * code reorganization: maven-artifact-transfer-api (new), maven-artifact-transfer-maven-3.0.x (new), maven-artifact-transfer-maven-3.1.x (new) and maven-artifact-transfer (old). * each module defines it's own (provided) expected environment and cleanly code against it, no reflection, no black magic * using SISU collection lookup and some minor logic (not yet fully done, works for 3.0/3.1 case but could be improved, 302 repo exception is NOT in yet). * existing UTs unmodified pass * existing ITs unmodified pass except for 3.0.5 Benefits: * each provider module set up it's "own" classpath, no need for reflection and overlapping dependency mess * dropping a version support is just dropping a module * adding new version support is just adding a new module * consumers of m-a-t needs no change
You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to the open source community. Before you dig right into the code, there are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
We accept Pull Requests via GitHub. The developer mailing list is the main channel of communication for contributors.
There are some guidelines which will make applying PRs easier for us:
git diff --check before committing.[MSHARED-XXX] - Subject of the JIRA Ticket Optional supplemental description.
mvn -Prun-its verify to assure nothing else was accidentally broken.If you plan to contribute on a regular basis, please consider filing a contributor license agreement.
For changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA. In this case, it is appropriate to start the first line of a commit with ‘(doc)’ instead of a ticket number.