blob: df0e9709ddc5e40f30c6028919ef0a57567ac4fb [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Apache TomEE</title>
<meta name="description"
content="Apache TomEE is a lightweight, yet powerful, JavaEE Application server with feature rich tooling." />
<meta name="keywords" content="tomee,asf,apache,javaee,jee,shade,embedded,test,junit,applicationcomposer,maven,arquillian" />
<meta name="author" content="Luka Cvetinovic for Codrops" />
<link rel="icon" href="../favicon.ico">
<link rel="icon" type="image/png" href="../favicon.png">
<meta name="msapplication-TileColor" content="#80287a">
<meta name="theme-color" content="#80287a">
<link rel="stylesheet" type="text/css" href="../css/normalize.css">
<link rel="stylesheet" type="text/css" href="../css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="../css/owl.css">
<link rel="stylesheet" type="text/css" href="../css/animate.css">
<link rel="stylesheet" type="text/css" href="../fonts/font-awesome-4.1.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="../fonts/eleganticons/et-icons.css">
<link rel="stylesheet" type="text/css" href="../css/jqtree.css">
<link rel="stylesheet" type="text/css" href="../css/idea.css">
<link rel="stylesheet" type="text/css" href="../css/cardio.css">
<script type="text/javascript">
<!-- Matomo -->
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function () {
var u = "//matomo.privacy.apache.org/";
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '5']);
var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
g.async = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore(g, s);
})();
<!-- End Matomo Code -->
</script>
</head>
<body>
<div class="preloader">
<img src="../img/loader.gif" alt="Preloader image">
</div>
<nav class="navbar">
<div class="container">
<div class="row"> <div class="col-md-12">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/" title="Apache TomEE">
<span>
<img
src="../img/apache_tomee-logo.svg"
onerror="this.src='../img/apache_tomee-logo.jpg'"
height="50"
>
</span>
</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right main-nav">
<li><a href="../docs.html">Documentation</a></li>
<li><a href="../community/index.html">Community</a></li>
<li><a href="../security/security.html">Security</a></li>
<li><a class="btn btn-accent accent-orange no-shadow" href="../download.html">Downloads</a></li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div></div>
</div>
<!-- /.container-fluid -->
</nav>
<div id="main-block" class="container main-block">
<div class="row title">
<div class="col-md-12">
<div class='page-header'>
<h1>Source Code</h1>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p><strong>We have moved to GIT.
This means that anything you may find elsewhere on the site about SVN is no longer valid!</strong></p>
</div>
<div class="paragraph">
<p>The documentation will be updated over the next few days and weeks but if you find anything that is <strong>really</strong> misleading then please send a message to the developer list at: <a href="mailto:dev@tomee.apache.org">dev@tomee.apache.org</a></p>
</div>
<div class="paragraph">
<p>Probably the best GIT tutorial on the planet can be found here: <a href="https://www.atlassian.com/git/" class="bare">https://www.atlassian.com/git/</a> - This is a great reference for both existing and new GIT users.
Please take a look.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_git_information_for_everyone">GIT Information for Everyone</h2>
<div class="sectionbody">
<div class="paragraph">
<p>You can browse the source code via the <a href="http://gitbox.apache.org/repos/asf/tomee.git">web interface</a>.</p>
</div>
<div class="paragraph">
<p>If you intend to hack on TomEE then it is recommended that you create a <a href="https://github.com">GitHub Account</a> and <a href="https://help.github.com/articles/fork-a-repo/">fork</a> the TomEE repository so that you can submit pull requests (See below).</p>
</div>
<div class="paragraph">
<p>If you just want to build the source version then you can download (aka clone) the sources of Apache TomEE with a GIT client from the following URL <a href="https://gitbox.apache.org/repos/asf/tomee.git" class="bare">https://gitbox.apache.org/repos/asf/tomee.git</a> - The 'master' branch is the current development branch.</p>
</div>
<div class="paragraph">
<p>Performing the checkout from a command line using the GIT client (recommended) is as easy as executing the following command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>git clone https://gitbox.apache.org/repos/asf/tomee.git tomee</pre>
</div>
</div>
<div class="paragraph">
<p>If you want to checkout a specific branch then you can just change that in the command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>git clone -b tomee-1.7.x https://gitbox.apache.org/repos/asf/tomee.git tomee-1.7.x</pre>
</div>
</div>
<div class="paragraph">
<p>Or alternatively with Apache Maven 3.0.5 or later:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>mvn scm:checkout -DconnectionUrl=scm:git:https://gitbox.apache.org/repos/asf/tomee.git -DcheckoutDirectory=tomee</pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This method does not require the GIT client.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_git_information_for_tomee_contributors">GIT Information for TomEE Contributors</h2>
<div class="sectionbody">
<div class="paragraph">
<p><strong>Please read our own detailed GitFlow workflow information <a href="git.html">here</a></strong></p>
</div>
<div class="paragraph">
<p>We will be using the <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow">Gitflow Workflow</a> from day one.
Please read and understand how this works.</p>
</div>
<div class="paragraph">
<p>See <a href="https://help.github.com/articles/using-pull-requests/">here</a> for information on pull requests.</p>
</div>
<div class="paragraph">
<p>The official Apache Committer documentation can be found <a href="https://gitbox.apache.org/#committers-getting-started">here</a></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_continuous_integration">Continuous integration</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Apache TomEE continuous integration relies on <a href="http://ci.apache.org/">Apache Buildbot</a>.
All builders are available <a href="http://ci.apache.org/builders">from the page</a>.</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="http://ci.apache.org/builders/tomee-1.7.x-ubuntu">Apache TomEE 1.7.x under Ubuntu</a></p>
</li>
<li>
<p><a href="http://ci.apache.org/builders/tomee-trunk-ubuntu">Apache TomEE 2.x under Ubuntu</a></p>
</li>
<li>
<p><a href="http://ci.apache.org/builders/tomee-trunk-win-sunjdk">Apache TomEE 2.x under Windows using a Sun/Oracle JDK</a></p>
</li>
<li>
<p><a href="http://ci.apache.org/builders/tomee-trunk-win-ibmjdk6">Apache TomEE 2.x under Windows using an IBM JDK</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_maven">Maven</h2>
<div class="sectionbody">
<div class="paragraph">
<p>To build the code, you&#8217;ll need to grab a copy of <a href="http://maven.apache.org">Apache Maven</a>, version 3.0.5 or later.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_memory_settings">Memory Settings</h2>
<div class="sectionbody">
<div class="paragraph">
<p>It is pretty much guaranteed that you will need to give Maven an increase on the available memory.
+ Depending on the OS you are working on the fix can be as easy as (Note: <em>-XX:MaxPermSize=256M</em> is ignored by Java 8):</p>
</div>
<div class="listingblock">
<div class="content">
<pre>export MAVEN_OPTS="-Xmx768m -XX:MaxPermSize=256M -XX:ReservedCodeCacheSize=64m -Xss2048k"</pre>
</div>
</div>
<div class="paragraph">
<p>on MacOS and Unices or</p>
</div>
<div class="listingblock">
<div class="content">
<pre>set "MAVEN_OPTS=-Xmx768m -XX:MaxPermSize=256M -XX:ReservedCodeCacheSize=64m -Xss2048k"</pre>
</div>
</div>
<div class="paragraph">
<p>on MS Windows.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_full_build">Full Build</h2>
<div class="sectionbody">
<div class="paragraph">
<p>A fast build that skips all tests, generates no reports and creates full distribution archives is as follows:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>mvn -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install</pre>
</div>
</div>
<div class="paragraph">
<p>The full build with tests takes around 2 hours:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>mvn -Dassemble clean install</pre>
</div>
</div>
<div class="paragraph">
<p>The output of those commands should end with "BUILD SUCCESSFUL"</p>
</div>
<div class="paragraph">
<p>It is of course possible to just compile and test individual modules.
Just change to the module directory and run the same commands as above.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_quick_build">Quick Build</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If you are in real a hurry (and let&#8217;s face it most of us are) you can run a quick build without the examples using the <em>quick</em> profile:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>mvn -Pquick -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_binary_locations">Binary locations</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Once built, the TomEE binaries will be located at:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>ls [project]/tomee/apache-tomee/target/*.zip
tomee/apache-tomee/target/apache-tomee-jaxrs-[version]-SNAPSHOT.zip
tomee/apache-tomee/target/apache-tomee-plus-[version]-SNAPSHOT.zip
tomee/apache-tomee/target/apache-tomee-webprofile-[version]-SNAPSHOT.zip
tomee/apache-tomee/target/apache-tomee-plume-[version]-SNAPSHOT.tar.gz</pre>
</div>
</div>
<div class="paragraph">
<p>The OpenEJB standalone binaries will be located at:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>ls [project]/assembly/openejb-standalone/target/*.zip
assembly/openejb-standalone/target/apache-openejb-[version]-SNAPSHOT.zip</pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div style="margin-bottom: 30px;"></div>
<footer>
<div class="container">
<div class="row">
<div class="col-sm-6 text-center-mobile">
<h3 class="white">Be simple. Be certified. Be Tomcat.</h3>
<h5 class="light regular light-white">"A good application in a good server"</h5>
<ul class="social-footer">
<li><a href="https://www.facebook.com/ApacheTomEE/"><i class="fa fa-facebook"></i></a></li>
<li><a href="https://twitter.com/apachetomee"><i class="fa fa-twitter"></i></a></li>
</ul>
<h5 class="light regular light-white">
<a href="../privacy-policy.html" class="white">Privacy Policy</a>
</h5>
</div>
<div class="col-sm-6 text-center-mobile">
<div class="row opening-hours">
<div class="col-sm-3 text-center-mobile">
<h5><a href="../latest/docs/" class="white">Documentation</a></h5>
<ul class="list-unstyled">
<li><a href="../latest/docs/admin/configuration/index.html" class="regular light-white">How to configure</a></li>
<li><a href="../latest/docs/admin/file-layout.html" class="regular light-white">Dir. Structure</a></li>
<li><a href="../latest/docs/developer/testing/index.html" class="regular light-white">Testing</a></li>
<li><a href="../latest/docs/admin/cluster/index.html" class="regular light-white">Clustering</a></li>
</ul>
</div>
<div class="col-sm-3 text-center-mobile">
<h5><a href="../latest/examples/" class="white">Examples</a></h5>
<ul class="list-unstyled">
<li><a href="../latest/examples/simple-cdi-interceptor.html" class="regular light-white">CDI Interceptor</a></li>
<li><a href="../latest/examples/rest-cdi.html" class="regular light-white">REST with CDI</a></li>
<li><a href="../latest/examples/ejb-examples.html" class="regular light-white">EJB</a></li>
<li><a href="../latest/examples/jsf-managedBean-and-ejb.html" class="regular light-white">JSF</a></li>
</ul>
</div>
<div class="col-sm-3 text-center-mobile">
<h5><a href="../community/index.html" class="white">Community</a></h5>
<ul class="list-unstyled">
<li><a href="../community/contributors.html" class="regular light-white">Contributors</a></li>
<li><a href="../community/social.html" class="regular light-white">Social</a></li>
<li><a href="../community/sources.html" class="regular light-white">Sources</a></li>
</ul>
</div>
<div class="col-sm-3 text-center-mobile">
<h5><a href="../security/index.html" class="white">Security</a></h5>
<ul class="list-unstyled">
<li><a href="https://apache.org/security" target="_blank" class="regular light-white">Apache Security</a></li>
<li><a href="https://apache.org/security/projects.html" target="_blank" class="regular light-white">Security Projects</a></li>
<li><a href="https://cve.mitre.org" target="_blank" class="regular light-white">CVE</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="row bottom-footer text-center-mobile">
<div class="col-sm-12 light-white">
<p>Copyright &copy; 1999-2022 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>
</div>
</div>
</div>
</footer>
<!-- Holder for mobile navigation -->
<div class="mobile-nav">
<ul>
<li><a hef="../latest/docs/admin/index.html">Administrators</a>
<li><a hef="../latest/docs/developer/index.html">Developers</a>
<li><a hef="../latest/docs/advanced/index.html">Advanced</a>
<li><a hef="../community/index.html">Community</a>
</ul>
<a href="#" class="close-link"><i class="arrow_up"></i></a>
</div>
<!-- Scripts -->
<script src="../js/jquery-1.11.1.min.js"></script>
<script src="../js/owl.carousel.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/wow.min.js"></script>
<script src="../js/typewriter.js"></script>
<script src="../js/jquery.onepagenav.js"></script>
<script src="../js/tree.jquery.js"></script>
<script src="../js/highlight.pack.js"></script>
<script src="../js/main.js"></script>
</body>
</html>