:doctype: book

Title: Notice:    Licensed to the Apache Software Foundation (ASF) under one            or more contributor license agreements.
See the NOTICE file            distributed with this work for additional information            regarding copyright ownership.
The ASF licenses this file            to you under the Apache License, Version 2.0 (the            "License");
you may not use this file except in compliance            with the License.
You may obtain a copy of the License at            .              http://www.apache.org/licenses/LICENSE-2.0            .            Unless required by applicable law or agreed to in writing,            software distributed under the License is distributed on an            "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY            KIND, either express or implied.
See the License for the            specific language governing permissions and limitations            under the License.

= April 2016 Board report

Apache Aries delivers a set of pluggable Java components enabling an    enterprise OSGi application programming model.

== Issues:

* There are no issues requiring board attention at this time

== Activity:

* New module: Aries Remote Service Admin seeded from Apache CXF DOSGi for providing an implementation of the OSGi Remote Service Admin specification with pluggable transports.
http://aries.apache.org/modules/rsa.html
* New module: Aries Transaction Control Service.
An implementation of the in development RFC221 at the OSGi Alliance.
* 8 releases since the last report in January

== Health report:

* Mailing list discussion and project contributions continue to be healthy.

== PMC changes:

* Currently 37 PMC members.
* No new PMC members added in the last 3 months
* Last PMC addition was Christian Schneider on Fri Apr 10 2015

== Committer base changes:

* Currently 49 committers.
* No new committers added in the last 3 months
* Last committer addition was Sam Bratton at Mon Dec 21 2015

== Releases:

* Aries JPA container (jpa-container) 1.0.4 2016-03-08
* Apache Aries Proxy Service (proxy-impl) 1.0.5 2016-03-25
* Apache Aries JMX Core (jmx-core) 1.1.6 2016-03-25
* Aries Blueprint Core (blueprint-core) 1.6.0 2016-03-25
* Aries Blueprint Spring Support (blueprint-spring) 0.2.0 2016-03-25
* Aries Blueprint Spring Extender Support (blueprint-spring-extender) 0.2.0 2016-03-25
* Aries Blueprint no-OSGI (blueprint-noosgi) 1.1.2 2016-03-25
* Aries Blueprint CM (blueprint-cm) 1.0.8 2016-03-25

== Mailing list activity:

* dev@aries.apache.org:
 ** 131 subscribers (down -4 in the last 3 months):
 ** 488 emails sent to list (527 in previous quarter)
* user@aries.apache.org:
 ** 236 subscribers (up 0 in the last 3 months):
 ** 37 emails sent to list (37 in previous quarter)

== JIRA activity:

* 44 JIRA tickets created in the last 3 months
* 50 JIRA tickets closed/resolved in the last 3 months
