You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/12/15 00:18:15 UTC
svn commit: r1214539 - in /openejb/trunk/openejb:
assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/
tck/cdi-tomee/src/main/resources/META-INF/ tck/tck-common/
tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ utils/webdeplo...
Author: rmannibucau
Date: Wed Dec 14 23:18:15 2011
New Revision: 1214539
URL: http://svn.apache.org/viewvc?rev=1214539&view=rev
Log:
using new FullRestartContainer for cdi-tomee
Added:
openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java
openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/
openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacade.java
openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java
Modified:
openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java
openejb/trunk/openejb/tck/cdi-tomee/src/main/resources/META-INF/jboss-test-harness.properties
openejb/trunk/openejb/tck/tck-common/pom.xml
openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
Modified: openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java?rev=1214539&r1=1214538&r2=1214539&view=diff
==============================================================================
--- openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java (original)
+++ openejb/trunk/openejb/assembly/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/DeploymentExceptionManager.java Wed Dec 14 23:18:15 2011
@@ -36,4 +36,11 @@ public class DeploymentExceptionManager
public synchronized void clearDelpoyementException(AppInfo info) {
deploymentException.remove(info);
}
+
+ public Exception getFirstException() {
+ if (deploymentException.isEmpty()) {
+ return null;
+ }
+ return deploymentException.values().iterator().next();
+ }
}
Modified: openejb/trunk/openejb/tck/cdi-tomee/src/main/resources/META-INF/jboss-test-harness.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/cdi-tomee/src/main/resources/META-INF/jboss-test-harness.properties?rev=1214539&r1=1214538&r2=1214539&view=diff
==============================================================================
--- openejb/trunk/openejb/tck/cdi-tomee/src/main/resources/META-INF/jboss-test-harness.properties (original)
+++ openejb/trunk/openejb/tck/cdi-tomee/src/main/resources/META-INF/jboss-test-harness.properties Wed Dec 14 23:18:15 2011
@@ -20,7 +20,8 @@ org.jboss.jsr299.tck.spi.Beans=org.apach
org.jboss.jsr299.tck.spi.Contexts=org.apache.openejb.tck.cdi.tomee.ContextsImpl
org.jboss.jsr299.tck.spi.EL=org.apache.openejb.tck.cdi.tomee.ELImpl
org.jboss.testharness.spi.StandaloneContainers=org.apache.openejb.tck.impl.StandaloneContainersImpl
-org.jboss.testharness.spi.Containers=org.apache.openejb.tck.impl.ContainersImplTomEE
+# org.jboss.testharness.spi.Containers=org.apache.openejb.tck.impl.ContainersImplTomEE
+org.jboss.testharness.spi.Containers=org.apache.openejb.tck.impl.FullRestartContainer
org.jboss.testharness.standalone=false
org.jboss.testharness.api.TestLauncher=org.jboss.testharness.impl.runner.servlet.ServletTestLauncher
Modified: openejb/trunk/openejb/tck/tck-common/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/pom.xml?rev=1214539&r1=1214538&r2=1214539&view=diff
==============================================================================
--- openejb/trunk/openejb/tck/tck-common/pom.xml (original)
+++ openejb/trunk/openejb/tck/tck-common/pom.xml Wed Dec 14 23:18:15 2011
@@ -53,9 +53,14 @@
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>org.apache.openejb</groupId>
+ <groupId>${project.groupId}</groupId>
<artifactId>openejb-client</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>webdeployer</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Added: openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java?rev=1214539&view=auto
==============================================================================
--- openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java (added)
+++ openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/AbstractContainers.java Wed Dec 14 23:18:15 2011
@@ -0,0 +1,59 @@
+package org.apache.openejb.tck.impl;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.Flushable;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * @author rmannibucau
+ */
+public class AbstractContainers {
+ protected static final String tmpDir = System.getProperty("java.io.tmpdir");
+
+ protected void writeToFile(File file, InputStream archive) {
+ try {
+ FileOutputStream fos = new FileOutputStream(file);
+ byte[] buffer = new byte[4096];
+ int bytesRead;
+ while ((bytesRead = archive.read(buffer)) > -1) {
+ fos.write(buffer, 0, bytesRead);
+ }
+ Util.close(fos);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ protected static void delete(File file) {
+ if (file.isDirectory()) {
+ for (File f : file.listFiles()) {
+ delete(f);
+ }
+ }
+ if (!file.delete()) {
+ file.deleteOnExit();
+ }
+ }
+
+ protected static final class Util {
+ static void close(Closeable closeable) throws IOException {
+ if (closeable == null)
+ return;
+ try {
+ if (closeable instanceof Flushable) {
+ ((Flushable) closeable).flush();
+ }
+ } catch (IOException e) {
+ // no-op
+ }
+ try {
+ closeable.close();
+ } catch (IOException e) {
+ // no-op
+ }
+ }
+ }
+}
Modified: openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java?rev=1214539&r1=1214538&r2=1214539&view=diff
==============================================================================
--- openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java (original)
+++ openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java Wed Dec 14 23:18:15 2011
@@ -16,17 +16,6 @@
*/
package org.apache.openejb.tck.impl;
-import java.io.Closeable;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.Flushable;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-
import org.apache.openejb.assembler.Deployer;
import org.apache.openejb.assembler.classic.AppInfo;
import org.apache.openejb.client.RemoteInitialContextFactory;
@@ -36,14 +25,20 @@ import org.apache.openejb.loader.Options
import org.jboss.testharness.api.DeploymentException;
import org.jboss.testharness.spi.Containers;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
/**
* @version $Rev$ $Date$
*/
-public class ContainersImplTomEE implements Containers {
+public class ContainersImplTomEE extends AbstractContainers implements Containers {
private static int count = 0;
private final RemoteServer server;
private Deployer deployer = null;
- private static final String tmpDir = System.getProperty("java.io.tmpdir");
private Exception exception;
private AppInfo appInfo;
private File currentFile = null;
@@ -109,28 +104,6 @@ public class ContainersImplTomEE impleme
return true;
}
- private void writeToFile(File file, InputStream archive) {
- try {
- FileOutputStream fos = new FileOutputStream(file);
- byte[] buffer = new byte[4096];
- int bytesRead = -1;
- while ((bytesRead = archive.read(buffer)) > -1) {
- fos.write(buffer, 0, bytesRead);
- }
- Util.close(fos);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- private File getFile(String name) {
- final File dir = new File(tmpDir, Math.random()+"");
- dir.mkdir();
- dir.deleteOnExit();
-
- return new File(dir, name);
- }
-
@Override
public DeploymentException getDeploymentException() {
try {
@@ -165,15 +138,11 @@ public class ContainersImplTomEE impleme
}
}
- private static void delete(File file) {
- if (file.isDirectory()) {
- for (File f : file.listFiles()) {
- delete(f);
- }
- }
- if (!file.delete()) {
- file.deleteOnExit();
- }
+ protected File getFile(String name) {
+ final File dir = new File(tmpDir, Math.random()+"");
+ dir.mkdir();
+ dir.deleteOnExit();
+ return new File(dir, name);
}
@Override
@@ -186,22 +155,4 @@ public class ContainersImplTomEE impleme
System.out.println("Cleanup called");
server.stop();
}
- private static final class Util {
- static void close(Closeable closeable) throws IOException {
- if (closeable == null)
- return;
- try {
- if (closeable instanceof Flushable) {
- ((Flushable) closeable).flush();
- }
- } catch (IOException e) {
- // no-op
- }
- try {
- closeable.close();
- } catch (IOException e) {
- // no-op
- }
- }
- }
}
Added: openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java?rev=1214539&view=auto
==============================================================================
--- openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java (added)
+++ openejb/trunk/openejb/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java Wed Dec 14 23:18:15 2011
@@ -0,0 +1,91 @@
+package org.apache.openejb.tck.impl;
+
+import org.apache.openejb.client.RemoteInitialContextFactory;
+import org.apache.openejb.config.RemoteServer;
+import org.apache.openejb.loader.Options;
+import org.apache.tomee.catalina.facade.ExceptionManagerFacade;
+import org.jboss.testharness.api.DeploymentException;
+import org.jboss.testharness.spi.Containers;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+/**
+ * flow:
+ * - copy file
+ * - start the server
+ * - stop the server
+ * - remove the file
+ */
+public class FullRestartContainer extends AbstractContainers implements Containers {
+ private static final File WEBAPP_DIR = new File(System.getProperty("openejb.home"), "webapps/");
+
+ private RemoteServer server;
+ private Exception exception;
+ private File currentFile;
+
+ @Override
+ public DeploymentException getDeploymentException() {
+ if (exception instanceof DeploymentException) {
+ return (DeploymentException) exception;
+ }
+ System.out.println("BADCAST");
+ return new DeploymentException("", exception);
+ }
+
+ @Override
+ public boolean deploy(InputStream archive, String name) throws IOException {
+ currentFile = new File(WEBAPP_DIR, name);
+ System.out.println(currentFile);
+ writeToFile(currentFile, archive);
+
+ server = new RemoteServer(20, true);
+ try {
+ server.start();
+ } catch (RuntimeException e) {
+ e.printStackTrace();
+ throw e;
+ }
+ return (exception = lookup().exception()) == null;
+ }
+
+ @Override
+ public void undeploy(String name) throws IOException {
+ server.destroy();
+ delete(currentFile);
+ }
+
+ @Override
+ public void setup() throws IOException {
+ // no-op
+ }
+
+ @Override
+ public void cleanup() throws IOException {
+ // no-op
+ }
+
+ private ExceptionManagerFacade lookup() {
+ final Options options = new Options(System.getProperties());
+ final Properties props = new Properties();
+ props.put(Context.INITIAL_CONTEXT_FACTORY, RemoteInitialContextFactory.class.getName());
+ String port = System.getProperty("server.http.port");
+ if (port != null) {
+ System.out.println("provider url = " + "http://localhost:" + port + "/openejb/ejb");
+ props.put(Context.PROVIDER_URL, options.get(Context.PROVIDER_URL,"http://localhost:" + port + "/openejb/ejb"));
+ } else {
+ throw new RuntimeException("Please set the tomee port as a system property");
+ }
+
+ try {
+ InitialContext context = new InitialContext(props);
+ return (ExceptionManagerFacade) context.lookup("openejb/ExceptionManagerFacadeRemote");
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
Added: openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacade.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacade.java?rev=1214539&view=auto
==============================================================================
--- openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacade.java (added)
+++ openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacade.java Wed Dec 14 23:18:15 2011
@@ -0,0 +1,11 @@
+package org.apache.tomee.catalina.facade;
+
+import javax.ejb.Remote;
+
+/**
+ * @author rmannibucau
+ */
+@Remote
+public interface ExceptionManagerFacade {
+ Exception exception();
+}
Added: openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java?rev=1214539&view=auto
==============================================================================
--- openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java (added)
+++ openejb/trunk/openejb/utils/webdeployer/src/main/java/org/apache/tomee/catalina/facade/ExceptionManagerFacadeBean.java Wed Dec 14 23:18:15 2011
@@ -0,0 +1,19 @@
+package org.apache.tomee.catalina.facade;
+
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.tomee.catalina.DeploymentExceptionManager;
+
+import javax.ejb.Singleton;
+import javax.ejb.TransactionManagement;
+import javax.ejb.TransactionManagementType;
+
+/**
+ * @author rmannibucau
+ */
+@Singleton(name = "openejb/ExceptionManagerFacade")
+@TransactionManagement(TransactionManagementType.BEAN)
+public class ExceptionManagerFacadeBean implements ExceptionManagerFacade {
+ public Exception exception() {
+ return SystemInstance.get().getComponent(DeploymentExceptionManager.class).getFirstException();
+ }
+}