Aether 0.9.0 Release Review

Type
Release
State
Successful
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.

Project
Release

0.9.0

Description

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

None.

Non-Code Aspects

As with prior milestone releases, the API documentation for this release will be published online at http://download.eclipse.org/aether/aether-core/current/apidocs/.

The wiki with introductory documentation is up-to-date and available at http://wiki.eclipse.org/Aether.

Last but not least, we maintain a Git repository dedicated to runnable example snippets at http://git.eclipse.org/c/aether/aether-demo.git/ 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.

Standards

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.

Communities

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.

Release Review