<!DOCTYPE html>
<html lang="en">
  <head>

    <meta charset="UTF-8">
      <title></title>
    <meta name="description" content="Apache TomEE">
    <meta name="author" content="Apache TomEE">
    <meta name="google-translate-customization" content="f36a520c08f4c9-0a04e86a9c075ce9-g265f3196f697cf8f-10">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">
    <meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate, max-age=0">

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <link href="./resources/css/bootstrap.css" rel="stylesheet">
    <link href="./resources/css/prettify.css" rel="stylesheet">
    <!--link href="./resources/css/bootstrap-mods.css" rel="stylesheet"-->
    <link href="./resources/css/main.css" rel="stylesheet">
    <link href="./resources/font-awesome-4.6.3/css/font-awesome.min.css" rel="stylesheet">

    <script type="text/javascript">
        var t = encodeURIComponent(document.title.replace(/^\s+|\s+$/g,""));
        var u = encodeURIComponent(""+document.URL);
    
      function fbshare () {
          window.open(
                  "http://www.facebook.com/sharer/sharer.php?u="+u,
                  'Share on Facebook',
                  'width=640,height=426');
      };
      function gpshare () {
          window.open(
                  "https://plus.google.com/share?url="+u,
                  'Share on Google+',
                  'width=584,height=385');
      };
      function twshare () {
          window.open(
                  "https://twitter.com/intent/tweet?url="+u+"&text="+t,
                  'Share on Twitter',
                  'width=800,height=526');
      };
      function pinshare () {
          window.open("//www.pinterest.com/pin/create/button/?url="+u+"&media=http%3A%2F%2Ftomee.apache.org%2Fresources%2Fimages%2Ffeather-logo.png&description="+t,
                  'Share on Pinterest',
                  'width=800,height=526');
      };
    </script>

    <!-- Le fav and touch icons -->
    <link rel="shortcut icon" href="./favicon.ico">
    <link rel="apple-touch-icon" href="./resources/images/apple-touch-icon.png">
    <link rel="apple-touch-icon" sizes="72x72" href="./resources/images/apple-touch-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="114x114" href="./resources/images/apple-touch-icon-114x114.png">

    <script src="./resources/js/prettify.js" type="text/javascript"></script>
    <script src="./resources/js/jquery-latest.js"></script>
    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
    <script src="./resources/js/common.js"></script>
    <script src="./resources/js/prettyprint.js"></script>
    <!--script src="//assets.pinterest.com/js/pinit.js" type="text/javascript" async></script//-->
    
    <script type="text/javascript">

      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-2717626-1']);
      _gaq.push(['_setDomainName', 'apache.org']);
      _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();

    </script>
  </head>

  <body>

    <div class="topbar" data-dropdown="dropdown">
      <div class="fill">
        <div class="container">
          <a class="brand" href="./index.html">Apache TomEE</a>
          <ul class="nav">
              <li class="dropdown">
                  <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                  Apache
                      <b class="caret"></b>
                  </a>
                  <ul class="dropdown-menu">
                     <!-- <li><a href="./misc/whoweare.html">Who we are?</a></li> -->
                     <!-- <li><a href="./misc/heritage.html">Heritage</a></li> -->
                     <li><a href="http://www.apache.org">Apache Home</a></li>
                     <!-- <li><a href="./misc/resources.html">Resources</a></li> -->
                     <li><a href="./misc/contact.html">Contact</a></li>
                     <li><a href="./misc/legal.html">Legal</a></li>
                     <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                     <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
                     <li class="divider"/>
                     <li><a href="http://www.apache.org/security">Security</a></li>
                  </ul>
              </li>
              <li><a href="./index.html">Home</a></li>
              <li><a href="./downloads.html">Downloads</a></li>
              <li><a href="./documentation.html">Documentation</a></li>
              <li><a href="./examples-trunk/index.html">Examples</a></li>
              <li><a href="./support.html">Support</a></li>
              <li><a href="./contribute.html">Contribute</a></li>
              <li><a href="./security/index.html">Security</a></li>
          </ul>

            <!-- Google CSE Search Box Begins  -->
            <FORM class="pull-right" id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
                <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
                <INPUT type="hidden" name="cof" value="FORID:0">
                <INPUT size="18" width="130" style="width:130px" name="q" type="text" placeholder="Search">
            </FORM>
            <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>-->
            <!-- Google CSE Search Box Ends -->
        </div>
      </div>
    </div>

    <div class="container">
    

