You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2018/11/30 22:27:13 UTC

[29/34] tomee-site-generator git commit: Merge old content. Move tech content to main build.

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/release-tomee.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/release-tomee.mdtext b/src/main/jbake/content/dev/release-tomee.mdtext
new file mode 100644
index 0000000..a125e4a
--- /dev/null
+++ b/src/main/jbake/content/dev/release-tomee.mdtext
@@ -0,0 +1,283 @@
+#Releasing TomEE
+
+	This document is aimed at guiding a release manager through the general release process. You will need either a Linux, Mac, or failing that a Linux Virtual (with at least a 50GB Drive) on Win. 
+
+###Preparation of The Branch
+	
+Run **ant -f rat.xml > report.txt** on trunk to ensure all licences are in place.
+
+ - Review the report.txt and update/add missing headers until clean.
+ - *Tip*, search for **Unapproved licenses:** at the beginning of the report for a list.
+
+Branch the version to release and ensure it builds and passes all tests.
+
+Add a buildbot CI setup for branch here:
+
+[https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects/tomee.conf](https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects/tomee.conf)
+
+Basically search for the following line and it should be obvious how to add a new builder:
+
+	c['builders'].append(tomee_hemera_builder("tomee-trunk-ubuntu", "tomee/tomee/trunk"))
+	
+An SVN trigger must be added afterwards. This can only be done by someone with admin permissions, such as any PMC chair or an Infra team member.
+Just drop an email to *infrastructure@apache.org*
+
+###Create a TCK Branch
+
+Branch the TCK using the same version as the release branch from here:
+
+[https://svn.apache.org/repos/tck/tomee-tck/trunk](https://svn.apache.org/repos/tck/tomee-tck/trunk)
+
+Update the TCK branch files to point to the version branch.
+
+	\tckbranch\plus.properties
+	\tckbranch\pom.xml
+	\tckbranch\webprofile-plus.properties
+	\tckbranch\webprofile.properties
+
+Run **ant -f rat.xml > report.txt** on the branch.
+
+ - Review the report.txt and update/add missing headers until clean.
+ - *Tip*, search for **Unapproved licenses:**.
+
+###Check SVN Authentication
+ 
+Pre-authenticate svn repositories to ensure your credentials are cached before using any tools.
+
+	svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://svn.apache.org/repos/asf/tomee/tomee/branches/testdir1
+	svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://svn.apache.org/repos/asf/tomee/tomee/branches/testdir1
+	svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://repository.apache.org/content/repositories/testdir2
+	svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://repository.apache.org/content/repositories/testdir2
+	svn mkdir --username [apacheuser] --password [apachepw] -m "Create test dir" https://dist.apache.org/repos/dist/dev/tomee/testdir3
+	svn delete --username [apacheuser] --password [apachepw] -m "Delete test dir" https://dist.apache.org/repos/dist/dev/tomee/testdir3
+
+###Prepare Maven Authentication
+
+Ensure your maven .m2/settings.xml correct, and be aware that the tools currently require a clear text password:
+
+	<server>
+	  <id>apache.snapshots.https</id>
+	  <username>un</username>
+	  <password>pw.in.clear</password>
+	</server>
+
+	<server>
+	  <id>apache.releases.https</id>
+	  <username>un</username>
+	  <password>pw.in.clear</password>
+	</server>
+
+	<server>
+	  <id>apache.dist.https</id>
+	  <username>un</username>
+	  <password>pw.in.clear</password>
+	</server>
+
+	<profiles>
+		<profile>
+		...
+			<repositories>
+				<repository>
+				  <id>apache.dist.https</id>
+				  <url>https://dist.apache.org/repos/dist</url>
+				</repository>
+			  </repositories>
+
+###Code Signing Setup
+
+If this is your first release then you will have to ensure that you have a code signing key prepared on the machine from which you perform the release. The process is quite intense. You can find information here:
+
+ - [http://www.apache.org/dev/release-signing.html](http://www.apache.org/dev/release-signing.html)
+ - [http://maven.apache.org/developers/release/pmc-gpg-keys.html](http://maven.apache.org/developers/release/pmc-gpg-keys.html)
+ 
+However, the basic steps are:
+
+ - Create a key using **gpg --gen-key**, using size 4096 and answering the questions that command issues.
+ - During the process you will have to generate random entropy, this is best achieved in another console and issuing the command **find / > /dev/null** and waiting a minute.
+ - List the keys using **gpg --list-keys** and take note of the name
+
+Once you have your key then you will need to append it to the key file here:
+
+ - [http://www.apache.org/dist/tomee/KEYS](http://www.apache.org/dist/tomee/KEYS)
+
+That is best done as the file itself explains, once you open and view it in a UTF-8 safe text editor you will see the description at the top.  
+Just follow the instructions there on how to append your key. The basic steps are also here, please read both before you proceed:
+
+ - Save the KEYS file on your local machine and import it using **gpg --import KEYS**
+ - Then create the new KEYS file using **(gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS**
+ - Check that the new KEYS file contains your key.
+ - Log in to people.apache.org and locate /dist/tomee/KEYS
+ - Make a backup of the remote KEYS file just in case
+ - Overwrite the old /dist/tomee/KEYS file with your new one that now also contains your key.
+ - Go to [http://pgp.mit.edu/](http://pgp.mit.edu/) and add your ascii armoured key
+ - Take note of your key fingerprint using **gpg --fingerprint <your name>**
+ - Go to [https://id.apache.org](https://id.apache.org), log in and fill OpenPGP Public Key Primary Fingerprint: with the value of your fingerprint.
+ 
+###Build the Release Tools
+
+Checkout the release tools using SVN from here [https://svn.apache.org/repos/asf/tomee/sandbox/release-tools](https://svn.apache.org/repos/asf/tomee/sandbox/release-tools)
+
+Really read the README.mdtext and follow the instructions for building the 3rd party libraries.  
+Basically SVN checkout and compile [Swizzle](https://svn.codehaus.org/swizzle/trunk) and [Tentacles](https://svn.apache.org/repos/asf/creadur/tentacles/trunk)
+
+Build the release tools, *mvn clean install -DskipTests -DfailIfNoTests=false*
+
+Have a look at **run.sh** to see the entry point.
+
+Understand that the release tools are not polished, and you currently may have to edit source and re-compile.
+
+###Site Staging
+<a href="#staging"/>
+For some of the release steps you will need to provide documentation on the site. Checkout the site here:
+
+[https://svn.apache.org/repos/asf/tomee/site/trunk](https://svn.apache.org/repos/asf/tomee/site/trunk)
+
+Most of the content can be found under 'content' and subdirectories.
+
+When you commit changes the site should be built automatically by the buildbot, but you can force a build on IRC using:
+
+    **tomee-bot: force build tomee-site-staging**
+
+The buildbot staging result can be seen here:
+
+[http://ci.apache.org/builders/tomee-site-staging](http://ci.apache.org/builders/tomee-site-staging)
+
+And the actual staging site, where you can review your changes, is here:
+
+[http://tomee.staging.apache.org/](http://tomee.staging.apache.org/)
+
+Once you are happy with the staging you can publish to the real site using:
+
+[https://cms.apache.org/tomee/publish](https://cms.apache.org/tomee/publish)
+
+###Begin The Release Process
+
+Ensure TCK is passing all tests, and if so create an SVN tag from the branch.
+
+	Note: It is a future goal to either separate OpenEJB from TomEE or unify the versions so the
+	[maven-release-plugin](http://maven.apache.org/maven-release/maven-release-plugin/) can be used.
+
+	Because we cannot use the Maven release tools we currently have to create a an SVN tag manually. The best way to do this is to:
+	
+	 - Copy the branch to a staging branch using:  
+	   > svn copy https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]  https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging -m "Staging [version]"
+	 - Checkout the staging branch using:  
+	   > svn co https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging tomee-[version]-staging
+	 - Update all SNAPSHOT versions to the release versions in the local tomee-[version]-staging and commit.
+	 - Create the tag from the staging:  
+	   > svn copy https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging https://svn.apache.org/repos/asf/tomee/tomee/tags/tomee-[version] -m "Tag [version]"
+	 - Delete the staging branch using:  
+	   > svn rm https://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-[version]-staging -m "Delete staging"
+
+Open a console on the release-tools directory.
+
+Note: Before running any **./run.sh** activity always check the release tools code for the command tomee-release-tools/src/main/java/org/apache/openejb/tools/release/cmd.
+At the moment some of the commands need manually editing to work. Eventually the commands should be re-written.
+
+All JIRA actions should be performed on the ASF JIRA here:
+
+[https://issues.apache.org/jira/browse/TOMEE](https://issues.apache.org/jira/browse/TOMEE)
+
+Ensure JIRAs have been filed for commits using **./run.sh reviewcommits**
+
+Update fixVersions for JIRAs used in SVN commits using **./run.sh updatejiras** - *Untested, requires investigation*
+
+Review and bulk Close all JIRAs for the version to be released.
+
+Publish the changed binaries report (if any) using **./run.sh comparelibraries**
+
+Write and publish the release notes preview on the staging site. 
+
+Publish a summary of the RAT report preview on the staging site.
+
+Using the RAT report as a guide update LICENSE and NOTICE files for any changed binaries, and add new ones if required.
+
+Update branch versions. How you do this is up to you at this point in time.
+
+Update trunk versions. How you do this is up to you at this point in time.
+
+Create the next version iterations in JIRA.
+
+###Rolling Out The Preview
+
+	Note: Before running anything below ensure you either have:
+
+	 - A valid tomee-release.properties from the last release in your home directory (Speak to the last release manager).
+	 - Or have modified **tomee-release-tools/src/main/java/org/apache/openejb/tools/release/Release.java** with current versions and **mvn clean install**.
+	 	 
+Ensure the TCK passes with preview repositories by editing and ensuring paths are correct in the following files:
+
+	\tckbranch\plus.properties
+	\tckbranch\pom.xml
+	\tckbranch\webprofile-plus.properties
+	\tckbranch\webprofile.properties
+
+Publish the preview using **./run.sh roll binaries legal releasenotes preview** - You can run these tasks like so, or individually in order.
+It will be likely that this will have to be repeated several times before a successful vote.
+
+The *legal* step will create the legal report files in the /tmp/download/staging-[revision]/legal directory. These need to be added to the staging repo.
+ - Delete the [legal]/repo and [legal]/content directories, as these are no longer required
+    rm -R /tmp/download/staging-[revision]/legal/content
+    rm -R /tmp/download/staging-[revision]/legal/repo
+
+ - Perform a non-recursive checkout of the staging repo and add the legal:
+	svn co -N https://dist.apache.org/repos/dist/dev/tomee/staging-[revision] /tmp/download/staging
+	mv /tmp/download/staging-[revision]/legal /tmp/download/staging
+	cd /tmp/download/staging-[revision]
+	svn add legal
+
+Once the binaries are in place add the staging repository to the corresponding TCK project and fire off a build.
+To fire off a build on EC2 from the TCK directory speak to the last release manager for the **curl** command to use
+
+If the TCK fails then discuss, fix and re-roll.
+
+Publish a [Vote](https://www.apache.org/foundation/voting.html) if, and only if, the TCK passes.
+
+Votes are generally managed and identified using keywords such as [VOTE], [CANCELLED] and [RESULT]
+
+If the vote fails then discuss, fix and re-roll.
+
+###Voted Binaries
+
+Once the vote has passed then release the binaries on Nexus: [https://repository.apache.org/index.html#welcome](https://repository.apache.org/index.html#welcome)
+
+Update both OpenEJB and TomEE JIRA versions as released (Set the release date).
+
+Copy the binaries to the release location (User rights require a PMC to do this)
+
+	From: https://dist.apache.org/repos/dist/dev/tomee/staging-[stagingId]/tomee-[version]
+	To: https://dist.apache.org/repos/dist/release/tomee/tomee-[version] 
+    
+
+Wait for the binaries to replicate to mirrors. Here is a neat script from David to check the status:
+
+    #!/bin/bash
+
+    RELEASE=${1?Specify a release, such as './mirror_check.sh tomee-1.7.1'}
+
+    function list_mirrors {
+        DYN=http://www.apache.org/dyn/closer.cgi/tomee/$RELEASE/
+        wget -q -O - $DYN | tr '">< ' '\n' | grep "^http.*$RELEASE/" | sort | uniq
+    }
+
+    function status_code {
+        wget -v "$1" 2>&1| grep 'awaiting response' | tr ' ' '\n' | grep "[0-9]"
+    }
+
+    list_mirrors | while read n; do
+        echo "$(status_code $n) $n"
+    done | sort | grep 'http'
+
+Commit and publish changes to the site, see [Site Staging](release-tomee.html#staging)
+
+    https://cms.apache.org/tomee/publish
+
+
+###Blog
+
+Announce to the world that TomEE has new bells and whistles!
+
+[https://blogs.apache.org/roller-ui/login.rol](https://blogs.apache.org/roller-ui/login.rol)  
+[http://twitter.com/ApacheTomEE](http://twitter.com/ApacheTomEE)  
+[http://facebook.com/ApacheTomEE](http://facebook.com/ApacheTomEE)  
+[https://plus.google.com/118203123063829126066](https://plus.google.com/118203123063829126066)  

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/roadmap.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/roadmap.mdtext b/src/main/jbake/content/dev/roadmap.mdtext
new file mode 100644
index 0000000..411e585
--- /dev/null
+++ b/src/main/jbake/content/dev/roadmap.mdtext
@@ -0,0 +1,23 @@
+# High level goals
+
+ - Pre Certification
+    - pass the tcks
+    - push a beta and get the certification mark
+ - Post Certification
+    - fill out features, performance tune and polish
+    - release final
+
+# Post Certification requirements
+
+Aside from passing the tcks, the
+
+# Post Certification goals
+
+Unordered list:
+
+ - Restore Tomcat 6 support (possibly also Tomcat 5.5)
+ - Make webapps/ dir deployment work properly again
+ - Fix undeploy memory leak
+ - Flush out TomEE embedded API
+
+

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/rsync.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/rsync.mdtext b/src/main/jbake/content/dev/rsync.mdtext
new file mode 100644
index 0000000..81dd002
--- /dev/null
+++ b/src/main/jbake/content/dev/rsync.mdtext
@@ -0,0 +1,98 @@
+# rsync
+
+`rsync` is basically the only copy command you'll ever need on a linux/unix system.  It can copy in the same machine or across machines.  It can retain file permissions and owners.  You can run it over and over again say if the first execution failed or if there are new files to be copied over.
+
+## same machine copy
+
+`rsync -av fromdir/ todir/`
+
+Will copy the contents of `fromdir/` to the directory `todir/`
+
+To make a little example, some fancy bash syntax for creating a directory structure.
+
+    $ mkdir -p one/{green,blue}/{square,circle}{1..3}
+    $ find .
+    .
+    ./one
+    ./one/blue
+    ./one/blue/circle1
+    ./one/blue/circle2
+    ./one/blue/circle3
+    ./one/blue/square1
+    ./one/blue/square2
+    ./one/blue/square3
+    ./one/green
+    ./one/green/circle1
+    ./one/green/circle2
+    ./one/green/circle3
+    ./one/green/square1
+    ./one/green/square2
+    ./one/green/square3
+
+So to copy `one` to a new directory `two` we just do this
+
+`rsync -av one/ two/`
+
+Which gives us this as output
+
+    $ rsync -av one/ two/
+    building file list ... done
+    created directory two
+    ./
+    blue/
+    blue/circle1/
+    blue/circle2/
+    blue/circle3/
+    blue/square1/
+    blue/square2/
+    blue/square3/
+    green/
+    green/circle1/
+    green/circle2/
+    green/circle3/
+    green/square1/
+    green/square2/
+    green/square3/
+
+    sent 301 bytes  received 110 bytes  822.00 bytes/sec
+    total size is 0  speedup is 0.00
+
+Now we have the following directory structure:
+
+    $ find .
+    .
+    ./one
+    ./one/blue
+    ./one/blue/circle1
+    ./one/blue/circle2
+    ./one/blue/circle3
+    ./one/blue/square1
+    ./one/blue/square2
+    ./one/blue/square3
+    ./one/green
+    ./one/green/circle1
+    ./one/green/circle2
+    ./one/green/circle3
+    ./one/green/square1
+    ./one/green/square2
+    ./one/green/square3
+    ./two
+    ./two/blue
+    ./two/blue/circle1
+    ./two/blue/circle2
+    ./two/blue/circle3
+    ./two/blue/square1
+    ./two/blue/square2
+    ./two/blue/square3
+    ./two/green
+    ./two/green/circle1
+    ./two/green/circle2
+    ./two/green/circle3
+    ./two/green/square1
+    ./two/green/square2
+    ./two/green/square3
+
+## beware the slashes
+
+There's a strange thing when not using the slashes at the end.  To keep things sane, just always use the slashes at the end of the two file paths and things will always be easy to remember.
+

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/rules-of-thumb.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/rules-of-thumb.mdtext b/src/main/jbake/content/dev/rules-of-thumb.mdtext
new file mode 100644
index 0000000..54a8130
--- /dev/null
+++ b/src/main/jbake/content/dev/rules-of-thumb.mdtext
@@ -0,0 +1,24 @@
+Title: Rules of Thumb
+
+<a name="RulesofThumb-Configuration"></a>
+### Configuration
+
+* Configuration settings should have configurable defaults at the module,
+ear, server and cluster level (when clustering is added).  For example,
+security settings should be configurable on a per ejb, ejb jar, ear and
+server levels.	
+
+* Settings should have a smooth increase in complexity from very simple to
+complex.  For example, a cache setting could start with a simple max-size,
+and over time the user could increase the complexity by adding
+configuration for disk paging up to specification of complex flushing
+rules.
+
+<a name="RulesofThumb-Validation"></a>
+### Validation
+
+* Applications should be fully validated before handing it off to the
+deployment system.  This vastly simplifies the deployment system because it
+assumes that an application is valid.  As a corollary, the deployment
+system should not be complicated with code that tests for invalid
+deployments or with code to print graceful error messages to a user.

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/source-code.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/source-code.mdtext b/src/main/jbake/content/dev/source-code.mdtext
new file mode 100644
index 0000000..c9ffd7f
--- /dev/null
+++ b/src/main/jbake/content/dev/source-code.mdtext
@@ -0,0 +1,101 @@
+Title: Source Code
+
+**<span style="color: rgb(128,0,0);">We have moved to GIT</span>. This means that anything you may find elsewhere on the site about SVN is no longer valid!**
+  
+The documentation will be updated over the next few days and weeks but if you find anything that is **really** misleading then please send a message to the developer list at: [dev@tomee.apache.org](mailto:dev@tomee.apache.org)
+
+Probably the best GIT tutorial on the planet can be found here: [https://www.atlassian.com/git/](https://www.atlassian.com/git/) - This is a great reference for both existing and new GIT users. Please take a look.
+
+###GIT Information for Everyone
+
+You can browse the source code via the [web interface](http://git-wip-us.apache.org/repos/asf/tomee.git).
+
+If you intend to hack on TomEE then it is recommended that you create a [GitHub Account](https://github.com) and [fork](https://help.github.com/articles/fork-a-repo/) the TomEE repository so that you can submit pull requests (See below).
+
+If you just want to build the source version then you can download (aka clone) the sources of Apache TomEE with a GIT client from the following URL [https://git-wip-us.apache.org/repos/asf/tomee.git](https://git-wip-us.apache.org/repos/asf/tomee.git) - The 'master' branch is the current development branch.
+
+Performing the checkout from a command line using the GIT client (recommended) is as easy as executing the following command:
+> git clone [https://git-wip-us.apache.org/repos/asf/tomee.git](https://git-wip-us.apache.org/repos/asf/tomee.git) tomee
+
+If you want to checkout a specific branch then you can just change that in the command:
+
+> git clone -b tomee-1.7.x [https://git-wip-us.apache.org/repos/asf/tomee.git](https://git-wip-us.apache.org/repos/asf/tomee.git) tomee-1.7.x
+
+Or alternatively with Apache Maven 3.0.5 or later:
+
+> mvn scm:checkout
+> -DconnectionUrl=scm:git:[https://git-wip-us.apache.org/repos/asf/tomee.git](https://git-wip-us.apache.org/repos/asf/tomee.git)
+> -DcheckoutDirectory=tomee
+
+Note: This method does not require the GIT client.
+
+<a name="SourceCode-Contributors"></a>
+###GIT Information for TomEE Contributors
+
+**Please read our own detailed GitFlow workflow information [here](git.html)**
+
+We will be using the [Gitflow Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) from day one. Please read and understand how this works.
+
+See [here](https://help.github.com/articles/using-pull-requests/) for information on pull requests. 
+
+The official Apache Committer documentation can be found [here](https://git-wip-us.apache.org/#committers-getting-started)
+
+<a name="SourceCode-Continuousintegration"></a>
+###Continuous integration
+
+Apache TomEE continuous integration relies on [Apache Buildbot](http://ci.apache.org/).
+All builders are available [from the page](http://ci.apache.org/builders).
+
+* [Apache TomEE 1.7.x under Ubuntu](http://ci.apache.org/builders/tomee-1.7.x-ubuntu)
+* [Apache TomEE 2.x under Ubuntu](http://ci.apache.org/builders/tomee-trunk-ubuntu)
+* [Apache TomEE 2.x under Windows using a Sun/Oracle JDK](http://ci.apache.org/builders/tomee-trunk-win-sunjdk)
+* [Apache TomEE 2.x under Windows using an IBM JDK](http://ci.apache.org/builders/tomee-trunk-win-ibmjdk6)
+
+<a name="SourceCode-Building"></a>
+###Maven
+To build the code, you'll need to grab a copy of [Apache Maven](http://maven.apache.org), version 3.0.5 or later.
+ 
+###Memory Settings
+
+It is pretty much guaranteed that you will need to give Maven an increase on the available memory.  
+Depending on the OS you are working on the fix can be as easy as (Note: *-XX:MaxPermSize=256M* is ignored by Java 8):  
+>export MAVEN_OPTS="-Xmx768m -XX:MaxPermSize=256M -XX:ReservedCodeCacheSize=64m -Xss2048k"
+
+on MacOS and Unices or 
+>set "MAVEN_OPTS=-Xmx768m -XX:MaxPermSize=256M -XX:ReservedCodeCacheSize=64m -Xss2048k"
+  
+on MS Windows.
+
+###Full Build
+
+A fast build that skips all tests, generates no reports and creates full distribution archives is as follows:
+>mvn -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install
+
+The full build with tests takes around 2 hours:
+>mvn -Dassemble clean install
+
+The output of those commands should end with "BUILD SUCCESSFUL"
+
+It is of course possible to just compile and test individual modules. Just change to the module directory and run the same commands as above.
+
+###Quick Build
+
+If you are in real a hurry (and let's face it most of us are) you can run a quick build without the examples using the *quick* profile:
+>mvn -Pquick -Dsurefire.useFile=false -DdisableXmlReport=true -DuniqueVersion=false -ff -Dassemble -DskipTests -DfailIfNoTests=false clean install
+
+###Binary locations
+
+Once built, the TomEE binaries will be located at:
+
+    ls [project]/tomee/apache-tomee/target/*.zip
+	
+    tomee/apache-tomee/target/apache-tomee-jaxrs-[version]-SNAPSHOT.zip
+    tomee/apache-tomee/target/apache-tomee-plus-[version]-SNAPSHOT.zip
+    tomee/apache-tomee/target/apache-tomee-webprofile-[version]-SNAPSHOT.zip
+    tomee/apache-tomee/target/apache-tomee-plume-[version]-SNAPSHOT.tar.gz
+
+The OpenEJB standalone binaries will be located at:
+
+    ls [project]/assembly/openejb-standalone/target/*.zip
+	
+    assembly/openejb-standalone/target/apache-openejb-[version]-SNAPSHOT.zip

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/take-my-code.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/take-my-code.mdtext b/src/main/jbake/content/dev/take-my-code.mdtext
new file mode 100644
index 0000000..42967e0
--- /dev/null
+++ b/src/main/jbake/content/dev/take-my-code.mdtext
@@ -0,0 +1,14 @@
+Title: Take My Code
+Gladly!  We (the individuals who makeup the community) will happily take
+your code.
+
+The easiest way for us to take code both legally and practically is by:
+
+1. Create a patch and attach it in a [new JIRA issue](https://issues.apache.org/jira/browse/OPENEJB)
+1. Send a note to the dev list
+
+Anyone who is a committer has already signed a [Contributor License Agreement](http://apache.org/licenses/#clas)
+ (CLA) stating that the code they contribute is intended to be licensed
+under the Apache Public License.  If you intend to contribute a lot,
+consider sending one in as it will make things go faster.  The next best
+thing to having a CLA on file.

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/thread-dumps.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/thread-dumps.mdtext b/src/main/jbake/content/dev/thread-dumps.mdtext
new file mode 100644
index 0000000..fb5b5bc
--- /dev/null
+++ b/src/main/jbake/content/dev/thread-dumps.mdtext
@@ -0,0 +1,37 @@
+Title: Thread Dumps
+<a name="ThreadDumps-Java5tools"></a>
+# Java 5 tools
+
+This should work on any Java 5 or newer platform.
+
+
+    $ jps
+    3392 Jps
+    3387 JConsole
+
+
+
+    $ jstack 3387
+    Attaching to process ID 3387, please wait...
+    Debugger attached successfully.
+    Client compiler detected.
+    JVM version is 1.5.0_16-133
+    Thread t@59139: (state = BLOCKED)
+    - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
+    - javax.swing.TimerQueue.run() @bci=14, line=236 (Interpreted frame)
+    - java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)
+
+
+
+<a name="ThreadDumps-OSsignals"></a>
+# OS signals
+
+In the case of an OS signal the thread dump is printed to the console
+window that started the java process.  If you use javaw to start the
+process, the dump is lost.
+
+On Windows, typing *ctrl-break* in the console window that started the Java
+process.
+On Unix, the command *kill \-QUIT <pid>* or typing *ctrl-&#92;* in the
+console window that started the Java process.
+

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/tips-and-suggestions.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/tips-and-suggestions.mdtext b/src/main/jbake/content/dev/tips-and-suggestions.mdtext
new file mode 100644
index 0000000..70cc5ff
--- /dev/null
+++ b/src/main/jbake/content/dev/tips-and-suggestions.mdtext
@@ -0,0 +1,384 @@
+Title: Tips and Suggestions
+> 
+
+<a name="TipsandSuggestions-Usefulinformationforcontributors"></a>
+## Useful information for contributors
+
+<a name="TipsandSuggestions-JIRAusage"></a>
+### JIRA usage
+It's good to leverage JIRA, but everything that happens there should be
+considered invisible for the most part and only reviewed on a random and
+infrequent basis.
+
+
+A good way to bring jira "discussion" back to the list is to follow up on the list rather than posting more jira comments.  Maybe by having the first followup comment be a link to Nabble's "forum" view of the list.  Optionally, you can Cc jira@apache.org and include "[jira](jira.html)
+ OPENEJB-XXX" anywhere in your subject line and your email will get added
+as a jira comment.
+
+
+For those looking to contribute, there are some good habits to put into
+use.  We use a permission scheme called "Interactive Permissions."  It's
+description has some good information:
+
+ Interactive Permissions
+
+ This permissions model differs from the Standard Permissions
+ model in that people in the Contributor role must interact with
+ the dev list to get to get issues assigned to them and issues
+ closed. This isn't a trust issue, more that there are a few
+ benefits.
+
+ 1.  Active contributors hitting the list to begin and end work
+     shows other people not yet active how to get involved.
+
+ 2.  Adds more "touch points" between Contributors and
+     Committers. It should be possible to "see" the active
+     contributors even if you are not watching the JIRA or SVN
+     notifications. It's also hoped that the practice of
+     announcing your intentions on the dev list will persist
+     even when the Contributor becomes a Committer.
+
+ 3.  Gives Committers the opportunity to help, mentor or
+     otherwise get the Contributor going in the right direction
+     before a task is started; potentially resulting in fewer
+     rejected patches, less waisted Contributor time, and more
+     collaborative development.
+
+ 4.  Overall brings more communication to the dev list before
+     all work is done and all decisions made giving more
+     potential to collaboration.
+
+
+{+}If you'd like to get added to the openejb-contributors JIRA group, just
+ping the list with your JIRA id and someone will add you.{+}
+
+<a name="TipsandSuggestions-Commits"></a>
+### Commits
+
+*Contributed by*: David Blevins
++Here is an email from David Blevins explaining the things he keeps in mind
+during commits.+ *{+}Definitely worth a read{+}{*}+:+
+
+I generally *try never to reformat a file and make changes at the same
+time* as it makes it impossible for anyone to see what I've changed. Needle
+in a haystack.	I *try to get the reformatting as its own commit* before or
+after I change a file.
+
+A lot of times I end up tweaking a bunch of little unrelated things while
+working on a bigger change. *I tend to like to "clear them out" in separate
+commits as to isolate the big change in one commit*. Sometimes I'm not so
+good at that and other times I'm really meticulous about it.
+
+*Include the JIRA number and title (if there is a jira)*.  I try never to
+say "Fixed FOO-2543" all by itself.  Reviewing the last 10 changes on a
+file is a super big PITA when all you see is numbers to other systems. *I
+shoot for more or less "Fixed <issue-number> <issue-title>
+<how-did-i-fix-it>"* Sometimes the "how did i fix it" part is obvious by
+the title, other times not.  Sometimes I'm too tired and the wife is
+impatiently waiting for me to leave the computer :-)
+As far as jiras go, there doesn't have to be a jira for absolutely every
+commit -- what's the point of that.  I *try to make sure there's a jira for
+anything we'd definitely want to see in the release notes*.  Sometimes I
+don't get the jira created till long after the change, towards release time
+when creating the release notes :-) It's pretty easy to forget stuff that
+way though :-)
+
+As far as jira titles, I always *try and make them short and succinct* for
+the future release notes.
+
+<a name="TipsandSuggestions-SVN+JIRA"></a>
+### SVN + JIRA
+
+
+<a name="TipsandSuggestions-*Contributedby*:Vamsi"></a>
+#### *Contributed by*: Vamsi
+
+I had trouble figuring out if a revision is related to a JIRA and what all
+revisions corresponded to a particular JIRA.  So, I always include the JIRA
+number (if there is an associated JIRA) in the svn comment and once
+committed, I add the revision number to the JIRA comment.  It may be a
+minute or two more to do this.	But, it saves a lot of time if you ever
+have to investigate a regression or if there are multiple revisions for a
+JIRA you know where to find the revision numbers instead of having to mine
+the svn logs.
+
+Some files may be missing $Rev$ and $Date$ in the header.  Whenever I
+modify an existing file, I always check if I have to add these missing
+$Rev$ $Date$ and add those so that the file will have them from my next
+commit onwards.
+
+<a name="TipsandSuggestions-*Contributedby*:DavidBlevins"></a>
+#### *Contributed by*: David Blevins
+
+> If you put "\[jira\](jira\.html)
+>  OPENEJB-XXX" anywhere in your subject line and cc jira@apache.org our
+> email gets added as a comment with all '> quoted' text stripped out.
+PS: XXX is the JIRA issue number
+
+<a name="TipsandSuggestions-Details"></a>
+#### Details
+
+The following subject lines did work:
+- Subject: \[jira\](jira\.html)
+ OPENEJB-670
+- Subject: Some other subject prefix (\[jira\](jira\.html)
+ OPENEJB-670)
+- Subject: Re: Some other subject prefix (\[jira\](jira\.html)
+ OPENEJB-670)
+
+The following subject lines did *not* work:
+- Subject: OPENEJB-670
+- Subject: Some other subject prefix (jira: OPENEJB-670)
+- Subject: Some other subject prefix (jira OPENEJB-670)
+- Subject: Some other subject prefix (OPENEJB-670)
+
+It appears that as long as the subject contains "\[jira\](jira\.html)
+ FOO-XXX" the email contents will be added as comments.
+
+It also appears that all quoted text regardless of place in the email is
+stripped out and the remaining text is added as the comment.
+
+The exact email bodies, white space and all, for the "reply text" comments
+above are:
+
+<one>
+Reply text at the top.
+
+-- David
+
+On Aug 23, 2007, at 1:02 PM, David Blevins wrote:
+
+Testing adding comments via email with this subject line "Some other subject prefix (\[jira\](jira\.html)
+ OPENEJB-670)"
+
+</one>
+
+<two>
+
+On Aug 23, 2007, at 1:02 PM, David Blevins wrote:
+
+Testing adding comments via email with this subject line "Some other subject prefix (\[jira\](jira\.html)
+ OPENEJB-670)"
+
+Reply text at the bottom.
+
+--
+David
+
+</two>
+
+<three>
+On Aug 23, 2007, at 1:02 PM, David Blevins wrote:
+
+Testing adding comments via email
+
+Some reply text
+
+with this subject line "Some other subject prefix (\[jira\](jira\.html)
+ OPENEJB-670)"
+
+Some more reply text
+
+--
+David
+
+</three>
+
+### scp, ssh, and rsync examples for working with files and directories on
+people.apache.org
+
+*Contributed by*: David Blevins
+
+*copying a file to apache from locahost*
+scp topsecret.tar.gz kmalhi@people.apache.org:
+scp index.html kmalhi@people.apache.org:public_html/
+
+*copying a file from apache to localhost -- reverse of the above*
+scp kmalhi@people.apache.org:topsecret.tar.gz ./
+scp kmalhi@people.apache.org:public_html/index.html ./
+
+*copying directories*
+scp \-r kmalhi@people.apache.org:public_html ./
+scp \-r public_html kmalhi@people.apache.org:
+
+*When the directory exists, better to rsync*
+
+*pull a dir from apache*
+rsync \-v \-e ssh \-lzrptog kmalhi@people.apache.org:public_html ./
+rsync \-v \-e ssh \-lzrptog
+kmalhi@people.apache.org:/home/kmalhi/public_html ./
+
+*the two above commands do the exact same thing*
+
+*push the same dir to apache*
+rsync \-v \-e ssh \-lzrptog ./public_html kmalhi@people.apache.org:
+rsync \-v \-e ssh \-lzrptog ./public_html
+kmalhi@people.apache.org:/home/kmalhi/
+
+*the two above commands do the exact same thing*
+
+*sometimes useful to execute commands over ssh (piping works too)*
+ssh people.apache.org ls /home \| tee home-dirs-on-apache.txt
+echo \-e 'Hello, me\n\nHow am I doing today?' \| ssh
+kmalhi@people.apache.org mail \-s 'Greetings' kmalhi@apache.org
+
+*For Putty users*
+*Contributed by:* Mohammad
+I have Putty on my linux machine and it is easier to use, Putty has a
+Windows version too, I issue this command to upload a file to my home dir
+on people.apache.org
+
+    pscp [[file-name]
+ | [dir]
+] mnour@people.apache.org:~/
+
+and if you want to access your home page, you should create a dir with the
+name public_html, and then upload files to it.
+
+<a name="TipsandSuggestions-Acoolsubversiontip"></a>
+### A cool subversion tip
+
+*Contributed by*: Jacek Laskowski.
+
+*It'll let you forget about some svn administrative commands you'd
+otherwise have to type in on the command line.*
+Edit/Add the following configurations to \~/.subversion/config:
+
+    [miscellany]
+    global-ignores = *.log *.save *.o *.lo *.la #*# .*~ *~ .#* .DS_Store
+    build dist target *.ipr *.iml *.iws .project .classpath .settings
+    enable-auto-props = yes
+    
+    [auto-props]
+    *.c = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+    *.cpp = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+    *.h = svn:eol-style=native;svn:keywords=Date Author Id Revision HeadURL
+    *.dsp = svn:eol-style=CRLF
+    *.dsw = svn:eol-style=CRLF
+    *.sh = svn:executable;svn:eol-style=native;svn:keywords=Date Revision
+    *.cmd = svn:mime-type=text/plain;svn:eol-style=CRLF
+    *.bat = svn:mime-type=text/plain;svn:eol-style=CRLF
+    Makefile = svn:eol-style=native;svn:keywords=Date Author Id Revision
+HeadURL
+    *.obj = svn:mime-type=application/octet-stream
+    *.bin = svn:mime-type=application/octet-stream
+    *.bmp = svn:mime-type=image/bmp
+    *.class = svn:mime-type=application/java
+    *.doc = svn:mime-type=application/msword
+    *.exe = svn:mime-type=application/octet-stream
+    *.gif = svn:mime-type=image/gif
+    *.gz = svn:mime-type=application/x-gzip
+    *.jar = svn:mime-type=application/java-archive
+    *.jelly = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+    Revision
+    *.jpg = svn:mime-type=image/jpeg
+    *.jpeg = svn:mime-type=image/jpeg
+    *.pdf = svn:mime-type=application/pdf
+    *.png = svn:mime-type=image/png
+    *.tgz = svn:mime-type=application/octet-stream
+    *.tif = svn:mime-type=image/tiff
+    *.tiff = svn:mime-type=image/tiff
+    *.zip = svn:mime-type=application/zip
+    *.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.xml = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.ent = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.dtd = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.vsl = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.xsd = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.xsl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.wsdl = svn:mime-type=text/xml;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.htm = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.html = svn:mime-type=text/html;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.css = svn:mime-type=text/css;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.js = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.jsp = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.txt = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+    *.java = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+    Revision
+    *.properties =
+svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+    Revision
+    *.sql = svn:mime-type=text/plain;svn:eol-style=native;svn:keywords=Date
+Revision
+
+
+<a name="TipsandSuggestions-Maventips"></a>
+### Maven tips
+
+*Contributed by:* Jacek and David
+*I want to make a small change in a module , for example openejb-core and
+then want to build a snapshot of openejb-standalone, start the server and
+test my change. What is the easiest and fastest way of doing it?*
+Run the following from within openejb-core
+
+    mvn -Dtest=none install
+
+Now run the following from within openejb-standalone
+
+    mvn -Dtest=none clean package
+
+*So what if I wanted to do the above in a single command?*
+It's possible with $\{module\} and $\{assemble\} properties and *create a
+profile or a plugin*
+
+Another option is and *if you're in bash*, here's what could be done
+
+    # camping out in assembly/openejb-standalone/
+    $ (cd ../../container/openejb-core && mvn clean install -Dtest=skip) && mvn
+clean install && ./try.sh
+
+That's one command, parens and all. The first "$" is the prompt,don't type
+that.  Then just edit ./try.sh to do what you're looking for on the
+standalone zip.
+
+The parens in bash are great as nothing done in there lasts -- at least no
+changes to the environment.  So you can 'cd' around all you want and not
+have to 'cd' back when done.
+
+For example
+
+    $ export FOO=hello && (export FOO=byebye) && echo $FOO
+    hello
+    
+    $ cd ~ && echo $PWD && (cd /tmp && echo $PWD) && echo $PWD
+    /Users/dblevins
+    /tmp
+    /Users/dblevins
+
+As well, several commands can be combined with '&&'.  Far better than just
+separating commands with ';' as if one of the commands fail, the remaining
+commands will not be executed.
+
+*Suggestion from Dain*
+> &nbsp;I suggest that you always do a full build (with tests) before
+> committing.  I do this even if the change is small because I have been
+> burned too many times by trivial changes. At the very least I suggest you
+> run
+> 
+>     mvn -Dtest=none clean install
+> 
+> Using \-Dtest=none instead of \-Dmaven.test.skip=true causes maven to
+> compile the test classes so you know that your change doesn't have compile
+> errors.
+> If you want to be thorough, run with \-Dassemble.
+
+<a name="TipsandSuggestions-JAXBUsage"></a>
+### JAXB Usage
+{note:title=TODO}
+Create a write up from here
+http://www.nabble.com/jaxb-question-td18023648.html
+{note}

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/validation-keys-audit-report.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/validation-keys-audit-report.mdtext b/src/main/jbake/content/dev/validation-keys-audit-report.mdtext
new file mode 100644
index 0000000..c0e9fbf
--- /dev/null
+++ b/src/main/jbake/content/dev/validation-keys-audit-report.mdtext
@@ -0,0 +1,282 @@
+Title: Validation Keys Audit Report
+{warning:title=Warning}This page is auto-generated. Any manual changes
+would be over-written the next time this page is regenerated{warning}
+{info:title=Audit Result}h2.Out of a total of 144 keys, 123 have been
+tested. Test coverage for keys is 85.41666666666666 %.{info}
+{table-plus:autoNumber=true}
+  
+  
+ | abstractAnnotatedAsBean | 
+ | ann.ejb.beanClass | 
+ | ann.ejb.notInterface | 
+ | ann.localRemote.generalconflict | 
+ | asynchronous.badExceptionType | 
+ | asynchronous.badReturnType | 
+ | asynchronous.methodignored | 
+ | asynchronous.missing | 
+ | callback.missing.possibleTypo | 
+ | cannot.validate | 
+ | client.missingMainClass | 
+ | ignoredClassAnnotation | 
+ | interfaceAnnotatedAsBean | 
+ | missing.dependent.class | 
+ | misslocated.class | 
+ | multiplyAnnotatedAsBean | 
+ | timeout.badReturnType | 
+ | timeout.invalidArguments | 
+ | timeout.missing.possibleTypo | 
+ | timeout.tooManyMethods | 
+ | xml.noEjbClass | 
+{table-plus}
+<a name="ValidationKeysAuditReport-Listofkeyswhichhavebeentested."></a>
+## List of keys which have been tested.
+{table-plus:autoNumber=true}
+<table>
+<tr><th> Key </td><td> Method which tests the key </th></tr>
+<tr><td> ann.ejb.ejbLocalObject </td><td> [org/apache/openejb/config/rules/InvalidEjbRefTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidejbreftest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.ejb.ejbObject </td><td> [org/apache/openejb/config/rules/InvalidEjbRefTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidejbreftest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.invalidConcurrencyAttribute </td><td> [org/apache/openejb/config/rules/CheckInvalidConcurrencyAttributeTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidconcurrencyattributetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.invalidTransactionAttribute </td><td> [org/apache/openejb/config/rules/CheckInvalidTransactionAttributeTest.annotation() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidtransactionattributetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.local.noAttributes </td><td> [org/apache/openejb/config/rules/CheckInvalidAnnotatedInterfacesTest.noAttributes() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidannotatedinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.localRemote.ambiguous </td><td> [org/apache/openejb/config/rules/CheckInvalidAnnotatedInterfacesTest.ambiguous() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidannotatedinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+  
+  
+<tr><td> ann.notAnInterface </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.remote.noAttributes </td><td> [org/apache/openejb/config/rules/CheckInvalidAnnotatedInterfacesTest.noAttributes() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidannotatedinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.remoteOrLocal.converse.parent </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.test2() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.remoteOrLocal.ejbHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.remoteOrLocal.ejbLocalHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.remoteOrLocal.ejbLocalObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ann.remoteOrLocal.ejbObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+  
+  
+  
+  
+  
+  
+<tr><td> aroundInvoke.missing.possibleTypo </td><td> [org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> aroundInvoke.mustThrowException </td><td> [org/apache/openejb/config/rules/CheckInvalidAroundTimeoutTest.testInvalidAroundTimeoutReturnValue() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidaroundtimeouttest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> callback.badModifier </td><td> [org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> callback.badReturnType </td><td> [org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> callback.invalidArguments </td><td> [org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> callback.missing </td><td> [org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> callback.sessionSynchronization.invalidUse </td><td> [org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> callback.sessionbean.invalidusage </td><td> [org/apache/openejb/config/rules/CheckInvalidCallbacksTest.test2() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcallbackstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> conflictingSecurityAnnotations </td><td> [org/apache/openejb/config/rules/CheckInvalidSecurityAnnotationsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidsecurityannotationstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> containerTransaction.ejbNameRequired </td><td> [org/apache/openejb/config/rules/CheckInvalidContainerTransactionTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcontainertransactiontest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> containerTransaction.noSuchEjbName </td><td> [org/apache/openejb/config/rules/CheckInvalidContainerTransactionTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidcontainertransactiontest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> dependsOn.circuit </td><td> [org/apache/openejb/config/rules/CheckDependsOnTest.dependsOn() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkdependsontest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> dependsOn.noSuchEjb </td><td> [org/apache/openejb/config/rules/CheckDependsOnTest.dependsOn() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkdependsontest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ejbAnnotation.onClassWithNoBeanInterface </td><td> [org/apache/openejb/config/rules/InvalidEjbRefTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidejbreftest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> ejbAnnotation.onClassWithNoName </td><td> [org/apache/openejb/config/rules/InvalidEjbRefTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidejbreftest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> entity.no.ejb.create </td><td> [org/apache/openejb/config/rules/CheckNoCreateMethodsTest.noCreateMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknocreatemethodstest.java?revision=head&view=markup-.html)
+</tr>
+  
+  
+<tr><td> injectionTarget.nameContainsSet </td><td> [org/apache/openejb/config/rules/CheckInjectionTargetsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinjectiontargetstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interceptor.callback.badReturnType </td><td> [org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interceptor.callback.invalidArguments </td><td> [org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interceptor.callback.missing </td><td> [org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interceptor.callback.missing.possibleTypo </td><td> [org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interceptor.unused </td><td> [org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interceptorBinding.ejbNameRequiredWithMethod </td><td> [org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interceptorBinding.noSuchEjbName </td><td> [org/apache/openejb/config/rules/CheckInvalidInterceptorTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidinterceptortest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interface.beanOnlyAnnotation </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> interfaceMethod.beanOnlyAnnotation </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.test1() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> methodPermission.ejbNameRequired </td><td> [org/apache/openejb/config/rules/CheckInvalidMethodPermissionsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidmethodpermissionstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> methodPermission.noSuchEjbName </td><td> [org/apache/openejb/config/rules/CheckInvalidMethodPermissionsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidmethodpermissionstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> missing.class </td><td> [org/apache/openejb/config/rules/CheckMissingClassTest.wrongClassType() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkmissingclasstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> no.busines.method </td><td> [org/apache/openejb/config/rules/CheckNoBusinessMethodTest.noBusinessMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknobusinessmethodtest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> no.busines.method.args </td><td> [org/apache/openejb/config/rules/CheckNoBusinessMethodTest.noBusinessMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknobusinessmethodtest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> no.busines.method.case </td><td> [org/apache/openejb/config/rules/CheckNoBusinessMethodTest.noBusinessMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknobusinessmethodtest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> no.home.create </td><td> [org/apache/openejb/config/rules/CheckNoCreateMethodsTest.noCreateMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknocreatemethodstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> noInterfaceDeclared.entity </td><td> [org/apache/openejb/config/rules/CheckWrongClassTypeTest.wrongClassType() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkwrongclasstypetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> permitAllAndRolesAllowedOnClass </td><td> [org/apache/openejb/config/rules/CheckInvalidSecurityAnnotationsTest.test() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidsecurityannotationstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceContextAnnotation.onClassWithNoName </td><td> [org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceContextAnnotation.onEntityManagerFactory </td><td> [org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceContextAnnotation.onNonEntityManager </td><td> [org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceContextExtented.nonStateful </td><td> [org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceContextRef.noMatches </td><td> [org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.noUnitName() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceContextRef.noPersistenceUnits </td><td> [org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceContextRef.noUnitName </td><td> [org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.noUnitName() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceContextRef.vagueMatches </td><td> [org/apache/openejb/config/rules/CheckPersistenceContextUsageTest.vagueMatches() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistencecontextusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceUnitAnnotation.onClassWithNoName </td><td> [org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceUnitAnnotation.onEntityManager </td><td> [org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceUnitAnnotation.onNonEntityManagerFactory </td><td> [org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceUnitRef.noMatches </td><td> [org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.noUnitName() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceUnitRef.noPersistenceUnits </td><td> [org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceUnitRef.noUnitName </td><td> [org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.noUnitName() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> persistenceUnitRef.vagueMatches </td><td> [org/apache/openejb/config/rules/CheckPersistenceUnitUsageTest.vagueMatches() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkpersistenceunitusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> resourceAnnotation.onClassWithNoName </td><td> [org/apache/openejb/config/rules/MistakenResourceRefUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/mistakenresourcerefusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> resourceAnnotation.onClassWithNoType </td><td> [org/apache/openejb/config/rules/MistakenResourceRefUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/mistakenresourcerefusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> resourceRef.onEntityManager </td><td> [org/apache/openejb/config/rules/MistakenResourceRefUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/mistakenresourcerefusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> resourceRef.onEntityManagerFactory </td><td> [org/apache/openejb/config/rules/MistakenResourceRefUsageTest.wrongUsage() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/mistakenresourcerefusagetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> session.no.ejb.create </td><td> [org/apache/openejb/config/rules/CheckNoCreateMethodsTest.noCreateMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknocreatemethodstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> unused.ejb.create </td><td> [org/apache/openejb/config/rules/CheckNoCreateMethodsTest.noCreateMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknocreatemethodstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> unused.ejbPostCreate </td><td> [org/apache/openejb/config/rules/CheckNoCreateMethodsTest.noCreateMethod() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checknocreatemethodstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> userTransactionRef.forbiddenForCmtdBeans </td><td> [org/apache/openejb/config/rules/CheckUserTransactionRefsTest.testSLSBwithUserTransaction() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkusertransactionrefstest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> wrong.class.type </td><td> [org/apache/openejb/config/rules/CheckWrongClassTypeTest.wrongClassType() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkwrongclasstypetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.businessLocal.beanClass </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBeanClass() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.businessLocal.ejbHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBHome() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+  
+  
+  
+  
+<tr><td> xml.businessLocal.ejbObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBObject() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+  
+  
+<tr><td> xml.businessRemote.beanClass </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBeanClass() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+  
+  
+<tr><td> xml.businessRemote.ejbLocalHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBLocalHome() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.businessRemote.ejbLocalObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBLocalObject() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+  
+  
+<tr><td> xml.businessRemote.notInterface </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testNotInterface() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.home.beanClass </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBeanClass() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.home.businessLocal </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBusinessLocal() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.home.businessRemote </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBusinessRemote() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.home.ejbLocalHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBLocalHome() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.home.ejbLocalObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBLocalObject() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.home.ejbObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBObject() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.home.notInterface </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testNotInterface() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.home.unknown </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testUnkown() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.invalidTransactionAttribute </td><td> [org/apache/openejb/config/rules/CheckInvalidTransactionAttributeTest.xml() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/checkinvalidtransactionattributetest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.local.beanClass </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBeanClass() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.local.businessLocal </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBusinessLocal() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.local.businessRemote </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBusinessRemote() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.local.ejbHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBHome() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.local.ejbLocalHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBLocalHome() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.local.ejbObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBObject() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.local.notInterface </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testNotInterface() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.local.unknown </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testUnkown() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localHome.beanClass </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBeanClass() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localHome.businessLocal </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBusinessLocal() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localHome.businessRemote </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBusinessRemote() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localHome.ejbHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBHome() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localHome.ejbLocalObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBLocalObject() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localHome.ejbObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBObject() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localHome.notInterface </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testNotInterface() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localHome.unknown </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testUnkown() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.localRemote.conflict </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testUnkown() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.remote.beanClass </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBeanClass() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.remote.businessLocal </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBusinessLocal() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.remote.businessRemote </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testBusinessRemote() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.remote.ejbHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBHome() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.remote.ejbLocalHome </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBLocalHome() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.remote.ejbLocalObject </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testEJBLocalObject() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.remote.notInterface </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testNotInterface() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+<tr><td> xml.remote.unknown </td><td> [org/apache/openejb/config/rules/InvalidInterfacesTest.testUnkown() ](-https://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/config/rules/invalidinterfacestest.java?revision=head&view=markup-.html)
+</tr>
+{table-plus}

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/website-dev.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/website-dev.mdtext b/src/main/jbake/content/dev/website-dev.mdtext
new file mode 100644
index 0000000..c929652
--- /dev/null
+++ b/src/main/jbake/content/dev/website-dev.mdtext
@@ -0,0 +1,51 @@
+Title: Working on the Website
+
+The easiest way to edit is to simply click the blue pencil icon in the upper right.  Have fun!
+
+## Offline Editing
+
+Editing offline can be fantastic for making big changes or documenting while coding.  You simply need to
+ check out the site source from svn:
+
+    svn co https://svn.apache.org/repos/asf/tomee/site/trunk website-source
+
+All the important source is in the `content` directory.  Just edit
+and check in the `.mdtext` files and they will appear in the staging
+site within seconds.
+
+For example, `documentation.mdtext` shows up as:
+
+[http://tomee.staging.apache.org/documentation.html]
+
+## Publishing
+
+Simply visit [https://cms.apache.org/tomee/publish](https://cms.apache.org/tomee/publish)
+
+It will prompt you for user/pass information and make you review the changes.  Enter the optional log message and click "sumbit", then done!
+
+The login information is cached for a while, so you won't have to enter user/pass information each time.
+
+
+## Building Locally <small>optional</small>
+
+Should you want to build the site locally, you can do so pretty easily with the right perl modules installed.
+
+First check out the CMS source:
+
+    svn co https://svn.apache.org/repos/infra/websites/cms/build apache-cms-source
+
+The cpan modules you have to install may vary.  Here are the ones I installed:
+
+    sudo cpan XML::RSS::Parser::Lite
+    sudo cpan XML::RSS::Parser
+    sudo cpan XML::Parser::Lite
+    sudo cpan XML::Atom::Feed
+
+What you need to install may be different, so perhaps just skip to the part
+where we attempt to run the build locally and see what shows up missing and
+install just those things.
+
+    cd apache-cms-source
+    ./build_site.pl  --source-base ~/path/to/website-source --target-base /tmp/site
+
+All the generated html content will be under `/tmp/site/content`

http://git-wip-us.apache.org/repos/asf/tomee-site-generator/blob/b34e23c0/src/main/jbake/content/dev/writing-examples.mdtext
----------------------------------------------------------------------
diff --git a/src/main/jbake/content/dev/writing-examples.mdtext b/src/main/jbake/content/dev/writing-examples.mdtext
new file mode 100644
index 0000000..4aebc06
--- /dev/null
+++ b/src/main/jbake/content/dev/writing-examples.mdtext
@@ -0,0 +1,95 @@
+Title: Writing Presentable Examples
+
+Writing an example is easy.  Any example is a good one.  The more the better.
+
+Writing examples that can be used in a presentations is hard.
+
+Some basic guidelines of writing examples:
+
+ - focus on one idea per example
+ - keep examples short
+    - one test case
+    - minimal code to make the point
+ - avoid showing an entire API in one example, if possible
+ - be conscious of the cost of "setting the stage"
+ - if examples get too big, split it
+
+# Noise vs signal
+
+It takes time to learn the example scenario (noise).  You need to learn the scenario before you can start to see the important parts (signal).
+
+Be very mindful of your noise to signal ratio.
+
+Example scenarios do not need to be believable and should not be elaborate.  Get to the point in as few classes as possible.
+
+You should be able to explain the entire example in two minutes.
+
+# Five ways to do the same thing
+
+If there are five ways to do the same thing, avoid making five different scenarios.  Copy the example to a new directory, and tweak it to show the variation.
+
+So say you used objects `Green`, `Square` and `Checkers` to show the basic concept and you wish to show the next variation of that same concept.  It is tempting to add to the same
+example objects `Yellow`, `Triangle` and `PolkaDots`.
+
+Avoid that.  Copy `Green`, `Square` and `Checkers` to a new example, change the package name, and update the few lines needed to show the difference.
+
+Where does your eye focus?
+
+ - 934 + 55 = 989
+ - 513 - 19 = 494
+ - 468 * 44 = 20592
+ - 708 / 89 = 7
+ - 401 % 63 = 23
+
+How about now?
+
+ - 102 + 35 = 137
+ - 102 - 35 = 67
+ - 102 * 35 = 3570
+ - 102 / 35 = 2
+ - 102 % 35 = 32
+
+The intent of the second set of numbers can be easily guessed.  An explanation that it is about the math operators confirms that and locks it in your brain.
+
+When presenting, you only get so much time to show people ideas.  If they have to learn a new set of names and understand their relationship on each tiny variation, it severely
+impacts their ability to see what is supposed to be the same and what is supposed to be different.  As a presenter this means you must show less and what you do show will be shown
+less clearly.
+
+When names and scenarios are consistent, the variations jump out quickly and with impact.
+
+If there are five ways to do the same thing, show the same thing five different ways.
+
+# Short Class Names
+
+You don't need to document the example with the class name.  Class names that are a mouthful cannot be effectively used in presentations or screencasts.
+
+Try to stick with one or two word class names.  Three tops.
+
+Avoid:
+
+ - `BeanWithTwoDecoratorsAndOneProducerMethod`
+
+Try instead:
+
+ - `BlueBean`
+
+Shorter names can be easier for all sorts of reasons.  Less words to keep "floating in the head" when trying to truly see an example.
+
+Using the numbers from the previous section, which is easier?
+
+ - 102 + 35 = 137
+ - 102 - 35 = 67
+ - 102 * 35 = 3570
+ - 102 / 35 = 2
+ - 102 % 35 = 32
+
+Or:
+
+ - 12 + 3 = 15
+ - 12 - 3 = 9
+ - 12 * 3 = 36
+ - 12 / 3 = 4
+ - 12 % 3 = 0
+
+There's a finite amount people can keep in their head, save space for the important stuff.
+