Specification dependencies allow the dependency on a particular library that only provides an API, and that should resolve to one or more implementing libraries.
Would need to be able to provide:
- a way to specify that a project implements another project
- a default, eg to use Xerces [2.2) whenever someone depends on jaxp 1.3 and no implementing library is found in the dependency closure
- hinting, so that a set of wagons could be used to implement the wagon-provider-api
We shouldn't limit this to APIs and implementations but also to jars that aggregate others, eg. spring aggregates spring-dao, spring-hibernate,... (usually everything built with the assembly plugin). This is what in linux packages is called provides, so I'd say spring 1.2.5 provides spring-dao 1.2.5, spring-hibernate 1.2.5, ...