tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dblev...@apache.org
Subject [04/20] tomee git commit: Docs old and new
Date Fri, 30 Nov 2018 23:04:19 GMT
http://git-wip-us.apache.org/repos/asf/tomee/blob/f779264f/docs/refcard/js/modernizr.custom.2.6.2.js
----------------------------------------------------------------------
diff --git a/docs/refcard/js/modernizr.custom.2.6.2.js b/docs/refcard/js/modernizr.custom.2.6.2.js
new file mode 100644
index 0000000..e7d7b4e
--- /dev/null
+++ b/docs/refcard/js/modernizr.custom.2.6.2.js
@@ -0,0 +1,4 @@
+/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
+ * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-shiv-teststyles-testprop-testallprops-prefixes-domprefixes
+ */
+;window.Modernizr=function(a,b,c){function z(a){i.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a){var e=a[d];if(!C(e,"-")&&i[e]!==c)return b=="pfx"?e:!0}return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.6.2",e={},f=b.documentElement,g="modernizr",h=b.createElement(g),i=h.style,j,k=":)",l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var h,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:g+
 (d+1),l.appendChild(j);return h=["&#173;",'<style id="s',g,'">',a,"</style>"].join(""),l.id=g,(m?l:n).innerHTML+=h,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=f.style.overflow,f.style.overflow="hidden",f.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),f.style.overflow=k),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.flexbox=function(){return F("flexWrap")},q.flexboxlegacy=function(){return F("boxDirection")},q.rgba=function(){return z("ba
 ckground-color:rgba(150,255,150,.5)"),C(i.backgroundColor,"rgba")},q.hsla=function(){return z("background-color:hsla(120,40%,100%,.5)"),C(i.backgroundColor,"rgba")||C(i.backgroundColor,"hsla")},q.multiplebgs=function(){return z("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(i.background)},q.backgroundsize=function(){return F("backgroundSize")},q.borderimage=function(){return F("borderImage")},q.borderradius=function(){return F("borderRadius")},q.boxshadow=function(){return F("boxShadow")},q.textshadow=function(){return b.createElement("div").style.textShadow===""},q.opacity=function(){return A("opacity:.55"),/^0.55$/.test(i.opacity)},q.cssanimations=function(){return F("animationName")},q.csscolumns=function(){return F("columnCount")},q.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return z((a+"-webkit- ".split(" ").join(b+a)+m.join(c+a
 )).slice(0,-a.length)),C(i.backgroundImage,"gradient")},q.cssreflections=function(){return F("boxReflect")},q.csstransforms=function(){return!!F("transform")},q.csstransforms3d=function(){var a=!!F("perspective");return a&&"webkitPerspective"in f.style&&w("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},q.csstransitions=function(){return F("transition")},q.fontface=function(){var a;return w('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},q.generatedcontent=function(){var a;return w(["#",g,"{font:0/0 a}#",g,':after{content:"',k,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a};for(var G in q)y(q,G)&&(v=G.toLowerCase(),e[v]=q[G](),t.push((e[v]?""
 :"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)y(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof enableClasses!="undefined"&&enableClasses&&(f.className+=" "+(b?"":"no-")+a),e[a]=b}return e},z(""),h=j=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e
 <g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden
 "in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,e}(this,this.document);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/f779264f/docs/refcard/js/refcard.js
----------------------------------------------------------------------
diff --git a/docs/refcard/js/refcard.js b/docs/refcard/js/refcard.js
new file mode 100644
index 0000000..01e7a42
--- /dev/null
+++ b/docs/refcard/js/refcard.js
@@ -0,0 +1,74 @@
+$(function () {
+    function init() {
+        var pageWidth = $(window).width();
+        var numberOfColumns = 1;
+
+        switch (true) {
+            case pageWidth >= 978 && pageWidth < 1350:
+                numberOfColumns = 2;
+                break;
+            case pageWidth >= 1350 && pageWidth < 1800:
+                numberOfColumns = 3;
+                break;
+            case pageWidth >= 1800 && pageWidth < 2210:
+                numberOfColumns = 4;
+                break;
+            case pageWidth >= 2210 && pageWidth < 2640:
+                numberOfColumns = 5;
+                break;
+            case pageWidth >= 2640:
+                numberOfColumns = 6;
+                break;
+        }
+        if (numberOfColumns < 2) {
+            return;
+        }
+
+        var page = $("#clearing-div");
+
+        $('div.horizontal-block').each(function () {
+            var container = $(this);
+            var id = container.attr('id');
+
+            var newContainer = $('<div class="columns-container" id="container-' + id + '" />');
+            newContainer.insertBefore(page);
+            newContainer.append($('<h2>' + id + '</h2>'));
+
+            var columns = [];
+            for (var i = 1; i <= numberOfColumns; i++) {
+                column = $('<div class="columns" id="column-' + i + '-' + id + '"/>');
+                newContainer.append(column);
+                columns.push(column);
+            }
+            newContainer.append($('<div style="clear: both;" />'));
+            newContainer.append($('<hr />'));
+
+            $("#" + id + " > div.col").each(function () {
+                var element = $(this);
+                for (var i = 1; i <= numberOfColumns; i++) {
+                    var moveTo = "c" + numberOfColumns + "-" + i;
+                    if (element.hasClass(moveTo)) {
+                        var clone = element.clone(true);
+                        columns[i - 1].append(clone);
+                        element.addClass("moved");
+                    }
+                }
+            });
+        });
+    }
+
+    init();
+    $(window).resize(function () {
+        $("div.columns").remove();
+        $("div.columns-container").remove();
+        $('div.horizontal-block').each(function () {
+            var id = $(this).attr('id');
+            $("#" + id + " > div.col").each(function () {
+                $(this).removeClass("moved");
+            })
+        });
+        init();
+    });
+});
+
+hljs.initHighlightingOnLoad()

http://git-wip-us.apache.org/repos/asf/tomee/blob/f779264f/docs/refcard/refcard.html
----------------------------------------------------------------------
diff --git a/docs/refcard/refcard.html b/docs/refcard/refcard.html
new file mode 100644
index 0000000..295e755
--- /dev/null
+++ b/docs/refcard/refcard.html
@@ -0,0 +1,1556 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+<meta charset="utf-8">
+<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
+<meta content="Asciidoctor 0.1.4" name="generator">
+<meta content="RefCard" name="description">
+<meta content="refcard" name="keywords">
+<title>Apache TomEE Reference Card</title>
+<link href="css/style.css" rel="stylesheet">
+<link href="css/github.min.css" rel="stylesheet">
+<link href="css/refcard.css" media="print, screen" rel="stylesheet" type="text/css">
+<script src="js/jquery.min.js"></script>
+<script src="js/modernizr.custom.2.6.2.js"></script>
+<script src="js/highlight.min.js"></script>
+<script src="js/refcard.js"></script>
+</head>
+<body class="article">
+<header>
+<div class="mid">
+<img id="logo" src="images/tomee.png">
+<h1>
+TomEE RefCard
+</h1>
+</div>
+</header>
+<div class="main">
+<div class="mid">
+<div class="page" id="page">
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p><strong>Apache TomEE is a JavaEE 6 application server.</strong></p>
+</div>
+<div class="paragraph">
+<p>This RefCard tries to sum up basic things to know.</p>
+</div>
+<div class="horizontal-block" id="Overview">
+<div class="col c2-1 c3-1 c4-1 c5-1 c6-1"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE Philosophy</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Apache TomEE, pronounced "Tommy", is an all-Apache Java EE 6 Web Profile
+certified stack where Tomcat is top dog. Apache TomEE is assembled from
+a vanilla Apache Tomcat zip file. We start with Tomcat, add our jars and zip
+up the rest. The result is Tomcat with added EE features - TomEE.</p>
+</div>
+<div class="paragraph">
+<p>Its core values are:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Be Tomcat</p>
+</li>
+<li>
+<p>Be certified</p>
+</li>
+<li>
+<p>Be small</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE Links</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>TomEE Website: <a href="http://tomee.apache.org">http://tomee.apache.org</a></p>
+</li>
+<li>
+<p>TomEE Examples: <a href="http://tomee.apache.org/examples-trunk/index.html">http://tomee.apache.org/examples-trunk/index.html</a></p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-2 c3-2 c4-2 c5-2 c6-2"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE ClassLoading</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code>bootstrap ($JAVA_HOME/jre/lib/ext)
+      |
+    system (bin/boostrap.jar:bin/tomcat-juli.jar)
+      |
+    common (lib/*.jar)
+    /    \
+webapp1 webapp2</code></pre>
+</div>
+</div>
+
+<div class="paragraph">
+<p>Classloading configuration (properties):</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>openejb.classloader.forced-load=&lt;comma separated list of class name prefixes&gt;</code>: classes to load from the webapp first
+whatever is in the container</p>
+</li>
+<li>
+<p><code>openejb.classloader.forced-skip=&lt;idem&gt;</code>: classes to load from the container
+whatever is in the application</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-1 c3-3 c4-3 c5-3 c6-3"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 50%">
+<col style="width: 50%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" colspan="2">TomEE Basic Operation</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Start and wait Ctrl+C</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>./bin/catalina.sh run</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Start and forget</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>./bin/catalina.sh start</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Stop</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>./bin/catalina.sh stop</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Deploy manually a webapp</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>copy war over webapps/</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Redeploy manually a webapp</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>delete exploded war then deploy</code></p></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE Distributions</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>TomEE Web Profile: JavaEE 6 Web profile sever (certified)</p>
+</li>
+<li>
+<p>TomEE JAX-RS: previous one + JAX-RS (certified)</p>
+</li>
+<li>
+<p>TomEE+: previous one + JAXWS + JMS + Connectors</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-2 c3-1 c4-4 c5-4 c6-4"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 33%">
+<col style="width: 66%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top" colspan="2">TomEE Directory Layout</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>bin</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">contains script to manage (start/stop/&#8230;) TomEE</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>conf</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">server global configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>endorsed</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">override JVM API because too old for JavaEE</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>lib</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">server libraries</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>logs</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">logs directory (using default configuration)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>temp</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">default tmp directory</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>webapps</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">default folder which aims to contain webapps</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code>work</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">folder used by Tomcat to store "work" binaries (compiled jsp&#8230;)</p></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+</div>
+<div class="horizontal-block" id="Configuration">
+<div class="col c2-1 c3-1 c4-1 c5-1 c6-1"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Scanning/Loader configuration, conf/catalina.properties</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="ini"># the main server classloader configuration,
+# JDBC drivers go here in general
+common.loader=${catalina.base}/lib,\
+${catalina.base}/lib/*.jar,\
+${catalina.home}/lib,${catalina.home}/lib/*.jar
+
+# other defaults are generally fine</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE system properties, conf/system.properties</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="ini"># handle global configuration
+# this file is an alternative
+# to JVM system properties -Dxxxx=yyyy
+
+# check libraries
+openejb.check.classloader = false
+
+# deploy internal application
+# only relevant in dev
+openejb.system.apps = true
+
+# deactivate JMX
+openejb.jmx.active = false
+
+# where to find the TomEE config file
+openejb.conf.file = conf/tomee.xml
+
+# force inclusion/exclusion of packages during classloading
+openejb.classloader.forced-load = my.pack1,my.pack2
+openejb.classloader.forced-skip = my.pack3,my.pack4
+
+# app ones
+my.system.property.config = my value
+
+# more on http://tomee.apache.org/properties-listing.html</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Logging configuration, conf/logging.properties</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="ini"># available handlers for logging: console, file...
+handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+# file handler configuration
+# 3 main items: level of the handler, where to log, with wich prefix
+5tomee.org.apache.juli.FileHandler.level = FINEST
+5tomee.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+5tomee.org.apache.juli.FileHandler.prefix = tomee.
+
+# each category can be configured (ex: OpenEJB)
+## level: FINEST &gt; FINE &gt; INFO &gt; WARNING &gt; SEVERE
+OpenEJB.level = WARNING
+
+## handler
+OpenEJB.handlers = 5tomee.org.apache.juli.FileHandler,\
+java.util.logging.ConsoleHandler
+
+# more on tomcat website:
+# http://tomcat.apache.org/tomcat-7.0-doc/logging.html</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Daemons configuration, conf/conf.d/*.properties</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>OpenEJB and TomEE rely on daemons for extensibility.</p>
+</div>
+<div class="paragraph">
+<p>Typically JAXWS and JAXRS uses this feature to be
+added to the server.</p>
+</div>
+<div class="paragraph">
+<p>Each daemon can get configuration.</p>
+</div>
+<div class="paragraph">
+<p>It is configurable through:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>system properties: <code>&lt;daemon name.&lt;attribute&gt;=value</code></p>
+</li>
+<li>
+<p>conf/conf.d/&lt;daemon name&gt;.properties</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>All daemons have a property <code>disabled</code> which can be set to true
+to deactivate it.</p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-2 c3-2 c4-2 c5-2 c6-2"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Server configuration, conf/server.xml</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version='1.0' encoding='utf-8'?&gt;
+&lt;Server port="8005" shutdown="SHUTDOWN"&gt;
+ &lt;!-- TomEE integration with Tomcat --&gt;
+ &lt;Listener className="org.apache.tomee.catalina.ServerListener" /&gt;
+
+ &lt;Service name="Catalina"&gt;
+
+  &lt;!-- Connectors are entry points (HTTP, AJP...) --&gt;
+  &lt;Connector port="8080" protocol="HTTP/1.1" /&gt;
+
+  &lt;Engine name="Catalina" defaultHost="localhost"&gt;
+   &lt;!--
+    folder webapps will scanned for webapps
+    and webapps will be deployed on localhost
+   --&gt;
+   &lt;Host name="localhost"  appBase="webapps" /&gt;
+  &lt;/Engine&gt;
+ &lt;/Service&gt;
+&lt;/Server&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">JAXWS WS Security configuration</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>It basically relies on openejb-jar.xml (in META-INF or WEB-INF):</p>
+</div>
+<div class="paragraph">
+<p>A complete example can be found within TomEE examples: <code>webservice-ws-security</code>.</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"&gt;
+ &lt;ejb-deployment ejb-name="CalculatorImpl"&gt;
+  &lt;properties&gt;
+   # webservice.security.realm
+   # webservice.security.securityRealm
+   # webservice.security.transportGarantee = NONE
+   webservice.security.authMethod = WS-SECURITY
+
+   wss4j.in.action = UsernameToken
+   wss4j.in.passwordType = PasswordText
+   wss4j.in.passwordCallbackClass = org.superbiz.MyPwdHandler
+
+   # automatically added
+   wss4j.in.validator
+   .{http://docs.oasis-open.org/wss/2004/01/oasis-200401
+   -wss-wssecurity-secext-1.0.xsd}UsernameToken =
+   org.apache.openejb.server.cxf.OpenEJBLoginValidator
+  &lt;/properties&gt;
+ &lt;/ejb-deployment&gt;
+&lt;/openejb-jar&gt;</code></pre>
+</div>
+</div>
+
+<div class="paragraph">
+<p><code>wss4j.out.*</code> properties exist too.</p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Scanning configuration</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Scanning is used to find EE classes (EJB, CDI beans&#8230;).</p>
+</div>
+<div class="paragraph">
+<p>It is common to not scan <em>utility libraries</em> like commons-lang for instance.</p>
+</div>
+<div class="paragraph">
+<p>TomEE/OpenEJB support two main configurations regarding the scanning:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>exclusions.list</code>: can be in WEB-INF or in <code>&lt;tomee&gt;/conf/</code>: each line is a jar prefix
+which will not be included in the scanning. Defaults are in <code>openejb-core/!default.exclusions</code>.
+If you want to simply add your own exclusion you can use <code>default-list</code> which means the whole content of the default file.</p>
+</li>
+<li>
+<p><code>scan.xml</code>: in META-INF or WEB-INF it lists the classes/packages to scan. here is a sample:</p>
+</li>
+</ul>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0"?&gt;
+&lt;scan&gt;
+ &lt;packages&gt;
+  &lt;package&gt;org.foo1&lt;/package&gt;
+  &lt;package&gt;org.foo2&lt;/package&gt;
+ &lt;/packages&gt;
+ &lt;classes&gt;
+  &lt;class&gt;org.bar.Bar1&lt;/class&gt;
+  &lt;class&gt;org.anotherbar.Bar2&lt;/class&gt;
+ &lt;/classes&gt;
+&lt;/scan&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-1 c3-3 c4-3 c5-3 c6-3"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE application configuration, WEB-INF/resources.xml</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;resources&gt;
+  &lt;!--
+    mainly a tomee.xml embed in the application
+    (META-INF or WEB-INF)
+  --&gt;
+  &lt;Resource id="name" type="DataSource"&gt;
+      JdbcUrl = jdbc:hsqldb:mem:my-ds
+  &lt;/Resource&gt;
+&lt;/resources&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">JAXRS configuration</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>It basically relies on openejb-jar.xml (in META-INF or WEB-INF):</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"&gt;
+ &lt;!--
+ class-name has to be the JAXRS application name
+ or this one if no Application is defined
+ --&gt;
+ &lt;pojo-deployment class-name="jaxrs-application"&gt;
+  &lt;properties&gt;
+   cxf.jaxrs.providers = org.foo.BarProvider, id1
+  &lt;/properties&gt;
+ &lt;/pojo-deployment&gt;
+&lt;/openejb-jar&gt;</code></pre>
+</div>
+</div>
+
+<div class="paragraph">
+<p>Values are either a class which will be instantiated (through <code>new</code>)
+or an id which will match a <code>Service</code> in a  <code>resources.xml</code> file:</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;resources&gt;
+  &lt;Service id="json" class-name="org.foo.bar"&gt;
+      Attribute1 = Value1
+      Attribute2 = Value2
+  &lt;/Resource&gt;
+&lt;/resources&gt;</code></pre>
+</div>
+</div>
+
+<div class="paragraph">
+<p>Here is the full list of available properties configurable in <code>openejb-jar.xml</code>
+with the prefix <code>cxf.jaxrs</code>:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>properties</p>
+</li>
+<li>
+<p>features</p>
+</li>
+<li>
+<p>in-interceptors</p>
+</li>
+<li>
+<p>out-interceptors</p>
+</li>
+<li>
+<p>in-fault-interceptors</p>
+</li>
+<li>
+<p>out-fault-interceptors</p>
+</li>
+<li>
+<p>databinding</p>
+</li>
+<li>
+<p>providers</p>
+</li>
+</ul>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+excepted providers configuration all these configuration are available for CXF endpoints (including JAXWS ones).
+</td>
+</tr>
+</table>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-2 c3-2 c4-4 c5-4 c6-4"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE main configuration, conf/tomee.xml</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;tomee&gt;
+  &lt;!--
+  resources can be declared here
+  To lookup it directly just use openejb:Resource/&lt;id&gt; name
+  --&gt;
+  &lt;Resource id="name" type="DataSource&gt;
+      # here comes the configuration in properties like format
+      JdbcUrl = jdbc:hsqldb:mem:my-ds
+      UserName = SA
+  &lt;/Resource&gt;
+
+  &lt;!-- resource can be any class available in the container loader --&gt;
+  &lt;Resource id="foo" class-name="org.foo.MyPojo"&gt;
+    pojoAttr1 = value2
+  &lt;/Resource&gt;
+
+  &lt;!--
+   if you want to deploy ear/jar,
+   declare it + put the file in apps folder
+  --&gt;
+  &lt;Deployments dir="apps" /&gt;
+
+  &lt;!-- more on http://tomee.apache.org/containers-and-resources.html --&gt;
+&lt;/tomee&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Activating JAAS</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+in the snippets <code>o.a.o</code> means <code>org.apache.openejb</code>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Basic JAAS configuration needs:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>the system property:</p>
+</li>
+</ul>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code>-Djava.security.auth.login.config=&lt;path to login.config&gt;</code></pre>
+</div>
+</div>
+
+<div class="ulist">
+<ul>
+<li>
+<p>the login.config file (see below)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Here is a sample JAAS config file using PropertiesLoginModule:</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code>PropertiesLoginModule {
+ o.a.o.core.security.jaas.PropertiesLoginModule
+ required
+ Debug=false
+ UsersFile="users.properties"
+ GroupsFile="groups.properties";
+};</code></pre>
+</div>
+</div>
+
+<div class="paragraph">
+<p>This login module needs 2 properties files, one for group and one for users.</p>
+</div>
+<div class="paragraph">
+<p>Here is a <code>users.properties</code> file (should be in <code>conf/</code>):</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="ini">user1=pwd1
+user3=pwd2
+user3=pwd3</code></pre>
+</div>
+</div>
+
+<div class="paragraph">
+<p>Here is a <code>groups.properties</code> file (should be in <code>conf/</code>):</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="ini">group1=user1
+group2=user2, user3</code></pre>
+</div>
+</div>
+
+<div class="paragraph">
+<p>To integrate JAAS with Tomcat just add/replace the default tomcat realm with:</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;Realm className="org.apache.catalina.realm.JAASRealm"
+ appName="PropertiesLoginModule"
+ userClassNames="o.a.o.core.security.jaas.UserPrincipal"
+ roleClassNames="o.a.o.core.security.jaas.GroupPrincipal" /&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+</div>
+<div class="horizontal-block" id="Maven">
+<div class="col c2-2 c3-1 c4-1 c5-1 c6-1"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">OpenEJB dependencies</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;!-- core: embedded cdi, ejb, EJBContainer... --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;openejb-core&lt;/artifactId&gt;
+  &lt;version&gt;${openejb.version}&lt;/version&gt;
+&lt;/dependency&gt;
+
+&lt;!-- for JAXWS webservices --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;openejb-cxf&lt;/artifactId&gt;
+  &lt;version&gt;${openejb.version}&lt;/version&gt;
+&lt;/dependency&gt;
+
+&lt;!-- for JAXRS webservices --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;openejb-cxf-rs&lt;/artifactId&gt;
+  &lt;version&gt;${openejb.version}&lt;/version&gt;
+&lt;/dependency&gt;
+
+&lt;!-- embedded arquillian adapter --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;arquillian-openejb-embedded-4&lt;/artifactId&gt;
+  &lt;version&gt;${openejb.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-2 c3-2 c4-2 c5-2 c6-2"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE dependencies</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;!-- tomee zip --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;apache-tomee&lt;/artifactId&gt;
+  &lt;version&gt;${tomee.version}&lt;/version&gt;
+  &lt;type&gt;zip&lt;/type&gt;
+&lt;/dependency&gt;
+
+&lt;!-- tomee arquillian adapter --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;arquillian-tomee-remote&lt;/artifactId&gt;
+  &lt;version&gt;${tomee.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE Embedded dependencies</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;!-- tomee zip --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;tomee-embedded&lt;/artifactId&gt;
+  &lt;version&gt;${tomee.version}&lt;/version&gt;
+  &lt;type&gt;zip&lt;/type&gt;
+&lt;/dependency&gt;
+
+&lt;!-- tomee embedded arquillian adapter --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;arquillian-tomee-embedded&lt;/artifactId&gt;
+  &lt;version&gt;${tomee.version}&lt;/version&gt;
+&lt;/dependency&gt;
+
+&lt;!-- tomee jaxrs --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;tomee-jaxrs&lt;/artifactId&gt;
+  &lt;version&gt;${tomee.version}&lt;/version&gt;
+&lt;/dependency&gt;
+
+&lt;!-- tomee jaxws --&gt;
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.openejb&lt;/groupId&gt;
+  &lt;artifactId&gt;tomee-webservices&lt;/artifactId&gt;
+  &lt;version&gt;${tomee.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-1 c3-3 c4-3 c5-3 c6-3"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE maven plugin configuration</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+Configuration block is optional all attributes have defaul values.
+</td>
+</tr>
+</table>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;plugin&gt;
+ &lt;groupId&gt;org.apache.openejb.maven&lt;/groupId&gt;
+ &lt;artifactId&gt;tomee-maven-plugin&lt;/artifactId&gt;
+ &lt;version&gt;${tmp.version}&lt;/version&gt;
+ &lt;configuration&gt; &lt;!-- all is optional --&gt;
+  &lt;tomeeVersion&gt;1.5.0&lt;/tomeeVersion&gt;
+  &lt;tomeeClassifier&gt;plus&lt;/tomeeClassifier&gt; &lt;!-- webprofile, jaxrs --&gt;
+
+  &lt;!-- remote debugging --&gt;
+  &lt;debug&gt;false&lt;/debug&gt;
+  &lt;debugPort&gt;5005&lt;/debugPort&gt;
+
+  &lt;!-- http port - same exists for ajp and https --&gt;
+  &lt;tomeeHttpPort&gt;8080&lt;/tomeeHttpPort&gt;
+
+  &lt;!-- remove default tomee webapp --&gt;
+  &lt;removeDefaultWebapps&gt;true&lt;/removeDefaultWebapps&gt;
+  &lt;!-- remove even tomee webapp - if you don't use it --&gt;
+  &lt;removeTomeeWebapp&gt;true&lt;/removeTomeeWebapp&gt;
+
+  &lt;!-- add some libs to the server --&gt;
+  &lt;libs&gt;
+   &lt;lib&gt;mysql:mysql-connector-java:5.1.20&lt;/lib&gt;
+  &lt;/libs&gt;
+
+  &lt;!-- deploy another webapp, same exists for ear with &lt;apps /&gt; --&gt;
+  &lt;webapps&gt;
+   &lt;webapp&gt;org.superbiz:my-simple-webapp:1.0.0&lt;/webapp&gt;
+  &lt;/webapps&gt;
+
+  &lt;!-- auto update of the app --&gt;
+  &lt;/configuration&gt;
+   &lt;!-- can the app be redeployed after update --&gt;
+   &lt;reloadOnUpdate&gt;true&lt;/reloadOnUpdate&gt;
+   &lt;synchronization&gt;
+    &lt;!-- extensions updating and redeploying --&gt;
+    &lt;extensions&gt;
+     &lt;extension&gt;.class&lt;extension&gt;
+    &lt;/extensions&gt;
+    &lt;!-- extensions updating without redeploy --&gt;
+    &lt;updateOnlyExtensions&gt;
+     &lt;updateOnlyExtension&gt;.html&lt;updateOnlyExtension&gt;
+     &lt;updateOnlyExtension&gt;.js&lt;updateOnlyExtension&gt;
+     &lt;updateOnlyExtension&gt;.jcss&lt;updateOnlyExtension&gt;
+    &lt;/updateOnlyExtensions&gt;
+   &lt;/synchronization&gt;
+   &lt;!-- &lt;synchronizations/&gt; exist to handle multiple source/target --&gt;
+  &lt;/configuration&gt;
+ &lt;/configuration&gt;
+&lt;/plugin&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-1 c3-2 c4-4 c5-4 c6-4"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE maven plugin information</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Compatibility matrix:</p>
+</div>
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 50%">
+<col style="width: 50%">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>TomEE</strong></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Maven plugin</strong></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.0-alpha-1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.5.0</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.5.1</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">1.0.1</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">&gt;= 1.5.2</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">same as TomEE</p></td>
+</tr>
+</tbody>
+</table>
+
+<div class="paragraph">
+<p>Main goals:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>tomee:run: run and wait for the server</p>
+</li>
+<li>
+<p>tomee:debug: run in debug mode and wait for the server (alias of run)</p>
+</li>
+<li>
+<p>tomee:start: run the server</p>
+</li>
+<li>
+<p>tomee:stop: stop the server (to use with start)</p>
+</li>
+<li>
+<p>tomee:configtest: run configtest tomcat command</p>
+</li>
+<li>
+<p>tomee:deploy &lt;path&gt;: deploy path archive</p>
+</li>
+<li>
+<p>tomee:undeploy &lt;path&gt;: undeploy path archive. Note it should be the same path than the one used in deploy command</p>
+</li>
+<li>
+<p>tomee:list: list ejbs deployed</p>
+</li>
+<li>
+<p>tomee:build: build tomee but does not start it</p>
+</li>
+<li>
+<p>tomee:help: this</p>
+</li>
+</ul>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+almost all properties can be set as maven system properties prefixed by <code>tomee-plugin.</code>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+to debug use <code>mvn tomee:debug</code> instead of <code>mvn tomee:run</code>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Doc is on <a href="http://tomee.apache.org/tomee-maven-plugin.html">http://tomee.apache.org/tomee-maven-plugin.html</a>.</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+</div>
+<div class="horizontal-block" id="Arquillian">
+<div class="col c2-1 c3-1 c4-1 c5-1 c6-1"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">OpenEJB embedded adapter configuration</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;arquillian
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+  http://jboss.org/schema/arquillian
+  http://jboss.org/schema/arquillian/arquillian_1_0.xsd"&gt;
+ &lt;container qualifier="openejb" default="true"&gt;
+  &lt;configuration&gt;
+   &lt;!-- container properties (~ conf/system.properties) --&gt;
+   &lt;property name="properties"&gt;
+    # you can declare a resource, container...
+    db1 = new://Resource?type=DataSource
+    db1.JdbcUrl = jdbc:hsqldb:mem:db1
+
+    # special hook based on ShrinkWrap
+    # to predeployed some archives at startup
+    # (instead of by test)
+    #
+    # syntax is comma separated list
+    # and multiple archives in the same package
+    # can be aggregated: package.[A1|A2]
+    openejb.arquillian.predeploy-archives = org.foo.SimpleArchive
+   &lt;/property&gt;
+  &lt;/configuration&gt;
+ &lt;/container&gt;
+&lt;/arquillian&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE Arquillian Adapters</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>TomEE arquillian adapters support the system property <code>openejb.arquillian.adapter</code>
+to select which adapter to use if multiple are at the classpath (Arquillian tolerate a single
+one by default).</p>
+</div>
+<div class="paragraph">
+<p>This way you can run your test against several OpenEJB/TomEE adapters in the same build (no need
+of any maven profile). A complete sample can be found here:
+<a href="http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/multiple-arquillian-adapters/">http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/multiple-arquillian-adapters/</a>).</p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Simple Arquillian test</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="java">@RunWith(Arquillian.class)
+public class SimpleArquillianTest {
+ @Deployment(name = "archive")
+ public static WebArchive war() {
+  return ShrinkWrap.create(WebArchive.class, "test.war")
+   .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
+   .addClasses(MyBean.class);
+  }
+
+  @Inject
+  private MyBean bean;
+
+  @Test
+  public void testRunningInDep1() {
+    assertEquals("foo", bean.foo());
+  }
+}</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-2 c3-2 c4-2 c5-2 c6-2"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE embedded adapter configuration</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;arquillian
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+  http://jboss.org/schema/arquillian
+  http://jboss.org/schema/arquillian/arquillian_1_0.xsd"&gt;
+ &lt;container qualifier="tomee" default="true"&gt;
+  &lt;configuration&gt;
+   &lt;property name="serverXml"&gt;conf/server.xml&lt;/property&gt;
+
+   &lt;!-- port = -1 means random --&gt;
+   &lt;property name="httpPort"&gt;-1&lt;/property&gt;
+   &lt;property name="stopPort"&gt;-1&lt;/property&gt;
+
+   &lt;!-- ssl --&gt;
+   &lt;property name="httpsPort"&gt;-1&lt;/property&gt;
+   &lt;property name="ssl"&gt;false&lt;/property&gt;
+   &lt;property name="keystoreFile"&gt;keystore-path&lt;/property&gt;
+   &lt;property name="keystorePass"&gt;changeit&lt;/property&gt;
+   &lt;property name="keystoreType"&gt;JKS&lt;/property&gt;
+   &lt;property name="clientAuth"&gt;false&lt;/property&gt;
+   &lt;property name="keyAlias"&gt;alias&lt;/property&gt;
+   &lt;property name="sslProtocol"&gt;protocol&lt;/property&gt;
+
+   &lt;!-- where to create TomEE files --&gt;
+   &lt;property name="dir"&gt;target/tomee-embedded&lt;/property&gt;
+
+   &lt;!-- where to dump on disk applications to deploy --&gt;
+   &lt;property name="appWorkingDir"&gt;target/working-dir&lt;/property&gt;
+
+   &lt;!-- optional - limit the port allowed when random --&gt;
+   &lt;property name="portRange"&gt;20001-30000&lt;/property&gt;
+
+   &lt;!-- container config --&gt;
+   &lt;property name="properties"&gt;
+    # same as embedded case
+   &lt;/property&gt;
+   
+   &lt;!-- Deployer config --&gt;
+   &lt;property name="deployerProperties"&gt;
+    # openejb.deployer.binaries.use=true
+    # openejb.deployer.forced.appId=[name]
+    # openejb.deployer.save-deployments=false
+   &lt;/property&gt;
+  &lt;/configuration&gt;
+ &lt;/container&gt;
+&lt;/arquillian&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-1 c3-3 c4-3 c5-3 c6-3"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">TomEE remote adapter configuration</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;arquillian
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+  http://jboss.org/schema/arquillian
+  http://jboss.org/schema/arquillian/arquillian_1_0.xsd"&gt;
+ &lt;container qualifier="tomee" default="true"&gt;
+  &lt;configuration&gt;
+   &lt;property name="serverXml"&gt;conf/server.xml&lt;/property&gt;
+
+   &lt;!-- tomee zip to use --&gt;
+   &lt;property name="groupId"&gt;org.apache.openejb&lt;/property&gt;
+   &lt;property name="artifactId"&gt;apache-tomee&lt;/property&gt;
+   &lt;property name="version"&gt;LATEST&lt;/property&gt;
+   &lt;property name="type"&gt;zip&lt;/property&gt;
+
+   &lt;!-- tomee provided files, ignored by default --&gt;
+   &lt;property name="bin"&gt;src/test/tomee/bin&lt;/property&gt;
+   &lt;property name="conf"&gt;src/test/tomee/conf&lt;/property&gt;
+   &lt;property name="lib"&gt;src/test/tomee/lib&lt;/property&gt;
+
+   &lt;!--
+    remote debugging,
+    -Dopenejb.server.debug can activate it too
+   --&gt;
+   &lt;property name="debug"&gt;false&lt;/property&gt;
+   &lt;property name="debugPort"&gt;5005&lt;/property&gt;
+
+   &lt;!-- nice one line logging --&gt;
+   &lt;property name="simpleLog"&gt;true&lt;/property&gt;
+
+   &lt;!-- jvm config --&gt;
+   &lt;property name="catalina_opts"&gt;-XX:-UseParallelGC&lt;/property&gt;
+
+   &lt;!-- remove if exist --&gt;
+   &lt;property name="cleanOnStartUp"&gt;true&lt;/property&gt;
+
+   &lt;!-- remove default webapps --&gt;
+   &lt;property name="removeunusedWebapps"&gt;true&lt;/property&gt;
+
+   &lt;!-- port = -1 means random --&gt;
+   &lt;property name="httpPort"&gt;-1&lt;/property&gt;
+   &lt;property name="stopPort"&gt;-1&lt;/property&gt;
+
+   &lt;!-- where to create TomEE --&gt;
+   &lt;property name="dir"&gt;target/apache-tomee&lt;/property&gt;
+
+   &lt;!-- where to dump on disk applications to deploy --&gt;
+   &lt;property name="appWorkingDir"&gt;target/working-dir&lt;/property&gt;
+
+   &lt;!-- optional - limit the port allowed when random --&gt;
+   &lt;property name="portRange"&gt;20001-30000&lt;/property&gt;
+
+   &lt;!-- container config --&gt;
+   &lt;property name="properties"&gt;
+    # same as embedded case
+   &lt;/property&gt;
+   
+   &lt;!-- Deployer config --&gt;
+   &lt;property name="deployerProperties"&gt;
+    # openejb.deployer.binaries.use=true
+    # openejb.deployer.forced.appId=[name]
+    # openejb.deployer.save-deployments=false
+   &lt;/property&gt;
+   
+  &lt;/configuration&gt;
+ &lt;/container&gt;
+&lt;/arquillian&gt;</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+
+<div class="col c2-2 c3-2 c4-4 c5-4 c6-4"><div class="blk">
+<table class="tableblock frame-all grid-all" style="width: 100%">
+<colgroup>
+<col style="width: 100%">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Multiple TomEE with Arquillian</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div>
+<div class="content monospaced">
+<pre class="highlight"><code class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="
+    http://jboss.org/schema/arquillian
+    http://jboss.org/schema/arquillian/arquillian_1_0.xsd"&gt;
+ &lt;group qualifier="tomee-cluster"&gt;
+  &lt;container qualifier="tomee-1"&gt;
+   &lt;configuration&gt;
+    &lt;property name="httpPort"&gt;-1&lt;/property&gt;
+    &lt;property name="stopPort"&gt;-1&lt;/property&gt;
+    &lt;property name="ajpPort"&gt;-1&lt;/property&gt;
+    &lt;property name="dir"&gt;target/tomee1&lt;/property&gt;
+    &lt;property name="appWorkingDir"&gt;target/wd1&lt;/property&gt;
+   &lt;/configuration&gt;
+  &lt;/container&gt;
+  &lt;container qualifier="tomee-2"&gt;
+   &lt;configuration&gt;
+    &lt;property name="httpPort"&gt;-1&lt;/property&gt;
+    &lt;property name="stopPort"&gt;-1&lt;/property&gt;
+    &lt;property name="ajpPort"&gt;-1&lt;/property&gt;
+    &lt;property name="dir"&gt;target/tomee2&lt;/property&gt;
+    &lt;property name="appWorkingDir"&gt;target/wd2&lt;/property&gt;
+   &lt;/configuration&gt;
+  &lt;/container&gt;
+ &lt;/group&gt;
+&lt;/arquillian&gt;</code></pre>
+</div>
+</div>
+
+<div class="paragraph">
+<p>Then in java just declare "as usual" multiple deployments and match them in your test methods:</p>
+</div>
+<div>
+<div class="content monospaced">
+<pre class="highlight"><code class="java">@RunWith(Arquillian.class)
+public class MultipleTomEETest {
+ @Deployment(name = "war1", testable = false)
+ @TargetsContainer("tomee-1")
+ public static WebArchive war1() {
+  return /* ... */;
+ }
+
+ @Deployment(name = "war2", testable = false)
+ @TargetsContainer("tomee-2")
+ public static WebArchive war2() {
+  return /* ... */;
+ }
+
+ @Test
+ @OperateOnDeployment("war1")
+ public void testRunningInDep1(
+    @ArquillianResource URL url) {
+   // test on tomee 1, url is contextual
+ }
+
+ @Test
+ @OperateOnDeployment("war2")
+ public void testRunningInDep1(
+    @ArquillianResource URL url) {
+   // test on tomee 1, url is contextual
+ }
+}</code></pre>
+</div>
+</div>
+</div></td>
+</tr>
+</tbody>
+</table>
+
+</div></div>
+</div>
+</div>
+</div>
+<div style="clear: both;"></div>
+<hr>
+
+</div>
+<div id="clearing-div" style="clear:both;"></div>
+</div>
+</div>
+<footer>
+<div class="mid">
+TomEE RefCard - revision 1-SNAPSHOT - 20140311-1059
+</div>
+</footer>
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/f779264f/docs/remote-server.mdtext
----------------------------------------------------------------------
diff --git a/docs/remote-server.mdtext b/docs/remote-server.mdtext
new file mode 100644
index 0000000..9839a8c
--- /dev/null
+++ b/docs/remote-server.mdtext
@@ -0,0 +1,60 @@
+Title: Remote Server
+
+!http://www.openejb.org/images/diagram-remote-server.gif|valign=top,
+align=right, hspace=15!
+<a name="RemoteServer-AccessingEJBsRemotely"></a>
+# Accessing EJBs Remotely
+
+When using OpenEJB as a stand-alone server you can connect across a network
+and access EJBs from a remote client.  The client code for accessing an
+EJB's Remote Interface is the same, however to actually connect across a
+network to the server, you need to specify different JNDI parameters.
+
+<a name="RemoteServer-Shortversion"></a>
+# Short version
+
+Using OpenEJB's default remote server implementation is pretty straight
+forward. You simply need to:
+
+1. Deploy your bean.
+1. Start the server on the IP and Port you want, 25.14.3.92 and 4201 for
+example.
+1. Use that information in your client to create an initial context
+1. Add the right jars to your client's classpath
+
+So, here it is in short.
+
+Deploy your bean with the Deploy Tool:
+
+    c:\openejb> openejb.bat deploy beans\myBean.jar
+
+See the [OPENEJBx30:Deploy Tool](openejbx30:deploy-tool.html)
+ documentation for more details on deploying beans.
+
+Start the server:
+
+    c:\openejb> openejb.bat start -h 25.14.3.92 -p 4201
+
+See the Remote Server command-line guide for more details on starting the
+Remote Server.
+
+Create an initial context in your client as such:
+
+
+    Properties p = new Properties();
+    p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory");
+    p.put("java.naming.provider.url", "ejbd://25.14.3.92:4201");
+    p.put("java.naming.security.principal", "myuser");
+    p.put("java.naming.security.credentials", "mypass");
+        
+    InitialContext ctx = new InitialContext(p);
+
+
+If you don't have any EJBs or clients to run, try the ubiquitous [Hello World](openejbx30:hello-world.html)
+ example.
+Add the following library to your clients classpath:
+
+* openejb-client-x.x.x.jar
+* javaee-api-x.x.jar
+
+Both can be found in the lib directory where you installed OpenEJB or in Maven repositories.

http://git-wip-us.apache.org/repos/asf/tomee/blob/f779264f/docs/resource-injection.mdtext
----------------------------------------------------------------------
diff --git a/docs/resource-injection.mdtext b/docs/resource-injection.mdtext
new file mode 100644
index 0000000..6a1a23b
--- /dev/null
+++ b/docs/resource-injection.mdtext
@@ -0,0 +1,180 @@
+<a name="ResourceInjection-Overview"></a>
+# @Resource Overview
+
+This example demonstrates the use of the injection of environment entries
+using <span style="color: #217D18;">**@Resource**</span> annotation.
+
+The EJB 3.0 specification (*EJB Core Contracts and Requirements*) section
+16.2.2 reads:
+
+*A field or method of a bean class may be annotated to request that an entry from the bean's environment be injected. Any of the types of resources or other environment entries described in this chapter may be injected. Injection may also be requested using entries in the deployment descriptor corresponding to each of these
+resource types.*
+
+*Environment entries may also be injected into the bean through bean methods that follow the naming conventions for JavaBeans properties. The annotation is applied to the set method for the property, which is the method that is called to inject the environment entry. The JavaBeans property name (not the method name) is used as the default JNDI name.*
+
+The *PurchaseOrderBean* class shows use of field-level **@Resource**
+annotation.
+
+The *InvoiceBean* class shows the use of method-level **@Resource**
+annotation.
+
+The source for this example can be checked out from svn:
+
+> $ svn co
+http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/injection-of-env-entry
+
+To run it change your working directory to the directory
+*injection-of-env-entry* and run the following maven2 commands:
+
+>$ cd injection-of-env-entry
+
+>$ mvn clean install
+
+<a name="ResourceInjection-TheCode"></a>
+# The Code
+
+<a name="ResourceInjection-Injectionthroughfield(field-levelinjection)"></a>
+## Injection through field (field-level injection)
+
+The *maxLineItem* field in *PurchaseOrderBean* class is annotated with **@Resource** annotation to inform the EJB container the location where in the code the injection of a simple environment entry should take place. The default value of 10 is assigned. You can modify the value of the environment entries at deployment time using deployment descriptor (**ejb-jar.xml**).
+
+<a name="ResourceInjection-@Resourceannotationofafield"></a>
+#### @Resource annotation of a field
+
+
+    @Resource
+    int maxLineItems = 10;
+
+
+<a name="ResourceInjection-Injectionthroughasettermethod(method-levelinjection)"></a>
+## Injection through a setter method (method-level injection)
+
+The *setMaxLineItem* method in *InvoiceBean* class is annotated with
+*@Resource* annotation to inject the simple environment entry. Only setters
+can be used as a way to inject environment entry values. 
+
+You could look up the env-entry using JNDI lookup() method and the
+following name:
+
+	java:comp/env/org.apache.openejb.examples.resource.InvoiceBean/maxLineItems
+
+The pattern is to combine the fully-qualified class name and the name of a
+instance field (or a name of the setter method without _set_ prefix and the
+first letter lowercased).
+
+<a name="ResourceInjection-@Resourceannotationofasettermethod"></a>
+#### @Resource annotation of a setter method
+
+
+    @Resource
+    public void setMaxLineItems(int maxLineItems) {
+        this.maxLineItems = maxLineItems;
+    }
+
+
+<a name="ResourceInjection-env-entryinejb-jar.xml"></a>
+#### Using env-entry in ejb-jar.xml
+
+    <env-entry>
+		<description>The maximum number of line items per invoice.</description>        
+		<env-entry-name>org.apache.openejb.examples.injection.InvoiceBean/maxLineItems</env-entry-name>
+		<env-entry-type>java.lang.Integer</env-entry-type>
+		<env-entry-value>15</env-entry-value>
+    </env-entry>
+
+
+<a name="ResourceInjection-Using@Resourceannotatedenv-entry"></a>
+#### Using @Resource annotated env-entry
+
+    public void addLineItem(LineItem item) throws TooManyItemsException {
+       if (item == null) {
+          throw new IllegalArgumentException("Line item must not be null");
+       }
+    
+       if (itemCount <= maxLineItems) {
+          items.add(item);
+          itemCount++;
+       } else {
+          throw new TooManyItemsException("Number of items exceeded the maximum limit");
+       }
+    }
+
+
+<a name="ResourceInjection-JUnitTest"></a>
+# JUnit Test
+
+Writing an JUnit test for this example is quite simple. We need just to
+write a setup method to create and initialize the InitialContext, and then
+write our test methods.
+
+<a name="ResourceInjection-Testfixture"></a>
+#### Test fixture
+
+
+    protected void setUp() throws Exception {
+        Properties properties = new Properties();
+        properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
+        properties.setProperty("openejb.deployments.classpath.include", ".*resource-injection.*");
+        initialContext = new InitialContext(properties);
+    }
+
+
+<a name="ResourceInjection-Testmethods"></a>
+#### Test methods
+
+    public void testAddLineItem() throws Exception {
+        Invoice order = (Invoice)initialContext.lookup("InvoiceBeanBusinessRemote");
+        assertNotNull(order);
+        LineItem item = new LineItem("ABC-1", "Test Item");
+    
+        try {
+    	order.addLineItem(item);
+        } catch (TooManyItemsException tmie) {
+    	fail("Test failed due to: " + tmie.getMessage());
+        }
+    }
+
+
+<a name="ResourceInjection-Running"></a>
+# Running
+
+Running the example is fairly simple. Just execute the following commands:
+
+>$ cd injection-of-env-entry
+>
+>$ mvn clean test
+
+
+    -------------------------------------------------------
+     T E S T S
+    -------------------------------------------------------
+    Running org.superbiz.injection.PurchaseOrderBeanTest
+    Apache OpenEJB 3.0.0-SNAPSHOT	 build: 20071218-01:41
+    http://tomee.apache.org/
+    INFO - openejb.home = c:\oss\openejb3\examples\injection-of-env-entry
+    INFO - openejb.base = c:\oss\openejb3\examples\injection-of-env-entry
+    WARN - Cannot find the configuration file [conf/openejb.xml].  Will attempt to create one for the beans deployed.
+    INFO - Configuring Service(id=Default Security Service,type=SecurityService, provider-id=Default Security Service)
+    INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+    INFO - Configuring Service(id=Default JDK 1.3 ProxyFactory, type=ProxyFactory, provider-id=Default JDK 1.3 ProxyFactory)
+    INFO - Found EjbModule in classpath: c:\oss\openejb3\examples\injection-of-env-entry\target\classes
+    INFO - Configuring app: c:\oss\openejb3\examples\injection-of-env-entry\target\classes
+    INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)
+    INFO - Auto-creating a container for bean InvoiceBean: Container(type=STATEFUL, id=Default Stateful Container)
+    INFO - Loaded Module: c:\oss\openejb3\examples\injection-of-env-entry\target\classes
+    INFO - Assembling app: c:\oss\openejb3\examples\injection-of-env-entry\target\classes
+    INFO - Jndi(name=InvoiceBeanRemote) --> Ejb(deployment-id=InvoiceBean)
+    INFO - Jndi(name=PurchaseOrderBeanRemote) --> Ejb(deployment-id=PurchaseOrderBean)
+    INFO - Created Ejb(deployment-id=InvoiceBean, ejb-name=InvoiceBean, container=Default Stateful Container)
+    INFO - Created Ejb(deployment-id=PurchaseOrderBean, ejb-name=PurchaseOrderBean, container=Default Stateful Container)
+    INFO - Deployed Application(path=c:\oss\openejb3\examples\injection-of-env-entry\target\classes)
+    INFO - OpenEJB ready.
+    OpenEJB ready.
+    Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.859 sec
+    Running org.superbiz.injection.InvoiceBeanTest
+    Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 sec
+    
+    Results :
+    
+    Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
+

