Conversation
Closed
The abstract methods was really used by "this or that", no method were used by both. The two Mojos really does not have a lot in common.
Member
Author
|
Ping? Anyone? |
| catch ( IllegalArgumentException e ) | ||
| { | ||
| throw new MojoFailureException( "IOException", e ); | ||
| throw new MojoFailureException( e.getMessage(), e ); |
Member
There was a problem hiding this comment.
why not MojoExecutionException
I must find a discussion, but as I remember MojoFailureException should not be used ....
Member
Author
There was a problem hiding this comment.
Hm, we need to clean up this I guess.... (as now I see that I used the two inconsistently).
Member
There was a problem hiding this comment.
I've started discussion on dev list about it 😄
gnodet
approved these changes
Jul 12, 2022
|
Resolve #172 |
1 similar comment
|
Resolve #172 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Original plugin made hoops and loops, instead to perform what it needed to perform. Partly to blame this was unfinished state of MAT API (it was able to install project only).
Installing project is needed in InstallMojo, but InstallFileMojo was forced to make hoops and loops due this, as it was passed one file (and maybe pomFile), and it was forced to create "fake" project, decorate and fake setup it with all whistle and bells, only to get it via MAT to resolver that would "decompose" it back into set of artifacts needing a deploy. So it went this file-artifact-project-artifact route, that made all the logic fragile and overly complicated.
This PR completely reworks m-install-p making it (almost trivially) simple: it does what it needs to do, without any fuss, and does it in streamlined way: InstallMojo will create a list of artifacts out of project and pass it to repository system for deploy, while InstallFileMojo literally prepares just a deployment request, nothing more. No fuss, no magic, no fake project building etc.
Note: the code in mojos may or may not need to be reusable, but definitely smells like some "Maven API-ish thing".
Problems: InstallFileMojo implicitly implemented ID validation (thru fake project building), and it revealed the problem that Maven ID (groupId, artifactId) and version validation is deeply buried into maven-model-builder and is NOT reusable at all, hence a light copy of logic (rules for ID allowed characters and version forbidden characters) are copied over here.
https://issues.apache.org/jira/browse/MINSTALL-177