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

    <meta charset="UTF-8">
      <title>Apache TomEE 7.0.0-M2</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">
    
<section xmlns="http://www.w3.org/1999/html">

    <div class="alert-message">
      <strong>Feedback Welcome!</strong>
        We use your feedback to focus efforts, develop new features, and to make TomEE better for everyone.  <a href="mailto:users@tomee.apache.org?subject=Feedback on TomEE 7.0.0-M2&body=We'd%20like%20to%20hear%20about%20anything%20you'd%20like%20to%20tell%20us.%20%20If%20you're%20short%20on%20ideas%2C%20here%20are%20some%3A%0A%0A%20-%20Ways%20we%20can%20speed%20up%20or%20improve%20your%20ability%20to%20evaluate%20TomEE%0A%20-%20Anything%20you%20found%20difficult%20or%20inconvenient%20about%20using%20TomEE%0A%20-%20Documentation%20you%20would%20like%20to%20see%0A%20-%20Features%20you%20would%20like%20to%20have%0A%20-%20Anything%20in%20general%20to%20improve%20TomEE%20or%20help%20us%20grow%0A%0AKeep%20in%20mind%20that%20out%20of%20every%20100%20people%20that%20try%20something%20out%2C%20maybe%20one%20will%20actually%20post%20about%20it.%20%20Feel%20incredibly%20encouraged%20to%20let%20us%20know%20about%20your%20experiences%20with%20TomEE%20even%20if%20you%20think%20we've%20heard%20it%20a%20hundred%20times.%20%20Odds%20are%20we%20have%20not%20heard%20it%20and%2C%20if%20we%20have%2C%20the%20most%20requested%20things%20are%20done%20first.%20%20So%20definitely%20let%20us%20know!%0A%0AApache%20TomEE%20is%20free%2C%20but%20you%20can%20pay%20us%20with%20feedback%20%3A)%0A%0ABest%20regards%2C%0AThe%20Apache%20TomEE%20community%0A">Help us grow!</a>
    </div>

    <div class="page-header">
        <h1>Apache TomEE 7.0.0-M2
            <small>December 2015</small>
        </h1>
        <p>In order to guard against corrupted downloads/installations, it is highly recommended to <a href="http://www.apache.org/dev/release-signing#verifying-signature">verify the signature</a> of the release bundles against the public <a href="http://www.apache.org/dist/tomee/KEYS">KEYS</a> used by the Apache TomEE developers.</p>
    </div>

    <div class="row">
        <div class="span4">
            <h2>Web Profile</h2>

            <p>Apache TomEE Web Profile delivers Servlets, JSP, JSF, JTA, JPA, CDI, Bean Validation and EJB Lite</p>

            <p><a href="../comparison.html">Comparison &raquo;</a></p>
            <br>
            <h2>Plus</h2>

            <p>Apache TomEE Plus delivers all that is in the Web Profile and JAX-RS, plus EJB Full, Java EE Connector Architecture, JMS and JAX-WS.</p>

            <p><a href="../comparison.html">Comparison &raquo;</a></p>
            <br>
            <h2>Plume</h2>

            <p>Apache TomEE Plume delivers all that is in the Plus Profile, but includes <a target="_blank" href="https://javaserverfaces.java.net/">Mojarra</a> and <a target="_blank" href="http://www.eclipse.org/eclipselink/">EclipseLink</a> support.</p>

            <p><a href="../comparison.html">Comparison &raquo;</a></p>

        </div>
        <div class="span5">
            <h2>
                <small>Not Java EE7 Certified</small>
            </h2>
            <ul>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-webprofile.tar.gz">apache-tomee-7.0.0-M2-webprofile.tar.gz</a><br>
                    (<a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-webprofile.zip.txt">contents</a> -
                    <a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-webprofile.tar.gz.asc">asc</a> -
                    <a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-webprofile.tar.gz.md5">md5</a>)
                </li>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-webprofile.zip">apache-tomee-7.0.0-M2-webprofile.zip</a><br>
                    (<a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-webprofile.zip.txt">contents</a> -
                    <a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-webprofile.zip.asc">asc</a> -
                    <a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-webprofile.zip.md5">md5</a>)
                </li>
            </ul>
            <br>
            <h2>
                <small>Not Java EE7 Certified</small>
            </h2>
            <ul>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plus.tar.gz">apache-tomee-7.0.0-M2-plus.tar.gz</a><br>
                    (<a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plus.zip.txt">contents</a> -
                    <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plus.tar.gz.asc">asc</a>  - <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plus.tar.gz.md5">md5</a>)
                </li>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plus.zip">apache-tomee-7.0.0-M2-plus.zip</a><br>
                    (<a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plus.zip.txt">contents</a> -
                    <a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plus.zip.asc">asc</a> - <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plus.zip.md5">md5</a>)
                </li>
            </ul>
            <br><br>
            <h2>
                <small>Not Java EE7 Certified</small>
            </h2>
            <ul>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plume.tar.gz">apache-tomee-7.0.0-M2-plume.tar.gz</a><br>
                    (<a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plume.zip.txt">contents</a> -
                    <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plume.tar.gz.asc">asc</a>  - <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plume.tar.gz.md5">md5</a>)
                </li>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plume.zip">apache-tomee-7.0.0-M2-plume.zip</a><br>
                    (<a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plume.zip.txt">contents</a> -
                    <a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plume.zip.asc">asc</a> - <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/apache-tomee-7.0.0-M2-plume.zip.md5">md5</a>)
                </li>
            </ul>

        </div>
<div class="span5" style="float:right; width:350px" width="350px">
<img src="../resources/images/Geek-Choice-Awards-App-Server-100x100-black.png" alt="Geeks Choice Award" style="float:left; margin-right:5px">
    <p style="font-size:13px;line-height:18px;">RebelLabs released an annual study with awards to recognize Geeky Excellence for 2014. Tomcat and TomEE were named as one of the 10 Geek Choice Awards winner. For a complete list of winners, check out the report <a target="_blank" href="http://zeroturnaround.com/rebellabs/10-kick-ass-technologies-modern-developers-love/">"10 Kick-Ass Technologies Modern Developers Love"</a>.</p>
    <p><a class="btn primary"target="_blank" href="http://zeroturnaround.com/rebellabs/10-kick-ass-technologies-modern-developers-love/10/">Read the Report</a></p>
</div>        
        <div class="span7">
            <div class="hero-unit">
                <iframe width="280" height="233" src="http://www.youtube.com/embed/Lr8pxEACVRI" frameborder="0" allowfullscreen></iframe>
            </div>
        </div>
    </div>
</section>
<div class="row">
    <div class="span24">&nbsp;</div>
</div>
<section>
    <div class="page-header">
        <h2>Apache OpenEJB 7.0.0-M2
            <small>December 2015</small>
        </h2>
    </div>

    <div class="row">
        <div class="span4">
            <h3>Standalone</h3>

            <p>An "EJB" Server that can be run as a separate, standalone, server process. Contains EJB Full, CDI, JPA, JMS, JAX-WS, JAX-RS</p>

            <p><a href="../comparison.html">Comparison &raquo;</a></p>
        </div>
        <div class="span12">
            <h3>&nbsp;</h3>
            <ul>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-standalone-7.0.0-M2.tar.gz">openejb-standalone-7.0.0-M2.tar.gz</a> (<a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-standalone-7.0.0-M2.tar.gz.asc">asc</a> <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-standalone-7.0.0-M2.tar.gz.md5">md5</a>)
                </li>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-standalone-7.0.0-M2.zip">openejb-standalone-7.0.0-M2.zip</a> (<a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-standalone-7.0.0-M2.zip.asc">asc</a> <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-standalone-7.0.0-M2.zip.md5">md5</a>)
                </li>
            </ul>
        </div>
    </div>

    <div class="row">
        <div class="span4">
            <h3>Drop-in WARs</h3>

            <p>A version of Apache OpenEJB that can be dropped into any Tomcat 7.0.54 install effectively creating your own Apache TomEE Web Profile or Apache TomEE Plus.</p>
        </div>
        <div class="span12">
            <h3>&nbsp;</h3>
            <ul>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/tomee-webapp-7.0.0-M2.war">tomee-webapp-7.0.0-M2.war</a> (<a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/tomee-webapp-7.0.0-M2.war.asc">asc</a> <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/tomee-webapp-7.0.0-M2.war.md5">md5</a>)
                </li>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/tomee-plus-webapp-7.0.0-M2.war">tomee-plus-webapp-7.0.0-M2.war</a>
                    (<a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/tomee-plus-webapp-7.0.0-M2.war.asc">asc</a> <a
                            href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/tomee-plus-webapp-7.0.0-M2.war.md5">md5</a>)
                </li>
            </ul>
        </div>
    </div>
</section>
<div class="row">
    <div class="span24">&nbsp;</div>
</div>
<section>
    <div class="page-header">
        <h2>Other</h2>
    </div>

    <div class="row">
        <div class="span4">
            <h3>Source</h3>

            <p>Should you want to build any of the above binaries, this source bundle is the right one and covers them all.</p>

        </div>
        <div class="span12">
            <h3>&nbsp;</h3>
            <ul>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-7.0.0-M2-source-release.zip">openejb-7.0.0-M2-source-release.zip</a> (<a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-7.0.0-M2-source-release.zip.asc">asc</a> <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/openejb-7.0.0-M2-source-release.zip.md5">md5</a>)
                </li>
            </ul>
        </div>
    </div>
    <div class="row">
        <div class="span4">
            <h3>Examples</h3>

            <p>Currently, we have over 80 examples of various aspects of Java EE 6 ranging from EJB, CDI, JAX-RS and more.  If you're learning Java EE, this is your secret weapon.</p>
        </div>
        <div class="span12">
            <h3>&nbsp;</h3>
            <ul>
                <li><a href="examples-trunk">Browse Online</a></li>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/examples-7.0.0-M2-src.tar.gz">examples-7.0.0-M2-src.tar.gz</a> (<a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/examples-7.0.0-M2-src.tar.gz.asc">asc</a> <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/examples-7.0.0-M2-src.tar.gz.md5">md5</a>)
                </li>
                <li><a href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/examples-7.0.0-M2-src.zip">examples-7.0.0-M2-src.zip</a> (<a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/examples-7.0.0-M2-src.zip.asc">asc</a> <a
                        href="http://www.apache.org/dyn/closer.cgi/tomee/tomee-7.0.0-M2/examples-7.0.0-M2-src.zip.md5">md5</a>)
                </li>
            </ul>
        </div>
    </div>
</section>



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