Author: timothyjward
Date: Thu Apr  7 12:31:33 2016
New Revision: 1738125

URL: http://svn.apache.org/viewvc?rev=1738125&view=rev
Log:
[tx-control] Add tests for OpenJPA 2.4.1

Added:
    
aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleOpenJPA_2_4_1_Test.java
Modified:
    
aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractJPATransactionTest.java
    
aries/trunk/tx-control/tx-control-provider-jpa-local/src/main/java/org/apache/aries/tx/control/jpa/local/impl/JPAEntityManagerProviderFactoryImpl.java

Modified: 
aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractJPATransactionTest.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractJPATransactionTest.java?rev=1738125&r1=1738124&r2=1738125&view=diff
==============================================================================
--- 
aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractJPATransactionTest.java
 (original)
+++ 
aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractJPATransactionTest.java
 Thu Apr  7 12:31:33 2016
@@ -30,11 +30,8 @@ import java.util.Dictionary;
 import java.util.Hashtable;
 
 import javax.persistence.EntityManager;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaDelete;
 
 import org.apache.aries.itest.AbstractIntegrationTest;
-import org.apache.aries.tx.control.itests.entity.Message;
 import org.h2.tools.Server;
 import org.junit.After;
 import org.junit.Before;
@@ -91,7 +88,7 @@ public abstract class AbstractJPATransac
 
        private EntityManager configuredEntityManager(String jdbcUrl) throws 
IOException {
                
-               Dictionary<String, Object> props = new Hashtable<>();
+               Dictionary<String, Object> props = getBaseProperties();
                
                props.put(DataSourceFactory.OSGI_JDBC_DRIVER_CLASS, 
"org.h2.Driver");
                props.put(DataSourceFactory.JDBC_URL, jdbcUrl);
@@ -115,23 +112,14 @@ public abstract class AbstractJPATransac
                
                return context().getService(JPAEntityManagerProvider.class, 
5000).getResource(txControl);
        }
+
+       protected Dictionary<String, Object> getBaseProperties() {
+               return new Hashtable<>();
+       }
        
        @After
        public void tearDown() {
 
-               try {
-                       txControl.required(() -> 
-                               {
-                                       CriteriaBuilder cb = 
em.getCriteriaBuilder();
-                                       CriteriaDelete<Message> delete = 
cb.createCriteriaDelete(Message.class);
-                                       delete.from(Message.class);
-                                       return 
em.createQuery(delete).executeUpdate();
-                               });
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
-               
-               
                clearConfiguration();
                
                if(server != null) {
@@ -192,7 +180,7 @@ public abstract class AbstractJPATransac
                                mavenBundle("org.ops4j.pax.logging", 
"pax-logging-api").versionAsInProject(),
                                mavenBundle("org.ops4j.pax.logging", 
"pax-logging-service").versionAsInProject()
                                
-//                             
,CoreOptions.vmOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005")
+                               
,CoreOptions.vmOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005")
                                );
        }
 

Added: 
aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleOpenJPA_2_4_1_Test.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleOpenJPA_2_4_1_Test.java?rev=1738125&view=auto
==============================================================================
--- 
aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleOpenJPA_2_4_1_Test.java
 (added)
+++ 
aries/trunk/tx-control/tx-control-jpa-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleOpenJPA_2_4_1_Test.java
 Thu Apr  7 12:31:33 2016
@@ -0,0 +1,54 @@
+package org.apache.aries.tx.control.itests;
+
+import static org.ops4j.pax.exam.CoreOptions.bootClasspathLibrary;
+import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
+import static org.ops4j.pax.exam.CoreOptions.systemPackage;
+import static org.ops4j.pax.exam.CoreOptions.systemProperty;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.ops4j.pax.exam.CoreOptions;
+import org.ops4j.pax.exam.Option;
+
+public class SimpleOpenJPA_2_4_1_Test extends AbstractSimpleTransactionTest {
+
+       protected String ariesJPAVersion() {
+               return "2.4.0-SNAPSHOT";
+       }
+       
+       protected Dictionary<String, Object> getBaseProperties() {
+               Dictionary<String, Object> base = new Hashtable<>();
+               //This is necessary due to 
https://issues.apache.org/jira/browse/OPENJPA-2521
+               base.put("openjpa.MetaDataFactory", 
"jpa(Types=org.apache.aries.tx.control.itests.entity.Message)");
+               base.put("openjpa.RuntimeUnenhancedClasses", "supported");
+               
+               //This is necessary as OpenJPA is only JPA 2.0 compliant and 
does not understand the standard properties
+               base.put("openjpa.jdbc.SynchronizeMappings", 
"buildSchema(ForeignKeys=true, SchemaAction='add,deleteTableContents')");
+               
+               base.put("openjpa.Log", "DefaultLevel=TRACE");
+               return base;
+       }
+       
+       @Override
+       protected Option jpaProvider() {
+               return CoreOptions.composite(
+                       // Add JTA 1.1 as a system package because of the link 
to javax.sql
+                       
+                       systemProperty(ARIES_EMF_BUILDER_TARGET_FILTER)
+                               
.value("(osgi.unit.provider=org.apache.openjpa.persistence.PersistenceProviderImpl)"),
+                       systemPackage("javax.transaction;version=1.1"),
+                       systemPackage("javax.transaction.xa;version=1.1"),
+                       
bootClasspathLibrary(mavenBundle("org.apache.geronimo.specs", 
"geronimo-jta_1.1_spec", "1.1.1")).beforeFramework(),
+                       
+                       // OpenJPA bundles and their dependencies (JPA API is 
available from the tx-control)
+                       mavenBundle("commons-pool", "commons-pool", "1.5.4"),
+                       mavenBundle("commons-lang", "commons-lang", "2.4"),
+                       mavenBundle("commons-collections", 
"commons-collections", "3.2.2"),
+                       mavenBundle("org.apache.servicemix.bundles", 
"org.apache.servicemix.bundles.serp", "1.15.1_1"),
+                       mavenBundle("org.apache.servicemix.bundles", 
"org.apache.servicemix.bundles.commons-dbcp", "1.4_3"),
+                       mavenBundle("org.apache.xbean", "xbean-asm5-shaded", 
"3.17"),
+                       mavenBundle("org.apache.openjpa", "openjpa", "2.4.1"));
+       }
+
+}

Modified: 
aries/trunk/tx-control/tx-control-provider-jpa-local/src/main/java/org/apache/aries/tx/control/jpa/local/impl/JPAEntityManagerProviderFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-provider-jpa-local/src/main/java/org/apache/aries/tx/control/jpa/local/impl/JPAEntityManagerProviderFactoryImpl.java?rev=1738125&r1=1738124&r2=1738125&view=diff
==============================================================================
--- 
aries/trunk/tx-control/tx-control-provider-jpa-local/src/main/java/org/apache/aries/tx/control/jpa/local/impl/JPAEntityManagerProviderFactoryImpl.java
 (original)
+++ 
aries/trunk/tx-control/tx-control-provider-jpa-local/src/main/java/org/apache/aries/tx/control/jpa/local/impl/JPAEntityManagerProviderFactoryImpl.java
 Thu Apr  7 12:31:33 2016
@@ -37,7 +37,7 @@ public class JPAEntityManagerProviderFac
                        tranType = 
PersistenceUnitTransactionType.valueOf(o.toString());
                } else {
                        //TODO log this?
-                       tranType = null;
+                       tranType = RESOURCE_LOCAL;
                }
                
                if(RESOURCE_LOCAL != tranType) {


Reply via email to