You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2013/10/19 11:25:13 UTC

svn commit: r1533722 - /openwebbeans/cms-site/trunk/content/testing_cdictrl.mdtext

Author: struberg
Date: Sat Oct 19 09:25:13 2013
New Revision: 1533722

URL: http://svn.apache.org/r1533722
Log:
add info about even testing OWB as part of TomEE

Modified:
    openwebbeans/cms-site/trunk/content/testing_cdictrl.mdtext

Modified: openwebbeans/cms-site/trunk/content/testing_cdictrl.mdtext
URL: http://svn.apache.org/viewvc/openwebbeans/cms-site/trunk/content/testing_cdictrl.mdtext?rev=1533722&r1=1533721&r2=1533722&view=diff
==============================================================================
--- openwebbeans/cms-site/trunk/content/testing_cdictrl.mdtext (original)
+++ openwebbeans/cms-site/trunk/content/testing_cdictrl.mdtext Sat Oct 19 09:25:13 2013
@@ -183,8 +183,55 @@ Such a base class could look roughly lik
     
     }
 
- 
+## Testing JavaEE applications
 
+You can also plug in a cdictrl backend for [Apache TomEE][2] whenever you need to not only test CDI applications 
+but a full JavaEE application which has EJBs, managed DataSources, JTA, etc
+The only thing you need to do is to replace your ``deltaspike-cdictrl-owb`` dependency in your pom with
+``deltaspike-cdictrl-openejb``. Since Apache TomEE and Apache OpenEJB both contain OpenWebBeans as CDI container
+you will get all the OWB functionality plus other JavaEE functionality.  
+
+You can pass DataSource configuration by simply providing a ``Properties`` instance to 
+``CdiContainer.boot(dbConfiguration)`` in the beforeMethod method of the test class above:
+
+    :::java
+    public final void beforeMethod() throws Exception {
+        containerRefCount++;
+    
+        if (cdiContainer == null) {
+            // setting up the Apache DeltaSpike ProjectStage
+            ProjectStage projectStage = runInProjectStage();
+            ProjectStageProducer.setProjectStage(projectStage);
+            cdiContainer = CdiContainerLoader.getCdiContainer();
+    
+            Properties dbProperties = new Properties();
+            String dbvendor = ConfigResolver.getPropertyValue("dbvendor", "h2");
+            URL dbPropertiesUrl =  getClass().getResource("/db/db-" + dbvendor + ".properties");
+            if (dbPropertiesUrl != null) {
+                InputStream is = dbPropertiesUrl.openStream();
+                try {
+                    dbProperties.load(is);
+                }
+                finally {
+                    is.close();
+                }
+            }
+
+            cdiContainer.boot(dbProperties);
+        }
+        else {
+            cleanInstances();
+        }
+    }
+        
+The ``db/db-mysql.properties`` file for Apache OpenEJB (the former name of TomEE) would look like:
+
+    MYDS = new://Resource?type=DataSource
+    MYDS.JdbcDriver = org.h2.Driver
+    MYDS.JdbcUrl = jdbc:h2:file:/tmp/h2/myappdb
+    MYDS.JtaManaged = true
+    MYDS.UserName = sa
+    MYDS.Password =
 
 
   [1]: http://deltaspike.apache.org