http://git-wip-us.apache.org/repos/asf/tomee/blob/f779264f/docs/resource-ref-for-datasource.mdtext
----------------------------------------------------------------------
diff --git a/docs/resource-ref-for-datasource.mdtext b/docs/resource-ref-for-datasource.mdtext
new file mode 100644
index 0000000..e48552e
--- /dev/null
+++ b/docs/resource-ref-for-datasource.mdtext
@@ -0,0 +1,42 @@
+#  Via annotation
+
+    package org.superbiz.refs;
+
+    import javax.annotation.Resource;
+    import javax.ejb.Stateless;
+    import javax.naming.InitialContext;
+    import javax.sql.DataSource;
+
+    @Stateless
+    @Resource(name = "myFooDataSource", type = DataSource.class)
+    public class MyDataSourceRefBean implements MyBeanInterface {
+
+        @Resource
+        private DataSource myBarDataSource;
+
+        public void someBusinessMethod() throws Exception {
+            if (myBarDataSource == null) throw new NullPointerException("myBarDataSource not injected");
+
+            // Both can be looked up from JNDI as well
+            InitialContext context = new InitialContext();
+            DataSource fooDataSource = (DataSource) context.lookup("java:comp/env/myFooDataSource");
+            DataSource barDataSource = (DataSource) context.lookup("java:comp/env/org.superbiz.refs.MyDataSourceRefBean/myBarDataSource");
+        }
+    }
+
+# Via xml
+
+The above @Resource annotation usage is 100% equivalent to the following xml.
+
+    <resource-ref>
+        <res-ref-name>myFooDataSource</res-ref-name>
+        <res-type>javax.sql.DataSource</res-type>
+    </resource-ref>
+    <resource-ref>
+        <res-ref-name>org.superbiz.refs.MyDataSourceRefBean/myBarDataSource</res-ref-name>
+        <res-type>javax.sql.DataSource</res-type>
+        <injection-target>
+            <injection-target-class>org.superbiz.refs.MyDataSourceRefBean</injection-target-class>
+            <injection-target-name>myBarDataSource</injection-target-name>
+        </injection-target>
+    </resource-ref>