<div class="page-header">
    <small><a href="./index.html">Home</a></small><br>
    <h1>

        <div style="float: right; position: relative; bottom: -10px; ">
            <a onclick="javascript:gpshare()" class="gp-share sprite" title="Share on Google+">share [gp]</a>
            <a onclick="javascript:fbshare()" class="fb-share sprite" title="Share on Facebook">share [fb]</a>
            <a onclick="javascript:twshare()" class="tw-share sprite" title="Share on Twitter">share [tw]</a>
            <a onclick="javascript:pinshare()" class="pin-share sprite" title="Share on Pinterest">share [pin]</a>
            <a data-toggle="modal" href="#edit" class="edit-page" title="Contribute to this Page">contribute</a>
        </div>
    </h1>
</div>

<pre><code>    Release Notes - TomEE - Version 7.0.2
</code></pre>

<h2>        Bug
</h2>

<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1545'>TOMEE-1545</a>] -         Problem with parallel deployment + REST
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1778'>TOMEE-1778</a>] -         XAPoolTest fails because lock on XA log file cannot be acquired
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1851'>TOMEE-1851</a>] -         ear classloading can&#39;t be webapp first without a custom classloader
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1852'>TOMEE-1852</a>] -         JAXWS services without CDI can lead to NPE
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1856'>TOMEE-1856</a>] -         Empty log files from AsyncConsoleHandler
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1857'>TOMEE-1857</a>] -         Logger.getInstance leaks
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1858'>TOMEE-1858</a>] -         tomee.bat doesn&#39;t work
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1859'>TOMEE-1859</a>] -         support debug command on tomee.sh
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1860'>TOMEE-1860</a>] -         Potential NPE with DBCP if a shared connection is closed
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1862'>TOMEE-1862</a>] -         TomcatWebAppBuilder: no need to track contextXml inputstream
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1865'>TOMEE-1865</a>] -         NPE when injected request used in bean called from JASPIC SAM
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1866'>TOMEE-1866</a>] -         Authenticators don&#39;t have access to the request in CDI beans (@RequestScoped)
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1871'>TOMEE-1871</a>] -         deactivate tomee gui link since it is no more provided by default
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1875'>TOMEE-1875</a>] -         TomcatWebAppBuilder forces ConfigurationFactory impl
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1878'>TOMEE-1878</a>] -         AlternateDriver should be used only if datasource defines a classpath attribute
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1879'>TOMEE-1879</a>] -         DefinitionEncoding typo in Assembler
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1881'>TOMEE-1881</a>] -         org.apache.openejb.server.httpd.ServerServlet activated init param not respected
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1887'>TOMEE-1887</a>] -         Cipher command exception swalled
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1888'>TOMEE-1888</a>] -         tomcat context.xml datasource can be created twice in a different way when singleton
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1890'>TOMEE-1890</a>] -         arquillian remote tomee adapter should allow to configure options on the provider url (like timeout etc)
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1893'>TOMEE-1893</a>] -         JAXRS undeploys all contexts matching context prefix
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1894'>TOMEE-1894</a>] -         MvnResolver uses openejb.m2.home for settings location
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1896'>TOMEE-1896</a>] -         TomcatWebAppBuilder overwrites the last added event listener when the application doesn&#39;t use CDI
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1898'>TOMEE-1898</a>] -         NPE in PojoEndpoint.java:110 when deploying JAX-WS application
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1899'>TOMEE-1899</a>] -         deny-uncovered-http-methods not supported in web.xml
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1900'>TOMEE-1900</a>] -         XAConnection wrongly pooled when not fully handled in transaction (JPA case)
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1901'>TOMEE-1901</a>] -         @Inject not working for EJB module
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1902'>TOMEE-1902</a>] -         [plume] NPE when CDI is not used
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1903'>TOMEE-1903</a>] -         JTA component lookup fails in CDI extensions
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1904'>TOMEE-1904</a>] -         allow to sort cdi extensions
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1907'>TOMEE-1907</a>] -         tomee arquillian enricher shouldn&#39;t log a warning for junit rules/statements
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1909'>TOMEE-1909</a>] -         CDI not available for JSP
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1911'>TOMEE-1911</a>] -         gradle plugin broken with gradle 3 and gradle wrapper
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1913'>TOMEE-1913</a>] -         CDI.current().getBeanManager() returns BeanManager of another webapp
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1922'>TOMEE-1922</a>] -         openejb-http doesn&#39;t support multiple header values
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1923'>TOMEE-1923</a>] -         @WebXXX ignored with antijarlocking activated
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1925'>TOMEE-1925</a>] -         WebContext#isWeb doesn&#39;t contain all web artifacts
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1928'>TOMEE-1928</a>] -         use src/main/webapp by default as webresource for TomEEEmbeddedSingleRunner
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1933'>TOMEE-1933</a>] -         InputStreamLeak in IO.java
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1935'>TOMEE-1935</a>] -         Leaked streams to files/classloader resources
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1936'>TOMEE-1936</a>] -         JMS message.getBody(String.class) is not working in MDB
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1940'>TOMEE-1940</a>] -         AbstractMethodError: org.apache.activemq.ActiveMQSession.createDurableConsumer(
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1941'>TOMEE-1941</a>] -         Logger.configure should also take into account openejb.logger.external
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1946'>TOMEE-1946</a>] -         TomEE relies on deafult locale
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1951'>TOMEE-1951</a>] -         BeanManager missing from javax.persistence.bean.manager entry in the map passed to JPA
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1952'>TOMEE-1952</a>] -         openejb.ejbd.authenticate-with-request hides authentication exception
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1960'>TOMEE-1960</a>] -         JarFiles are not closed
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1962'>TOMEE-1962</a>] -         deprecate org.apache.openejb.core.LocalInitialContextFactory
</li>
</ul>

