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) {