Project Plan For Aether, version 0.9.0

Introduction

The Aether project provides a library to interact with artifact repositories. In this context, artifact refers to some arbitrary file. Interaction refers to the acts of downloading artifacts and potentially their transitive dependencies from repositories for consumption by a local task and uploading local artifacts to repositories for sharing with others.

The project is currently divided into three codebases:

  • Aether Core
    The API, SPI, utility classes and base implementation of the library.
  • Aether Demo
    A collection of runnable example source code snippets for users to experiment with the library.
  • Aether Ant Tasks
    A collection of tasks for Apache Ant to employ Aether for interaction with repositories using the Apache Maven format.

Release Deliverables

For Aether Core, a set of JARs will be published in the Eclipse download area for users to manually pull down and integrate into their applications. Additionally, these JARs will be published to the Central Repository for both users and build tooling to fetch. While the JARs of Aether Core contain OSGi-enabled manifests, there are currently no plans to publish a P2 update site until the community expresses strong interest in this distribution form.

Aether Demo will never be part of a release deliverable, the only purpose of this codebase is to serve as runnable documentation which users are expected to checkout directly from the project's Git repository.

Aether Ant Tasks depends on parts of Apache Maven that extend Aether Core to work with Maven repositories. Until the Apache Maven project has released a new version that incorporates Aether Core, Aether Ant remains unbuildable/unreleasable.

Table of Contents

Release Milestones

Release milestones will be published as committer time allows.

M1??/10/2012
0.9.0.M1

Table of Contents

Target Environments

Aether consists of pure Java code and is expected to run on any JVM that supports Java SE 5 or newer.

Aether Ant Tasks target Apache Ant 1.7 or newer.

Internationalization

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

Table of Contents

Compatibility with Previous Releases

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.

Table of Contents

Themes and Priorities

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

Table of Contents

Appendix

Apache Ant, Ant, Apache Maven, Maven and Apache are trademarks of the Apache Software Foundation.

Table of Contents

view raw xml of project plan
from project meta-data key "projectplanurl"