blob: 64a76d104c398fe07e4f985aa08e95e3bb8bfb85 [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">
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="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="/">
<span>
<img src="../../../../img/logo-active.png">
</span>
Apache TomEE
</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 href="../../../../download-ng.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'>
<div class='btn-toolbar pull-right' style="z-index: 2000;">
<div class='btn-group'>
<a class="btn" href="../../../../latest/docs/admin/configuration/application.pdf"><i class="fa fa-file-pdf-o"></i> Download as PDF</a>
</div>
</div>
<h1>Application Configuration</h1>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="sect1">
<h2 id="__code_application_properties_code"><code>application.properties</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>This file is located in <code>WEB-INF</code> for a war and <code>META-INF</code> for an ear.</p>
</div>
<div class="sect2">
<h3 id="__code_asynchronous_code_configuration"><code>@Asynchronous</code> configuration</h3>
<div class="paragraph">
<p>Default pool size for <code>@Asynchronous</code> is 5. It can be very small for some applications highly relying on
asynchronism or reactive patterns. Therefore it is possible to customize it adding these entries in <code>application.properties</code>:</p>
</div>
<table class="tableblock frame-all grid-all spread table table-bordered">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Default</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.Size</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Core size of the pool</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.CorePoolSize</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Core size of the pool (inherit its default from .Size alias)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.MaximumPoolSize</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum size of the pool</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.QueueSize</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Maximum size of the pool</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.KeepAliveTime</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1 minute</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Thread keep alive duration</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.AllowCoreThreadTimeOut</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Should thread timeout</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.QueueType</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">LINKED (or SYNCHRONOUS if size == 0)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">The type of queue of the pool in ARRAY, LINKED, PRIORITY or SYNCHRONOUS (same behavior as java implementations of the same name)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.ShutdownWaitDuration</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1 minute</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">How many time to wait for the pool to shutdown when undeploying the application</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AsynchronousPool.RejectedExecutionHandlerClass</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A fully qualified name of a <code>java.util.concurrent.RejectedExecutionHandler</code></p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_timerservice_and_code_scheduled_code">TimerService and <code>@Scheduled</code></h3>
<div class="paragraph">
<p><code>timerStore.class</code> allows to switch from the in memory (<code>org.apache.openejb.core.timer.MemoryTimerStore</code>) timer storage
for quartz tasks to a custom implementation (using a database or anything for instance). Constructor can take a <code>TransactionManager</code>
or nothing.</p>
</div>
<div class="paragraph">
<p>All quartz properties prefixed with <code>org.apache.openejb.quartz.</code> (instead of <code>org.quartz.</code>) are passthrough to quartz.</p>
</div>
</div>
<div class="sect2">
<h3 id="_cdi">CDI</h3>
<div class="paragraph">
<p>The boolean <code>openejb.cdi.skip-resource-validation</code> allows to not validate resources ie <code>@EJB</code> and <code>@Resource</code> usages in CDI beans.</p>
</div>
<div class="paragraph">
<p>All properties understood by OpenWebBeans will also be passthrough to OpenWebBeans from this location, see <a href="http://openwebbeans.apache.org/owbconfig.html">OWB config</a> for more details.</p>
</div>
</div>
<div class="sect2">
<h3 id="__code_webserviceref_code"><code>@WebServiceRef</code></h3>
<table class="tableblock frame-all grid-all spread table table-bordered">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">cxf.jaxws.client.wsFeatures</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Allows to set WSFeature on the client injection. Values is a list (comma separated) of resource id in resources.xml or fully qualified names.</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="__code_stateless_code"><code>@Stateless</code></h3>
<table class="tableblock frame-all grid-all spread table table-bordered">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">AccessTimeout or Timeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">container timeout</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">CloseTimeout</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">container timeout</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">BackgroundStartup</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Don&#8217;t create instances in parallel if minimum count is &gt; 0, default to false</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="__code_resources_xml_code"><code>resources.xml</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p><code>resources.xml</code> is a tomee.xml using application classloader.</p>
</div>
<div class="paragraph">
<p>As <code>tomee.xml</code> it supports filtering so you can use environment variables and system properties, for instance
to use a MySQL database on OpenShift you can do:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;resources&gt;
&lt;Resource id="MySQL" aliases="myAppDataSourceName" type="DataSource"&gt;
JdbcDriver = com.mysql.jdbc.Driver
JdbcUrl = jdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/rmannibucau?tcpKeepAlive=true
UserName = ${OPENSHIFT_MYSQL_DB_USERNAME}
Password = ${OPENSHIFT_MYSQL_DB_PASSWORD}
ValidationQuery = SELECT 1
ValidationInterval = 30000
NumTestsPerEvictionRun = 5
TimeBetweenEvictionRuns = 30 seconds
TestWhileIdle = true
MaxActive = 200
&lt;/Resource&gt;
&lt;/resources&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p><code>resources.xml</code> supports <code>Resource</code>, <code>Service</code> and <code>Container</code>.</p>
</div>
<div class="sect2">
<h3 id="__code_resources_xml_code_mecanism"><code>resources.xml</code> mecanism</h3>
<div class="paragraph">
<p><code>resources.xml</code> resources are still available globally like any <code>tomee.xml</code> resource.</p>
</div>
<div class="paragraph">
<p>The actual resource is bound in an application subtree called with the application name and a resource facade is bound
in the global naming tree to be able to route the requests depending the application.</p>
</div>
<div class="paragraph">
<p>Typically if your application is named <code>myapp</code> and your resource id is <code>myresource</code> then instead of being registered
as <code>myresource</code>, it will get registered as <code>myapp/myresource</code>.</p>
</div>
<div class="paragraph">
<p>If you get any ambiguity in resource name matching try to fully qualified your resource prefixing it with the application name.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</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>
<li><a href="https://plus.google.com/communities/105208241852045684449"><i class="fa fa-google-plus"></i></a></li>
</ul>
</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="http://apache.org/security" target="_blank" class="regular light-white">Apache Security</a></li>
<li><a href="http://apache.org/security/projects.html" target="_blank" class="regular light-white">Security Projects</a></li>
<li><a href="http://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-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>
</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>