You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2015/11/23 23:07:22 UTC

[10/51] [partial] tomee git commit: removing ^M (windows eol)

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/datasource-versioning/README.md
----------------------------------------------------------------------
diff --git a/examples/datasource-versioning/README.md b/examples/datasource-versioning/README.md
index f0adadc..3ddabcc 100644
--- a/examples/datasource-versioning/README.md
+++ b/examples/datasource-versioning/README.md
@@ -1,386 +1,386 @@
-Title: DataSource Versioning
-
-This example shows you how to use versioned DataSources of the same provider using the classpath attribute.
-
-# Configuration
-
-The DataSource configuration can be made several ways and here we layout two common methods in the form of unit tests.
-Before we start, if you take a peek in the project pom.xml and look for the maven-dependency-plugin usage you will see that we pull in
-two completely different driver files for this example.
-
-# AlternateDataSourceTest.java
-This test utilizes the Arquillian testing framework. See [here](http://tomee.apache.org/arquillian-available-adapters.html) for more details.
-
-The example uses src/test/resources/arquillian.xml and src/test/conf/tomee.xml to define the DataSources.
-Note the differing driver version paths, yet still using the same provider (org.apache.derby.jdbc.EmbeddedDriver):
-
-    <tomee>
-
-      <Resource id="DatabaseOne" type="DataSource" classpath="${catalina.base}/../../drivers/derby-10.10.1.1.jar">
-        JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
-        JdbcUrl jdbc:derby:databaseOne;create=true
-        UserName SA
-      </Resource>
-
-      <Resource id="DatabaseTwo" type="DataSource" classpath="${catalina.base}/../../drivers/derby-10.9.1.0.jar">
-        JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
-        JdbcUrl jdbc:derby:databaseTwo;create=true
-        UserName SA
-      </Resource>
-
-    </tomee>
-	
-# Developer Information
-When testing within a Maven environment it is also possible to use direct maven coordinates rather than a file link, like so:
-
-    ....
-	<Resource id="DatabaseOne" type="DataSource" classpath="mvn:org.apache.derby:derby:10.10.1.1">
-	....
-	
-
-# AlternateDriverJarTest.java
-
-This test takes an embedded approach and as you can see the driver paths are specified as a DataSource parameter.
-Both examples demonstrate the same, in that two driver versions can be loaded and used within the same application.
-
-    @Configuration
-    public Properties config() {
-
-        final File drivers = new File(new File("target"), "drivers").getAbsoluteFile();
-
-        final Properties p = new Properties();
-        p.put("openejb.jdbc.datasource-creator", "dbcp-alternative");
-
-        File file = new File(drivers, "derby-10.10.1.1.jar");
-        Assert.assertTrue("Failed to find: " + file, file.exists());
-
-        p.put("JdbcOne", "new://Resource?type=DataSource&classpath="
-                + file.getAbsolutePath().replace("\\", "/"));
-        p.put("JdbcOne.JdbcDriver", "org.apache.derby.jdbc.EmbeddedDriver");
-        p.put("JdbcOne.JdbcUrl", "jdbc:derby:memory:JdbcOne;create=true");
-        p.put("JdbcOne.UserName", USER);
-        p.put("JdbcOne.Password", PASSWORD);
-        p.put("JdbcOne.JtaManaged", "false");
-
-        file = new File(drivers, "derby-10.9.1.0.jar");
-        Assert.assertTrue("Failed to find: " + file, file.exists());
-
-        p.put("JdbcTwo", "new://Resource?type=DataSource&classpath="
-                + file.getAbsolutePath().replace("\\", "/"));
-        p.put("JdbcTwo.JdbcDriver", "org.apache.derby.jdbc.EmbeddedDriver");
-        p.put("JdbcTwo.JdbcUrl", "jdbc:derby:memory:JdbcTwo;create=true");
-        p.put("JdbcTwo.UserName", USER);
-        p.put("JdbcTwo.Password", PASSWORD);
-        p.put("JdbcTwo.JtaManaged", "false");
-        return p;
-    }
-
-# Full Test Source for AlternateDataSourceTest.java
-
-    package org.superbiz;
-
-    import org.jboss.arquillian.container.test.api.Deployment;
-    import org.jboss.arquillian.junit.Arquillian;
-    import org.jboss.shrinkwrap.api.ShrinkWrap;
-    import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
-    import org.jboss.shrinkwrap.api.spec.WebArchive;
-    import org.junit.Assert;
-    import org.junit.Test;
-    import org.junit.runner.RunWith;
-
-    import javax.annotation.Resource;
-    import javax.ejb.EJB;
-    import javax.ejb.Stateless;
-    import javax.sql.DataSource;
-    import java.sql.Connection;
-    import java.sql.DatabaseMetaData;
-    import java.sql.SQLException;
-
-    @RunWith(Arquillian.class)
-    public class AlternateDataSourceTest {
-
-        @Deployment
-        public static WebArchive createDeployment() {
-
-            return ShrinkWrap.create(WebArchive.class, "test.war")
-                .addClasses(DataSourceTester.class)
-                .addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml"), "META-INF/ejb-jar.xml");
-            //We are using src/test/conf/tomee.xml, but this also works - .addAsResource(new ClassLoaderAsset("META-INF/resources.xml"), "META-INF/resources.xml");
-            //Or even using a persistence context - .addAsResource(new ClassLoaderAsset("META-INF/persistence.xml"), "META-INF/persistence.xml");
-        }
-
-        @EJB
-        private DataSourceTester tester;
-
-        @Test
-        public void testDataSourceOne() throws Exception {
-            Assert.assertEquals("Should be using 10.10.1.1 - (1458268)", "10.10.1.1 - (1458268)", tester.getOne());
-        }
-
-        @Test
-        public void testDataSourceTwo() throws Exception {
-            Assert.assertEquals("Should be using 10.9.1.0 - (1344872)", "10.9.1.0 - (1344872)", tester.getTwo());
-        }
-
-        @Test
-        public void testDataSourceBoth() throws Exception {
-            Assert.assertEquals("Should be using 10.10.1.1 - (1458268)|10.9.1.0 - (1344872)", "10.10.1.1 - (1458268)|10.9.1.0 - (1344872)", tester.getBoth());
-        }
-
-        @Stateless
-        public static class DataSourceTester {
-
-            @Resource(name = "DatabaseOne")
-            DataSource dataSourceOne;
-
-            @Resource(name = "DatabaseTwo")
-            DataSource dataSourceTwo;
-
-            public String getOne() throws Exception {
-                return getVersion(dataSourceOne);
-            }
-
-            public String getTwo() throws Exception {
-                return getVersion(dataSourceTwo);
-            }
-
-            public String getBoth() throws Exception {
-                return getOne() + "|" + getTwo();
-            }
-
-            private static String getVersion(final DataSource ds) throws SQLException {
-                Connection con = null;
-                try {
-                    con = ds.getConnection();
-                    final DatabaseMetaData md = con.getMetaData();
-                    return md.getDriverVersion();
-                } finally {
-                    if (con != null) {
-                        con.close();
-                    }
-                }
-            }
-        }
-    }
-
-# Running
-
-    
-    -------------------------------------------------------
-     T E S T S
-    -------------------------------------------------------
-    Running org.superbiz.AlternateDataSourceTest
-    Apr 17, 2014 2:19:45 PM org.apache.openejb.arquillian.common.Setup findHome
-    INFO: Unable to find home in: C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote
-    Apr 17, 2014 2:19:45 PM org.apache.openejb.arquillian.common.MavenCache getArtifact
-    INFO: Downloading org.apache.openejb:apache-tomee:1.6.1-SNAPSHOT:zip:webprofile please wait...
-    Apr 17, 2014 2:19:45 PM org.apache.openejb.arquillian.common.Zips unzip
-    INFO: Extracting 'C:\Users\Andy\.m2\repository\org\apache\openejb\apache-tomee\1.6.1-SNAPSHOT\apache-tomee-1.6.1-SNAPSHOT-webprofile.zip' to 'C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote'
-    Apr 17, 2014 2:19:47 PM org.apache.tomee.arquillian.remote.RemoteTomEEContainer configure
-    INFO: Downloaded container to: C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT
-    INFO - The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_45\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\SlikSvn\bin;C:\dev\apache-maven-3.2.1\bin;C:\dev\apache-ant-1.9.3\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Git\bin;C:\Program Files\TortoiseGit\bin;C:\Program Files\TortoiseSVN\bin;.
-    INFO - Initializing ProtocolHandler ["http-bio-55243"]
-    INFO - Initializing ProtocolHandler ["ajp-bio-55245"]
-    INFO - Using 'openejb.jdbc.datasource-creator=org.apache.tomee.jdbc.TomEEDataSourceCreator'
-    INFO - Optional service not installed: org.apache.tomee.webservices.TomeeJaxRsService
-    INFO - Optional service not installed: org.apache.tomee.webservices.TomeeJaxWsService
-    INFO - ********************************************************************************
-    INFO - OpenEJB http://tomee.apache.org/
-    INFO - Startup: Thu Apr 17 14:19:55 CEST 2014
-    INFO - Copyright 1999-2013 (C) Apache OpenEJB Project, All Rights Reserved.
-    INFO - Version: 7.0.0-SNAPSHOT
-    INFO - Build date: 20140417
-    INFO - Build time: 01:37
-    INFO - ********************************************************************************
-    INFO - openejb.home = C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT
-    INFO - openejb.base = C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT
-    INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@22c2e2dd
-    INFO - Succeeded in installing singleton service
-    INFO - openejb configuration file is 'C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT\conf\tomee.xml'
-    INFO - Configuring Service(id=Tomcat Security Service, type=SecurityService, provider-id=Tomcat Security Service)
-    INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
-    INFO - Configuring Service(id=DatabaseOne, type=Resource, provider-id=Default JDBC Database)
-    INFO - Configuring Service(id=DatabaseTwo, type=Resource, provider-id=Default JDBC Database)
-    INFO - Using 'openejb.system.apps=true'
-    INFO - Configuring enterprise application: openejb
-    INFO - Using openejb.deploymentId.format '{ejbName}'
-    INFO - Auto-deploying ejb openejb/Deployer: EjbDeployment(deployment-id=openejb/Deployer)
-    INFO - Auto-deploying ejb openejb/ConfigurationInfo: EjbDeployment(deployment-id=openejb/ConfigurationInfo)
-    INFO - Auto-deploying ejb MEJB: EjbDeployment(deployment-id=MEJB)
-    INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container)
-    INFO - Auto-creating a container for bean openejb/Deployer: Container(type=STATELESS, id=Default Stateless Container)
-    INFO - Enterprise application "openejb" loaded.
-    INFO - Creating TransactionManager(id=Default Transaction Manager)
-    INFO - Creating SecurityService(id=Tomcat Security Service)
-    INFO - Creating Resource(id=DatabaseOne)
-    INFO - Disabling testOnBorrow since no validation query is provided
-    INFO - Creating Resource(id=DatabaseTwo)
-    INFO - Disabling testOnBorrow since no validation query is provided
-    INFO - Creating Container(id=Default Stateless Container)
-    INFO - Assembling app: openejb
-    INFO - Using 'openejb.jndiname.format={deploymentId}{interfaceType.openejbLegacyName}'
-    INFO - Jndi(name=openejb/DeployerBusinessRemote) --> Ejb(deployment-id=openejb/Deployer)
-    INFO - Jndi(name=global/openejb/openejb/Deployer!org.apache.openejb.assembler.Deployer) --> Ejb(deployment-id=openejb/Deployer)
-    INFO - Jndi(name=global/openejb/openejb/Deployer) --> Ejb(deployment-id=openejb/Deployer)
-    INFO - Jndi(name=openejb/ConfigurationInfoBusinessRemote) --> Ejb(deployment-id=openejb/ConfigurationInfo)
-    INFO - Jndi(name=global/openejb/openejb/ConfigurationInfo!org.apache.openejb.assembler.classic.cmd.ConfigurationInfo) --> Ejb(deployment-id=openejb/ConfigurationInfo)
-    INFO - Jndi(name=global/openejb/openejb/ConfigurationInfo) --> Ejb(deployment-id=openejb/ConfigurationInfo)
-    INFO - Jndi(name=MEJB) --> Ejb(deployment-id=MEJB)
-    INFO - Jndi(name=global/openejb/MEJB!javax.management.j2ee.ManagementHome) --> Ejb(deployment-id=MEJB)
-    INFO - Jndi(name=global/openejb/MEJB) --> Ejb(deployment-id=MEJB)
-    INFO - Created Ejb(deployment-id=openejb/Deployer, ejb-name=openejb/Deployer, container=Default Stateless Container)
-    INFO - Created Ejb(deployment-id=MEJB, ejb-name=MEJB, container=Default Stateless Container)
-    INFO - Created Ejb(deployment-id=openejb/ConfigurationInfo, ejb-name=openejb/ConfigurationInfo, container=Default Stateless Container)
-    INFO - Started Ejb(deployment-id=openejb/Deployer, ejb-name=openejb/Deployer, container=Default Stateless Container)
-    INFO - Started Ejb(deployment-id=MEJB, ejb-name=MEJB, container=Default Stateless Container)
-    INFO - Started Ejb(deployment-id=openejb/ConfigurationInfo, ejb-name=openejb/ConfigurationInfo, container=Default Stateless Container)
-    INFO - Deployed MBean(openejb.user.mbeans:application=openejb,group=org.apache.openejb.assembler.monitoring,name=JMXDeployer)
-    INFO - Deployed Application(path=openejb)
-    INFO -   ** Bound Services **
-    INFO -   NAME                 IP              PORT
-    INFO - -------
-    INFO - Ready!
-    INFO - Initialization processed in 7959 ms
-    INFO - Importing a Tomcat Resource with id 'UserDatabase' of type 'org.apache.catalina.UserDatabase'.
-    INFO - Creating Resource(id=UserDatabase)
-    INFO - Starting service Catalina
-    INFO - Starting Servlet Engine: Apache Tomcat (TomEE)/7.0.53 (1.6.1-SNAPSHOT)
-    INFO - Starting ProtocolHandler ["http-bio-55243"]
-    INFO - Starting ProtocolHandler ["ajp-bio-55245"]
-    INFO - Server startup in 288 ms
-    WARNING - StandardServer.await: Invalid command '' received
-    Apr 17, 2014 2:20:04 PM org.apache.openejb.client.EventLogger log
-    INFO: RemoteInitialContextCreated{providerUri=http://localhost:55243/tomee/ejb}
-    INFO - Extracting jar: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test.war
-    INFO - Extracted path: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test
-    INFO - using default host: localhost
-    INFO - ------------------------- localhost -> /test
-    INFO - Using 'openejb.session.manager=org.apache.tomee.catalina.session.QuickSessionManager'
-    INFO - Configuring enterprise application: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test
-    INFO - Auto-deploying ejb DataSourceTester: EjbDeployment(deployment-id=DataSourceTester)
-    INFO - Auto-linking resource-ref 'java:comp/env/DatabaseTwo' in bean DataSourceTester to Resource(id=DatabaseTwo)
-    INFO - Auto-linking resource-ref 'java:comp/env/DatabaseOne' in bean DataSourceTester to Resource(id=DatabaseOne)
-    INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
-    INFO - Auto-creating a container for bean org.superbiz.AlternateDataSourceTest: Container(type=MANAGED, id=Default Managed Container)
-    INFO - Creating Container(id=Default Managed Container)
-    INFO - Using directory C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT\temp for stateful session passivation
-    INFO - Enterprise application "C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test" loaded.
-    INFO - Assembling app: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test
-    INFO - Jndi(name=DataSourceTesterLocalBean) --> Ejb(deployment-id=DataSourceTester)
-    INFO - Jndi(name=global/test/DataSourceTester!org.superbiz.AlternateDataSourceTest$DataSourceTester) --> Ejb(deployment-id=DataSourceTester)
-    INFO - Jndi(name=global/test/DataSourceTester) --> Ejb(deployment-id=DataSourceTester)
-    INFO - Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@22c2e2dd
-    INFO - OpenWebBeans Container is starting...
-    INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
-    INFO - Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
-    INFO - All injection points were validated successfully.
-    INFO - OpenWebBeans Container has started, it took 203 ms.
-    INFO - Created Ejb(deployment-id=DataSourceTester, ejb-name=DataSourceTester, container=Default Stateless Container)
-    INFO - Started Ejb(deployment-id=DataSourceTester, ejb-name=DataSourceTester, container=Default Stateless Container)
-    INFO - Deployed Application(path=C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test)
-    Apr 17, 2014 2:20:11 PM org.apache.openejb.client.EventLogger log
-    INFO: RemoteInitialContextCreated{providerUri=http://localhost:55243/tomee/ejb}
-    INFO - Undeploying app: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test
-    Apr 17, 2014 2:20:13 PM org.apache.openejb.arquillian.common.TomEEContainer undeploy
-    INFO: cleaning C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0
-    Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 30.155 sec
-    Running org.superbiz.AlternateDriverJarTest
-    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigUtils searchForConfiguration
-    INFO: Cannot find the configuration file [conf/openejb.xml].  Will attempt to create one for the beans deployed.
-    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigurationFactory configureService
-    INFO: Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
-    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigurationFactory configureService
-    INFO: Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
-    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigurationFactory configureService
-    INFO: Configuring Service(id=JdbcTwo, type=Resource, provider-id=Default JDBC Database)
-    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigurationFactory configureService
-    INFO: Configuring Service(id=JdbcOne, type=Resource, provider-id=Default JDBC Database)
-    Apr 17, 2014 2:20:13 PM org.apache.openejb.assembler.classic.Assembler createRecipe
-    INFO: Creating TransactionManager(id=Default Transaction Manager)
-    Apr 17, 2014 2:20:14 PM org.apache.openejb.assembler.classic.Assembler createRecipe
-    INFO: Creating SecurityService(id=Default Security Service)
-    Apr 17, 2014 2:20:14 PM org.apache.openejb.assembler.classic.Assembler createRecipe
-    INFO: Creating Resource(id=JdbcTwo)
-    Apr 17, 2014 2:20:15 PM org.apache.openejb.assembler.classic.Assembler createRecipe
-    INFO: Creating Resource(id=JdbcOne)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.ConfigurationFactory configureApplication
-    INFO: Configuring enterprise application: C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.ConfigurationFactory configureService
-    INFO: Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AutoConfig createContainer
-    INFO: Auto-creating a container for bean org.superbiz.AlternateDriverJarTest: Container(type=MANAGED, id=Default Managed Container)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.Assembler createRecipe
-    INFO: Creating Container(id=Default Managed Container)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.core.managed.SimplePassivater init
-    INFO: Using directory C:\Users\Andy\AppData\Local\Temp for stateful session passivation
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.ConfigurationFactory configureService
-    INFO: Configuring Service(id=Default Singleton Container, type=Container, provider-id=Default Singleton Container)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AutoConfig createContainer
-    INFO: Auto-creating a container for bean JdbcOne: Container(type=SINGLETON, id=Default Singleton Container)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.Assembler createRecipe
-    INFO: Creating Container(id=Default Singleton Container)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AutoConfig processResourceRef
-    INFO: Auto-linking resource-ref 'java:comp/env/JdbcOne' in bean JdbcOne to Resource(id=JdbcOne)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AutoConfig processResourceRef
-    INFO: Auto-linking resource-ref 'java:comp/env/JdbcTwo' in bean JdbcTwo to Resource(id=JdbcTwo)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AppInfoBuilder build
-    INFO: Enterprise application "C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest" loaded.
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.Assembler createApplication
-    INFO: Assembling app: C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
-    INFO: Jndi(name=JdbcOneLocalBean) --> Ejb(deployment-id=JdbcOne)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
-    INFO: Jndi(name=global/AlternateDriverJarTest/app/JdbcOne!org.superbiz.AlternateDriverJarTest$JdbcOne) --> Ejb(deployment-id=JdbcOne)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
-    INFO: Jndi(name=global/AlternateDriverJarTest/app/JdbcOne) --> Ejb(deployment-id=JdbcOne)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
-    INFO: Jndi(name=JdbcTwoLocalBean) --> Ejb(deployment-id=JdbcTwo)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
-    INFO: Jndi(name=global/AlternateDriverJarTest/app/JdbcTwo!org.superbiz.AlternateDriverJarTest$JdbcTwo) --> Ejb(deployment-id=JdbcTwo)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
-    INFO: Jndi(name=global/AlternateDriverJarTest/app/JdbcTwo) --> Ejb(deployment-id=JdbcTwo)
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.cdi.CdiBuilder initializeOWB
-    INFO: Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@5ddd4e70
-    Apr 17, 2014 2:20:16 PM org.apache.openejb.cdi.CdiBuilder initializeOWB
-    INFO: Succeeded in installing singleton service
-    Apr 17, 2014 2:20:17 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
-    INFO: OpenWebBeans Container is starting...
-    Apr 17, 2014 2:20:17 PM org.apache.webbeans.plugins.PluginLoader startUp
-    INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
-    Apr 17, 2014 2:20:17 PM org.apache.webbeans.config.BeansDeployer validateInjectionPoints
-    INFO: All injection points were validated successfully.
-    Apr 17, 2014 2:20:17 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
-    INFO: OpenWebBeans Container has started, it took 223 ms.
-    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler startEjbs
-    INFO: Created Ejb(deployment-id=JdbcTwo, ejb-name=JdbcTwo, container=Default Singleton Container)
-    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler startEjbs
-    INFO: Created Ejb(deployment-id=JdbcOne, ejb-name=JdbcOne, container=Default Singleton Container)
-    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler startEjbs
-    INFO: Started Ejb(deployment-id=JdbcTwo, ejb-name=JdbcTwo, container=Default Singleton Container)
-    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler startEjbs
-    INFO: Started Ejb(deployment-id=JdbcOne, ejb-name=JdbcOne, container=Default Singleton Container)
-    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler createApplication
-    INFO: Deployed Application(path=C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest)
-    Apr 17, 2014 2:20:20 PM org.apache.openejb.assembler.classic.Assembler destroyApplication
-    INFO: Undeploying app: C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest
-    Apr 17, 2014 2:20:20 PM org.apache.openejb.assembler.classic.Assembler destroyResource
-    INFO: Closing DataSource: JdbcTwo
-    Apr 17, 2014 2:20:20 PM org.apache.openejb.assembler.classic.Assembler destroyResource
-    INFO: Closing DataSource: JdbcOne
-    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.857 sec
-    INFO - A valid shutdown command was received via the shutdown port. Stopping the Server instance.
-    INFO - Pausing ProtocolHandler ["http-bio-55243"]
-    INFO - Pausing ProtocolHandler ["ajp-bio-55245"]
-    INFO - Stopping service Catalina
-    INFO - Stopping ProtocolHandler ["http-bio-55243"]
-    INFO - Stopping ProtocolHandler ["ajp-bio-55245"]
-    INFO - Stopping server services
-    INFO - Undeploying app: openejb
-    INFO - Closing DataSource: DatabaseOne
-    INFO - Closing DataSource: DatabaseTwo
-    INFO - Destroying ProtocolHandler ["http-bio-55243"]
-    INFO - Destroying ProtocolHandler ["ajp-bio-55245"]
-
-    Results :
-
-    Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
+Title: DataSource Versioning
+
+This example shows you how to use versioned DataSources of the same provider using the classpath attribute.
+
+# Configuration
+
+The DataSource configuration can be made several ways and here we layout two common methods in the form of unit tests.
+Before we start, if you take a peek in the project pom.xml and look for the maven-dependency-plugin usage you will see that we pull in
+two completely different driver files for this example.
+
+# AlternateDataSourceTest.java
+This test utilizes the Arquillian testing framework. See [here](http://tomee.apache.org/arquillian-available-adapters.html) for more details.
+
+The example uses src/test/resources/arquillian.xml and src/test/conf/tomee.xml to define the DataSources.
+Note the differing driver version paths, yet still using the same provider (org.apache.derby.jdbc.EmbeddedDriver):
+
+    <tomee>
+
+      <Resource id="DatabaseOne" type="DataSource" classpath="${catalina.base}/../../drivers/derby-10.10.1.1.jar">
+        JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
+        JdbcUrl jdbc:derby:databaseOne;create=true
+        UserName SA
+      </Resource>
+
+      <Resource id="DatabaseTwo" type="DataSource" classpath="${catalina.base}/../../drivers/derby-10.9.1.0.jar">
+        JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
+        JdbcUrl jdbc:derby:databaseTwo;create=true
+        UserName SA
+      </Resource>
+
+    </tomee>
+	
+# Developer Information
+When testing within a Maven environment it is also possible to use direct maven coordinates rather than a file link, like so:
+
+    ....
+	<Resource id="DatabaseOne" type="DataSource" classpath="mvn:org.apache.derby:derby:10.10.1.1">
+	....
+	
+
+# AlternateDriverJarTest.java
+
+This test takes an embedded approach and as you can see the driver paths are specified as a DataSource parameter.
+Both examples demonstrate the same, in that two driver versions can be loaded and used within the same application.
+
+    @Configuration
+    public Properties config() {
+
+        final File drivers = new File(new File("target"), "drivers").getAbsoluteFile();
+
+        final Properties p = new Properties();
+        p.put("openejb.jdbc.datasource-creator", "dbcp-alternative");
+
+        File file = new File(drivers, "derby-10.10.1.1.jar");
+        Assert.assertTrue("Failed to find: " + file, file.exists());
+
+        p.put("JdbcOne", "new://Resource?type=DataSource&classpath="
+                + file.getAbsolutePath().replace("\\", "/"));
+        p.put("JdbcOne.JdbcDriver", "org.apache.derby.jdbc.EmbeddedDriver");
+        p.put("JdbcOne.JdbcUrl", "jdbc:derby:memory:JdbcOne;create=true");
+        p.put("JdbcOne.UserName", USER);
+        p.put("JdbcOne.Password", PASSWORD);
+        p.put("JdbcOne.JtaManaged", "false");
+
+        file = new File(drivers, "derby-10.9.1.0.jar");
+        Assert.assertTrue("Failed to find: " + file, file.exists());
+
+        p.put("JdbcTwo", "new://Resource?type=DataSource&classpath="
+                + file.getAbsolutePath().replace("\\", "/"));
+        p.put("JdbcTwo.JdbcDriver", "org.apache.derby.jdbc.EmbeddedDriver");
+        p.put("JdbcTwo.JdbcUrl", "jdbc:derby:memory:JdbcTwo;create=true");
+        p.put("JdbcTwo.UserName", USER);
+        p.put("JdbcTwo.Password", PASSWORD);
+        p.put("JdbcTwo.JtaManaged", "false");
+        return p;
+    }
+
+# Full Test Source for AlternateDataSourceTest.java
+
+    package org.superbiz;
+
+    import org.jboss.arquillian.container.test.api.Deployment;
+    import org.jboss.arquillian.junit.Arquillian;
+    import org.jboss.shrinkwrap.api.ShrinkWrap;
+    import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
+    import org.jboss.shrinkwrap.api.spec.WebArchive;
+    import org.junit.Assert;
+    import org.junit.Test;
+    import org.junit.runner.RunWith;
+
+    import javax.annotation.Resource;
+    import javax.ejb.EJB;
+    import javax.ejb.Stateless;
+    import javax.sql.DataSource;
+    import java.sql.Connection;
+    import java.sql.DatabaseMetaData;
+    import java.sql.SQLException;
+
+    @RunWith(Arquillian.class)
+    public class AlternateDataSourceTest {
+
+        @Deployment
+        public static WebArchive createDeployment() {
+
+            return ShrinkWrap.create(WebArchive.class, "test.war")
+                .addClasses(DataSourceTester.class)
+                .addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml"), "META-INF/ejb-jar.xml");
+            //We are using src/test/conf/tomee.xml, but this also works - .addAsResource(new ClassLoaderAsset("META-INF/resources.xml"), "META-INF/resources.xml");
+            //Or even using a persistence context - .addAsResource(new ClassLoaderAsset("META-INF/persistence.xml"), "META-INF/persistence.xml");
+        }
+
+        @EJB
+        private DataSourceTester tester;
+
+        @Test
+        public void testDataSourceOne() throws Exception {
+            Assert.assertEquals("Should be using 10.10.1.1 - (1458268)", "10.10.1.1 - (1458268)", tester.getOne());
+        }
+
+        @Test
+        public void testDataSourceTwo() throws Exception {
+            Assert.assertEquals("Should be using 10.9.1.0 - (1344872)", "10.9.1.0 - (1344872)", tester.getTwo());
+        }
+
+        @Test
+        public void testDataSourceBoth() throws Exception {
+            Assert.assertEquals("Should be using 10.10.1.1 - (1458268)|10.9.1.0 - (1344872)", "10.10.1.1 - (1458268)|10.9.1.0 - (1344872)", tester.getBoth());
+        }
+
+        @Stateless
+        public static class DataSourceTester {
+
+            @Resource(name = "DatabaseOne")
+            DataSource dataSourceOne;
+
+            @Resource(name = "DatabaseTwo")
+            DataSource dataSourceTwo;
+
+            public String getOne() throws Exception {
+                return getVersion(dataSourceOne);
+            }
+
+            public String getTwo() throws Exception {
+                return getVersion(dataSourceTwo);
+            }
+
+            public String getBoth() throws Exception {
+                return getOne() + "|" + getTwo();
+            }
+
+            private static String getVersion(final DataSource ds) throws SQLException {
+                Connection con = null;
+                try {
+                    con = ds.getConnection();
+                    final DatabaseMetaData md = con.getMetaData();
+                    return md.getDriverVersion();
+                } finally {
+                    if (con != null) {
+                        con.close();
+                    }
+                }
+            }
+        }
+    }
+
+# Running
+
+    
+    -------------------------------------------------------
+     T E S T S
+    -------------------------------------------------------
+    Running org.superbiz.AlternateDataSourceTest
+    Apr 17, 2014 2:19:45 PM org.apache.openejb.arquillian.common.Setup findHome
+    INFO: Unable to find home in: C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote
+    Apr 17, 2014 2:19:45 PM org.apache.openejb.arquillian.common.MavenCache getArtifact
+    INFO: Downloading org.apache.openejb:apache-tomee:1.6.1-SNAPSHOT:zip:webprofile please wait...
+    Apr 17, 2014 2:19:45 PM org.apache.openejb.arquillian.common.Zips unzip
+    INFO: Extracting 'C:\Users\Andy\.m2\repository\org\apache\openejb\apache-tomee\1.6.1-SNAPSHOT\apache-tomee-1.6.1-SNAPSHOT-webprofile.zip' to 'C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote'
+    Apr 17, 2014 2:19:47 PM org.apache.tomee.arquillian.remote.RemoteTomEEContainer configure
+    INFO: Downloaded container to: C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT
+    INFO - The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0_45\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\SlikSvn\bin;C:\dev\apache-maven-3.2.1\bin;C:\dev\apache-ant-1.9.3\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Git\bin;C:\Program Files\TortoiseGit\bin;C:\Program Files\TortoiseSVN\bin;.
+    INFO - Initializing ProtocolHandler ["http-bio-55243"]
+    INFO - Initializing ProtocolHandler ["ajp-bio-55245"]
+    INFO - Using 'openejb.jdbc.datasource-creator=org.apache.tomee.jdbc.TomEEDataSourceCreator'
+    INFO - Optional service not installed: org.apache.tomee.webservices.TomeeJaxRsService
+    INFO - Optional service not installed: org.apache.tomee.webservices.TomeeJaxWsService
+    INFO - ********************************************************************************
+    INFO - OpenEJB http://tomee.apache.org/
+    INFO - Startup: Thu Apr 17 14:19:55 CEST 2014
+    INFO - Copyright 1999-2013 (C) Apache OpenEJB Project, All Rights Reserved.
+    INFO - Version: 7.0.0-SNAPSHOT
+    INFO - Build date: 20140417
+    INFO - Build time: 01:37
+    INFO - ********************************************************************************
+    INFO - openejb.home = C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT
+    INFO - openejb.base = C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT
+    INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@22c2e2dd
+    INFO - Succeeded in installing singleton service
+    INFO - openejb configuration file is 'C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT\conf\tomee.xml'
+    INFO - Configuring Service(id=Tomcat Security Service, type=SecurityService, provider-id=Tomcat Security Service)
+    INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+    INFO - Configuring Service(id=DatabaseOne, type=Resource, provider-id=Default JDBC Database)
+    INFO - Configuring Service(id=DatabaseTwo, type=Resource, provider-id=Default JDBC Database)
+    INFO - Using 'openejb.system.apps=true'
+    INFO - Configuring enterprise application: openejb
+    INFO - Using openejb.deploymentId.format '{ejbName}'
+    INFO - Auto-deploying ejb openejb/Deployer: EjbDeployment(deployment-id=openejb/Deployer)
+    INFO - Auto-deploying ejb openejb/ConfigurationInfo: EjbDeployment(deployment-id=openejb/ConfigurationInfo)
+    INFO - Auto-deploying ejb MEJB: EjbDeployment(deployment-id=MEJB)
+    INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container)
+    INFO - Auto-creating a container for bean openejb/Deployer: Container(type=STATELESS, id=Default Stateless Container)
+    INFO - Enterprise application "openejb" loaded.
+    INFO - Creating TransactionManager(id=Default Transaction Manager)
+    INFO - Creating SecurityService(id=Tomcat Security Service)
+    INFO - Creating Resource(id=DatabaseOne)
+    INFO - Disabling testOnBorrow since no validation query is provided
+    INFO - Creating Resource(id=DatabaseTwo)
+    INFO - Disabling testOnBorrow since no validation query is provided
+    INFO - Creating Container(id=Default Stateless Container)
+    INFO - Assembling app: openejb
+    INFO - Using 'openejb.jndiname.format={deploymentId}{interfaceType.openejbLegacyName}'
+    INFO - Jndi(name=openejb/DeployerBusinessRemote) --> Ejb(deployment-id=openejb/Deployer)
+    INFO - Jndi(name=global/openejb/openejb/Deployer!org.apache.openejb.assembler.Deployer) --> Ejb(deployment-id=openejb/Deployer)
+    INFO - Jndi(name=global/openejb/openejb/Deployer) --> Ejb(deployment-id=openejb/Deployer)
+    INFO - Jndi(name=openejb/ConfigurationInfoBusinessRemote) --> Ejb(deployment-id=openejb/ConfigurationInfo)
+    INFO - Jndi(name=global/openejb/openejb/ConfigurationInfo!org.apache.openejb.assembler.classic.cmd.ConfigurationInfo) --> Ejb(deployment-id=openejb/ConfigurationInfo)
+    INFO - Jndi(name=global/openejb/openejb/ConfigurationInfo) --> Ejb(deployment-id=openejb/ConfigurationInfo)
+    INFO - Jndi(name=MEJB) --> Ejb(deployment-id=MEJB)
+    INFO - Jndi(name=global/openejb/MEJB!javax.management.j2ee.ManagementHome) --> Ejb(deployment-id=MEJB)
+    INFO - Jndi(name=global/openejb/MEJB) --> Ejb(deployment-id=MEJB)
+    INFO - Created Ejb(deployment-id=openejb/Deployer, ejb-name=openejb/Deployer, container=Default Stateless Container)
+    INFO - Created Ejb(deployment-id=MEJB, ejb-name=MEJB, container=Default Stateless Container)
+    INFO - Created Ejb(deployment-id=openejb/ConfigurationInfo, ejb-name=openejb/ConfigurationInfo, container=Default Stateless Container)
+    INFO - Started Ejb(deployment-id=openejb/Deployer, ejb-name=openejb/Deployer, container=Default Stateless Container)
+    INFO - Started Ejb(deployment-id=MEJB, ejb-name=MEJB, container=Default Stateless Container)
+    INFO - Started Ejb(deployment-id=openejb/ConfigurationInfo, ejb-name=openejb/ConfigurationInfo, container=Default Stateless Container)
+    INFO - Deployed MBean(openejb.user.mbeans:application=openejb,group=org.apache.openejb.assembler.monitoring,name=JMXDeployer)
+    INFO - Deployed Application(path=openejb)
+    INFO -   ** Bound Services **
+    INFO -   NAME                 IP              PORT
+    INFO - -------
+    INFO - Ready!
+    INFO - Initialization processed in 7959 ms
+    INFO - Importing a Tomcat Resource with id 'UserDatabase' of type 'org.apache.catalina.UserDatabase'.
+    INFO - Creating Resource(id=UserDatabase)
+    INFO - Starting service Catalina
+    INFO - Starting Servlet Engine: Apache Tomcat (TomEE)/7.0.53 (1.6.1-SNAPSHOT)
+    INFO - Starting ProtocolHandler ["http-bio-55243"]
+    INFO - Starting ProtocolHandler ["ajp-bio-55245"]
+    INFO - Server startup in 288 ms
+    WARNING - StandardServer.await: Invalid command '' received
+    Apr 17, 2014 2:20:04 PM org.apache.openejb.client.EventLogger log
+    INFO: RemoteInitialContextCreated{providerUri=http://localhost:55243/tomee/ejb}
+    INFO - Extracting jar: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test.war
+    INFO - Extracted path: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test
+    INFO - using default host: localhost
+    INFO - ------------------------- localhost -> /test
+    INFO - Using 'openejb.session.manager=org.apache.tomee.catalina.session.QuickSessionManager'
+    INFO - Configuring enterprise application: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test
+    INFO - Auto-deploying ejb DataSourceTester: EjbDeployment(deployment-id=DataSourceTester)
+    INFO - Auto-linking resource-ref 'java:comp/env/DatabaseTwo' in bean DataSourceTester to Resource(id=DatabaseTwo)
+    INFO - Auto-linking resource-ref 'java:comp/env/DatabaseOne' in bean DataSourceTester to Resource(id=DatabaseOne)
+    INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
+    INFO - Auto-creating a container for bean org.superbiz.AlternateDataSourceTest: Container(type=MANAGED, id=Default Managed Container)
+    INFO - Creating Container(id=Default Managed Container)
+    INFO - Using directory C:\dev\svn\tomee\examples\datasource-versioning\target\apache-tomee-remote\apache-tomee-webprofile-1.6.1-SNAPSHOT\temp for stateful session passivation
+    INFO - Enterprise application "C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test" loaded.
+    INFO - Assembling app: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test
+    INFO - Jndi(name=DataSourceTesterLocalBean) --> Ejb(deployment-id=DataSourceTester)
+    INFO - Jndi(name=global/test/DataSourceTester!org.superbiz.AlternateDataSourceTest$DataSourceTester) --> Ejb(deployment-id=DataSourceTester)
+    INFO - Jndi(name=global/test/DataSourceTester) --> Ejb(deployment-id=DataSourceTester)
+    INFO - Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@22c2e2dd
+    INFO - OpenWebBeans Container is starting...
+    INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
+    INFO - Adding OpenWebBeansPlugin : [OpenWebBeansJsfPlugin]
+    INFO - All injection points were validated successfully.
+    INFO - OpenWebBeans Container has started, it took 203 ms.
+    INFO - Created Ejb(deployment-id=DataSourceTester, ejb-name=DataSourceTester, container=Default Stateless Container)
+    INFO - Started Ejb(deployment-id=DataSourceTester, ejb-name=DataSourceTester, container=Default Stateless Container)
+    INFO - Deployed Application(path=C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test)
+    Apr 17, 2014 2:20:11 PM org.apache.openejb.client.EventLogger log
+    INFO: RemoteInitialContextCreated{providerUri=http://localhost:55243/tomee/ejb}
+    INFO - Undeploying app: C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0\test
+    Apr 17, 2014 2:20:13 PM org.apache.openejb.arquillian.common.TomEEContainer undeploy
+    INFO: cleaning C:\dev\svn\tomee\examples\datasource-versioning\target\arquillian-test-working-dir\0
+    Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 30.155 sec
+    Running org.superbiz.AlternateDriverJarTest
+    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigUtils searchForConfiguration
+    INFO: Cannot find the configuration file [conf/openejb.xml].  Will attempt to create one for the beans deployed.
+    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigurationFactory configureService
+    INFO: Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
+    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigurationFactory configureService
+    INFO: Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
+    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigurationFactory configureService
+    INFO: Configuring Service(id=JdbcTwo, type=Resource, provider-id=Default JDBC Database)
+    Apr 17, 2014 2:20:13 PM org.apache.openejb.config.ConfigurationFactory configureService
+    INFO: Configuring Service(id=JdbcOne, type=Resource, provider-id=Default JDBC Database)
+    Apr 17, 2014 2:20:13 PM org.apache.openejb.assembler.classic.Assembler createRecipe
+    INFO: Creating TransactionManager(id=Default Transaction Manager)
+    Apr 17, 2014 2:20:14 PM org.apache.openejb.assembler.classic.Assembler createRecipe
+    INFO: Creating SecurityService(id=Default Security Service)
+    Apr 17, 2014 2:20:14 PM org.apache.openejb.assembler.classic.Assembler createRecipe
+    INFO: Creating Resource(id=JdbcTwo)
+    Apr 17, 2014 2:20:15 PM org.apache.openejb.assembler.classic.Assembler createRecipe
+    INFO: Creating Resource(id=JdbcOne)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.ConfigurationFactory configureApplication
+    INFO: Configuring enterprise application: C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.ConfigurationFactory configureService
+    INFO: Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AutoConfig createContainer
+    INFO: Auto-creating a container for bean org.superbiz.AlternateDriverJarTest: Container(type=MANAGED, id=Default Managed Container)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.Assembler createRecipe
+    INFO: Creating Container(id=Default Managed Container)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.core.managed.SimplePassivater init
+    INFO: Using directory C:\Users\Andy\AppData\Local\Temp for stateful session passivation
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.ConfigurationFactory configureService
+    INFO: Configuring Service(id=Default Singleton Container, type=Container, provider-id=Default Singleton Container)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AutoConfig createContainer
+    INFO: Auto-creating a container for bean JdbcOne: Container(type=SINGLETON, id=Default Singleton Container)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.Assembler createRecipe
+    INFO: Creating Container(id=Default Singleton Container)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AutoConfig processResourceRef
+    INFO: Auto-linking resource-ref 'java:comp/env/JdbcOne' in bean JdbcOne to Resource(id=JdbcOne)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AutoConfig processResourceRef
+    INFO: Auto-linking resource-ref 'java:comp/env/JdbcTwo' in bean JdbcTwo to Resource(id=JdbcTwo)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.config.AppInfoBuilder build
+    INFO: Enterprise application "C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest" loaded.
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.Assembler createApplication
+    INFO: Assembling app: C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+    INFO: Jndi(name=JdbcOneLocalBean) --> Ejb(deployment-id=JdbcOne)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+    INFO: Jndi(name=global/AlternateDriverJarTest/app/JdbcOne!org.superbiz.AlternateDriverJarTest$JdbcOne) --> Ejb(deployment-id=JdbcOne)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+    INFO: Jndi(name=global/AlternateDriverJarTest/app/JdbcOne) --> Ejb(deployment-id=JdbcOne)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+    INFO: Jndi(name=JdbcTwoLocalBean) --> Ejb(deployment-id=JdbcTwo)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+    INFO: Jndi(name=global/AlternateDriverJarTest/app/JdbcTwo!org.superbiz.AlternateDriverJarTest$JdbcTwo) --> Ejb(deployment-id=JdbcTwo)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.assembler.classic.JndiBuilder bind
+    INFO: Jndi(name=global/AlternateDriverJarTest/app/JdbcTwo) --> Ejb(deployment-id=JdbcTwo)
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.cdi.CdiBuilder initializeOWB
+    INFO: Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@5ddd4e70
+    Apr 17, 2014 2:20:16 PM org.apache.openejb.cdi.CdiBuilder initializeOWB
+    INFO: Succeeded in installing singleton service
+    Apr 17, 2014 2:20:17 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
+    INFO: OpenWebBeans Container is starting...
+    Apr 17, 2014 2:20:17 PM org.apache.webbeans.plugins.PluginLoader startUp
+    INFO: Adding OpenWebBeansPlugin : [CdiPlugin]
+    Apr 17, 2014 2:20:17 PM org.apache.webbeans.config.BeansDeployer validateInjectionPoints
+    INFO: All injection points were validated successfully.
+    Apr 17, 2014 2:20:17 PM org.apache.openejb.cdi.OpenEJBLifecycle startApplication
+    INFO: OpenWebBeans Container has started, it took 223 ms.
+    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler startEjbs
+    INFO: Created Ejb(deployment-id=JdbcTwo, ejb-name=JdbcTwo, container=Default Singleton Container)
+    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler startEjbs
+    INFO: Created Ejb(deployment-id=JdbcOne, ejb-name=JdbcOne, container=Default Singleton Container)
+    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler startEjbs
+    INFO: Started Ejb(deployment-id=JdbcTwo, ejb-name=JdbcTwo, container=Default Singleton Container)
+    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler startEjbs
+    INFO: Started Ejb(deployment-id=JdbcOne, ejb-name=JdbcOne, container=Default Singleton Container)
+    Apr 17, 2014 2:20:17 PM org.apache.openejb.assembler.classic.Assembler createApplication
+    INFO: Deployed Application(path=C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest)
+    Apr 17, 2014 2:20:20 PM org.apache.openejb.assembler.classic.Assembler destroyApplication
+    INFO: Undeploying app: C:\dev\svn\tomee\examples\datasource-versioning\AlternateDriverJarTest
+    Apr 17, 2014 2:20:20 PM org.apache.openejb.assembler.classic.Assembler destroyResource
+    INFO: Closing DataSource: JdbcTwo
+    Apr 17, 2014 2:20:20 PM org.apache.openejb.assembler.classic.Assembler destroyResource
+    INFO: Closing DataSource: JdbcOne
+    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.857 sec
+    INFO - A valid shutdown command was received via the shutdown port. Stopping the Server instance.
+    INFO - Pausing ProtocolHandler ["http-bio-55243"]
+    INFO - Pausing ProtocolHandler ["ajp-bio-55245"]
+    INFO - Stopping service Catalina
+    INFO - Stopping ProtocolHandler ["http-bio-55243"]
+    INFO - Stopping ProtocolHandler ["ajp-bio-55245"]
+    INFO - Stopping server services
+    INFO - Undeploying app: openejb
+    INFO - Closing DataSource: DatabaseOne
+    INFO - Closing DataSource: DatabaseTwo
+    INFO - Destroying ProtocolHandler ["http-bio-55243"]
+    INFO - Destroying ProtocolHandler ["ajp-bio-55245"]
+
+    Results :
+
+    Tests run: 4, Failures: 0, Errors: 0, Skipped: 0

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java
----------------------------------------------------------------------
diff --git a/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java b/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java
index 2aa2386..2877434 100644
--- a/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java
+++ b/examples/datasource-versioning/src/test/java/org/superbiz/AlternateDataSourceTest.java
@@ -1,101 +1,101 @@
-/*
- * 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.
- */
-package org.superbiz;
-
-import org.jboss.arquillian.container.test.api.Deployment;
-import org.jboss.arquillian.junit.Arquillian;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import javax.annotation.Resource;
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.SQLException;
-
-@RunWith(Arquillian.class)
-public class AlternateDataSourceTest {
-
-    @Deployment
-    public static WebArchive createDeployment() {
-
-        return ShrinkWrap.create(WebArchive.class, "test.war")
-                .addClasses(DataSourceTester.class)
-                .addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml"), "META-INF/ejb-jar.xml");
-        //We are using src/test/conf/tomee.xml, but this also works - .addAsResource(new ClassLoaderAsset("META-INF/resources.xml"), "META-INF/resources.xml");
-        //Or even using a persistence context - .addAsResource(new ClassLoaderAsset("META-INF/persistence.xml"), "META-INF/persistence.xml");
-    }
-
-    @EJB
-    private DataSourceTester tester;
-
-    @Test
-    public void testDataSourceOne() throws Exception {
-        Assert.assertEquals("Should be using 10.10.1.1 - (1458268)", "10.10.1.1 - (1458268)", tester.getOne());
-    }
-
-    @Test
-    public void testDataSourceTwo() throws Exception {
-        Assert.assertEquals("Should be using 10.9.1.0 - (1344872)", "10.9.1.0 - (1344872)", tester.getTwo());
-    }
-
-    @Test
-    public void testDataSourceBoth() throws Exception {
-        Assert.assertEquals("Should be using 10.10.1.1 - (1458268)|10.9.1.0 - (1344872)", "10.10.1.1 - (1458268)|10.9.1.0 - (1344872)", tester.getBoth());
-    }
-
-    @Stateless
-    public static class DataSourceTester {
-
-        @Resource(name = "DatabaseOne")
-        DataSource dataSourceOne;
-
-        @Resource(name = "DatabaseTwo")
-        DataSource dataSourceTwo;
-
-        public String getOne() throws Exception {
-            return getVersion(dataSourceOne);
-        }
-
-        public String getTwo() throws Exception {
-            return getVersion(dataSourceTwo);
-        }
-
-        public String getBoth() throws Exception {
-            return getOne() + "|" + getTwo();
-        }
-
-        private static String getVersion(final DataSource ds) throws SQLException {
-            Connection con = null;
-            try {
-                con = ds.getConnection();
-                final DatabaseMetaData md = con.getMetaData();
-                return md.getDriverVersion();
-            } finally {
-                if (con != null) {
-                    con.close();
-                }
-            }
-        }
-    }
-}
+/*
+ * 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.
+ */
+package org.superbiz;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.ClassLoaderAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
+
+@RunWith(Arquillian.class)
+public class AlternateDataSourceTest {
+
+    @Deployment
+    public static WebArchive createDeployment() {
+
+        return ShrinkWrap.create(WebArchive.class, "test.war")
+                .addClasses(DataSourceTester.class)
+                .addAsResource(new ClassLoaderAsset("META-INF/ejb-jar.xml"), "META-INF/ejb-jar.xml");
+        //We are using src/test/conf/tomee.xml, but this also works - .addAsResource(new ClassLoaderAsset("META-INF/resources.xml"), "META-INF/resources.xml");
+        //Or even using a persistence context - .addAsResource(new ClassLoaderAsset("META-INF/persistence.xml"), "META-INF/persistence.xml");
+    }
+
+    @EJB
+    private DataSourceTester tester;
+
+    @Test
+    public void testDataSourceOne() throws Exception {
+        Assert.assertEquals("Should be using 10.10.1.1 - (1458268)", "10.10.1.1 - (1458268)", tester.getOne());
+    }
+
+    @Test
+    public void testDataSourceTwo() throws Exception {
+        Assert.assertEquals("Should be using 10.9.1.0 - (1344872)", "10.9.1.0 - (1344872)", tester.getTwo());
+    }
+
+    @Test
+    public void testDataSourceBoth() throws Exception {
+        Assert.assertEquals("Should be using 10.10.1.1 - (1458268)|10.9.1.0 - (1344872)", "10.10.1.1 - (1458268)|10.9.1.0 - (1344872)", tester.getBoth());
+    }
+
+    @Stateless
+    public static class DataSourceTester {
+
+        @Resource(name = "DatabaseOne")
+        DataSource dataSourceOne;
+
+        @Resource(name = "DatabaseTwo")
+        DataSource dataSourceTwo;
+
+        public String getOne() throws Exception {
+            return getVersion(dataSourceOne);
+        }
+
+        public String getTwo() throws Exception {
+            return getVersion(dataSourceTwo);
+        }
+
+        public String getBoth() throws Exception {
+            return getOne() + "|" + getTwo();
+        }
+
+        private static String getVersion(final DataSource ds) throws SQLException {
+            Connection con = null;
+            try {
+                con = ds.getConnection();
+                final DatabaseMetaData md = con.getMetaData();
+                return md.getDriverVersion();
+            } finally {
+                if (con != null) {
+                    con.close();
+                }
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/datasource-versioning/src/test/resources/META-INF/resources.xml
----------------------------------------------------------------------
diff --git a/examples/datasource-versioning/src/test/resources/META-INF/resources.xml b/examples/datasource-versioning/src/test/resources/META-INF/resources.xml
index 62c12dc..3d18c66 100644
--- a/examples/datasource-versioning/src/test/resources/META-INF/resources.xml
+++ b/examples/datasource-versioning/src/test/resources/META-INF/resources.xml
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<resources>
-
-  <!--Not used, just here as an example-->
-
-  <Resource id="DatabaseOne" type="DataSource" classpath="${catalina.base}/../../drivers/derby-10.10.1.1.jar">
-    JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
-    JdbcUrl jdbc:derby:target/databaseOne;create=true
-    UserName SA
-  </Resource>
-
-  <Resource id="DatabaseTwo" type="DataSource" classpath="${catalina.base}/../../drivers/derby-10.9.1.0.jar">
-    JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
-    JdbcUrl jdbc:derby:target/databaseTwo;create=true
-    UserName SA
-  </Resource>
-
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<resources>
+
+  <!--Not used, just here as an example-->
+
+  <Resource id="DatabaseOne" type="DataSource" classpath="${catalina.base}/../../drivers/derby-10.10.1.1.jar">
+    JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
+    JdbcUrl jdbc:derby:target/databaseOne;create=true
+    UserName SA
+  </Resource>
+
+  <Resource id="DatabaseTwo" type="DataSource" classpath="${catalina.base}/../../drivers/derby-10.9.1.0.jar">
+    JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
+    JdbcUrl jdbc:derby:target/databaseTwo;create=true
+    UserName SA
+  </Resource>
+
 </resources>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/decorators/src/main/java/org/superbiz/cdi/decorators/AccessDeniedException.java
----------------------------------------------------------------------
diff --git a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/AccessDeniedException.java b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/AccessDeniedException.java
index ce38e68..b0701f5 100644
--- a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/AccessDeniedException.java
+++ b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/AccessDeniedException.java
@@ -1,30 +1,30 @@
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-package org.superbiz.cdi.decorators;
-
-import javax.ejb.ApplicationException;
-
-/**
- * @version $Revision$ $Date$
- */
-@ApplicationException
-public class AccessDeniedException extends RuntimeException {
-
-    public AccessDeniedException(String s) {
-        super(s);
-    }
-}
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+package org.superbiz.cdi.decorators;
+
+import javax.ejb.ApplicationException;
+
+/**
+ * @version $Revision$ $Date$
+ */
+@ApplicationException
+public class AccessDeniedException extends RuntimeException {
+
+    public AccessDeniedException(String s) {
+        super(s);
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/decorators/src/main/java/org/superbiz/cdi/decorators/Calculator.java
----------------------------------------------------------------------
diff --git a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/Calculator.java b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/Calculator.java
index dec43bf..ef8ffed 100644
--- a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/Calculator.java
+++ b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/Calculator.java
@@ -1,33 +1,33 @@
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-package org.superbiz.cdi.decorators;
-
-/**
- * @version $Revision$ $Date$
- */
-public interface Calculator {
-
-    public int add(int a, int b);
-
-    public int subtract(int a, int b);
-
-    public int multiply(int a, int b);
-
-    public int divide(int a, int b);
-
-    public int remainder(int a, int b);
-}
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+package org.superbiz.cdi.decorators;
+
+/**
+ * @version $Revision$ $Date$
+ */
+public interface Calculator {
+
+    public int add(int a, int b);
+
+    public int subtract(int a, int b);
+
+    public int multiply(int a, int b);
+
+    public int divide(int a, int b);
+
+    public int remainder(int a, int b);
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorBean.java
----------------------------------------------------------------------
diff --git a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorBean.java b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorBean.java
index 7d6c6e4..dc61f30 100644
--- a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorBean.java
+++ b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorBean.java
@@ -1,42 +1,42 @@
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-package org.superbiz.cdi.decorators;
-
-import javax.ejb.Stateless;
-
-@Stateless
-public class CalculatorBean implements Calculator {
-    public int add(int a, int b) {
-        return a + b;
-    }
-
-    public int subtract(int a, int b) {
-        return a - b;
-    }
-
-    public int multiply(int a, int b) {
-        return a * b;
-    }
-
-    public int divide(int a, int b) {
-        return a / b;
-    }
-
-    public int remainder(int a, int b) {
-        return a % b;
-    }
-}
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+package org.superbiz.cdi.decorators;
+
+import javax.ejb.Stateless;
+
+@Stateless
+public class CalculatorBean implements Calculator {
+    public int add(int a, int b) {
+        return a + b;
+    }
+
+    public int subtract(int a, int b) {
+        return a - b;
+    }
+
+    public int multiply(int a, int b) {
+        return a * b;
+    }
+
+    public int divide(int a, int b) {
+        return a / b;
+    }
+
+    public int remainder(int a, int b) {
+        return a % b;
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorLogging.java
----------------------------------------------------------------------
diff --git a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorLogging.java b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorLogging.java
index 3d21a42..3f12b71 100644
--- a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorLogging.java
+++ b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorLogging.java
@@ -1,60 +1,60 @@
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-package org.superbiz.cdi.decorators;
-
-import javax.decorator.Decorator;
-import javax.decorator.Delegate;
-import javax.inject.Inject;
-import java.util.logging.Logger;
-
-@Decorator
-public class CalculatorLogging implements Calculator {
-
-    private Logger logger = Logger.getLogger("Calculator");
-
-    @Inject
-    @Delegate
-    private Calculator calculator;
-
-    @Override
-    public int add(int a, int b) {
-        logger.fine(String.format("add(%s, %s)", a, b));
-        return calculator.add(a, b);
-    }
-
-    @Override
-    public int subtract(int a, int b) {
-        return calculator.subtract(a, b);
-    }
-
-    @Override
-    public int multiply(int a, int b) {
-        logger.finest(String.format("multiply(%s, %s)", a, b));
-        return calculator.multiply(a, b);
-    }
-
-    @Override
-    public int divide(int a, int b) {
-        return calculator.divide(a, b);
-    }
-
-    @Override
-    public int remainder(int a, int b) {
-        logger.info(String.format("remainder(%s, %s)", a, b));
-        return calculator.remainder(a, b);
-    }
-}
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+package org.superbiz.cdi.decorators;
+
+import javax.decorator.Decorator;
+import javax.decorator.Delegate;
+import javax.inject.Inject;
+import java.util.logging.Logger;
+
+@Decorator
+public class CalculatorLogging implements Calculator {
+
+    private Logger logger = Logger.getLogger("Calculator");
+
+    @Inject
+    @Delegate
+    private Calculator calculator;
+
+    @Override
+    public int add(int a, int b) {
+        logger.fine(String.format("add(%s, %s)", a, b));
+        return calculator.add(a, b);
+    }
+
+    @Override
+    public int subtract(int a, int b) {
+        return calculator.subtract(a, b);
+    }
+
+    @Override
+    public int multiply(int a, int b) {
+        logger.finest(String.format("multiply(%s, %s)", a, b));
+        return calculator.multiply(a, b);
+    }
+
+    @Override
+    public int divide(int a, int b) {
+        return calculator.divide(a, b);
+    }
+
+    @Override
+    public int remainder(int a, int b) {
+        logger.info(String.format("remainder(%s, %s)", a, b));
+        return calculator.remainder(a, b);
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorSecurity.java
----------------------------------------------------------------------
diff --git a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorSecurity.java b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorSecurity.java
index 00409a9..a4dd05c 100644
--- a/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorSecurity.java
+++ b/examples/decorators/src/main/java/org/superbiz/cdi/decorators/CalculatorSecurity.java
@@ -1,65 +1,65 @@
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-package org.superbiz.cdi.decorators;
-
-import javax.annotation.Resource;
-import javax.decorator.Decorator;
-import javax.decorator.Delegate;
-import javax.ejb.SessionContext;
-import javax.inject.Inject;
-
-@Decorator
-public class CalculatorSecurity implements Calculator {
-
-    @Inject
-    @Delegate
-    private Calculator calculator;
-
-    @Resource
-    private SessionContext sessionContext;
-
-    @Override
-    public int add(int a, int b) {
-        return calculator.add(a, b);
-    }
-
-    @Override
-    public int subtract(int a, int b) {
-        // Caller must pass a security check to call subtract
-        if (!sessionContext.isCallerInRole("Manager")) {
-            throw new AccessDeniedException(sessionContext.getCallerPrincipal().getName());
-        }
-
-        return calculator.subtract(a, b);
-    }
-
-    @Override
-    public int multiply(int a, int b) {
-        return calculator.multiply(a, b);
-    }
-
-    @Override
-    public int divide(int a, int b) {
-        return calculator.divide(a, b);
-    }
-
-    @Override
-    public int remainder(int a, int b) {
-        return calculator.remainder(a, b);
-    }
-
-}
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+package org.superbiz.cdi.decorators;
+
+import javax.annotation.Resource;
+import javax.decorator.Decorator;
+import javax.decorator.Delegate;
+import javax.ejb.SessionContext;
+import javax.inject.Inject;
+
+@Decorator
+public class CalculatorSecurity implements Calculator {
+
+    @Inject
+    @Delegate
+    private Calculator calculator;
+
+    @Resource
+    private SessionContext sessionContext;
+
+    @Override
+    public int add(int a, int b) {
+        return calculator.add(a, b);
+    }
+
+    @Override
+    public int subtract(int a, int b) {
+        // Caller must pass a security check to call subtract
+        if (!sessionContext.isCallerInRole("Manager")) {
+            throw new AccessDeniedException(sessionContext.getCallerPrincipal().getName());
+        }
+
+        return calculator.subtract(a, b);
+    }
+
+    @Override
+    public int multiply(int a, int b) {
+        return calculator.multiply(a, b);
+    }
+
+    @Override
+    public int divide(int a, int b) {
+        return calculator.divide(a, b);
+    }
+
+    @Override
+    public int remainder(int a, int b) {
+        return calculator.remainder(a, b);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/6e2a4f7c/examples/decorators/src/test/java/org/superbiz/cdi/decorators/CalculatorTest.java
----------------------------------------------------------------------
diff --git a/examples/decorators/src/test/java/org/superbiz/cdi/decorators/CalculatorTest.java b/examples/decorators/src/test/java/org/superbiz/cdi/decorators/CalculatorTest.java
index 610969e..42c0181 100644
--- a/examples/decorators/src/test/java/org/superbiz/cdi/decorators/CalculatorTest.java
+++ b/examples/decorators/src/test/java/org/superbiz/cdi/decorators/CalculatorTest.java
@@ -1,116 +1,116 @@
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-package org.superbiz.cdi.decorators;
-
-import junit.framework.TestCase;
-
-import javax.annotation.security.RunAs;
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import javax.ejb.embeddable.EJBContainer;
-import java.util.concurrent.Callable;
-
-public class CalculatorTest extends TestCase {
-
-    @EJB
-    private Calculator calculator;
-
-    @EJB
-    private ManagerBean manager;
-
-    /**
-     * Bootstrap the Embedded EJB Container
-     *
-     * @throws Exception
-     */
-    protected void setUp() throws Exception {
-        EJBContainer.createEJBContainer().getContext().bind("inject", this);
-    }
-
-    /**
-     * Test Add method
-     */
-    public void testAdd() {
-
-        assertEquals(10, calculator.add(4, 6));
-
-    }
-
-    /**
-     * Test Subtract method
-     */
-    public void testSubtract() {
-
-        try {
-            calculator.subtract(4, 6);
-
-            fail("AccessDeniedException should have been thrown for unauthenticated access");
-        } catch (AccessDeniedException expected) {
-            // pass
-        }
-
-        final int result = manager.call(new Callable<Integer>() {
-            public Integer call() {
-                return calculator.subtract(4, 6);
-            }
-        });
-
-        assertEquals(-2, result);
-
-    }
-
-    /**
-     * Test Multiply method
-     */
-    public void testMultiply() {
-
-        assertEquals(24, calculator.multiply(4, 6));
-
-    }
-
-    /**
-     * Test Divide method
-     */
-    public void testDivide() {
-
-        assertEquals(2, calculator.divide(12, 6));
-
-    }
-
-    /**
-     * Test Remainder method
-     */
-    public void testRemainder() {
-
-        assertEquals(4, calculator.remainder(46, 6));
-
-    }
-
-    @Stateless
-    @RunAs("Manager")
-    public static class ManagerBean {
-
-        public <V> V call(Callable<V> callable) {
-            try {
-                return callable.call();
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-    }
-}
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+package org.superbiz.cdi.decorators;
+
+import junit.framework.TestCase;
+
+import javax.annotation.security.RunAs;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import javax.ejb.embeddable.EJBContainer;
+import java.util.concurrent.Callable;
+
+public class CalculatorTest extends TestCase {
+
+    @EJB
+    private Calculator calculator;
+
+    @EJB
+    private ManagerBean manager;
+
+    /**
+     * Bootstrap the Embedded EJB Container
+     *
+     * @throws Exception
+     */
+    protected void setUp() throws Exception {
+        EJBContainer.createEJBContainer().getContext().bind("inject", this);
+    }
+
+    /**
+     * Test Add method
+     */
+    public void testAdd() {
+
+        assertEquals(10, calculator.add(4, 6));
+
+    }
+
+    /**
+     * Test Subtract method
+     */
+    public void testSubtract() {
+
+        try {
+            calculator.subtract(4, 6);
+
+            fail("AccessDeniedException should have been thrown for unauthenticated access");
+        } catch (AccessDeniedException expected) {
+            // pass
+        }
+
+        final int result = manager.call(new Callable<Integer>() {
+            public Integer call() {
+                return calculator.subtract(4, 6);
+            }
+        });
+
+        assertEquals(-2, result);
+
+    }
+
+    /**
+     * Test Multiply method
+     */
+    public void testMultiply() {
+
+        assertEquals(24, calculator.multiply(4, 6));
+
+    }
+
+    /**
+     * Test Divide method
+     */
+    public void testDivide() {
+
+        assertEquals(2, calculator.divide(12, 6));
+
+    }
+
+    /**
+     * Test Remainder method
+     */
+    public void testRemainder() {
+
+        assertEquals(4, calculator.remainder(46, 6));
+
+    }
+
+    @Stateless
+    @RunAs("Manager")
+    public static class ManagerBean {
+
+        public <V> V call(Callable<V> callable) {
+            try {
+                return callable.call();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+    }
+}