Title: June 2010
Aries will deliver a set of pluggable Java components enabling an
enterprise OSGi application programming model.

Aries entered incubation on September 22, 2009.

There are currently no issues requiring IPMC or Board attention.

The following sub-components are actively being developed:

* Application
* Subsystems
* Blueprint
* JMX
* JPA

Several new sample applications have been developed to demonstrate the
Aries functionality.

There continues to be a vibrant community as shown by the activity on the
mailing list this year.

On May 26th we released Apache Aries 0.1-incubating, our first release.

Top 2 or 3 things to resolve before graduation:

* Build community  [done](done.html)
* Create a release [done](done.html)
* Address project scope concerns raised during acceptance vote
