Aether 0.9.0

Release Date
Deliverables

The Aether project generally provides two sets of deliverables:

  • Aether Core, i.e. the API, SPI, utility classes and base implementation of the library.
  • Aether Ant Tasks, a collection of tasks for Apache Ant to employ Aether for interaction with repositories using the Apache Maven format.

In addition to providing binary and source distributions from the project's download area, Aether artifacts will be distributed via the Central Repository. Aether Core will also be made available as a P2 update site.

Compatibility

Compatibility with Sonatype Aether

API Contract Compatibility

To comply with Eclipse Foundation requirements, all Aether Java types/packages have been moved into the org.eclipse.aether namespace. No compatibility layer will be provided for users of Sonatype Aether.

Source Compatibility

To comply with Eclipse Foundation requirements, all Aether Java types/packages have been moved into the org.eclipse.aether namespace. While the API has undergone some refactoring and cleanup during the move to Eclipse, it is expected that typical clients mainly need to update their imports and make minor code changes to successfully build against the new Aether API.

Internationalization

None of the Aether deliverables are internationalized, any log and exception messages use English.

Target Environments

Aether consists of pure Java code and has no direct dependence on the underlying operating system. This release is expected to run on any JVM that supports Java SE 5 or newer.

Aether Ant Tasks target Apache Ant 1.7 or newer.

Name Date Description
M1 2012/10/05 First distribution of Aether Core from its new home at the Eclipse foundation to get things started.
M2 2013/02/20 Second milestone which among others features a redesigned conflict resolution logic and a P2 update site.
M3 2013/08/01 Third milestone to introduce a restructured transport layer SPI and first distribution of Aether Ant Tasks.
M4 2014/01/06 Forth milestone, rounding up repository connector SPI and allowing configuration of extension priorities.
Themes

Clean up API

With the move of the code into the org.eclipse.aether namespace being a breaking change anyways, this provided an opportunity to remove deprecated code inherited from the original Sonatype Aether codebase. Additionally, the API has been refactored in some places to ease future evolution and to improve its usuability.

Ease Integration into Applications

Aether's component system has been enriched with annotations to support JSR-330 compliant dependency injection. Furthermore, Aether automatically wires itself to the popular SLF4J logging if this is available at runtime and the client application did not configure another logging mechanism. Last but not least, the Aether JARs are equipped with OSGi metadata to facilitate direct usage in OSGi-based applications and are available from a P2 repository.

Improve Extensibility and Customizability

The component composition of the implementation and the SPI have been revised in several places to help clients adjust Aether for their needs. Conflict resolution, offline operation, repository layouts, transport protocols, checksum validation and some other aspects can now be extended/customized with less coding efforts.

Fix Bugs

Several bugs, both those inherited from the original Sonatype Aether codebase as well as those reported by adopters of the new Eclipse Aether codebase, have been fixed.