<h2>        Dependency upgrade
</h2>

<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1864'>TOMEE-1864</a>] -         tomcat 8.5.6
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1869'>TOMEE-1869</a>] -         upgrade xmlsec to 2.0.6
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1880'>TOMEE-1880</a>] -         johnzon 0.9.4
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1905'>TOMEE-1905</a>] -         ActiveMQ 5.14.1
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1906'>TOMEE-1906</a>] -         CXF 3.1.8
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1920'>TOMEE-1920</a>] -         Upgrade OpenWebBeans to 1.7.0
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1939'>TOMEE-1939</a>] -         myfaces 2.2.11
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1948'>TOMEE-1948</a>] -         batchee 0.4
</li>
</ul>

<h2>        Improvement
</h2>

<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1855'>TOMEE-1855</a>] -         JSP can leak under no luck conditions
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1861'>TOMEE-1861</a>] -         org.apache.tomee.jul.formatter.AsyncConsoleHandler not configurable
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1870'>TOMEE-1870</a>] -         Don&#39;t scan jars if scan.xml is used with classes only
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1882'>TOMEE-1882</a>] -         tomee.sh/tomee.bat ignore tomcat boot classpat (tomcat-juli typically)
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1885'>TOMEE-1885</a>] -         Improve MyFaces default properties
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1886'>TOMEE-1886</a>] -         add tomee.embedded.add-callers flag to tomee embeddded to be able to skip add caller code
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1921'>TOMEE-1921</a>] -         [tomee embedded] support to load configuration from a properties file in the classpath
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1927'>TOMEE-1927</a>] -         Update Maven page for TomEE 7.x
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1929'>TOMEE-1929</a>] -         Do not unnecessarily allocate an array
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1931'>TOMEE-1931</a>] -         InputStreamLeak in CxfRsHttpListener
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1949'>TOMEE-1949</a>] -         remove ejb-jar.xml and openejb-jar.xml from openejb-core
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1950'>TOMEE-1950</a>] -         tomee embedded should support descriptors in classpath for --as-war
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1958'>TOMEE-1958</a>] -         Mockito doesn&#39;t @MockInjector to be set as container properties
</li>
</ul>

