Author: andygumbrecht
Date: Sun Sep 21 09:22:39 2014
New Revision: 1626547

URL: http://svn.apache.org/r1626547
Log:
TOMEE-1354 - Auto set 'openejb.deployer.binaries.use' for remote test.

Modified:
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java
    
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java
    
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java?rev=1626547&r1=1626546&r2=1626547&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/ArquillianFilterRunner.java
 Sun Sep 21 09:22:39 2014
@@ -38,13 +38,13 @@ import java.io.IOException;
 public class ArquillianFilterRunner implements Filter {
     private static final String ARQUILLIAN_SERVLET_RUNNER = 
"org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner";
 
-    private HttpServlet deletage;
+    private HttpServlet delegate;
 
     @Override
     public void init(final FilterConfig filterConfig) throws ServletException {
         try {
-            deletage = 
HttpServlet.class.cast(Thread.currentThread().getContextClassLoader().loadClass(ARQUILLIAN_SERVLET_RUNNER).newInstance());
-            deletage.init();
+            delegate = 
HttpServlet.class.cast(Thread.currentThread().getContextClassLoader().loadClass(ARQUILLIAN_SERVLET_RUNNER).newInstance());
+            delegate.init();
         } catch (final Exception e) {
             // no-op: can happen if the servlet is not present, that's a 
normal case
         }
@@ -52,15 +52,15 @@ public class ArquillianFilterRunner impl
 
     @Override
     public void doFilter(final ServletRequest servletRequest, final 
ServletResponse servletResponse, final FilterChain filterChain) throws 
IOException, ServletException {
-        if (deletage != null) {
-            deletage.service(servletRequest, servletResponse);
+        if (delegate != null) {
+            delegate.service(servletRequest, servletResponse);
         }
     }
 
     @Override
     public void destroy() {
-        if (deletage != null) {
-            deletage.destroy();
+        if (delegate != null) {
+            delegate.destroy();
         }
     }
 }

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java?rev=1626547&r1=1626546&r2=1626547&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java
 Sun Sep 21 09:22:39 2014
@@ -28,8 +28,11 @@ import org.jboss.arquillian.test.spi.Tes
 import org.jboss.arquillian.test.spi.TestEnricher;
 
 import java.lang.reflect.Method;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 public class TomEEInjectionEnricher implements TestEnricher {
+
     @Inject
     private Instance<TestClass> testClass;
 
@@ -49,6 +52,9 @@ public class TomEEInjectionEnricher impl
                 return app;
             }
         }
+
+        
Logger.getLogger(TomEEInjectionEnricher.class.getName()).log(Level.WARNING, 
"Failed to find AppContext for: " + className);
+
         return null;
     }
 

Modified: 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java?rev=1626547&r1=1626546&r2=1626547&view=diff
==============================================================================
--- 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
 (original)
+++ 
tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java
 Sun Sep 21 09:22:39 2014
@@ -24,6 +24,7 @@ import org.apache.openejb.arquillian.com
 import org.apache.openejb.arquillian.common.TomEEContainer;
 import org.apache.openejb.assembler.Deployer;
 import org.apache.openejb.config.RemoteServer;
+import org.apache.openejb.util.NetworkUtil;
 import org.jboss.arquillian.container.spi.client.container.LifecycleException;
 import org.jboss.arquillian.protocol.servlet.ServletMethodExecutor;
 import org.jboss.shrinkwrap.api.Archive;
@@ -75,7 +76,15 @@ public class RemoteTomEEContainer extend
 
         if (Setup.isRunning(configuration.getHost(), httpPort)) {
 
-            logger.info(String.format("TomEE found running on port %s", 
httpPort));
+            String host = "local";
+
+            if (!NetworkUtil.isLocalAddress(configuration.getHost())) {
+                //Supply at least this property so that the archive is 
transmitted on deploy
+                
deployerProperties.setProperty("openejb.deployer.binaries.use", "true");
+                host = "remote";
+            }
+
+            logger.info(String.format("TomEE found running on %s port %s", 
host, httpPort));
 
             return;
         }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java?rev=1626547&r1=1626546&r2=1626547&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/NetworkUtil.java
 Sun Sep 21 09:22:39 2014
@@ -18,7 +18,10 @@
 package org.apache.openejb.util;
 
 import java.io.IOException;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
 import java.net.ServerSocket;
+import java.net.SocketException;
 import java.util.Collection;
 
 public final class NetworkUtil {
@@ -93,4 +96,36 @@ public final class NetworkUtil {
     public static String getLocalAddress(final String start, final String end) 
{
         return start + "localhost:" + getNextAvailablePort() + end;
     }
+
+    public static boolean isLocalAddress(final String addr) {
+        try {
+            return isLocalAddress(InetAddress.getByName(addr));
+        } catch (final Exception e) {
+            return false;
+        }
+    }
+
+    public static boolean isLocalAddress(final InetAddress addr) {
+
+        if (addr.isAnyLocalAddress() || addr.isLoopbackAddress()) {
+            return true;
+        }
+
+        // Check if the address is defined on any interface
+        try {
+            return NetworkInterface.getByInetAddress(addr) != null;
+        } catch (final SocketException e) {
+            return false;
+        }
+    }
+
+    private static final class LastPort {
+        private final int port;
+        private final long time;
+
+        private LastPort(final int port, final long time) {
+            this.port = port;
+            this.time = time;
+        }
+    }
 }


Reply via email to