Aether 1.0.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

Aether Core

As detailed in Bugzilla, this major release removes deprecated code and is as such not source/binary compatible with the previous 0.9.x releases. The removed types supported custom repository connector implementations and their removal should therefore not affect the majority of adopters.

Furthermore, this release removes support for the legacy Plexus IoC framework, i.e. Codehaus Plexus can no longer be used to automatically wire all components of Aether together. However, the Plexus shim provided by the Eclipse Sisu project as used in Apache Maven 3.x is still supported by virtue of Sisu exposing ordinary JSR-330 components to Plexus components. Thanks to this interoperability, this cleanup of the Aether codebase has no notable impact on Apache Maven, one of Aether's major adopters.

Aether Ant Tasks

At least initially, until specific use cases have been presented by adopters, the code behind the Aether Ant Tasks is considered internal and the API is formed soley by the set of provided XML elements and attributes. With that in mind, all classes have been moved into the package namespace org.eclipse.aether.internal.ant.** to follow Eclipse naming conventions and properly communicate the non-API aspect of this code.

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.

Themes

Clean up Codebase

The major release provides an opportunity to remove cruft from the codebase, easing its future maintenance. Besides removal of deprecated code, support for the legacy Plexus IoC framework is also discontinued.

Improve Dependency Declarations for Ant Tasks

This release addresses feature requests by users to simplify declaring dependencies when working with the Aether Ant Tasks.

Review Package Structure with Regard to OSGi uses Constraints

As seen with adopters from the OSGi ecosystem like Eclipse Code Recommenders, it is beneficial with regard to provisioning if packages exported from Aether's bundles don't imply unnecessary "uses" constraints. One cause for such unnecessary constraints are optional features involving 3rd-party code. The code for these features is best kept in dedicated packages such that feature (non-)use is clearly denoted by the importing bundle.