<h2>        New Feature
</h2>

<ul>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1810'>TOMEE-1810</a>] -         Default context should be &#39;/&#39; or ROOT if --context is not specified for embedded tomee
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1872'>TOMEE-1872</a>] -         Map tomee embedded Configuration to its main
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1873'>TOMEE-1873</a>] -         Add FatApp main which is designed for fatjar case and delegates to tomee embedded Main with fatjar config
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1883'>TOMEE-1883</a>] -         provide tomee embedded classpath scanner through an event
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1884'>TOMEE-1884</a>] -         provide a component to propagate command line and args of tomee embedded
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1889'>TOMEE-1889</a>] -         EJBd http client BASIC support
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1895'>TOMEE-1895</a>] -         support maven coordinates in classpaths element
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1914'>TOMEE-1914</a>] -         org.apache.openejb.util.ContainerClassesFilter ignores jaxws exclusions
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1915'>TOMEE-1915</a>] -         add --interactive=true or -i options to tomee embedded main to exist typing &quot;exit&quot;
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1916'>TOMEE-1916</a>] -         add conf option to tomee embedded configuration
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1917'>TOMEE-1917</a>] -         Provide means to bypass CountingInputStream/OutputStream
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1918'>TOMEE-1918</a>] -         propagate gradle plugin configuration to gradle extension
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1919'>TOMEE-1919</a>] -         gradle tomee embedde task configuration not working
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1926'>TOMEE-1926</a>] -         add Configurer hook to TomEEEmbeddedSingleRunner to configure the Configuration instance
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1938'>TOMEE-1938</a>] -         @JMSDestinationDefinition ignored
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1944'>TOMEE-1944</a>] -         add --classes-filter to tomee embedded
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1953'>TOMEE-1953</a>] -         TomEE Embedded Mojo should support additional web resource directories
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1957'>TOMEE-1957</a>] -         add @Args to tomee-embedded application runner
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1959'>TOMEE-1959</a>] -         add js/groovy customizers to tomee embedded maven plugin based on tomee standalone ones
</li>
<li>[<a href='https://issues.apache.org/jira/browse/TOMEE-1964'>TOMEE-1964</a>] -         support to always return false for isSameResource on XADataSource
</li>
</ul>




        <div id="edit" class="modal hide fade in" style="display: none; ">
            <div class="modal-header">
                <a class="close" data-dismiss="modal">x</a>

                <h3>Thank you for contributing to the documentation!</h3>
            </div>
            <div class="modal-body">
                <h4>Any help with the documentation is greatly appreciated.</h4>
                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
                <!--[if gt IE 6]>
                <h4>Internet Explorer Users</h4>
                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
                <![endif]-->

            </div>
            <div class="modal-footer">
                Do you have an Apache ID?
                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
            </div>
        </div>
        <script src="./resources/js/bootstrap-modal.js"></script>

        <footer>
            <p>Copyright &copy; 1999-2016 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
                Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE project logo are trademarks of The Apache Software Foundation.
                All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
        </footer>

    </div> <!-- /container -->

    <!-- Javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="./resources/js/bootstrap-dropdown.js"></script>

  </body>
</html>
