Author: rmannibucau
Date: Sun Aug 19 20:10:07 2012
New Revision: 1374837

URL: http://svn.apache.org/viewvc?rev=1374837&view=rev
Log:
managing a retry if the deployer was not correctly looked up by arquillian 
adapter

Modified:
    
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
    
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java?rev=1374837&r1=1374836&r2=1374837&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEContainer.java
 Sun Aug 19 20:10:07 2012
@@ -257,10 +257,26 @@ public abstract class TomEEContainer<Con
     }
 
     protected Deployer deployer() throws NamingException {
-        final Properties properties = new Properties();
-        properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.client.RemoteInitialContextFactory");
-        properties.setProperty(Context.PROVIDER_URL, "http://"; + 
configuration.getHost() + ":" + configuration.getHttpPort() + "/tomee/ejb");
-        return (Deployer) new 
InitialContext(properties).lookup("openejb/DeployerBusinessRemote");
+        return lookupDeployerWithRetry(5);
+    }
+
+    protected Deployer lookupDeployerWithRetry(int retry) throws 
NamingException {
+        try {
+            final Properties properties = new Properties();
+            properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
"org.apache.openejb.client.RemoteInitialContextFactory");
+            properties.setProperty(Context.PROVIDER_URL, "http://"; + 
configuration.getHost() + ":" + configuration.getHttpPort() + "/tomee/ejb");
+            return (Deployer) new 
InitialContext(properties).lookup("openejb/DeployerBusinessRemote");
+        } catch (RuntimeException ne) { // surely 
"org.apache.openejb.client.ClientRuntimeException: Invalid response from 
server: -1"
+            if (retry > 1) {
+                try { // wait a bit before retrying
+                    Thread.sleep(200);
+                } catch (InterruptedException ignored) {
+                    // no-op
+                }
+                return lookupDeployerWithRetry(retry - 1);
+            }
+            throw ne;
+        }
     }
 
     protected String getArchiveNameWithoutExtension(final Archive<?> archive) {

Modified: 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java?rev=1374837&r1=1374836&r2=1374837&view=diff
==============================================================================
--- 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
 (original)
+++ 
openejb/trunk/openejb/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
 Sun Aug 19 20:10:07 2012
@@ -16,9 +16,7 @@
  */
 package org.apache.tomee.arquillian.remote;
 
-import java.io.FileOutputStream;
 import org.apache.openejb.arquillian.common.Files;
-import org.apache.openejb.arquillian.common.IO;
 import org.apache.openejb.arquillian.common.Setup;
 import org.apache.openejb.arquillian.common.TomEEContainer;
 import org.apache.openejb.config.RemoteServer;


Reply via email to