= Apache TomEE 7.0.1 released, June 27th 2016
:jbake-type: page
:jbake-status: published

The Apache TomEE community is proud to announce the release of xref:tomee-7.0.1.adoc[Apache TomEE 7.0.1], which is based on http://tomcat.apache.org/tomcat-8.5-doc/index.html[Apache Tomcat 8.5.3] and mainly aims to fix a security issue found in Tomcat 8.5.2.

Please feel free to check out and xref:contribute.adoc[contribute to the developer branch] - We are always interested in any help from the community that we can get.

This version is not certified and is provided to the community as a milestone preview of the current development version.
It is however an extremly well tested version.
So please do test your applications and give us your feedback.

The Apache TomEE 7.0.1 release files can be downloaded from here:

xref:download/tomee-7.0.1.adoc[http://tomee.apache.org/download/tomee-7.0.1.html]

== Update Maven POM Files - The OpenEJB version and groupId have been aligned

Simply update your existing Maven JavaEE-API, OpenEJB and or TomEE pom.xml entries to point to the latest versions:

[source,xml]
----
<dependency>
	<groupId>org.apache.tomee</groupId>
	<artifactId>javaee-api</artifactId>
	<version>7.0</version>
	<scope>provided</scope>
</dependency>

<dependency>
	<groupId>org.apache.tomee</groupId>
	<artifactId>openejb-core</artifactId>
	<version>7.0.1</version>
</dependency>

<dependency>
	<groupId>org.apache.tomee</groupId>
	<artifactId>tomee</artifactId>
	<version>7.0.1</version>
</dependency>
----

A complete xref:tomee-7.0.1-release-notes.adoc[Changelog] can be viewed here:

xref:tomee-7.0.1-release-notes.adoc[tomee-7.0.1-release-notes.html]

Please feel free to jump in feet first and xref:docs.adoc[get started with TomEE].
You will nearly always find someone to help you on one of our xref:support.adoc[support channels].
