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;
+ }
+ }
}