MartinKanters opened a new pull request #688: URL: https://github.com/apache/maven/pull/688
This PR used to be part of MNG-7390, but now just contains the refactoring part. Made the intention of the reactor code more clear and changed the order of steps to minimize sorting calls. Changes: - The main "reactor" method (`DefaultGraphBuilder#reactorDependencyGraph`) is more descriptive.. that one method should describe exactly every business logic rule, instead of having hidden business rules inside methods. In total I think it's easier to understand to full flow now. - It used to sort the intermediate project list too many times - It used to calculate and add the also-make/also-make-dependent projects into the intermediate project list too many times. - The methods used for getting and trimming the intermediate project list were made consistent. They now additionally: - fail fast when it's not applicable (i.e. skip over `getResumedProjects` when `-rf` is not given), - return Sets, as the project lists do not need to be sorted in between and unique elements are automatically guaranteed, - are converted a bit more to Streams for the sake of readability. Following this checklist to help us incorporate your contribution quickly and easily: - [ ] Make sure there is a [JIRA issue](https://issues.apache.org/jira/browse/MNG) filed for the change (usually before you start working on it). Trivial changes like typos do not require a JIRA issue. Your pull request should address just this issue, without pulling in other changes. - [x] Each commit in the pull request should have a meaningful subject line and body. - [x] Format the pull request title like `[MNG-XXX] SUMMARY`, where you replace `MNG-XXX` and `SUMMARY` with the appropriate JIRA issue. Best practice is to use the JIRA issue title in the pull request title and in the first line of the commit message. - [x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why. - [x] Run `mvn clean verify` to make sure basic checks pass. A more thorough check will be performed on your pull request automatically. - [x] You have run the [Core IT][core-its] successfully. If your pull request is about ~20 lines of code you don't need to sign an [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf) if you are unsure please ask on the developers list. To make clear that you license your contribution under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0) you have to acknowledge this by using the following check-box. - [x] I hereby declare this contribution to be licensed under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0) - [x] In any other case, please file an [Apache Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf). [core-its]: https://maven.apache.org/core-its/core-it-suite/ -- 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: issues-unsubscr...@maven.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org