Aether 0.9.0 Release Review

End Date of the Review Period: 

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Wednesday, February 26, 2014

Release Review




First incubation release. The Aether project generally provides two sets of deliverables: Aether Core, i.e. the API, SPI, utility classes and base implementation of the library; and Aether Ant Tasks, a collection of tasks for Apache Ant to employ Aether for interaction with repositories using the Apache Maven format.

Architectural Issues: 

In the original Sonatype Aether codebase, various albeit related yet separate concerns were implemented by monolithic components (e.g. repository connectors). Also, some behavioral aspects were spread across multiple areas of the implementation (e.g. offline mode). These deficiencies in the decomposition posed a significant burden on adopters that wish to customize or extend the stock implementation, e.g. with custom transport protocols or repository layouts. This release of Aether solves the known issues in this regard, providing a finer-grained component system with better centralized responsibilities.

Security Issues: 


Non-Code Aspects: 

As with prior milestone releases, the API documentation for this release will be published online at

The wiki with introductory documentation is up-to-date and available at

Last but not least, we maintain a Git repository dedicated to runnable example snippets at that users can simply clone and import into their workspace to take the code for a test drive.

Aether does currently not support localization, all exception/log messages use English as language.

Usability Details: 

The target audience for Aether Core are application developers, not end users. Likewise, the Aether Ant Tasks support build/release managers. As such Aether does generally not provide any user interface.

While Aether's API still requires more exhaustive evaluation by a wider community, the implemented functionality itself is considered production-ready. For example, Apache Maven 3.1.x makes use of Eclipse Aether for artifact resolution and distribution.


The JARs making up the Aether Core release are equipped with manifests that enable direct usage in runtime environments implementing the OSGi specification like Eclipse Equinox or Apache Karaf.

The components forming Aether's implementation carry annotations to support dependency injection in compliance with JSR-330. In recognizing Google Guice as a popular implementation of this standard, Aether also ships with a ready-made Guice Module.


As far as the project lead can tell, the community around Aether is still small. There are no notable code/patch contributions but recent feature requests in Bugzilla and occasional questions on the aether-users list indicate a basic interest in the project. Besides Apache Maven, the only adopters that have come to our attention so far are Grails and Eclipse Code Recommenders. It seems worth to note that members of the Code Recommenders project have grown used to Aether to the point where they are able to occasionally help out with questions on the user list.