[
http://jira.codehaus.org/browse/MARTIFACT-3?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason van Zyl closed MARTIFACT-3.
---------------------------------
Resolution: Fixed
First pass implemented.
> Remove the fail-fast behavior in the core as it makes providing useful client
> feedback to correct problems
> ----------------------------------------------------------------------------------------------------------
>
> Key: MARTIFACT-3
> URL: http://jira.codehaus.org/browse/MARTIFACT-3
> Project: Maven Artifact
> Issue Type: Improvement
> Affects Versions: 3.0-alpha-1
> Reporter: Jason van Zyl
> Assignee: Jason van Zyl
> Fix For: 3.0-alpha-1
>
>
> The second part was to collect absolutely everything that can possibly go
> wrong during the resolution and collect all exceptions instead of blowing up
> when something is missing.
> The current behavior has lead to many integrators like Milos to have to
> reimplement large parts of the artifact resolution mechanism because the
> mechanism is essentially
> fail-fast which is pretty much useless in an integrated environment.
>
> So the ArtifactResolutionResult tries to capture what has gone wrong and
> currently this is what I tried to categorize:
>
> - metadata missing
> - metadata retrieval problems
> - version range violation
> - circular dependencies
> - artifacts missing
> - artifact retrieval problems
>
> These are the primary set of problems (there may be more, but this is a
> first pass) and there is no reason we can't tell the user exactly what went
> wrong. The current
> method of spewing out pile of mostly incomprehensible text (this is based
> on feedback from many clients I've worked with who look at the standard out
> put for missing
> artifacts and have a very difficult time understanding what the actual
> problem is) is not good. Instead the exact problem should be determined and
> by looking at
> the ArtifactResolutionResult client code like our CLI or more importantly
> in IDE integration we can very much help the user.
>
> So the code now goes as far as it possibly can to find all problems and is
> exposed via this one method that uses a request. All existing methods I have
> preserved and
> I wrapped new code in the old signatures and throw exceptions prematurely
> to mimic the old behavior. Nothing changes for most of the code. All these
> changes are
> currently only used by the project builder and ultimately the
> embedder.buildWithDependencies() method that needs to know everything that
> went wrong in order to
> provide useful information.
>
> Milos, Vlad, Eugene, you should soon be able to use this code instead of
> your local modifications. The one thing that needs to be added is method for
> mixing in local
> reactor dependencies so that within an IDE projects can be resolved from
> the module list in IDEA, the workspace in Eclipse, and the workspace in
> Netbeans. I made
> every attempt to be backward compatible but jardiff/clirr will be the
> arbiter of that.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira