Author: rmannibucau
Date: Wed Aug 15 17:48:45 2012
New Revision: 1373539
URL: http://svn.apache.org/viewvc?rev=1373539&view=rev
Log:
TOMEE-375 arquillian transaction extension intergration
Added:
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/TransactionTest.java
- copied, changed from r1373332,
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/JPAArquillianAdapterTest.java
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/pom.xml
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/openejb/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/openejb/arquillian/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/openejb/arquillian/transaction/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/openejb/arquillian/transaction/OpenEJBTransactionProvider.java
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/resources/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/resources/arquillian-transaction-configuration.properties
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/test/
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/test/java/
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/transaction/
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/transaction/TxTest.java
Modified:
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/pom.xml
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/pom.xml
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEEJBEnricherArchiveAppender.java
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEERemoteExtension.java
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/pom.xml
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/pom.xml
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappEJBEnricherArchiveAppender.java
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappRemoteExtension.java
openejb/trunk/openejb/arquillian/pom.xml
Modified: openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml
(original)
+++ openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/pom.xml Wed
Aug 15 17:48:45 2012
@@ -93,6 +93,12 @@
<artifactId>arquillian-common</artifactId>
<version>${tomee.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>arquillian-openejb-transaction-provider</artifactId>
+ <version>${tomee.version}</version>
+ </dependency>
</dependencies>
<build>
Modified:
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
Wed Aug 15 17:48:45 2012
@@ -41,9 +41,11 @@ import org.jboss.arquillian.container.sp
import org.jboss.arquillian.container.spi.context.annotation.DeploymentScoped;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.api.InstanceProducer;
+import org.jboss.arquillian.core.api.annotation.ApplicationScoped;
import org.jboss.arquillian.core.api.annotation.Inject;
import org.jboss.arquillian.test.spi.TestClass;
import org.jboss.arquillian.test.spi.annotation.SuiteScoped;
+import
org.jboss.arquillian.transaction.impl.configuration.TransactionConfiguration;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.descriptor.api.Descriptor;
@@ -125,6 +127,10 @@ public class OpenEJBDeployableContainer
@Inject
private Instance<TestClass> testClass;
+ @Inject
+ @ApplicationScoped
+ private InstanceProducer<TransactionConfiguration> txConfig;
+
@Override
public Class<OpenEJBConfiguration> getConfigurationClass() {
return OpenEJBConfiguration.class;
Modified:
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java
Wed Aug 15 17:48:45 2012
@@ -16,20 +16,23 @@
*/
package org.apache.openejb.arquillian.openejb;
-import java.util.Enumeration;
-import java.util.logging.Handler;
-import java.util.logging.LogManager;
-import java.util.logging.Logger;
import org.apache.openejb.arquillian.common.ArquillianUtil;
import
org.apache.openejb.arquillian.common.deployment.DeploymentExceptionObserver;
import
org.apache.openejb.arquillian.common.deployment.DeploymentExceptionProvider;
+import org.apache.openejb.arquillian.transaction.OpenEJBTransactionProvider;
import org.apache.openejb.util.JuliLogStreamFactory;
import org.apache.openejb.util.LogCategory;
import org.jboss.arquillian.container.spi.client.container.DeployableContainer;
-import
org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
import org.jboss.arquillian.core.spi.LoadableExtension;
import org.jboss.arquillian.test.spi.TestEnricher;
import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
+import
org.jboss.arquillian.transaction.impl.container.TransactionRemoteExtension;
+import org.jboss.arquillian.transaction.spi.provider.TransactionProvider;
+
+import java.util.Enumeration;
+import java.util.logging.Handler;
+import java.util.logging.LogManager;
+import java.util.logging.Logger;
public class OpenEJBExtension implements LoadableExtension {
private static final String OPENEJB_ADAPTER_NAME = "openejb";
@@ -56,6 +59,7 @@ public class OpenEJBExtension implements
}
logger.setUseParentHandlers(false);
logger.addHandler(new
JuliLogStreamFactory.OpenEJBSimpleLayoutHandler());
+
}
@Override
@@ -64,8 +68,12 @@ public class OpenEJBExtension implements
extensionBuilder.service(DeployableContainer.class,
OpenEJBDeployableContainer.class)
.service(TestEnricher.class, OpenEJBInjectionEnricher.class)
.service(ResourceProvider.class,
DeploymentExceptionProvider.class)
+ .service(TransactionProvider.class,
OpenEJBTransactionProvider.class)
.observer(TestObserver.class)
.observer(DeploymentExceptionObserver.class);
+
+ // small hack since this extension can't be loaded in embedded
mode by default
+ new TransactionRemoteExtension().register(extensionBuilder);
}
}
}
Copied:
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/TransactionTest.java
(from r1373332,
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/JPAArquillianAdapterTest.java)
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/TransactionTest.java?p2=openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/TransactionTest.java&p1=openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/JPAArquillianAdapterTest.java&r1=1373332&r2=1373539&rev=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/JPAArquillianAdapterTest.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-openejb-embedded-4/src/test/java/org/apache/openejb/arquillian/openejb/TransactionTest.java
Wed Aug 15 17:48:45 2012
@@ -16,91 +16,56 @@
*/
package org.apache.openejb.arquillian.openejb;
-import javax.ejb.Singleton;
-import javax.inject.Inject;
-import javax.persistence.Entity;
-import javax.persistence.EntityManager;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.PersistenceContext;
+import org.apache.openejb.OpenEJB;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.transaction.api.annotation.TransactionMode;
+import org.jboss.arquillian.transaction.api.annotation.Transactional;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
-@RunWith(Arquillian.class)
-public class JPAArquillianAdapterTest {
- @Inject
- private Persister persister;
+import javax.transaction.SystemException;
+import javax.transaction.Transaction;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+@RunWith(Arquillian.class)
+public class TransactionTest {
@Deployment
- public static JavaArchive archive() {
- return ShrinkWrap.create(JavaArchive.class,
JPAArquillianAdapterTest.class.getSimpleName().concat(".jar"))
- .addClasses(Person.class, Persister.class)
- .addAsManifestResource(EmptyAsset.INSTANCE,
ArchivePaths.create("ejb-jar.xml"))
- .addAsManifestResource(new StringAsset("<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n" +
- "<persistence version=\"2.0\"\n" +
- "
xmlns=\"http://java.sun.com/xml/ns/persistence\"\n" +
- "
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
- "
xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence\n" +
- "
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd\">\n" +
- " <persistence-unit name=\"person\">\n" +
- " <jta-data-source>My
DataSource</jta-data-source>\n" +
- " <non-jta-data-source>My Unmanaged
DataSource</non-jta-data-source>\n" +
- " <class>" + Person.class.getName() + "</class>\n" +
- " <properties>\n" +
- " <property
name=\"openjpa.jdbc.SynchronizeMappings\"
value=\"buildSchema(ForeignKeys=true)\"/>\n" +
- " </properties>\n" +
- " </persistence-unit>\n" +
- "</persistence>"),
ArchivePaths.create("persistence.xml"));
+ public static WebArchive archive() {
+ return ShrinkWrap.create(WebArchive.class,
TransactionTest.class.getSimpleName().concat(".war"))
+ .addAsWebInfResource(EmptyAsset.INSTANCE,
ArchivePaths.create("ejb-jar.xml"));
}
@Test
- public void persist() {
- persister.persist(new Person("foo"));
+ @Transactional(TransactionMode.DISABLED)
+ public void noTx() throws SystemException {
+ assertNull(currentTransaction());
}
- @Entity
- public static class Person {
- @Id
- @GeneratedValue
- private long id;
-
- private String name;
-
- public Person() {
- // no-op
- }
-
- public Person(final String name) {
- this.name = name;
- }
-
- public long getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
+ @Test
+ public void noTxAtAll() throws SystemException {
+ assertNull(currentTransaction());
+ }
- public void setName(String name) {
- this.name = name;
- }
+ @Test
+ @Transactional(TransactionMode.COMMIT)
+ public void txCommit() throws SystemException {
+ assertNotNull(currentTransaction());
}
- @Singleton
- public static class Persister {
- @PersistenceContext
- private EntityManager em;
+ @Test
+ @Transactional(TransactionMode.ROLLBACK)
+ public void txRollback() throws SystemException {
+ assertNotNull(currentTransaction());
+ }
- public void persist(final Person person) {
- em.persist(person);
- }
+ private Transaction currentTransaction() throws SystemException {
+ return OpenEJB.getTransactionManager().getTransaction();
}
}
Added:
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/pom.xml?rev=1373539&view=auto
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/pom.xml
(added)
+++
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/pom.xml
Wed Aug 15 17:48:45 2012
@@ -0,0 +1,45 @@
+<?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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>arquillian</artifactId>
+ <groupId>org.apache.openejb</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>arquillian-openejb-transaction-provider</artifactId>
+ <name>OpenEJB :: Arquillian Adaptors Parent :: Transaction Provider</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>openejb-core</artifactId>
+ <version>${openejb.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.arquillian.extension</groupId>
+ <artifactId>arquillian-transaction-impl-base</artifactId>
+ <version>1.0.0.Alpha1</version>
+ </dependency>
+ </dependencies>
+</project>
Added:
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/openejb/arquillian/transaction/OpenEJBTransactionProvider.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/openejb/arquillian/transaction/OpenEJBTransactionProvider.java?rev=1373539&view=auto
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/openejb/arquillian/transaction/OpenEJBTransactionProvider.java
(added)
+++
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/java/org/apache/openejb/arquillian/transaction/OpenEJBTransactionProvider.java
Wed Aug 15 17:48:45 2012
@@ -0,0 +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
+ *
+ * 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.apache.openejb.arquillian.transaction;
+
+import org.apache.openejb.OpenEJB;
+import org.apache.openejb.OpenEJBRuntimeException;
+import org.jboss.arquillian.transaction.spi.provider.TransactionProvider;
+import org.jboss.arquillian.transaction.spi.test.TransactionalTest;
+
+public class OpenEJBTransactionProvider implements TransactionProvider {
+ public static final String CONFIG_PATH =
"arquillian-transaction-configuration.properties";
+
+ @Override
+ public void beginTransaction(final TransactionalTest test) {
+ if (accept(test.getManager())) {
+ try {
+ OpenEJB.getTransactionManager().begin();
+ } catch (Exception e) {
+ throw new OpenEJBRuntimeException(e);
+ }
+ }
+ }
+
+ @Override
+ public void commitTransaction(final TransactionalTest test) {
+ if (accept(test.getManager())) {
+ try {
+ OpenEJB.getTransactionManager().commit();
+ } catch (Exception e) {
+ throw new OpenEJBRuntimeException(e);
+ }
+ }
+ }
+
+ @Override
+ public void rollbackTransaction(final TransactionalTest test) {
+ if (accept(test.getManager())) {
+ try {
+ OpenEJB.getTransactionManager().rollback();
+ } catch (Exception e) {
+ throw new OpenEJBRuntimeException(e);
+ }
+ }
+ }
+
+ private boolean accept(final String manager) {
+ return manager == null || manager.isEmpty()
+ || "openejb".equalsIgnoreCase(manager)
+ || "tomee".equalsIgnoreCase(manager);
+ }
+}
Added:
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/resources/arquillian-transaction-configuration.properties
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/resources/arquillian-transaction-configuration.properties?rev=1373539&view=auto
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/resources/arquillian-transaction-configuration.properties
(added)
+++
openejb/trunk/openejb/arquillian/arquillian-openejb-transaction-provider/src/main/resources/arquillian-transaction-configuration.properties
Wed Aug 15 17:48:45 2012
@@ -0,0 +1,20 @@
+#
+#
+# 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.
+#
+manager = openejb
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/pom.xml?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/pom.xml
(original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/pom.xml Wed Aug
15 17:48:45 2012
@@ -38,6 +38,12 @@
</dependency>
<dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>arquillian-openejb-transaction-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-container-spi</artifactId>
<version>${version.arquillian}</version>
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java
Wed Aug 15 17:48:45 2012
@@ -20,18 +20,26 @@ package org.apache.openejb.arquillian.em
import org.apache.openejb.arquillian.common.ArquillianUtil;
import
org.apache.openejb.arquillian.common.deployment.DeploymentExceptionObserver;
import
org.apache.openejb.arquillian.common.deployment.DeploymentExceptionProvider;
+import org.apache.openejb.arquillian.transaction.OpenEJBTransactionProvider;
import org.jboss.arquillian.container.spi.client.container.DeployableContainer;
import org.jboss.arquillian.core.spi.LoadableExtension;
import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
+import org.jboss.arquillian.transaction.impl.client.TransactionExtension;
+import
org.jboss.arquillian.transaction.impl.container.TransactionRemoteExtension;
+import org.jboss.arquillian.transaction.spi.provider.TransactionProvider;
public class EmbeddedTomEEExtension implements LoadableExtension {
private static final String ADAPTER = "tomee-embedded";
- @Override public void register(ExtensionBuilder builder) {
+ @Override
+ public void register(final ExtensionBuilder builder) {
if (ArquillianUtil.isCurrentAdapter(ADAPTER)) {
builder.service(DeployableContainer.class,
EmbeddedTomEEContainer.class)
.observer(DeploymentExceptionObserver.class)
+ .service(TransactionProvider.class,
OpenEJBTransactionProvider.class)
.service(ResourceProvider.class,
DeploymentExceptionProvider.class);
+
+ new TransactionRemoteExtension().register(builder);
}
}
}
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-remote/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-remote/pom.xml?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-remote/pom.xml (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-remote/pom.xml Wed Aug 15
17:48:45 2012
@@ -30,6 +30,11 @@
<name>OpenEJB :: Arquillian Adaptors Parent :: Remote</name>
<dependencies>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>arquillian-openejb-transaction-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEEJBEnricherArchiveAppender.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEEJBEnricherArchiveAppender.java?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEEJBEnricherArchiveAppender.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEEJBEnricherArchiveAppender.java
Wed Aug 15 17:48:45 2012
@@ -17,16 +17,21 @@
package org.apache.tomee.arquillian.remote;
+import org.apache.openejb.arquillian.transaction.OpenEJBTransactionProvider;
import org.jboss.arquillian.container.test.spi.RemoteLoadableExtension;
import
org.jboss.arquillian.container.test.spi.client.deployment.AuxiliaryArchiveAppender;
import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
public class RemoteTomEEEJBEnricherArchiveAppender implements
AuxiliaryArchiveAppender {
- @Override public Archive<?> createAuxiliaryArchive() {
- return ShrinkWrap.create(JavaArchive.class,
"arquillian-tomee-testenricher-ejb.jar")
- .addClasses(RemoteTomEEObserver.class,
RemoteTomEERemoteExtension.class)
- .addAsServiceProvider(RemoteLoadableExtension.class,
RemoteTomEERemoteExtension.class);
+ @Override
+ public Archive<?> createAuxiliaryArchive() {
+ return ShrinkWrap.create(JavaArchive.class,
"arquillian-tomee-archive-appender.jar")
+ .addClasses(RemoteTomEEObserver.class,
RemoteTomEERemoteExtension.class, OpenEJBTransactionProvider.class)
+ .addAsResource(new StringAsset("manager = tomee"),
ArchivePaths.create(OpenEJBTransactionProvider.CONFIG_PATH))
+ .addAsServiceProvider(RemoteLoadableExtension.class,
RemoteTomEERemoteExtension.class);
}
}
\ No newline at end of file
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEERemoteExtension.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEERemoteExtension.java?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEERemoteExtension.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEERemoteExtension.java
Wed Aug 15 17:48:45 2012
@@ -17,12 +17,15 @@
package org.apache.tomee.arquillian.remote;
+import org.apache.openejb.arquillian.transaction.OpenEJBTransactionProvider;
import org.jboss.arquillian.container.test.spi.RemoteLoadableExtension;
+import org.jboss.arquillian.transaction.spi.provider.TransactionProvider;
public class RemoteTomEERemoteExtension implements RemoteLoadableExtension {
@Override
public void register(ExtensionBuilder builder) {
- builder.observer(RemoteTomEEObserver.class);
+ builder.observer(RemoteTomEEObserver.class)
+ .service(TransactionProvider.class,
OpenEJBTransactionProvider.class);
}
}
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/pom.xml?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/pom.xml
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/pom.xml
Wed Aug 15 17:48:45 2012
@@ -39,85 +39,6 @@
<build>
<plugins>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12</version>
- <executions>
- <execution>
- <id>test-tomee-embedded</id>
- <phase>test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <skip>${maven.test.skip}</skip>
- <systemPropertyVariables>
- <tomee.version>${tomee.version}</tomee.version>
- <arquillian.launch>tomee-embedded</arquillian.launch>
-
<openejb.arquillian.adapter>tomee-embedded</openejb.arquillian.adapter>
- </systemPropertyVariables>
- </configuration>
- </execution>
- <execution>
- <id>test-tomee-webapp-remote</id>
- <phase>test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <skip>${maven.test.skip}</skip>
- <systemPropertyVariables>
- <tomee.version>${tomee.version}</tomee.version>
- <arquillian.launch>tomee-webapp</arquillian.launch>
-
<openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
- </systemPropertyVariables>
- </configuration>
- </execution>
- <execution>
- <id>test-tomee-remote</id>
- <phase>test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <skip>${maven.test.skip}</skip>
- <systemPropertyVariables>
- <tomee.version>${tomee.version}</tomee.version>
- <arquillian.launch>tomee-remote</arquillian.launch>
-
<openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
- </systemPropertyVariables>
- </configuration>
- </execution>
- </executions>
- <configuration>
- <skip>true</skip>
- <parallel>none</parallel>
- <threadCount>1</threadCount>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.7</version>
- <executions>
- <execution>
- <id>reserve-network-port</id>
- <phase>process-test-classes</phase>
- <goals>
- <goal>reserve-network-port</goal>
- </goals>
- <configuration>
- <portNames>
- <portName>tomee.http.port</portName>
- <portName>tomee.shutdown.port</portName>
- </portNames>
- </configuration>
- </execution>
- </executions>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
Added:
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/transaction/TxTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/transaction/TxTest.java?rev=1373539&view=auto
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/transaction/TxTest.java
(added)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/transaction/TxTest.java
Wed Aug 15 17:48:45 2012
@@ -0,0 +1,47 @@
+/**
+ * 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.apache.openejb.arquillian.tests.transaction;
+
+import org.apache.openejb.OpenEJB;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.transaction.api.annotation.Transactional;
+import org.jboss.shrinkwrap.api.ArchivePaths;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.transaction.SystemException;
+
+import static org.junit.Assert.assertNotNull;
+
+@RunWith(Arquillian.class)
+public class TxTest {
+ @Deployment
+ public static WebArchive war() {
+ return ShrinkWrap.create(WebArchive.class, "tx.war")
+ .addAsWebInfResource(EmptyAsset.INSTANCE,
ArchivePaths.create("touch"));
+ }
+
+ @Test
+ @Transactional
+ public void checkTx() throws SystemException {
+ assertNotNull(OpenEJB.getTransactionManager().getTransaction());
+ }
+}
Modified: openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml (original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-tests/pom.xml Wed Aug 15
17:48:45 2012
@@ -147,7 +147,7 @@
<version>2.12</version>
<executions>
<execution>
- <id>test-tomee-remote</id>
+ <id>test-tomee-embedded</id>
<phase>test</phase>
<goals>
<goal>test</goal>
@@ -156,14 +156,13 @@
<skip>${maven.test.skip}</skip>
<systemPropertyVariables>
<tomee.version>${tomee.version}</tomee.version>
- <tomee.classifier>${distribution.under.test}</tomee.classifier>
- <arquillian.launch>tomee-remote</arquillian.launch>
-
<openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
+ <arquillian.launch>tomee-embedded</arquillian.launch>
+
<openejb.arquillian.adapter>tomee-embedded</openejb.arquillian.adapter>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
- <id>test-tomee-webapp-remote</id>
+ <id>test-tomee-remote</id>
<phase>test</phase>
<goals>
<goal>test</goal>
@@ -172,15 +171,14 @@
<skip>${maven.test.skip}</skip>
<systemPropertyVariables>
<tomee.version>${tomee.version}</tomee.version>
-
<tomee.tomcatVersion>${tomcat.bundle.version}</tomee.tomcatVersion>
-
<tomee.artifactId>tomee-${webapp.under.test}webapp</tomee.artifactId>
- <arquillian.launch>tomee-webapp</arquillian.launch>
-
<openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
+ <tomee.classifier>${distribution.under.test}</tomee.classifier>
+ <arquillian.launch>tomee-remote</arquillian.launch>
+
<openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
- <id>test-tomee-embedded</id>
+ <id>test-tomee-webapp-remote</id>
<phase>test</phase>
<goals>
<goal>test</goal>
@@ -189,8 +187,10 @@
<skip>${maven.test.skip}</skip>
<systemPropertyVariables>
<tomee.version>${tomee.version}</tomee.version>
- <arquillian.launch>tomee-embedded</arquillian.launch>
-
<openejb.arquillian.adapter>tomee-embedded</openejb.arquillian.adapter>
+
<tomee.tomcatVersion>${tomcat.bundle.version}</tomee.tomcatVersion>
+
<tomee.artifactId>tomee-${webapp.under.test}webapp</tomee.artifactId>
+ <arquillian.launch>tomee-webapp</arquillian.launch>
+
<openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
</systemPropertyVariables>
</configuration>
</execution>
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/pom.xml?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/pom.xml
(original)
+++ openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/pom.xml Wed
Aug 15 17:48:45 2012
@@ -30,6 +30,11 @@
<name>OpenEJB :: Arquillian Adaptors Parent :: Webapp Remote</name>
<dependencies>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>arquillian-openejb-transaction-provider</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappEJBEnricherArchiveAppender.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappEJBEnricherArchiveAppender.java?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappEJBEnricherArchiveAppender.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappEJBEnricherArchiveAppender.java
Wed Aug 15 17:48:45 2012
@@ -17,15 +17,21 @@
package org.apache.tomee.arquillian.webapp;
+import org.apache.openejb.arquillian.transaction.OpenEJBTransactionProvider;
import org.jboss.arquillian.container.test.spi.RemoteLoadableExtension;
import
org.jboss.arquillian.container.test.spi.client.deployment.AuxiliaryArchiveAppender;
import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
public class TomEEWebappEJBEnricherArchiveAppender implements
AuxiliaryArchiveAppender {
@Override
public Archive<?> createAuxiliaryArchive() {
- return ShrinkWrap.create(JavaArchive.class,
"arquillian-tomee-testenricher-ejb.jar").addClasses(TomEEWebappObserver.class,
TomEEWebappRemoteExtension.class).addAsServiceProvider(RemoteLoadableExtension.class,
TomEEWebappRemoteExtension.class);
+ return ShrinkWrap.create(JavaArchive.class,
"arquillian-tomee-archive-appender.jar")
+ .addClasses(TomEEWebappObserver.class,
TomEEWebappRemoteExtension.class, OpenEJBTransactionProvider.class)
+ .addAsResource(new StringAsset("manager = tomee"),
ArchivePaths.create(OpenEJBTransactionProvider.CONFIG_PATH))
+ .addAsServiceProvider(RemoteLoadableExtension.class,
TomEEWebappRemoteExtension.class);
}
}
\ No newline at end of file
Modified:
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappRemoteExtension.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappRemoteExtension.java?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
---
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappRemoteExtension.java
(original)
+++
openejb/trunk/openejb/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappRemoteExtension.java
Wed Aug 15 17:48:45 2012
@@ -17,12 +17,15 @@
package org.apache.tomee.arquillian.webapp;
+import org.apache.openejb.arquillian.transaction.OpenEJBTransactionProvider;
import org.jboss.arquillian.container.test.spi.RemoteLoadableExtension;
+import org.jboss.arquillian.transaction.spi.provider.TransactionProvider;
public class TomEEWebappRemoteExtension implements RemoteLoadableExtension {
@Override
public void register(ExtensionBuilder builder) {
- builder.observer(TomEEWebappObserver.class);
+ builder.observer(TomEEWebappObserver.class)
+ .service(TransactionProvider.class,
OpenEJBTransactionProvider.class);
}
}
Modified: openejb/trunk/openejb/arquillian/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/pom.xml?rev=1373539&r1=1373538&r2=1373539&view=diff
==============================================================================
--- openejb/trunk/openejb/arquillian/pom.xml (original)
+++ openejb/trunk/openejb/arquillian/pom.xml Wed Aug 15 17:48:45 2012
@@ -32,8 +32,7 @@
<name>OpenEJB :: Arquillian Adaptors Parent</name>
<properties>
- <version.cdi-api>1.0</version.cdi-api>
- <version.arquillian>1.0.1.Final</version.arquillian>
+ <version.arquillian>1.0.2.Final</version.arquillian>
<version.shrinkwrap.descriptor>2.0.0-alpha-3</version.shrinkwrap.descriptor>
<version.shrinkwrap.shrinkwrap>1.0.1</version.shrinkwrap.shrinkwrap>
</properties>
@@ -41,6 +40,7 @@
<modules>
<module>arquillian-common</module>
<module>arquillian-tomee-common</module>
+ <module>arquillian-openejb-transaction-provider</module>
<module>arquillian-tomee-embedded</module>
<module>arquillian-tomee-remote</module>
<module>arquillian-tomee-webapp-remote</module>