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


Reply via email to