Author: rmannibucau
Date: Sun Jul 3 22:59:23 2011
New Revision: 1142518
URL: http://svn.apache.org/viewvc?rev=1142518&view=rev
Log:
using hibernate standalone containers for bval tck tests
Added:
openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/OpenEJBTckDeploymentRuntimeException.java
Removed:
openejb/trunk/openejb3/tck/bval-embedded/src/test/java/org/
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/jndi.properties
Modified:
openejb/trunk/openejb3/tck/bval-embedded/pom.xml
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/META-INF/jboss-test-harness.properties
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/jsr303-tck-suite.xml
openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
Modified: openejb/trunk/openejb3/tck/bval-embedded/pom.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/bval-embedded/pom.xml?rev=1142518&r1=1142517&r2=1142518&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/bval-embedded/pom.xml (original)
+++ openejb/trunk/openejb3/tck/bval-embedded/pom.xml Sun Jul 3 22:59:23 2011
@@ -31,7 +31,16 @@
<description>Aggregates dependencies and runs the JSR-303 TCK</description>
<dependencies>
-
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-osgi-locator</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-osgi-registry</artifactId>
+ <version>1.0</version>
+ </dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-validation_1.0_spec</artifactId>
@@ -71,6 +80,10 @@
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </exclusion>
</exclusions>
</dependency>
</dependencies>
Modified:
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/META-INF/jboss-test-harness.properties
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/META-INF/jboss-test-harness.properties?rev=1142518&r1=1142517&r2=1142518&view=diff
==============================================================================
---
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/META-INF/jboss-test-harness.properties
(original)
+++
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/META-INF/jboss-test-harness.properties
Sun Jul 3 22:59:23 2011
@@ -17,7 +17,7 @@
org.jboss.testharness.api.TestLauncher=org.jboss.testharness.impl.runner.local.LocalTestLauncher
org.jboss.testharness.testPackage = org.hibernate.jsr303.tck.tests
-org.jboss.testharness.spi.StandaloneContainers =
org.apache.openejb.tck.bval.impl.StandaloneContainersImpl
+org.jboss.testharness.spi.StandaloneContainers =
org.hibernate.jsr303.tck.util.StandaloneContainersImpl
org.jboss.testharness.spi.Containers =
org.apache.openejb.tck.impl.ContainersImpl
org.jboss.testharness.standalone = true
org.jboss.testharness.runIntegrationTests = true
Modified:
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/jsr303-tck-suite.xml
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/jsr303-tck-suite.xml?rev=1142518&r1=1142517&r2=1142518&view=diff
==============================================================================
---
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/jsr303-tck-suite.xml
(original)
+++
openejb/trunk/openejb3/tck/bval-embedded/src/test/resources/jsr303-tck-suite.xml
Sun Jul 3 22:59:23 2011
@@ -22,9 +22,6 @@
<test name="JSR-303-TCK">
<method-selectors>
<method-selector>
- <selector-class
name="org.jboss.testharness.impl.testng.DisableIntegrationTestsMethodSelector"/>
- </method-selector>
- <method-selector>
<selector-class
name="org.jboss.testharness.impl.testng.ExcludeIncontainerUnderInvestigationMethodSelector"/>
</method-selector>
</method-selectors>
Added:
openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/OpenEJBTckDeploymentRuntimeException.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/OpenEJBTckDeploymentRuntimeException.java?rev=1142518&view=auto
==============================================================================
---
openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/OpenEJBTckDeploymentRuntimeException.java
(added)
+++
openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/OpenEJBTckDeploymentRuntimeException.java
Sun Jul 3 22:59:23 2011
@@ -0,0 +1,10 @@
+package org.apache.openejb.tck;
+
+/**
+ * @author Romain Manni-Bucau
+ */
+public class OpenEJBTckDeploymentRuntimeException extends RuntimeException {
+ public OpenEJBTckDeploymentRuntimeException(String message) {
+ super(message);
+ }
+}
Modified:
openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java?rev=1142518&r1=1142517&r2=1142518&view=diff
==============================================================================
---
openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
(original)
+++
openejb/trunk/openejb3/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImpl.java
Sun Jul 3 22:59:23 2011
@@ -16,10 +16,14 @@
*/
package org.apache.openejb.tck.impl;
+import javax.ejb.EJBException;
+import javax.ejb.embeddable.EJBContainer;
+import javax.validation.ValidationException;
import org.apache.openejb.OpenEJB;
import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.cdi.ThreadSingletonServiceImpl;
import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.tck.OpenEJBTckDeploymentRuntimeException;
import org.apache.openejb.tck.util.ZipUtil;
import org.apache.openejb.util.SetAccessible;
import org.apache.webbeans.config.WebBeansContext;
@@ -31,7 +35,6 @@ import org.jboss.testharness.impl.packag
import org.jboss.testharness.impl.packaging.jsr303.ValidationXml;
import org.jboss.testharness.spi.Containers;
-import javax.ejb.embeddable.EJBContainer;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
@@ -43,6 +46,7 @@ import java.io.InputStream;
import java.io.RandomAccessFile;
import java.lang.reflect.Field;
import java.net.URL;
+import java.net.URLClassLoader;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.util.Collection;
@@ -61,6 +65,7 @@ public class ContainersImpl implements C
private Exception exception;
private EJBContainer container;
+ private ClassLoader originalClassLoader;
@Override
public boolean deploy(InputStream archive, String name) {
@@ -76,17 +81,23 @@ public class ContainersImpl implements C
assembler.destroy();
}
try {
+ final File file = writeToFile(archive, name);
final Map<String, Object> map = new HashMap<String, Object>();
- map.put(EJBContainer.MODULES, writeToFile(archive, name));
+ map.put(EJBContainer.MODULES, file);
map.put(EJBContainer.APP_NAME, name);
+ originalClassLoader =
Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(new
URLClassLoader(new URL[]{ file.toURI().toURL() }, originalClassLoader));
container = EJBContainer.createEJBContainer(map);
final WebBeansContext webBeansContext =
ThreadSingletonServiceImpl.get();
dump(webBeansContext.getBeanManagerImpl());
-
} catch (Exception e) {
- exception = e;
+ if (e instanceof EJBException && e.getCause() instanceof
ValidationException) {
+ exception = ValidationException.class.cast(e.getCause());
+ } else {
+ exception = e;
+ }
return false;
}
@@ -95,7 +106,7 @@ public class ContainersImpl implements C
private void dump(Object o) {
try {
- final Class<? extends Object> clazz = o.getClass();
+ final Class<?> clazz = o.getClass();
for (Field field : clazz.getDeclaredFields()) {
SetAccessible.on(field);
@@ -106,7 +117,7 @@ public class ContainersImpl implements C
}
}
} catch (Exception e) {
-
+ // no-op
}
}
@@ -165,6 +176,8 @@ public class ContainersImpl implements C
final URL resource = getResource(clazz, path);
if (resource != null) {
resources.put("META-INF/validation.xml", resource);
+ } else {
+ throw new OpenEJBTckDeploymentRuntimeException("can't find
validation descriptor file " + path);
}
}
@@ -204,19 +217,17 @@ public class ContainersImpl implements C
if (resources.containsKey(entryName)) {
src = resources.get(entryName).openStream();
}
-
resources.remove(entryName);
zout.putNextEntry(new ZipEntry(entryName));
-
ZipUtil.copy(src, zout);
}
for (Map.Entry<String, URL> entry : resources.entrySet()) {
-
zout.putNextEntry(new ZipEntry(entry.getKey()));
-
- ZipUtil.copy(entry.getValue().openStream(), zout);
+ InputStream in = entry.getValue().openStream();
+ ZipUtil.copy(in, zout);
+ in.close();
}
if (System.getProperty("force.deployment") != null &&
!resources.containsKey("META-INF/beans.xml")) {
@@ -252,10 +263,12 @@ public class ContainersImpl implements C
((Flushable) closeable).flush();
}
} catch (IOException e) {
+ // no-op
}
try {
closeable.close();
} catch (IOException e) {
+ // no-op
}
}
@@ -267,7 +280,12 @@ public class ContainersImpl implements C
@Override
public void undeploy(String name) {
- if (container != null) container.close();
+ if (container != null) {
+ container.close();
+ }
+ if (originalClassLoader != null) {
+ Thread.currentThread().setContextClassLoader(originalClassLoader);
+ }
}
@Override