http://git-wip-us.apache.org/repos/asf/tomee/blob/f779264f/docs/running-a-standalone-openejb-server.mdtext
----------------------------------------------------------------------
diff --git a/docs/running-a-standalone-openejb-server.mdtext b/docs/running-a-standalone-openejb-server.mdtext
new file mode 100644
index 0000000..2fd04bf
--- /dev/null
+++ b/docs/running-a-standalone-openejb-server.mdtext
@@ -0,0 +1,91 @@
+Title: Running a standalone OpenEJB server
+
+<a name="RunningastandaloneOpenEJBserver-ConfiguringtheOpenEJBRuntime"></a>
+# Configuring the OpenEJB Runtime
+The OpenEJB Eclipse plugin provides support for running OpenEJB as a
+standalone server in Eclipse using WTP.
+
+To setup a server, first of all, you will need to have a copy of OpenEJB
+extracted on your machine. Once you have that, the next step is to set up a
+runtime.
+
+To set up a new runtime, click on Window, Preferences, and select Installed
+Runtimes under the Server category. Click the Add button.
+
+![http://people.apache.org/~jgallimore/images/server_step_4.jpg][1]
+ 
+Select OpenEJB 3.0.0 from the Apache category, and click next. If you
+choose to 'also create a new server' on this panel, you can add a server
+straight after configuring the runtime.
+
+![http://people.apache.org/~jgallimore/images/server_step_5.jpg][2]
+ 
+Browse to, or enter the path to your copy of OpenEJB. Click on Finish.
+
+<a name="RunningastandaloneOpenEJBserver-ConfiguringtheOpenEJBServer"></a>
+# Configuring the OpenEJB Server
+Open the Servers view (if it isn't already), and right click and select
+New->Server.
+
+![http://people.apache.org/~jgallimore/images/server_step_8.jpg][3]
+ 
+Select OpenEJB 3.0.0 from the Apache category, ensure you have the OpenEJB
+runtime selected, and click Next.
+
+![http://people.apache.org/~jgallimore/images/server_step_9.jpg][4]
+ 
+Select the EJB port for the server, and select Finish.
+
+![http://people.apache.org/~jgallimore/images/server_step_10.jpg][5]
+
+<a name="RunningastandaloneOpenEJBserver-Deployingaproject"></a>
+# Deploying a project
+In order to deploy your project to an OpenEJB server in Eclipse, your
+project must be a Java EE project, with the EJB facet enabled. If your
+project doesn't have the Faceted nature, you can use the OpenEJB plugin to
+add it. Simply select OpenEJB->Add Faceted Nature from the menu bar.
+
+![http://people.apache.org/~jgallimore/images/server_step_1.jpg][6]
+ 
+To add the EJB facet, right click on the project in the navigator, and
+select Properties. Select Project Facets on the left hand side. Click on
+the Modify Project button.
+
+![http://people.apache.org/~jgallimore/images/server_step_2.jpg][7]
+ 
+Select the EJB Module facet, and the Java Facet. Remember to select your
+OpenEJB runtime too. Click Next.
+
+![http://people.apache.org/~jgallimore/images/server_step_6.jpg][8]
+ 
+Enter the source folder for the EJBs in your project and click Finish.
+
+![http://people.apache.org/~jgallimore/images/server_step_7.jpg][9]
+ 
+Now right click on your OpenEJB server in the servers view, and select Add
+and Remove Projects.
+
+![http://people.apache.org/~jgallimore/images/server_step_11.jpg][10]
+ 
+Add your project to the server, and click Finish.
+
+![http://people.apache.org/~jgallimore/images/server_step_12.jpg][11]
+ 
+To start the server, Right click on your OpenEJB server, and select Start.
+
+![http://people.apache.org/~jgallimore/images/server_step_13.jpg][12]
+ 
+
+
+  [1]: http://people.apache.org/~jgallimore/images/server_step_4.jpg
+  [2]: http://people.apache.org/~jgallimore/images/server_step_5.jpg
+  [3]: http://people.apache.org/~jgallimore/images/server_step_8.jpg
+  [4]: http://people.apache.org/~jgallimore/images/server_step_9.jpg
+  [5]: http://people.apache.org/~jgallimore/images/server_step_10.jpg
+  [6]: http://people.apache.org/~jgallimore/images/server_step_1.jpg
+  [7]: http://people.apache.org/~jgallimore/images/server_step_2.jpg
+  [8]: http://people.apache.org/~jgallimore/images/server_step_6.jpg
+  [9]: http://people.apache.org/~jgallimore/images/server_step_6.jpg
+  [10]: http://people.apache.org/~jgallimore/images/server_step_11.jpg
+  [11]: http://people.apache.org/~jgallimore/images/server_step_12.jpg
+  [12]: http://people.apache.org/~jgallimore/images/server_step_13.jpg
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/f779264f/docs/securing-a-web-service.mdtext
----------------------------------------------------------------------
diff --git a/docs/securing-a-web-service.mdtext b/docs/securing-a-web-service.mdtext
new file mode 100644
index 0000000..80b565e
--- /dev/null
+++ b/docs/securing-a-web-service.mdtext
@@ -0,0 +1,239 @@
+Title: Securing a Web Service
+
+Web Services are a very common way to implement a Service Oriented
+Architecture (SOA).
+ 
+There are lots of web service standards/specifications (XML, SOAP, WSDL,
+UUDI, WS-*, ...) coming from organizations like W3C, OASIS, WS-I, ...
+And there are java web service standards like JAX-WS 1.x (JSR 181), JAX-WS
+2.0 (JSR 224). 
+
+OpenEJB provides a standard way to implement web services transport
+protocol throughout the JAX-WS specification.
+Java basic standards for web services (JAX-WS) do lack some features that
+are required in most real world applications, e.g. standard ways for
+handling security and authentication (there is no java specification for
+Oasis's WS-Security specification).
+
+OpenEJB provides two mechanisms to secure webservices - HTTP authentication
+and WS-Security: 
+
+HTTPS : works at the transport level, enables a point-to-point security.
+It has no impact on developments. It allows you :
+
+1. To secure data over the network with data encrypted during transport
+2. To identify the end user with SSLv3 with client certificate required
+3. OpenEJB supports BASIC authentication over HTTP(S), using the configured
+JAAS provider. This will honour any EJB security roles you have setup using
+@RolesAllowed. See the webservice-security example in the OpenEJB codebase [http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/](http://svn.apache.org/repos/asf/tomee/tomee/trunk/examples/)
+
+*Warning:
+Currently only BASIC is the only HTTP authentication mechanism available
+when running OpenEJB standalone or in a unit test, but we hope to support
+DIGEST in the future.*
+
+
+WS-Security: works at the message (SOAP) level, enables a higher-level
+security, 
+Nowadays, SOAP implementations use other protocols than just HTTP so we
+need to apply security to the message itself and not only at the transport
+layer. Moreover, HTTPS can only be used for securing point-to-point
+services which tend to decrease with Enterprise Service Bus for example. 
+
+The Oasis organization has defined a standard (part of well-known WS-*)
+which aims at providing high level features in the context of web services:
+WS-Security. It provides a standard way to secure your services above and
+beyond transport level protocols such as HTTPS. WS-Security relies on other
+standards like XML-Encryption.
+
+Main features are:
+
+1. Timestamp a message,
+2. Pass credentials (plain text and/or ciphered) between services,
+3. Sign messages,
+4. Encrypt messages or part of messages.
+
+Again, JAX-WS doesn't standardize security for web services. OpenEJB
+provides a common and highly configurable way to configure WS-Security in
+association with the JAX-WS usage without vendor dependence. Internally,
+OpenEJB integrates Apache WSS4J as the WS-Security implementation. To use
+the integration, you will need to configure WSS4J using the
+*openejb-jar.xml*.
+ 
+*Warning:
+the proposed WS-Security integration is only used at server side.
+Currently, WS-Security client configuration is not managed by OpenEJB. You
+can use the JAX-WS API to create a stub and then rely on the implementation
+to set up WS-Security properties.* 
+
+This configuration file lets you set up incoming and outgoing security
+parameters. Incoming and outgoing configuration is independent so that you
+can configure either one or the other or both. You can decide to check
+client credentials for incoming messages and sign outgoing messages
+(response).
+
+<a name="SecuringaWebService-Configurationprinciples"></a>
+# Configuration principles
+The configuration is made in the *openejb-jar.xml*. Each endpoint web
+service can provide a set of properties to customize WS-Security behavior
+through the <properties> element. The content of this element is consistent
+with the overall structure of *openejb.xml*. The format for properties is
+the same as if you would use a common java property file.
+
+
+    
+    <properties>
+      wss4j.in.action = UsernameToken
+      wss4j.in.passwordType = PasswordDigest
+      wss4j.in.passwordCallbackClass=org.superbiz.calculator.CustomPasswordHandler
+    </properties>
+    
+
+
+In order to recover WSS4J properties both for input and output, we use
+naming conventions.
+Each property is made of 
+   <wss4j>.<in|out>.<wss4j property name>=<wss4j property value>
+
+For example : *wss4j.in.action = UsernameToken*
+
+<a name="SecuringaWebService-UsernameToken(Passworddigest)example"></a>
+# Username Token (Password digest) example
+<a name="SecuringaWebService-Excerptfrom*openejb-jar.xml*."></a>
+#### Excerpt from *openejb-jar.xml*.
+
+
+    <openejb-jar xmlns="http://tomee.apache.org/xml/ns/openejb-jar-2.2">
+        <enterprise-beans>
+    	...
+    	<session>
+    	    <ejb-name>CalculatorImpl</ejb-name>
+    	    <web-service-security>
+    		<security-realm-name/>
+    		<transport-guarantee>NONE</transport-guarantee>
+    		<auth-method>WS-SECURITY</auth-method>
+    		<properties>
+    		    wss4j.in.action = UsernameToken
+    		    wss4j.in.passwordType = PasswordDigest
+            wss4j.in.passwordCallbackClass=org.superbiz.calculator.CustomPasswordHandler
+    		</properties>
+    	    </web-service-security>
+    	</session>
+    	...
+        </enterprise-beans>
+    </openejb-jar>
+
+
+<a name="SecuringaWebService-Requestsentbytheclient."></a>
+#### Request sent by the client. 
+This request contains SOAP headers to manage security. You can see
+*UsernameToken* tag from the WS-Security specification.
+
+    POST /CalculatorImplUsernameTokenHashedPassword HTTP/1.1
+    Content-Type: text/xml; charset=UTF-8
+    SOAPAction: ""
+    Accept: *
+    Cache-Control: no-cache
+    Pragma: no-cache
+    User-Agent: Java/1.5.0_05
+    Host: 127.0.0.1:8204
+    Connection: keep-alive
+    Transfer-Encoding: chunked
+
+    524
+    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
+      <soap:Header>
+        <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soap:mustUnderstand="1">
+          <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+    wsu:Id="UsernameToken-22402238"
+    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
+            <wsse:Username xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">jane</wsse:Username>
+            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"
+    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">tf7k3a4GREIt1xec/KXVmBdRNIg=</wsse:Password>
+            <wsse:Nonce xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">cKhUhmjQ1hGYPsdOLez5kA==</wsse:Nonce>
+            <wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2009-04-14T20:16:26.203Z</wsu:Created>
+          </wsse:UsernameToken>
+        </wsse:Security>
+      </soap:Header>
+      <soap:Body>
+        <ns1:sum xmlns:ns1="http://superbiz.org/wsdl">
+          <arg0>4</arg0>
+          <arg1>6</arg1>
+        </ns1:sum>
+      </soap:Body>
+    </soap:Envelope>
+
+
+<a name="SecuringaWebService-Theresponsereturnedfromtheserver."></a>
+#### The response returned from the server.
+
+    HTTP/1.1 200 OK
+    Content-Length: 200
+    Connection: close
+    Content-Type: text/xml; charset=UTF-8
+    Server: OpenEJB/??? (unknown os)
+    
+    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
+      <soap:Body>
+        <ns1:sumResponse xmlns:ns1="http://superbiz.org/wsdl">
+          <return>10</return>
+        </ns1:sumResponse>
+      </soap:Body>
+    </soap:Envelope>
+
+
+<a name="SecuringaWebService-JAASwithWS-Security"></a>
+# JAAS with WS-Security
+
+@RolesAllowed doesn't work straight off with WS-Security, but you can add
+calls to the OpenEJB SecurityService to login to a JAAS provider to a
+CallbackHandler. Once you have done this, any permissions configured with
+@RolesAllowed should be honoured.
+
+Here is a snippet from the webservice-ws-security example demonstrating
+this:
+
+
+    public class CustomPasswordHandler implements CallbackHandler {
+
+        public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+            WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
+
+            if (pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN) {
+                // TODO get the password from the users.properties if possible
+                pc.setPassword("waterfall");
+
+            } else if (pc.getUsage() == WSPasswordCallback.DECRYPT) {
+
+                pc.setPassword("serverPassword");
+
+            } else if (pc.getUsage() == WSPasswordCallback.SIGNATURE) {
+
+                pc.setPassword("serverPassword");
+
+            }
+
+            if ((pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN) || (pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN_UNKNOWN)) {
+
+                SecurityService securityService = SystemInstance.get().getComponent(SecurityService.class);
+                Object token = null;
+                try {
+                    securityService.disassociate();
+
+                    token = securityService.login(pc.getIdentifer(), pc.getPassword());
+                    securityService.associate(token);
+
+                } catch (LoginException e) {
+                    e.printStackTrace();
+                    throw new SecurityException("wrong password");
+                }
+            }
+        }
+    }
+    
+
+
+<a name="SecuringaWebService-Examples"></a>
+# Examples
+A full example (webservice-ws-security) is available with OpenEJB Examples.
+


Mime
View raw message