Subject: Exported From Confluence
Content-Type: text/html; charset=UTF-8
Mercury is a serious attempt to:
- Decouple major Maven components, making them available as stand-alon=
e building blocks rather then having Maven as as one big monolith, not usab=
le outside of its environment.
- Artifact - clearly separate an Artifact from its me=
- Repository - convert a repository into active compo=
nent. It used to give back just pathOf(), now it accepts GAV collections an=
d gives back either metadata or full blown Artifacts.
- Transport - an API in development.
- DependencyBuilder main API for dependency graph cre=
ation and conflict resolution.
- Decouple container, so that these components are just plain pojos. T=
his is not necessarily good as wiring components together without a contain=
er complicates using the library.
- Introduce Jetty-based HTTP/HTTPS and WebDAV transac=
tional transport layer.
- Asynchronous downloads and uploads. One of the few successful usages=
of Java NIO in OSS.
- Transactional operations - all-or-nothing for file sets.
- Move integrity control into transport layer, upper level components =
should not care about these details.
- Abstract out metadata cache, provide at least one implementation the=
- Integrate these changes back to Maven 3.x to make it even better pla=
tform than it is right now
Currently Mercury can already be used for accessing repositories, and co=
nflict resolution/classpath calculation.