tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dblev...@apache.org
Subject [10/30] tomee git commit: Rename *.mdtext files to *.md
Date Sun, 02 Dec 2018 02:20:37 GMT
http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/functional-testing-with-openejb,-jetty-and-selenium.mdtext
----------------------------------------------------------------------
diff --git a/docs/functional-testing-with-openejb,-jetty-and-selenium.mdtext b/docs/functional-testing-with-openejb,-jetty-and-selenium.mdtext
deleted file mode 100644
index 78a3523..0000000
--- a/docs/functional-testing-with-openejb,-jetty-and-selenium.mdtext
+++ /dev/null
@@ -1,236 +0,0 @@
-Title: Functional testing with OpenEJB, Jetty and Selenium
-Obviously, OpenEJB is great for unit testing EJBs, but I wondered whether I
-might also be able to use this embedded functionality to functionally test
-my application. You can use tools like Selenium, or HtmlUnit to run
-functional tests as if the user were sat at their browser typing text, and
-clicking links and buttons. This however means you have to have your app
-running on your app server, and you need to have consistent test data -
-otherwise a test might pass on one developers machine, but fail on another.
-Here's one approach that you could take to completely deploy your webapp
-within a test, and functionally test it with a tool like Selenium. There's
-also some sample code demonstrating this, available [here](http://people.apache.org/~jgallimore/PersonApp.zip)
-.
-
-
-<a name="FunctionaltestingwithOpenEJB,JettyandSelenium-Creatinganembeddedserver"></a>
-### Creating an embedded server
-
-I created a class to start my embedded OpenEJB and Jetty instances and
-configure them to see the EJB and WAR modules of my application:
-
-
-    public class EmbeddedServer {
-        private static EmbeddedServer instance = new EmbeddedServer();
-        private Server server;
-    
-        private EmbeddedServer() {
-    	try {
-    	    // initialize OpenEJB & add some test data
-    	    Properties properties = new Properties();
-    	    properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
-    	    InitialContext ic = new InitialContext(properties);
-    	    PeopleFacade facade = (PeopleFacade) ic.lookup("PeopleFacadeEJBRemote");
-    	    new TestFixture(facade).addTestData();
-    
-    	    // setup web app
-    	    WebAppContext context = new WebAppContext();
-    	    context.setWar(computeWarPath());
-    	    InitialContext initialContext = setupJndi(context);
-    
-    	    // start the server
-    	    context.setServletHandler(new EmbeddedServerServletHandler(initialContext));
-    	    context.setContextPath("/");
-    	    server = new Server(9091);
-    	    server.addHandler(context);
-    
-    	    server.start();
-    	} catch (Exception e) {
-    	    e.printStackTrace();
-    	}
-        }
-    
-        private InitialContext setupJndi(WebAppContext context) throws NamingException {
-    	// setup local JNDI
-    	InitialContext initialContext = new InitialContext();
-    	WebApp webApp = getWebApp(context);
-    	Collection<EjbRef> refs = webApp.getEjbRef();
-    	for (EjbRef ref : refs) {
-    	    String ejbLink = ref.getEjbLink();
-    
-    	    // get enterprise bean info
-    	    EnterpriseBeanInfo beanInfo = new EJBHelper().getEJBInfo(ejbLink);
-    	    if (beanInfo.jndiNames != null && beanInfo.jndiNames.size() > 0) {
-    		String jndiName = "java:openejb/ejb/" + beanInfo.jndiNames.get(0);
-    		initialContext.bind("java:comp/env/" + ref.getEjbRefName(), new LinkRef(jndiName));
-    	    }
-    	}
-    	return initialContext;
-        }
-    
-        private String computeWarPath() {
-    	String currentPath = new File(".").getAbsolutePath();
-    	String warPath;
-    
-            String[]  pathParts = currentPath.split("(\\\\|/)+");
-    
-    	int webPart = Arrays.asList(pathParts).indexOf("PersonWEB");
-    	if (webPart == -1) {
-    	    warPath = "PersonWEB/src/main/webapp";
-    	} else {
-    	    StringBuffer buffer = new StringBuffer();
-    
-    	    for (int i = 0; i < webPart; i++) {
-                    buffer.append(pathParts[i]);
-    		buffer.append(File.separator);
-    	    }
-    
-    	    buffer.append("PersonWEB/src/main/webapp");
-    	    warPath = buffer.toString();
-    	}
-    	return warPath;
-        }
-    
-        public static EmbeddedServer getInstance() {
-    	return instance;
-        }
-    
-        public Server getServer() {
-    	return server;
-        }
-    
-        public static void main(String[]  args) {
-    	try {
-    	    EmbeddedServer.getInstance().getServer().join();
-    	} catch (Exception e) {
-    	    e.printStackTrace();
-    	}
-        }
-    
-        private WebApp getWebApp(WebAppContext context) {
-    	WebApp webApp = null;
-    
-    	try {
-    	    FileInputStream is = new FileInputStream(new File(context.getWar() + "/WEB-INF/web.xml").getAbsolutePath());
-    	    webApp = (WebApp) JaxbJavaee.unmarshal(WebApp.class, is);
-    	} catch (Exception e) {
-    	    e.printStackTrace();
-    	}
-    	return webApp;
-        }
-    } 
-
-
-This class sets up an embedded instance of Jetty, running on port 9091.
-You'll notice the setupJndi() method. This looks through the ejb-ref
-entries in web.xml (which we deserialize using the openejb-jee library),
-and adds relevant LinkRefs to the JNDI tree, so you can lookup beans using
-the java:comp/env/bean format. I've added a main() method here for
-convenience, so you can run this straight from an IDE, and record tests
-using tools like the Selenium Firefox plugin.
-
-<a name="FunctionaltestingwithOpenEJB,JettyandSelenium-Supporting@EJBDependencyinjection"></a>
-### Supporting @EJB Dependency injection
-
-In the last code sample, we also set up a custom ServletHandler in Jetty -
-this is to perform dependency injection. The custom ServletHandler looks
-like this:
-
-
-    public class EmbeddedServerServletHandler extends ServletHandler {
-        private InitialContext initialContext;
-    
-        public EmbeddedServerServletHandler(InitialContext initialContext) {
-    	this.initialContext = initialContext;
-        }
-    
-        public Servlet customizeServlet(Servlet servlet) throws Exception {
-    	Class<? extends Servlet> servletClass = servlet.getClass();
-            Field[]
- declaredFields = servletClass.getDeclaredFields();
-    
-    	for (Field declaredField : declaredFields) {
-                Annotation[]
- annotations = declaredField.getAnnotations();
-    
-    	    for (Annotation annotation : annotations) {
-    		if (EJB.class.equals(annotation.annotationType())) {
-    		    // inject into this field
-    		    Class<?> fieldType = declaredField.getType();
-    		    EnterpriseBeanInfo beanInfo = getBeanFor(fieldType);
-    		    if (beanInfo == null) {
-    			continue;
-    		    }
-                       
-    		    String jndiName = "java:openejb/ejb/" + beanInfo.jndiNames.get(0);
-    		    Object o = initialContext.lookup(jndiName);
-    
-    		    declaredField.setAccessible(true);
-    		    declaredField.set(servlet, o);
-    		}
-    	    }
-    	}
-    
-    	return super.customizeServlet(servlet);
-        }
-    
-        private EnterpriseBeanInfo getBeanFor(Class<?> fieldType) {
-    	return new EJBHelper().getBeanInfo(fieldType);
-        }
-    } 
-    
-
-
-This looks up deployed beans that match the field type, and uses reflection
-to set the field.
-
-<a name="FunctionaltestingwithOpenEJB,JettyandSelenium-WritingaFunctionaltest"></a>
-### Writing a Functional test
-
-We can now write a functional test. I use a base abstract class to make
-sure the Embedded server is running, and start Selenium:
-
-
-    public abstract class FunctionalTestCase extends TestCase {
-        protected DefaultSelenium selenium;
-    
-        protected void setUp() throws Exception {
-    	super.setUp();
-    	EmbeddedServer.getInstance();
-    	selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "http://localhost:9091/");
-    	selenium.start();
-        }
-    
-        protected void tearDown() throws Exception {
-    	selenium.stop();
-        }
-    }
-
-
-and I can then I write a test like this:
-
-
-    public class AddPersonTest extends FunctionalTestCase {
-        public void testShouldAddAPerson() throws Exception {
-    	selenium.open("/People");
-    	selenium.type("firstname", "Jonathan");
-    	selenium.type("lastname", "Gallimore");
-            selenium.click("//input[@name='add' and @value='Add']");
-    	selenium.waitForPageToLoad("30000");
-    	selenium.type("filter", "gallimore");
-    	selenium.click("submit");
-    	selenium.waitForPageToLoad("30000");
-            assertEquals(1, selenium.getXpathCount("//div[@id='people']/ul/li").intValue());
-            assertEquals("Jonathan Gallimore", selenium.getText("//div[@id='people']/ul/li[1]"));
-    
-        }
-    } 
-
-
-<a name="FunctionaltestingwithOpenEJB,JettyandSelenium-Samplecode"></a>
-### Sample code
-
-I've made a sample project which demonstrates this, source is available [here](http://people.apache.org/~jgallimore/PersonApp.zip)
-. You'll need Maven to build it, and you can build it and run the tests by
-running 'mvn clean install'. If want to run the tests from your IDE, you'll
-need to have a Selenium server running, which you can do by running 'mvn
-selenium:start-server'. 

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/generating-ejb-3-annotations.mdtext
----------------------------------------------------------------------
diff --git a/docs/generating-ejb-3-annotations.mdtext b/docs/generating-ejb-3-annotations.mdtext
deleted file mode 100644
index 4f849f8..0000000
--- a/docs/generating-ejb-3-annotations.mdtext
+++ /dev/null
@@ -1,57 +0,0 @@
-Title: Generating EJB 3 annotations
-<a name="GeneratingEJB3annotations-GeneratingEJB3annotations"></a>
-# Generating EJB 3 annotations
-
-The OpenEJB Eclipse plugin is able to provide some assistance in helping
-you migrate EJB 2.x projects to EJB 3.0, by analyzing your ejb-jar.xml
-file, and adding EJB annotations to your source code. This page will show
-you how to use this functionality.
-
-First of all you will need to add the EJB 3.0 API jars to the classpath of
-your project. If you are using Maven, you can add the following to your POM
-(you will need to update your Eclipse project using mvn eclipse:eclipse
-afterwards)
-
-
-      <dependencies>
-        ...
-        <dependency>
-          <groupId>org.apache.openejb</groupId>
-          <artifactId>javaee-api</artifactId>
-          <version>5.0-1</version>
-          <scope>provided</scope>
-        </dependency>
-      </dependencies>
-
-
-Alternatively, import the API jars into your project, and add them to your
-build path.
-
-Next, click the 'OpenEJB' menu on the menubar, and select 'Generate
-Annotations'.
-
-!http://www.jrg.me.uk/openejb/annotations_step_1.jpg!
-
-Select the project you would like to work with, if it isn't already
-selected. Click 'Next'.
-
-!http://www.jrg.me.uk/openejb/annotations_step_2.jpg!
-
-Select your ejb-jar.xml and (optionally) your openejb-jar.xml files. Select
-or deselect the other options as appropriate, and select 'Next'.
-
-Options:
-
-    * Alter SessionBean interfaces - This option makes your session beans
-implement your remote / local interfaces as opposed to
-javax.ejb.SessionBean, and stops your remote / local interfaces extending
-javax.ejb.EJBObject.
-    * Add @Remote and @RemoteHome annotations - This adds @Remote and
-@RemoteHome annotations appropriately
-    * Convert entity beans to POJOs - This options converts abstract CMP
-classes to POJOs generating simple getters and setters.
-
-!http://www.jrg.me.uk/openejb/annotations_step_3.jpg!
-
-Review the changes that the plugin will make to your source code. Uncheck
-any changes you don't want to apply, and click 'Finish'.

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/getting-started.mdtext
----------------------------------------------------------------------
diff --git a/docs/getting-started.mdtext b/docs/getting-started.mdtext
deleted file mode 100644
index e3b8ab1..0000000
--- a/docs/getting-started.mdtext
+++ /dev/null
@@ -1,169 +0,0 @@
-Title: Getting Started
-##The following instructions are written using Eclipse 3.2. We will
-refer to the install location of OpenEJB as OPENEJB_HOME
-
-Here are some basic steps you need to perform to get started with OpenEJB
-1. Download and install OpenEJB
-1. Setup your development environment
-1. Write an EJB
-1. Write an EJB client
-1. Start the server
-1. Deploy the EJB
-1. Run the client
-1. Stop the server
-
-> 
-
-<a name="GettingStarted-&nbsp;1.DownloadandInstallOpenEJB"></a>
-##1. Download and Install OpenEJB
-
-Follow these&nbsp;[instructions](http://cwiki.apache.org/confluence/display/OPENEJB/Quickstart)
-
-<a name="GettingStarted-&nbsp;2.Setupyourdevelopmentenvironment"></a>
-##2. Setup your development environment
-
-
-<a name="GettingStarted-&nbsp;Eclipse"></a>
-###Eclipse
-
-- Open eclipse and create a new java project. Name it EJBProject
-- Add the following jars to the build path of your project
--- OPENEJB_HOME/lib/geronimo-ejb_3.0_spec-1.0.jar
-- Now create another project named EJBClient. This is where we will write a test client
-- Add the following jars to the build path of this project
--- OPENEJB_HOME/lib/openejb-client-3.0.0-SNAPSHOT.jar
-- Add the EJBProject to the classpath of the EJBClient project
-
-<a name="GettingStarted-&nbsp;3.StarttheServer"></a>
-##3. Start the Server
-
-Open the command prompt and run the following command:
-
-    d:\openejb-3.0.0-SNAPSHOT\bin\openejb start
-
-You will get the following message on the console:
-
-    D:\openejb-3.0.0-SNAPSHOT>bin\openejb start
-    Apache OpenEJB 3.0.0-SNAPSHOT	 build: 20070830-07:53
-    http://tomee.apache.org/
-    OpenEJB ready.
-    [OPENEJB:init]
-     OpenEJB Remote Server
-          ** Starting Services **
-          NAME		       IP	       PORT
-          httpejbd	       0.0.0.0	       4204
-          admin thread	       0.0.0.0	       4200
-          ejbd		       0.0.0.0	       4201
-          hsql		       0.0.0.0	       9001
-          telnet	       0.0.0.0	       4202
-        -------
-        Ready!
-
-
-<a name="GettingStarted-&nbsp;4.WriteanEJB"></a>
-##4. Write an EJB
-
-In the EJB project create a new interface named Greeting
-
-    package com.myejbs;
-    
-    import javax.ejb.Remote;
-    
-    @Remote
-    public interface Greeting {
-      public String greet();
-    }
-
-Now create a new class named GreetingBean which implements the above
-interface (shown below)
-
-    package com.myejbs;
-    
-    import javax.ejb.Stateless;
-    
-    @Stateless
-    public class GreetingBean implements Greeting {
-    
-    	public String greet() {
-    		return "My First Remote Stateless Session Bean";
-    	}
-    
-    }
-
-
-<a name="GettingStarted-&nbsp;5.DeploytheEJB"></a>
-## 5. Deploy the EJB
-
-1. Export the EJBProject as a jar file. Name it greeting.jar and put it in
-the OPENEJB_HOME/apps directory.
-1. Open the command prompt and type in the following command:
-
-
-    d:\openejb-3.0.0-SNAPSHOT > bin\openejb deploy apps\greeting.jar
-
-This should give you the following output:
-
-    D:\openejb-3.0.0-SNAPSHOT>bin\openejb deploy apps\greeting.jar
-    
-    Application deployed successfully at \{0\}
-    
-    App(id=D:\openejb-3.0.0-SNAPSHOT\apps\greeting.jar)
-    
-        EjbJar(id=greeting.jar, path=D:\openejb-3.0.0-SNAPSHOT\apps\greeting.jar)
-    
-    	Ejb(ejb-name=GreetingBean, id=GreetingBean)
-    
-    	    Jndi(name=GreetingBeanRemote)
-
-{color:#330000}{*}Notice the Jndi(name=GreetingBeanRemote) information.
-Keep this handy as this is the JNDI name of the bean which the client will
-use for lookup{*}{color}
-
-<a name="GettingStarted-&nbsp;6.WritetheClient"></a>
-##6. Write the Client
-
-In the EJBClient project, create a class named Client (shown below)
-
-    package com.myclient;
-    
-    import com.myejbs.Greeting;
-    
-    import javax.naming.InitialContext;
-    import java.util.Properties;
-    
-    public class Client {
-        public static void main(String[] args) {
-    
-            try {
-                Properties p = new Properties();
-                p.put("java.naming.factory.initial", "org.openejb.client.RemoteInitialContextFactory");
-                p.put("java.naming.provider.url", "ejbd://127.0.0.1:4201");
-                InitialContext ctx = new InitialContext(p);
-                Greeting greeter = (Greeting) ctx.lookup("GreetingBeanRemote");
-                String message = greeter.greet();
-                System.out.println(message);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-
-<a name="GettingStarted-&nbsp;7.RuntheClient"></a>
-##7. Run the Client
-
-Open Client.java in eclipse and run it as a java application. You should
-see the following message in the console view:
-
-    My First Remote Stateless Session Bean
-
-
-<a name="GettingStarted-&nbsp;8.Stoptheserver"></a>
-##8. Stop the server
-
-There are two ways to stop the server:
-1. You can press Ctrl+c on the command prompt to stop the server
-1. On the command prompt type in the following command:
-
-    D:\openejb-3.0.0-SNAPSHOT>bin\openejb stop
-

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/hello-world.mdtext
----------------------------------------------------------------------
diff --git a/docs/hello-world.mdtext b/docs/hello-world.mdtext
deleted file mode 100644
index ab23e37..0000000
--- a/docs/hello-world.mdtext
+++ /dev/null
@@ -1,246 +0,0 @@
-Title: Hello World
-This page shows the basic steps required to create, build, and run an EJB
-and EJB client in its most minimum form.  It does not hide steps or rely on
-special build tools or IDEs and is about the most stripped down you can
-get.
-
-_See the [Examples](examples.html)
- page for a full list of examples that range from [@Stateles|Simple Stateless Example]
- and [@Stateful|Simple Stateful Example]
- beans, to [Dependency Injection|Injection of env-entry Example]
-, JDBC [DataSources|Injection of DataSource Example]
-, JPA [EntityManagers|Injection of EntityManager Example]
- and more._
-
-<a name="HelloWorld-AbasicEJBexample"></a>
-## A basic EJB example
-
-Here are some basic steps you need to perform to get started with OpenEJB
-
-1. Download and install OpenEJB
-1. Setup your development environment
-1. Write an EJB
-1. Write an EJB client
-1. Start the server
-1. Deploy the EJB
-1. Run the client
-1. Stop the server
-
-<a name="HelloWorld-DownloadandinstallOpenEJB"></a>
-## Download and install OpenEJB
-
-This example pertains to OpenEJB 3.0 which can be [downloaded here](http://archive.apache.org/dist/openejb/3.0)
-.  Once you have downloaded OpenEJB, you can then simply extract the
-contents of the downloaded file to whichever directory you want to install
-OpenEJB in. 
-
-After extracting the file contents, you should now see a directory named
-openejb-3.0. If you look under this directory, you will find a few more
-directories:
-- *bin*: Contains commands to start/stop the server (You can also do a lot
-of other stuff like deploy/undeploy, but we will just talk about things
-needed to get you started)
-- *lib*: Contains several jar files (you only need of few of these jars in
-your classpath to do EJB development)
-- *apps*: Once you create your EJB's and jar them up, you can place your
-jar file in this directory and start the server. The server will
-automatically deploy all the EJB's contained in this JAR.
-- *conf*: This directory contains all the configuration files. Although you
-may not see any file except for a README.txt file right now, but after you
-start the server, the required configuration files will be automatically
-created. It is highly recommeded to read the README.txt file under this
-directory
-- *logs*: Contains log files. 
-
-<a name="HelloWorld-Setupyourdevelopmentenvironment"></a>
-## Setup your development environment
-
-<a name="HelloWorld-Createaworkingdirectory"></a>
-### Create a working directory
-Assuming you are in your home directory, create a directory named projects
-
-    karan@poweredge:~$ mkdir projects
-
-Go to the projects directory
-
-    karan@poweredge:~$ cd projects
-
-We will do all our work in this directory.
-<a name="HelloWorld-InstallJava"></a>
-### Install Java
-Download and install Java (version 5 or higher). Also set it up so that you
-can run the java and javac commands from any directory
-<a name="HelloWorld-SetOPENEJB_HOME"></a>
-### Set OPENEJB_HOME
-We will setup this variable to refer to the openejb install location.
-
-    karan@poweredge:~/projects$ export
-OPENEJB_HOME=/home/karan/install/openejb-3.0
-
-<a name="HelloWorld-WriteanEJB"></a>
-## Write an EJB
-Whatever files you create should be placed under the projects directory
-<a name="HelloWorld-CreatetheRemoteInterface"></a>
-### Create the Remote Interface
-Using your favorite editor, create a file named Hello.java (shown below)
-
-    package org.acme;
-    import javax.ejb.Remote;
-    @Remote
-    public interface Hello{
-    	public String sayHello();
-    }
-    
-
-<a name="HelloWorld-CreatetheBeanClass"></a>
-### Create the Bean Class
-Now create a file named HelloBean.java (shown below)
-
-    package org.acme;
-    import javax.ejb.Stateless;
-    @Stateless
-    public class HelloBean implements Hello{
-    	public String sayHello(){
-    		return "Hello World!!!!";
-    	}
-    }
-    
-
-<a name="HelloWorld-Compilethesourcecode"></a>
-### Compile the source code
-Since we have imported the javax.ejb.Stateless and javax.ejb.Remote
-annotations, we need these in our classpath to compile our source code.
-These annotations can be found in the $OPENEJB_HOME/lib/javaee-5.0-1.jar.
-Lets compile our source (make sure you are in the projects directory)
-
-    karan@poweredge:~/projects$ javac -cp $OPENEJB_HOME/lib/javaee-5.0-1.jar -d
-. *.java
-
-The above will compile all the .java files and also create the required
-packages. You should now see a package named org under the projects
-directory. All class files should be under org/acme directory.
-<a name="HelloWorld-PackagetheEJB"></a>
-### Package the EJB
-To package the EJB into a JAR, run the following command while you are in
-the projects directory
-
-    karan@poweredge:~/projects$ jar cvf hello.jar org
-
-The above command will package everything under the org directory
-(including the org directory itself) into a jar file named hello.jar. Below
-is the output from running the above command:
-
-    karan@poweredge:~/projects$ jar cvf hello.jar org
-    added manifest
-    adding: org/(in = 0) (out= 0)(stored 0%)
-    adding: org/acme/(in = 0) (out= 0)(stored 0%)
-    adding: org/acme/Hello.class(in = 203) (out= 168)(deflated 17%)
-    adding: org/acme/HelloBean.class(in = 383) (out= 275)(deflated 28%)
-
-<a name="HelloWorld-WriteanEJBClient"></a>
-## Write an EJB Client
-Now we will write a Client class which will lookup the EJB , invoke the
-sayHello() business method and print the value returned from the method.
-While you are in the projects directory, create a new file named
-HelloClient.java . Add the following to this file:
-
-    package org.acme;
-    import java.util.Properties;
-    import javax.naming.InitialContext;
-    import javax.naming.Context;
-    import javax.rmi.PortableRemoteObject;
-    public class HelloClient{
-            public static void main(String[]
- args) throws Exception{
-    		Properties props = new Properties();
-    	       
-props.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.RemoteInitialContextFactory");
-    		props.put(Context.PROVIDER_URL,"ejbd://127.0.0.1:4201");
-    		Context ctx = new InitialContext(props);
-    		Object ref = ctx.lookup("HelloBeanRemote");
-    		Hello h =
-(Hello)PortableRemoteObject.narrow(ref,Hello.class);
-    		String result = h.sayHello();
-    		System.out.println(result);
-    	}
-    }
-    
-
-<a name="HelloWorld-CompileHelloClient.java"></a>
-### Compile HelloClient.java
-Run the following command:
-
-    karan@poweredge:~/projects$ javac  -d . HelloClient.java
-
-<a name="HelloWorld-StarttheServer"></a>
-## Start the Server
-Go to the OpenEJB install directory (i.e. OPENEJB_HOME) and run the
-following command:
-
-    karan@poweredge:~/install/openejb-3.0$ bin/openejb start
-
-Once the Server starts, you will see an output similar to the below in your
-console:
-
-    karan@poweredge:~/install/openejb-3.0$ bin/openejb start
-    Apache OpenEJB 3.0    build: 20070926-12:34
-    http://tomee.apache.org/
-    OpenEJB ready.
-    [OPENEJB:init]
- OpenEJB Remote Server
-      ** Starting Services **
-      NAME		       IP	       PORT  
-      httpejbd	       0.0.0.0	       4204  
-      telnet	       0.0.0.0	       4202  
-      ejbd		       0.0.0.0	       4201  
-      hsql		       0.0.0.0	       9001  
-      admin thread	       0.0.0.0	       4200  
-    -------
-    Ready!
-
-Take out a minute to browse through the conf and logs directories. You
-should now see some configuration and log files under the respective
-directories. 
-<a name="HelloWorld-DeploytheEJB"></a>
-## Deploy the EJB
-We will now use the deploy command to deploy the EJB in hello.jar. While
-you are in the projects directory, run the following command:
-
-    karan@poweredge:~/projects$ $OPENEJB_HOME/bin/openejb deploy hello.jar
-
-The above command should give you the following output:
-
-    karan@poweredge:~/projects$ $OPENEJB_HOME/bin/openejb deploy hello.jar
-    Application deployed successfully at "hello.jar"
-    App(id=/home/karan/projects/hello.jar)
-        EjbJar(id=hello.jar, path=/home/karan/projects/hello.jar)
-    	Ejb(ejb-name=HelloBean, id=HelloBean)
-    	    Jndi(name=HelloBeanRemote)
-
-Notice how the output neatly lays out various deployment details. One thing
-you might want to note from the output is the JNDI name. This is the JNDI
-name we used in the client to lookup the EJB
-<a name="HelloWorld-RuntheClient"></a>
-## Run the Client
-While you are in the projects directory, run the following command to run
-the client:
-
-    karan@poweredge:~/projects$ java -cp
-$OPENEJB_HOME/lib/openejb-client-3.0.jar:$OPENEJB_HOME/lib/javaee-5.0-1.jar:.
- org.acme.HelloClient
-
-The above should give you the following output:
-
-    Hello World!!!!
-
-<a name="HelloWorld-Help!,itdidn'tworkforme!!."></a>
-## Help! , it didn't work for me!!.
-No problem, we are here to help. Just send us an email at
-users@tomee.apache.org. If possible, send us the contents of
-logs/openejb.log file in the email. 
-
-<a name="HelloWorld-Lookingformore?"></a>
-#  Looking for more?
-
-More EJB 3.0 examples, sample applications, tutorials and howtos available [here](examples.html)
-.

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/hibernate.mdtext
----------------------------------------------------------------------
diff --git a/docs/hibernate.mdtext b/docs/hibernate.mdtext
deleted file mode 100644
index f56a1b3..0000000
--- a/docs/hibernate.mdtext
+++ /dev/null
@@ -1,94 +0,0 @@
-Title: Hibernate
-<a name="Hibernate-Samplepersistence.xml"></a>
-# Sample persistence.xml
-
-For a unit called "movie-unit" using two datasources called "movieDatabase"
-and "movieDatabaseUnmanaged" the following persistence.xml would work.
-
-    <persistence version="1.0"
-           xmlns="http://java.sun.com/xml/ns/persistence"
-           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-           xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
-           http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
-
-      <persistence-unit name="movie-unit">
-        <provider>org.hibernate.ejb.HibernatePersistence</provider>
-        <jta-data-source>movieDatabase</jta-data-source>
-        <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
-
-        <properties>
-          <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
-          <property name="hibernate.transaction.manager_lookup_class"
-                    value="org.apache.openejb.hibernate.TransactionManagerLookup"/>
-        </properties>
-      </persistence-unit>
-    </persistence>
-
-    
-Note that as of OpenEJB 3.1 you do not need to set the
-`hibernate.transaction.manager_lookup_class` as it will be set for you
-automatically and will overwrite any "org.hibernate.transaction." strategy
-class already set while leaving any custom strategy class you may have
-implemented untouched.
-
-The result is that you can leave your
-`hibernate.transaction.manager_lookup_class` property configured to your
-production environment and OpenEJB will update it just for the scope
-testing.  On the other hand if you have implemented a custom
-`org.hibernate.transaction.TransactionManagerLookup` strategy it will
-always be used and never replaced by OpenEJB.
-
-Note that if you need more functionality in this area we are always happy
-to add it.
-    
-# Not using OpenEJB in production?
-    
-If you're using OpenEJB 3.0 which does not support the dynamic switching of
-the `hibernate.transaction.manager_lookup_class` this is one way to achieve
-it.
-
-A custom implementation of Hibernate's *TransactionManagerLookup* strategy
-like the following will do the trick.  This
-"DynamicTransactionManagerLookup" class can be packed in your jar and
-deployed with your app.
-    
-    import org.hibernate.HibernateException;
-    import org.hibernate.transaction.TransactionManagerLookup;
-    import javax.transaction.TransactionManager;
-    import java.util.Properties;
-
-    public class DynamicTransactionManagerLookup implements TransactionManagerLookup {
-
-        private TransactionManagerLookup impl;
-
-        public DynamicTransactionManagerLookup() {
-            String[] strategies = {
-                    "org.apache.openejb.hibernate.TransactionManagerLookup",
-                    "org.hibernate.transaction.JBossTransactionManagerLookup"
-            };
-
-            for (String className : strategies) {
-                try {
-                    Class<?> clazz = this.getClass().getClassLoader().loadClass(className);
-                    impl = (TransactionManagerLookup) clazz.newInstance();
-                    break;
-                } catch (Exception e) {
-                }
-            }
-
-            if (impl == null) throw new IllegalStateException("No TransactionManagerLookup available");
-        }
-
-        public TransactionManager getTransactionManager(Properties properties) throws HibernateException {
-            return impl.getTransactionManager(properties);
-        }
-
-        public String getUserTransactionName() {
-            return impl.getUserTransactionName();
-        }
-    }
-
-
-Then set the Hibernate specific configuration property
-*hibernate.transaction.manager_lookup_class* to the name of the factory
-that you just created.

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/initialcontext-config.mdtext
----------------------------------------------------------------------
diff --git a/docs/initialcontext-config.mdtext b/docs/initialcontext-config.mdtext
deleted file mode 100644
index a4b14b0..0000000
--- a/docs/initialcontext-config.mdtext
+++ /dev/null
@@ -1,24 +0,0 @@
-Title: InitialContext Configuration
-
-
-A InitialContext can be declared via xml in the `<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file using a declaration like the following.  All properties in the element body are optional.
-
-    <JndiProvider id="myInitialContext" type="javax.naming.InitialContext">
-    </JndiProvider>
-
-Alternatively, a InitialContext can be declared via properties in the `<tomee-home>/conf/system.properties` file or via Java VirtualMachine `-D` properties.  The properties can also be used when embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
-
-    myInitialContext = new://JndiProvider?type=javax.naming.InitialContext
-
-Properties and xml can be mixed.  Properties will override the xml allowing for easy configuration change without the need for ${} style variable substitution.  Properties are not case sensitive.  If a property is specified that is not supported by the declared InitialContext a warning will be logged.  If a InitialContext is needed by the application and one is not declared, TomEE will create one dynamically using default settings.  Multiple InitialContext declarations are allowed.
-# Supported Properties
-<table class="mdtable">
-<tr>
-<th>Property</th>
-<th>Type</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</table>
-
-

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/installation-drop-in-war.mdtext
----------------------------------------------------------------------
diff --git a/docs/installation-drop-in-war.mdtext b/docs/installation-drop-in-war.mdtext
deleted file mode 100644
index 34a3d42..0000000
--- a/docs/installation-drop-in-war.mdtext
+++ /dev/null
@@ -1,41 +0,0 @@
-Title: Installing TomEE using the drop-in .war approach
-Notice:    Licensed to the Apache Software Foundation (ASF) under one
-           or more contributor license agreements.  See the NOTICE file
-           distributed with this work for additional information
-           regarding copyright ownership.  The ASF licenses this file
-           to you under the Apache License, Version 2.0 (the
-           "License"); you may not use this file except in compliance
-           with the License.  You may obtain a copy of the License at
-           .
-             http://www.apache.org/licenses/LICENSE-2.0
-           .
-           Unless required by applicable law or agreed to in writing,
-           software distributed under the License is distributed on an
-           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-           KIND, either express or implied.  See the License for the
-           specific language governing permissions and limitations
-           under the License.
-
-If you prefer, TomEE can be setup by deploying a .war file into an existing Tomcat 7.x installation, as opposed to using the all-in-one bundle. This guide provides a set of step-by-step instructions to this approach. Please note that TomEE 1.7.x does not recommend Tomcat versions less than 7.0.54. Tomcat 8 is not currently supported in the released version, but you can check out the developer branch to see progress [here](dev/source-code.html).
-
- - Download the Apache Tomcat 7.0.55 server. <a href="http://tomcat.apache.org/download-70.cgi" target="_blank">http://tomcat.apache.org/download-70.cgi</a>
- - Unzip the Tomcat distribution file.
- - Update $CATALINA_HOME/conf/tomcat-users.xml to add a tomee user to allow access to the installer page.
-
-        <!-- Activate/create these lines to get access to TomEE GUI -->
-    	<role rolename="tomee-admin" />
-    	<user username="tomee" password="tomee" roles="tomee-admin" />
-
- - Download the .war file you wish to use - either the tomee-webapp-1.7.1.war (for the webprofile installation) or tomee-webapp-plus-1.7.1.war (for the plus version).
- - Copy and rename the .war file to $CATALINA_HOME/webapps/tomee.war (the .war filename is important).
- - Start Tomcat.
- - Go to the TomEE installer webapp (<a href="http://localhost:8080/tomee/">http://localhost:8080/tomee/</a>) and login with the user you added to tomcat-users.xml.
- - Verify the values and click "Confirm".
-
-  ![alt text][1]
- 
- - Restart Tomcat.
- - Your TomEE installation is now complete!
-
-
-  [1]: http://people.apache.org/~tveronezi/tomee/tomee_site/tomee_installer.png
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/installation.mdtext
----------------------------------------------------------------------
diff --git a/docs/installation.mdtext b/docs/installation.mdtext
deleted file mode 100644
index 609a8ee..0000000
--- a/docs/installation.mdtext
+++ /dev/null
@@ -1,30 +0,0 @@
-Title: Installation
-<a name="Installation-Installation"></a>
-# Installation
-
-Installation is easiest from an update site. In Eclipse, select Help,
-Software Updates, Find and install...
-
-!http://jrg.me.uk/openejb/install_step_1.jpg!
-
-Select 'Search for new features to install'
-
-!http://jrg.me.uk/openejb/install_step_2.jpg!
-
-Select 'New Remote site'. Enter 'OpenEJB' for the name and
-http://people.apache.org/~jgallimore/update-site/ for the URL. Click 'Ok'
-and make sure your new update site is selected. Then select 'Finish'
-
-!http://jrg.me.uk/openejb/install_step_3.jpg!
-
-Check the box to install the OpenEJB feature. Click 'Next'
-
-!http://jrg.me.uk/openejb/install_step_4.jpg!
-
-
-Read and make sure you're happy with the license agreement.
-
-Check the installation location, and change it if you wish to. Select
-'Finish'.
-
-Restarting the workbench when the installation is finished is recommended.

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/installing-tomee.mdtext
----------------------------------------------------------------------
diff --git a/docs/installing-tomee.mdtext b/docs/installing-tomee.mdtext
deleted file mode 100644
index 948208d..0000000
--- a/docs/installing-tomee.mdtext
+++ /dev/null
@@ -1,67 +0,0 @@
-Title: Installing TomEE
-Notice:    Licensed to the Apache Software Foundation (ASF) under one
-           or more contributor license agreements.  See the NOTICE file
-           distributed with this work for additional information
-           regarding copyright ownership.  The ASF licenses this file
-           to you under the Apache License, Version 2.0 (the
-           "License"); you may not use this file except in compliance
-           with the License.  You may obtain a copy of the License at
-           .
-             http://www.apache.org/licenses/LICENSE-2.0
-           .
-           Unless required by applicable law or agreed to in writing,
-           software distributed under the License is distributed on an
-           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-           KIND, either express or implied.  See the License for the
-           specific language governing permissions and limitations
-           under the License.
-
-# Downloading a Distribution Archive
-
-Download a distribution archive of the latest TomEE release from the [Downloads](downloads.html) page. 
-If you are not sure which one to use, take apache-tomee-webprofile-x.y.z.zip.
-
-If you want to try out the latest development snapshot (e.g. to test a bugfix which has not yet been released), then download an
-archive directly from the [Apache Maven Snapshots Repository][1] instead.
-
-The instructions on this page work with the webprofile distribution but apply to all TomEE distributions (webprofile, jaxrs or plus). 
-If you work with the jaxrs or plus distribution, simply replace the name where appropriate.
-
-# Unpacking the Archive
-
-Unpack the archive in any directory. The top-level directory of the unpacked archive is called apache-tomee-webprofile-x.y.z/.
-We refer to this directory as $CATALINA_HOME in the following.
-
-# Prerequisites for Running TomEE
-
-* A Java 6 or 7 runtime environment is in your PATH.
-* TCP ports 8080, 8005 and 8009 are free.
-
-# Starting TomEE
-
-To start TomEE as a background process, invoke
-
-    $CATALINA_HOME/bin/startup.sh
-
-To start TomEE in foreground, invoke
-
-    $CATALINA_HOME/bin/catalina.sh run
-
-# Log Messages
-
-When running TomEE in foreground, it will print all log messages to the console.
-
-When running TomEE in background, it will only print a couple of environment variables. The log messages go to a file
-
-    $CATALINA_HOME/logs/catalina.out
-
-# Stopping TomEE
-
-To stop TomEE, invoke
-
-    $CATALINA_HOME/bin/shutdown.sh
-
-If you started TomEE in foreground via `catalina.sh run`, it is safe to simply type `Ctrl-C`. 
-
-
-  [1]: https://repository.apache.org/content/groups/snapshots/org/apache/openejb/apache-tomee
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/java7.mdtext
----------------------------------------------------------------------
diff --git a/docs/java7.mdtext b/docs/java7.mdtext
deleted file mode 100644
index 1db752f..0000000
--- a/docs/java7.mdtext
+++ /dev/null
@@ -1,36 +0,0 @@
-Title: TomEE and Java 7
-Notice:    Licensed to the Apache Software Foundation (ASF) under one
-           or more contributor license agreements.  See the NOTICE file
-           distributed with this work for additional information
-           regarding copyright ownership.  The ASF licenses this file
-           to you under the Apache License, Version 2.0 (the
-           "License"); you may not use this file except in compliance
-           with the License.  You may obtain a copy of the License at
-           .
-             http://www.apache.org/licenses/LICENSE-2.0
-           .
-           Unless required by applicable law or agreed to in writing,
-           software distributed under the License is distributed on an
-           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-           KIND, either express or implied.  See the License for the
-           specific language governing permissions and limitations
-           under the License.
-
-If you compile your applications on JDK7 you have to run Apache TomEE 1.0 on jdk7
-
-Configuring TomEE to use JDK7
--------
-If you have multiple JDK installed on your system you should set JAVA_HOME in your stratup scripts.
-For example if your `JAVA_HOME` is `/usr/local/java/current` edit `catalina.sh`
-and add a line
-
-`JAVA_HOME=/usr/local/java/current/bin`
-
-Alternatively, set `JAVA_HOME` as an environment variable prior to calling `<tomee-home>/bin/startup.sh`
-
-Endorsed libraries directory
--------
-TomEE 1.0 package comes with and "endorsed" direcotry which contains updates for core JDK6 libraries.
-If you are running JDK7 you should remove al files in this directory.
-
-TomEE 1.1  will detect JDK7 and will not load those files

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/javaagent-with-maven-surefire.mdtext
----------------------------------------------------------------------
diff --git a/docs/javaagent-with-maven-surefire.mdtext b/docs/javaagent-with-maven-surefire.mdtext
deleted file mode 100644
index 5429d6b..0000000
--- a/docs/javaagent-with-maven-surefire.mdtext
+++ /dev/null
@@ -1,54 +0,0 @@
-Title: JavaAgent with Maven Surefire
-<a name="JavaAgentwithMavenSurefire-Maven2"></a>
-##  Maven2
-
-In maven2 you can enable the javaagent for your tests by adding this to
-your pom.xml file:
-
-
-    <build>
-      <plugins>
-        <!-- this configures the surefire plugin to run your tests with the
-javaagent enabled -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <configuration>
-    	<forkMode>pertest</forkMode>
-           
-<argLine>-javaagent:${basedir}/target/openejb-javaagent-3.0.jar</argLine>
-    	<workingDirectory>${basedir}/target</workingDirectory>
-          </configuration>
-        </plugin>
-    
-        <!-- this tells maven to copy the openejb-javaagent jar into your
-target/ directory -->
-        <!-- where surefire can see it -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-dependency-plugin</artifactId>
-          <executions>
-    	<execution>
-    	  <id>copy</id>
-    	  <phase>process-resources</phase>
-    	  <goals>
-    	    <goal>copy</goal>
-    	  </goals>
-    	  <configuration>
-    	    <artifactItems>
-    	      <artifactItem>
-    		<groupId>org.apache.openejb</groupId>
-    		<artifactId>openejb-javaagent</artifactId>
-    		<version>3.0</version>
-    	       
-<outputDirectory>${project.build.directory}</outputDirectory>
-    	      </artifactItem>
-    	    </artifactItems>
-    	  </configuration>
-    	</execution>
-          </executions>
-        </plugin>
-    
-      </plugins>
-    </build>
-

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/javaagent.mdtext
----------------------------------------------------------------------
diff --git a/docs/javaagent.mdtext b/docs/javaagent.mdtext
deleted file mode 100644
index 0469c98..0000000
--- a/docs/javaagent.mdtext
+++ /dev/null
@@ -1,57 +0,0 @@
-Title: JavaAgent
-
-<a name="JavaAgent-AddingaJavaAgent"></a>
-#  Adding a JavaAgent
-
-NOTE: The java agent is only required if using OpenJPA as your persistence
-provider or if using CMP.
-
-Adding a java agent is done via a vm parameter as follows:
-
-    java -javaagent:openejb-javaagent-4.6.0.jar _\[other params...](other-params....html)
-
-<a name="JavaAgent-Maven2"></a>
-##  Maven2
-
-In maven2 you can enable the javaagent for your tests by adding this to
-your pom.xml file:
-
-    <build>
-      <plugins>
-        <!-- this configures the surefire plugin to run your tests with the javaagent enabled -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <configuration>
-            <forkMode>pertest</forkMode>
-            <argLine>-javaagent:${project.basedir}/target/openejb-javaagent-4.6.0.jar</argLine>
-            <workingDirectory>${project.basedir}/target</workingDirectory>
-          </configuration>
-        </plugin>
-        <!-- this tells maven to copy the openejb-javaagent jar into your target/ directory -->
-        <!-- where surefire can see it -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-dependency-plugin</artifactId>
-          <executions>
-            <execution>
-              <id>copy</id>
-              <phase>process-resources</phase>
-              <goals>
-                <goal>copy</goal>
-              </goals>
-              <configuration>
-                <artifactItems>
-                  <artifactItem>
-                    <groupId>org.apache.openejb</groupId>
-                    <artifactId>openejb-javaagent</artifactId>
-                    <version>4.6.0</version>
-                    <outputDirectory>${project.build.directory}</outputDirectory>
-                  </artifactItem>
-                </artifactItems>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-      </plugins>
-    </build>

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/javaee7-status.mdtext
----------------------------------------------------------------------
diff --git a/docs/javaee7-status.mdtext b/docs/javaee7-status.mdtext
deleted file mode 100644
index a673849..0000000
--- a/docs/javaee7-status.mdtext
+++ /dev/null
@@ -1,182 +0,0 @@
-Title: Java EE 7 Implementation Status
-
-This page shows the current implementation status for the Java EE 7 specification compabitility of Apache Tomme 7.0.0-M1. Currently, we are working on the certification for Java EE 7.
-
-<table class="mdtable">
-    <tr>
-        <th></th>
-        <th>Version</th>
-        <th>JSR</th>
-        <th>TomEE</th>
-        <th>TomEE+</th>
-    </tr>
-
-    <tr>
-        <td>Java Servlets</td>
-        <td>3.1</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=340">340</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>JavaServer Pages (JSP)</td>
-        <td>2.3</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=245">245</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Expression Language (EL)</td>
-        <td>3.0</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=341">341</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>JavaServer Faces (JSF)</td>
-        <td>2.2</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=344">344</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Java API for Websocket</td>
-        <td>1.0</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=356">356</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Java API for JSON Processing (JSON-P)</td>
-        <td>1.0</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=353">353</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Batch Applications for the Java Platform</td>
-        <td>1.0</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=352">352</a></td>
-        <td></td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Concurrency Utilities for Java EE</td>
-        <td>1.0</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=236">236</a></td>
-        <td></td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Contexts and Dependency Injection (CDI)</td>
-        <td>1.1</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=346">346</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Bean Validation</td>
-        <td>1.1</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=349">349</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Enterprise JavaBeans (EJB)</td>
-        <td>3.2</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=345">345</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Interceptors</td>
-        <td>1.2</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=318">318</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Java EE Connector Architecture</td>
-        <td>1.6</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=322">322</a></td>
-        <td></td>
-        <td>1.7 not supported yet</td>
-    </tr>
-
-    <tr>
-        <td>Java Persistence API (JPA)</td>
-        <td>2.1</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=338">338</a></td>
-        <td>API 2.1 supported, default provider still 2.0.</td>
-        <td>API 2.1 supported, default provider still 2.0.</td>
-    </tr>
-
-    <tr>
-        <td>Java Messaging Service (JMS)</td>
-        <td>1.1</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=343">343</a></td>
-        <td></td>
-        <td>2.0 not supported yet.</td>
-    </tr>
-
-    <tr>
-        <td>Java Transaction API (JTA)</td>
-        <td>1.2</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=907">907</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>JavaMail API</td>
-        <td>1.5</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=919">919</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Java API for RESTful Web Services (JAX-RS)</td>
-        <td>2.0</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=339">339</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Java API for XML Web Services (JAX-WS)</td>
-        <td>2.2</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=224">224</a></td>
-        <td></td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Java Authentication Service Provider Interface for Containers (JAAS)</td>
-        <td>1.1</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=196">196</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-
-    <tr>
-        <td>Java Authorization Contract for Coners (JACC)</td>
-        <td>1.5</td>
-        <td><a href="http://jcp.org/en/jsr/detail?id=115">115</a></td>
-        <td>(/)</td>
-        <td>(/)</td>
-    </tr>
-</table>
-

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/javamailsession-config.mdtext
----------------------------------------------------------------------
diff --git a/docs/javamailsession-config.mdtext b/docs/javamailsession-config.mdtext
deleted file mode 100644
index 14a508f..0000000
--- a/docs/javamailsession-config.mdtext
+++ /dev/null
@@ -1,24 +0,0 @@
-Title: JavaMailSession Configuration
-
-
-A JavaMailSession can be declared via xml in the `<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file using a declaration like the following.  All properties in the element body are optional.
-
-    <Resource id="myJavaMailSession" type="javax.mail.Session">
-    </Resource>
-
-Alternatively, a JavaMailSession can be declared via properties in the `<tomee-home>/conf/system.properties` file or via Java VirtualMachine `-D` properties.  The properties can also be used when embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
-
-    myJavaMailSession = new://Resource?type=javax.mail.Session
-
-Properties and xml can be mixed.  Properties will override the xml allowing for easy configuration change without the need for ${} style variable substitution.  Properties are not case sensitive.  If a property is specified that is not supported by the declared JavaMailSession a warning will be logged.  If a JavaMailSession is needed by the application and one is not declared, TomEE will create one dynamically using default settings.  Multiple JavaMailSession declarations are allowed.
-# Supported Properties
-<table class="mdtable">
-<tr>
-<th>Property</th>
-<th>Type</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-</table>
-
-

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/jms-resources-and-mdb-container.mdtext
----------------------------------------------------------------------
diff --git a/docs/jms-resources-and-mdb-container.mdtext b/docs/jms-resources-and-mdb-container.mdtext
deleted file mode 100644
index 91d305a..0000000
--- a/docs/jms-resources-and-mdb-container.mdtext
+++ /dev/null
@@ -1,279 +0,0 @@
-Title: JMS Resources and MDB Container
-
-# External ActiveMQ Broker
-
-    <tomee>
-        <Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
-            # Do not start the embedded ActiveMQ broker
-            BrokerXmlConfig  =
-            ServerUrl = tcp://someHostName:61616
-        </Resource>
-
-        <Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
-            ResourceAdapter = MyJmsResourceAdapter
-        </Resource>
-
-        <Container id="MyJmsMdbContainer" ctype="MESSAGE">
-            ResourceAdapter = MyJmsResourceAdapter
-        </Container>
-
-        <Resource id="FooQueue" type="javax.jms.Queue"/>
-        <Resource id="BarTopic" type="javax.jms.Topic"/>
-    </tomee>
-
-    
-The `ServerUrl` would be changed to point to the host and port of the
-ActiveMQ process.  The various URL formats that ActiveMQ supports also
-work, such as 'failover:'.
-
-# Internal ActiveMQ Broker
-    
-    <tomee>
-        <Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
-            BrokerXmlConfig =  broker:(tcp://someHostName:61616)
-            ServerUrl       =  tcp://someHostName:61616
-        </Resource>
-
-        <Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
-            ResourceAdapter = MyJmsResourceAdapter
-        </Resource>
-
-        <Container id="MyJmsMdbContainer" ctype="MESSAGE">
-            ResourceAdapter = MyJmsResourceAdapter
-        </Container>
-
-        <Resource id="FooQueue" type="javax.jms.Queue"/>
-        <Resource id="BarTopic" type="javax.jms.Topic"/>
-    </tomee>
-
-The `BrokerXmlConfig` tells ActiveMQ to start on the tcp host/port `someHostName` and `61616`
-
-## Internal ActiveMQ Broker with JDBC Persistence
-
-Adding the `DataSource` property to your `ActiveMQResourceAdapter` config will automatically setup JDBC Persistence using the
-`org.apache.activemq.store.jdbc.JDBCPersistenceAdapter`
-
-    <tomee>
-        <Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
-            BrokerXmlConfig =  broker:(tcp://someHostName:61616)
-            ServerUrl       =  tcp://someHostName:61616
-            DataSource      =  MyDataSource
-        </Resource>
-
-        <Resource id="MyDataSource" type="javax.sql.DataSource">
-            JdbcDriver  = org.hsqldb.jdbcDriver.
-            JdbcUrl	    = jdbc:hsqldb:file:data/hsqldb/hsqldb.
-            UserName    = sa
-            Password    = foo
-        </Resource>
-    </tomee>
-
-
-
-## Internal ActiveMQ Broker with activemq.xml
-
-The [activemq.xml](activemq.xml) file format requires a number of Spring dependencies, and is therefore not included in the distribution by default. This is purley due to the fact that this ActiveMQ file format is parsed using Spring libraries and this is beyond our control. However, the advantage is opening up the door to the huge number of configuration options available found here: [http://activemq.apache.org/xml-configuration.html](http://activemq.apache.org/xml-configuration.html).
-
-This support can be enabled by adding the right libraries and creating an [`[tomee]/conf/activemq.xml`](activemq.xml) file (Click the link for a basic example).
-
-Add the following jars to the `tomee/lib/` directory:
-
-- [spring-beans-3.2.9.RELEASE.jar](http://repo1.maven.org/maven2/org/springframework/spring-beans/3.2.9.RELEASE/spring-beans-3.2.9.RELEASE.jar)
-- [spring-context-3.2.9.RELEASE.jar](http://repo1.maven.org/maven2/org/springframework/spring-context/3.2.9.RELEASE/spring-context-3.2.9.RELEASE.jar)
-- [spring-core-3.2.9.RELEASE.jar](http://repo1.maven.org/maven2/org/springframework/spring-core/3.2.9.RELEASE/spring-core-3.2.9.RELEASE.jar)
-- [spring-web-3.2.9.RELEASE.jar](http://repo1.maven.org/maven2/org/springframework/spring-web/3.2.9.RELEASE/spring-web-3.2.9.RELEASE.jar)
-- [xbean-spring-3.9.jar](http://repo1.maven.org/maven2/org/apache/xbean/xbean-spring/3.2.9.RELEASE/xbean-spring-3.9.jar)
-
-Later versions should work, but have not been tested.
-
-Create an [activemq.xml file](activemq.xml) a in `[tomee]/conf/activemq.xml`.
-
-Then use the `xbean:file:` url prefix in the `BrokerXmlConfig` as shown belog.
-
-
-    <tomee>
-        <Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
-            BrokerXmlConfig =  xbean:file:conf/activemq.xml
-            ServerUrl       =  tcp://someHostName:61616
-        </Resource>
-
-        <Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
-            ResourceAdapter = MyJmsResourceAdapter
-        </Resource>
-
-        <Container id="MyJmsMdbContainer" ctype="MESSAGE">
-            ResourceAdapter = MyJmsResourceAdapter
-        </Container>
-
-        <Resource id="FooQueue" type="javax.jms.Queue"/>
-        <Resource id="BarTopic" type="javax.jms.Topic"/>
-    </tomee>
-
-Finally, restart the server.
-
-
-# Configuration via System properties
-
-The same can be done via properties in an embedded configuration, via the
-`conf/system.properties` file or on the command line via `-D` flags.
-
-
-    Properties p = new Properties();
-    p.put(Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
-
-    p.put("MyJmsResourceAdapter", "new://Resource?type=ActiveMQResourceAdapter");
-    p.put("MyJmsResourceAdapter.ServerUrl", "tcp://someHostName:61616");
-    p.put("MyJmsResourceAdapter.BrokerXmlConfig", "");
-
-    p.put("MyJmsConnectionFactory", "new://Resource?type=javax.jms.ConnectionFactory");
-    p.put("MyJmsConnectionFactory.ResourceAdapter", "MyJmsResourceAdapter");
-
-    p.put("MyJmsMdbContainer", "new://Container?type=MESSAGE");
-    p.put("MyJmsMdbContainer.ResourceAdapter", "MyJmsResourceAdapter");
-
-    p.put("FooQueue", "new://Resource?type=javax.jms.Queue");
-    p.put("BarTopic", "new://Resource?type=javax.jms.Topic");
-
-    InitialContext context = new InitialContext(p);
-
-# Global lookup of JMS Resources
-
-From anywhere in the same VM as the EJB Container you could lookup the
-above resources like so:
-
-    javax.jms.ConnectionFactory cf = (ConnectionFactory)
-            context.lookup("openejb:Resource/MyJmsConnectionFactory");
-
-    javax.jms.Queue queue = (Queue) context.lookup("openejb:Resource/FooQueue");
-    javax.jms.Topic topic = (Topic) context.lookup("openejb:Resource/BarTopic");
-
-# MDB ActivationConfig
-
-
-Here, the value for `destination` is the physical name of the desired destination. The value for
-`destinationType` is the class name that defines the type of destination. It should be `javax.jms.Queue` or `javax.jms.Topic`.
-
-The Activation Spec properties that can be configured are:
-
-<TABLE><TBODY>
-<TR>
-<TH> Property Name </TH>
-<TH> Required </TH>
-<TH> Default Value </TH>
-<TH> Description </TH>
-</TR>
-<TR>
-<TD> acknowledgeMode </TD>
-<TD> no </TD>
-<TD> Auto-acknowledge </TD>
-<TD> The JMS Acknowledgement mode to use. Valid values are: Auto-acknowledge or Dups-ok-acknowledge </TD>
-</TR>
-<TR>
-<TD> clientId </TD>
-<TD> no </TD>
-<TD> set in resource adapter </TD>
-<TD> The JMS Client ID to use (only really required for durable topics) </TD>
-</TR>
-<TR>
-<TD> destinationType </TD>
-<TD> yes </TD>
-<TD> null </TD>
-<TD> The type of destination; a queue or topic </TD>
-</TR>
-<TR>
-<TD> destination </TD>
-<TD> yes </TD>
-<TD> null </TD>
-<TD> The destination name (queue or topic name) </TD>
-</TR>
-<TR>
-<TD> enableBatch </TD>
-<TD> no </TD>
-<TD> false </TD>
-<TD> Used to enable transaction batching for increased performance </TD>
-</TR>
-<TR>
-<TD> maxMessagesPerBatch </TD>
-<TD> no </TD>
-<TD> 10 </TD>
-<TD> The number of messages per transaction batch </TD>
-</TR>
-<TR>
-<TD> maxMessagesPerSessions </TD>
-<TD> no </TD>
-<TD> 10 </TD>
-<TD> This is actually the prefetch size for the subscription.  (Yes, badly named). </TD>
-</TR>
-<TR>
-<TD> maxSessions </TD>
-<TD> no </TD>
-<TD> 10 </TD>
-<TD> The maximum number of concurrent sessions to use </TD>
-</TR>
-<TR>
-<TD> messageSelector </TD>
-<TD> no </TD>
-<TD> null </TD>
-<TD>Message Selector</A> to use on the subscription to perform content based routing filtering the messages </TD>
-</TR>
-<TR>
-<TD> noLocal </TD>
-<TD> no </TD>
-<TD> false </TD>
-<TD> Only required for topic subscriptions; indicates if locally published messages should be included in the subscription or not </TD>
-</TR>
-<TR>
-<TD> password </TD>
-<TD> no </TD>
-<TD> set in resource adapter </TD>
-<TD> The password for the JMS connection </TD>
-</TR>
-<TR>
-<TD> subscriptionDurability </TD>
-<TD> no </TD>
-<TD> NonDurable </TD>
-<TD> Whether or not a durable (topic) subscription is required. Valid values are: Durable or NonDurable </TD>
-</TR>
-<TR>
-<TD> subscriptionName </TD>
-<TD> no </TD>
-<TD> null </TD>
-<TD> The name of the durable subscriber. Only used for durable topics and combined with the clientID to uniquely identify the durable topic subscription </TD>
-</TR>
-<TR>
-<TD> userName </TD>
-<TD> no </TD>
-<TD> set in resource adapter </TD>
-<TD> The user for the JMS connection </TD>
-</TR>
-<TR>
-<TD> useRAManagedTransaction </TD>
-<TD> no </TD>
-<TD> false </TD>
-<TD> Typically, a resource adapter delivers messages to an endpoint which is managed by a container.  Normally, this container likes to be the one that wants to control the transaction that the inbound message is being delivered on.  But sometimes, you want to deliver to a simpler container system that will not be controlling the inbound transaction.  In these cases, if you set useRAManagedTransaction to true, the resource adapter will commit the transaction if no exception was generated from the MessageListener and rollback if an exception is thrown. </TD>
-</TR>
-<TR>
-<TD> initialRedeliveryDelay </TD>
-<TD> no </TD>
-<TD> 1000 </TD>
-<TD> The delay before redeliveries start.  Also configurable on the ResourceAdapter </TD>
-</TR>
-<TR>
-<TD> maximumRedeliveries </TD>
-<TD> no </TD>
-<TD> 5 </TD>
-<TD> The maximum number of redeliveries or -1 for no maximum. Also configurable on the ResourceAdapter </TD>
-</TR>
-<TR>
-<TD> redeliveryBackOffMultiplier </TD>
-<TD> no </TD>
-<TD> 5 </TD>
-<TD> The multiplier to use if exponential back off is enabled. Also configurable on the ResourceAdapter </TD>
-</TR>
-<TR>
-<TD> redeliveryUseExponentialBackOff </TD>
-<TD> no </TD>
-<TD> false </TD>
-<TD> To enable exponential backoff. Also configurable on the ResourceAdapter </TD>
-</TR>
-</TBODY></TABLE>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/jmsconnectionfactory-config.mdtext
----------------------------------------------------------------------
diff --git a/docs/jmsconnectionfactory-config.mdtext b/docs/jmsconnectionfactory-config.mdtext
deleted file mode 100644
index e7b3953..0000000
--- a/docs/jmsconnectionfactory-config.mdtext
+++ /dev/null
@@ -1,85 +0,0 @@
-Title: JmsConnectionFactory Configuration
-
-
-A JmsConnectionFactory can be declared via xml in the `<tomee-home>/conf/tomee.xml` file or in a `WEB-INF/resources.xml` file using a declaration like the following.  All properties in the element body are optional.
-
-    <Resource id="myJmsConnectionFactory" type="javax.jms.ConnectionFactory">
-        connectionMaxIdleTime = 15 Minutes
-        connectionMaxWaitTime = 5 seconds
-        poolMaxSize = 10
-        poolMinSize = 0
-        resourceAdapter = Default JMS Resource Adapter
-        transactionSupport = xa
-    </Resource>
-
-Alternatively, a JmsConnectionFactory can be declared via properties in the `<tomee-home>/conf/system.properties` file or via Java VirtualMachine `-D` properties.  The properties can also be used when embedding TomEE via the `javax.ejb.embeddable.EJBContainer` API or `InitialContext`
-
-    myJmsConnectionFactory = new://Resource?type=javax.jms.ConnectionFactory
-    myJmsConnectionFactory.connectionMaxIdleTime = 15 Minutes
-    myJmsConnectionFactory.connectionMaxWaitTime = 5 seconds
-    myJmsConnectionFactory.poolMaxSize = 10
-    myJmsConnectionFactory.poolMinSize = 0
-    myJmsConnectionFactory.resourceAdapter = Default JMS Resource Adapter
-    myJmsConnectionFactory.transactionSupport = xa
-
-Properties and xml can be mixed.  Properties will override the xml allowing for easy configuration change without the need for ${} style variable substitution.  Properties are not case sensitive.  If a property is specified that is not supported by the declared JmsConnectionFactory a warning will be logged.  If a JmsConnectionFactory is needed by the application and one is not declared, TomEE will create one dynamically using default settings.  Multiple JmsConnectionFactory declarations are allowed.
-# Supported Properties
-<table class="mdtable">
-<tr>
-<th>Property</th>
-<th>Type</th>
-<th>Default</th>
-<th>Description</th>
-</tr>
-<tr>
-  <td>connectionMaxIdleTime</td>
-  <td><a href="configuring-durations.html">time</a></td>
-  <td>15&nbsp;Minutes</td>
-  <td>
-Maximum amount of time a connection can be idle before being reclaimed
-</td>
-</tr>
-<tr>
-  <td>connectionMaxWaitTime</td>
-  <td><a href="configuring-durations.html">time</a></td>
-  <td>5&nbsp;seconds</td>
-  <td>
-Maximum amount of time to wait for a connection
-</td>
-</tr>
-<tr>
-  <td>poolMaxSize</td>
-  <td>int</td>
-  <td>10</td>
-  <td>
-Maximum number of physical connection to the ActiveMQ broker
-</td>
-</tr>
-<tr>
-  <td>poolMinSize</td>
-  <td>int</td>
-  <td>0</td>
-  <td>
-Minimum number of physical connection to the ActiveMQ broker
-</td>
-</tr>
-<tr>
-  <td>resourceAdapter</td>
-  <td>String</td>
-  <td>Default&nbsp;JMS&nbsp;Resource&nbsp;Adapter</td>
-  <td>
-
-</td>
-</tr>
-<tr>
-  <td>transactionSupport</td>
-  <td>String</td>
-  <td>xa</td>
-  <td>
-Specifies if the connection is enrolled in global transaction
-allowed values: xa, local or none
-</td>
-</tr>
-</table>
-
-

http://git-wip-us.apache.org/repos/asf/tomee/blob/c3f8984b/docs/jndi-names.mdtext
----------------------------------------------------------------------
diff --git a/docs/jndi-names.mdtext b/docs/jndi-names.mdtext
deleted file mode 100644
index 43564dc..0000000
--- a/docs/jndi-names.mdtext
+++ /dev/null
@@ -1,368 +0,0 @@
-Title: JNDI Names
-
-<a name="JNDINames-What'sMyBean'sJNDIName?"></a>
-# What's My Bean's JNDI Name?
-There are two things to keep in mind before you start reading:
-       
-1   OpenEJB provides a default JNDI name to your EJB.     
-2   You can customize the JNDI name.
-
-<a name="JNDINames-DefaultJNDIname"></a>
-## Default JNDI name 
-The default JNDI name is in the following format:
-
-    {deploymentId}{interfaceType.annotationName}
-
-Lets try and understand the above format. Both *deploymentId* and
-*interfaceType.annotationName* are pre-defined variables. There are other
-pre-defined variables available which you could use to customize the JNDI
-name format.
-
-<a name="JNDINames-JNDINameFormatting"></a>
-#  JNDI Name Formatting
-
-The *openejb.jndiname.format* property allows you to supply a template for
-the global JNDI names of all your EJBs.  With it, you have complete control
-over the structure of the JNDI layout can institute a design pattern just
-right for your client apps.  See the [Service Locator](service-locator.html)
- doc for clever ways to use the JNDI name formatting functionality in
-client code.
-<table class="mdtable">
-<tr><td>variable</td><td>	 description</td></tr>
-<tr><td>moduleId</td><td>	 Typically the name of the ejb-jar file<br> or the <ejb-jar id=""> id value if specified</td></tr>
-<tr><td>ejbType</td><td>	 STATEFUL, STATELESS, BMP_ENTITY, CMP_ENTITY, or MESSAGE_DRIVEN</td></tr>
-<tr><td>ejbClass</td><td>	 for a class named org.acme.superfun.WidgetBean results in org.acme.superfun.WidgetBean</td></tr>
-<tr><td>ejbClass.simpleName</td><td>	 for a class named org.acme.superfun.WidgetBean results in WidgetBean</td></tr>
-<tr><td>ejbClass.packageName</td><td>	 for a class named org.acme.superfun.WidgetBean results in org.acme.superfun</td></tr>
-<tr><td>ejbName</td><td>	 The ejb-name as specified in xml or via the 'name' attribute in an @Stateful, @Stateless, or @MessageDriven annotation</td></tr>
-<tr><td>deploymentId</td><td>	 The unique system id for the ejb. Typically the ejbName unless specified in the openejb-jar.xml or via changing the openejb.deploymentId.format</td></tr>
-<tr><td>interfaceType</td><td>	 see interfaceType.annotationName</td></tr>
-<tr><td>interfaceType.annotationName</td><td>	 Following the EJB 3 annotations @RemoteHome, @LocalHome, @Remote and @Local
-RemoteHome (EJB 2 EJBHome)
-LocalHome (EJB 2 EJBLocalHome)
-Remote (EJB 3 Business Remote)
-Local (EJB 3 Business Local)
-Endpoint (EJB webservice endpoint)</td></tr>
-<tr><td>interfaceType.annotationNameLC</td><td>	 This is the same as interfaceType.annotationName, but all in lower case.</td></tr>
-<tr><td>interfaceType.xmlName</td><td>	 Following the ejb-jar.xml descriptor elements <home>, <local-home>, <business-remote>, <business-local>, and <service-endpoint>:
-home (EJB 2 EJBHome)
-local-home (EJB 2 EJBLocalHome)
-business-remote (EJB 3 Business Remote)
-business-local (EJB 3 Business Local)
-service-endpoint (EJB webservice endpoint)</td></tr>
-<tr><td>interfaceType.xmlNameCc</td><td>	 Camel-case version of interfaceType.xmlName:
-Home (EJB 2 EJBHome)
-LocalHome (EJB 2 EJBLocalHome)
-BusinessRemote (EJB 3 Business Remote)
-BusinessLocal (EJB 3 Business Local)
-ServiceEndpoint (EJB webservice endpoint)</td></tr>
-<tr><td>interfaceType.openejbLegacyName</td><td>Following the OpenEJB 1.0 hard-coded format:
-(empty string) (EJB 2 EJBHome)
-Local (EJB 2 EJBLocalHome)
-BusinessRemote (EJB 3 Business Remote)
-BusinessLocal (EJB 3 Business Local)
-ServiceEndpoint (EJB webservice endpoint)</td></tr>
-<tr><td>interfaceClass</td><td>	
-(business) for a class named org.acme.superfun.WidgetRemote results in org.acme.superfun.WidgetRemote<br>
-(home) for a class named org.acme.superfun.WidgetHome results in org.acme.superfun.WidgetHome</td></tr>
-<tr><td>interfaceClass.simpleName</td><td>
-(business) for a class named org.acme.superfun.WidgetRemote results in WidgetRemote
-(home) for a class named org.acme.superfun.WidgetHome results in WidgetHome</td></tr>
-<tr><td>interfaceClass.packageName</td><td>	 for a class named org.acme.superfun.WidgetRemote results in org.acme.superfun</td></tr>
-</table>
-<a name="JNDINames-SettingtheJNDIname"></a>
-#  Setting the JNDI name
-
-It's possible to set the desired jndi name format for the whole server
-level, an ejb-jar, an ejb, an ejb's "local" interface
-(local/remote/local-home/home), and for an individual interface the ejb
-implements.  More specific jndi name formats act as an override to any more
-general formats.  The most specific format dictates the jndi name that will
-be used for any given interface of an ejb.  It's possible to specify a
-general format for your server, override it at an ejb level and override
-that further for a specific interface of that ejb.
-
-<a name="JNDINames-ViaSystemproperty"></a>
-## Via System property
-
-The jndi name format can be set on a server level via a _system property_,
-for example:
-
-
-    $ ./bin/openejb start
-    -Dopenejb.jndiname.format=\{ejbName}/\{interfaceClass}"
-
-
-As usual, other ways of specifying system properties are via the
-conf/system.properties file in a standalone server, or via the
-InitialContext properties when embedded.
-
-<a name="JNDINames-Viapropertiesintheopenejb-jar.xml"></a>
-## Via properties in the openejb-jar.xml
-
-It's possible to set the openejb.jndiname.format for an ejb-jar jar in a
-META-INF/openejb-jar.xml file as follows:
-
-
-    <openejb-jar>
-      <properties>
-         openejb.deploymentId.format = {ejbName}
-         openejb.jndiname.format = {deploymentId}{interfaceType.annotationName}
-      </properties>
-    </openejb-jar>
-
-
-<a name="JNDINames-Viathe<jndi>tagforaspecificejb"></a>
-## Via the <jndi> tag for a specific ejb
-
-The following sets the name specifically for the interface
-org.superbiz.Foo.
-
-
-    <openejb-jar>
-      <ejb-deployment ejb-name="FooBean">
-        <jndi name="foo" interface="org.superbiz.Foo"/>  
-      </ejb-deployment>
-    </openejb-jar>
-
-
-Or more generally...
-
-
-    <openejb-jar>
-      <ejb-deployment ejb-name="FooBean">
-        <jndi name="foo" interface="Remote"/> 
-      </ejb-deployment>
-    </openejb-jar>
-
-
-Or more generally still...
-
-
-    <openejb-jar>
-      <ejb-deployment ejb-name="FooBean">
-        <jndi name="foo"/> 
-      </ejb-deployment>
-    </openejb-jar>
-
-
-The 'name' attribute can still use templates if it likes, such as: 
-
-
-    <openejb-jar>
-      <ejb-deployment ejb-name="FooBean">
-        <jndi name="ejb/{interfaceClass.simpleName}" interface="org.superbiz.Foo"/> 
-      </ejb-deployment>
-    </openejb-jar>
-
-
-<a name="JNDINames-Multiple<jndi>tags"></a>
-###  Multiple <jndi> tags
-
-Multiple <jndi> tags are allowed making it possible for you to be as
-specific as you need about the jndi name of each interface or each logical
-group of iterfaces (Local, Remote, LocalHome, RemoteHome).  
-
-Given an ejb, FooBean, with the following interfaces:
- - business-local: org.superbiz.LocalOne
- - business-local: org.superbiz.LocalTwo
- - business-remote: org.superbiz.RemoteOne
- - business-remote: org.superbiz.RemoteTwo
- - home: org.superbiz.FooHome
- - local-home: org.superbiz.FooLocalHome
-
-The following four examples would yield the same jndi names.  The intention
-with these examples is to show the various ways you can isolate specific
-interfaces or types of interfaces to gain more specific control on how they
-are named.
-
-    <openejb-jar>
-      <ejb-deployment ejb-name="FooBean">
-        <jndi name="LocalOne" interface="org.superbiz.LocalOne"/>
-        <jndi name="LocalTwo" interface="org.superbiz.LocalTwo"/>
-        <jndi name="RemoteOne" interface="org.superbiz.RemoteOne"/>
-        <jndi name="RemoteTwo" interface="org.superbiz.RemoteTwo"/>
-        <jndi name="FooHome" interface="org.superbiz.FooHome"/>
-        <jndi name="FooLocalHome" interface="org.superbiz.FooLocalHome"/>
-      </ejb-deployment>
-    </openejb-jar>
-
-Or
-
-    <openejb-jar>
-      <ejb-deployment ejb-name="FooBean">
-        <!-- applies to LocalOne and LocalTwo -->
-        <jndi name="{interfaceClass.simpleName}" interface="Local"/> 
-    
-        <!-- applies to RemoteOne and RemoteTwo -->
-        <jndi name="{interfaceClass.simpleName}" interface="Remote"/> 
-    
-        <!-- applies to FooHome -->
-        <jndi name="{interfaceClass.simpleName}" interface="RemoteHome"/> 
-    
-        <!-- applies to FooLocalHome -->
-        <jndi name="{interfaceClass.simpleName}" interface="LocalHome"/> 
-      </ejb-deployment>
-    </openejb-jar>
-
-Or
-
-    <openejb-jar>
-      <ejb-deployment ejb-name="FooBean">
-        <!-- applies to RemoteOne, RemoteTwo, FooHome, and FooLocalHome -->
-        <jndi name="{interfaceClass.simpleName}"/>
-
-        <!-- these two would count as an override on the above format -->
-        <jndi name="LocalOne" interface="org.superbiz.LocalOne"/>
-        <jndi name="LocalTwo" interface="org.superbiz.LocalTwo"/>
-      </ejb-deployment>
-    </openejb-jar>
-
-or
-    
-    <openejb-jar>
-      <ejb-deployment ejb-name="FooBean">
-        <!-- applies to LocalOne, LocalTwo, RemoteOne, RemoteTwo, FooHome, and FooLocalHome -->
-        <jndi name="{interfaceClass.simpleName}"/> 
-      </ejb-deployment>
-    </openejb-jar>
-
-
-<a name="JNDINames-ChangingtheDefaultSetting"></a>
-# Changing the Default Setting
-
-*You are responsible for ensuring the names don't conflict.*  
- 
-<a name="JNDINames-Conservativesettings"></a>
-### Conservative settings
-
-A very conservative setting such as    
-
- "{deploymentId}/{interfaceClass}"    
-
-would guarantee that each and every single interface is bound to JNDI.	If
-your bean had a legacy EJBObject interface, three business remote
-interfaces, and two business local interfaces, this pattern would result in    
-*six* proxies bound into JNDI.      
-<pre>  
- - {deploymentId}/{interfaceClass.simpleName}    
- - {moduleId}/{ejbName}/{interfaceClass}    
- - {ejbName}/{interfaceClass}    
- - {moduleId}/{ejbClass}/{interfaceClass}    
- - {ejbClass}/{interfaceClass}    
- - {ejbClass}/{interfaceClass.simpleName}    
- - {ejbClass.simpleName}/{interfaceClass.simpleName}    
- - {interfaceClass}/{ejbName}    
-</pre>
-Bordeline optimistic:    
-<pre>
- - {moduleId}/{interfaceClass}    
- - {interfaceClass}    
-</pre>
-The above two settings would work if you the interface wasn't shared by
-other beans.
-
-<a name="JNDINames-Pragmaticsettings"></a>
-### Pragmatic settings    
-
-A more middle ground setting such as
-"{deploymentId}/{interfaceType.annotationName}" would guarantee that at
-least one proxy of each interface type is bound to JNDI.  If your bean had
-a legacy EJBObject interface, three business remote interfaces, and two
-business local interfaces, this pattern would result in *three* proxies
-bound into JNDI: one proxy dedicated to your EJBObject interface; one proxy
-implementing all three business remote interfaces; one proxy implementing
-the two business local interfaces.
-
-Similarly pragmatic settings would be    
-<pre>
- - {moduleId}/{ejbClass}/{interfaceType.annotationName}    
- - {ejbClass}/{interfaceType.xmlName}    
- - {ejbClass.simpleName}/{interfaceType.xmlNameCc}    
- - {interfaceType}/{ejbName}    
- - {interfaceType}/{ejbClass}    
-</pre>
-<a name="JNDINames-Optimisticsettings"></a>
-### Optimistic settings
-
-A very optimistic setting such as "{deploymentId}" would guarantee only
-one proxy for the bean will be bound to JNDI.  This would be fine if you
-knew you only had one type of interface in your beans.	For example, only
-business remote interfaces, or only business local interfaces, or only an
-EJBObject interface, or only an EJBLocalObject interface.
-
-If a bean in the app did have more than one interface type, one business
-local and one business remote for example, by default OpenEJB will reject
-the app when it detects that it cannot bind the second interface.  This
-strict behavior can be disabled by setting the
-*openejb.jndiname.failoncollision* system property to _false_.	When this
-property is set to false, we will simply log an error that the second proxy
-cannot be bound to JNDI, tell you which ejb is using that name, and
-continue loading your app.
-
-Similarly optimistic settings would be:    
-<pre>
- - {ejbName}    
- - {ejbClass}    
- - {ejbClass.simpleName}    
- - {moduleId}/{ejbClass.simpleName}    
- - {moduleId}/{ejbName}    
-</pre>
-<a name="JNDINames-AdvancedDetailsonEJB3.0BusinessProxies(thesimplepart)"></a>
-### Advanced Details on EJB 3.0 Business Proxies (the simple part)
-
-If you implement your business interfaces, your life is simple as your
-proxies will also implement your business interfaces of the same type. 
-Meaning any proxy OpenEJB creates for a business local interface will also
-implement your other business local interfaces.  Similarly, any proxy
-OpenEJB creates for a business remote interface will also implement your
-other business remote interfaces.
-
-<a name="JNDINames-AdvancedDetailsonEJB3.0BusinessProxies(thecomplicatedpart)"></a>
-### Advanced Details on EJB 3.0 Business Proxies (the complicated part)
-
-*Who should read?*    
-Read this section of either of these two apply to you:    
- - You do not implement your business interfaces in your bean class    
- - One or more of your business remote interfaces extend from javax.rmi.Remote
-
-If neither of these two items describe your apps, then there is no need to
-read further.  Go have fun.
-
-<a name="JNDINames-Notimplementingbusinessinterfaces"></a>
-### Not implementing business interfaces
-
-If you do not implement your business interfaces it may not be possible for
-us to implement all your business interfaces in a single interface. 
-Conflicts in the throws clauses and the return values can occur as detailed [here](multiple-business-interface-hazzards.html)
-.  When creating a proxy for an interface we will detect and remove any
-other business interfaces that would conflict with the main interface.
-
-<a name="JNDINames-Businessinterfacesextendingjavax.rmi.Remote"></a>
-### Business interfaces extending javax.rmi.Remote
-
-Per spec rules many runtime exceptions (container or connection related)
-are thrown from javax.rmi.Remote proxies as java.rmi.RemoteException which
-is not a runtime exception and must be throwable via the proxy as a checked
-exception. The issue is that conflicting throws clauses are actually
-removed for two interfaces sharing the same method signature.  For example
-two methods such as these:    
- - InterfaceA: void doIt() throws Foo;   
- - InterfaceB: void doIt() throws RemoteException;    
-
-can be implemented by trimming out the conflicting throws clauses as
-follows:    
-  - Implementation: void doIt(){}    
-
-This is fine for a bean class as it does not need to throw the RMI required
-javax.rmi.RemoteException. However if we create a proxy from these two
-interfaces it will also wind up with a 'doIt(){}' method that cannot throw
-javax.rmi.RemoteException.  This is very bad as the container does need to
-throw RemoteException to any business interfaces extending java.rmi.Remote
-for any container related issues or connection issues.	If the container
-attempts to throw a RemoteException from the proxies 'doIt(){}' method, it
-will result in an UndeclaredThrowableException thrown by the VM.
-
-The only way to guarantee the proxy has the 'doIt() throws RemoteException
-{}' method of InterfaceB is to cut out InterfaceA when we create the proxy
-dedicated to InterfaceB.
\ No newline at end of file


Mime
View raw message