Sure Romain,

The RemoteServer.java does not know what the context is (OpenEJB, TomEE, Arquillian) - So what is the service port ? (4201, 8080, ?) - Could maybe work it out internally from properties, but the caller already knows, hence the setter. If the setter is not used then it defaults to previous action, which is to use the self-determined shutdown port.

The RemoteServer is/was only looking at the shutdown port (OpenEJB, Tomcat) to determine if the server is running.

The Tomcat/OpenEJB shutdown port can start to accepts calls before the actual service port (Several seconds or more on a busy machine like the buildbot). So using it (in RemoteServer) to see if the server is running often leads to an overlap (Port already in use or bind exceptions).

Giving RemoteServer the service port to monitor for a startup connection makes more sense to me, as this is the port required for access and not the shutdown port.

Shutdown is less of an issue because the shutdown port goes down after the service port.

The changes apply to usages of RemoteServer, where the service port is known.

Andy.


On 30/05/2014 14:09, Romain Manni-Bucau wrote:
Hi

I'm not sure to get the goal of it.

PortStartup is set as system property where needed (mainly arquillian) but
doesn't add much value otherwise since it can just be not existing (I saw
several instances with only https or ajp configured)

Can you detail the cause please?




Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau


2014-05-30 13:50 GMT+02:00 <[email protected]>:

Author: andygumbrecht
Date: Fri May 30 11:50:45 2014
New Revision: 1598562

URL: http://svn.apache.org/r1598562
Log:
TOMEE-1230 Provide the known server service port to RemoteServer for
better startup monitoring.

Modified:
     tomee/tomee/trunk/arquillian/arquillian-tomee-remote/   (props changed)

tomee/tomee/trunk/arquillian/arquillian-tomee-remote/src/main/java/org/apache/tomee/arquillian/remote/RemoteTomEEContainer.java

tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java

tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java

tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java

tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/runner/ExecRunner.java

tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java

tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java

tomee/tomee/trunk/tomee/apache-tomee/src/main/java/org/apache/tomee/RemoteTomEEEJBContainer.java

Propchange: tomee/tomee/trunk/arquillian/arquillian-tomee-remote/

------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri May 30 11:50:45 2014
@@ -1,6 +1,8 @@
  *.iml
  .classpath
+.idea
  .project
  .settings
  target
  velocity.*
+.idea

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=1598562&r1=1598561&r2=1598562&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
Fri May 30 11:50:45 2014
@@ -71,9 +71,11 @@ public class RemoteTomEEContainer extend
      @Override
      public void start() throws LifecycleException {
          // see if TomEE is already running by checking the http port
-        if (Setup.isRunning(configuration.getHost(),
configuration.getHttpPort())) {
+        final int httpPort = configuration.getHttpPort();

-            logger.info(String.format("TomEE found running on port %s",
configuration.getHttpPort()));
+        if (Setup.isRunning(configuration.getHost(), httpPort)) {
+
+            logger.info(String.format("TomEE found running on port %s",
httpPort));

              return;
          }
@@ -90,15 +92,18 @@ public class RemoteTomEEContainer extend

              configure();

-            System.setProperty(RemoteServer.SERVER_SHUTDOWN_PORT,
Integer.toString(configuration.getStopPort()));
+            int stopPort = configuration.getStopPort();
+            System.setProperty(RemoteServer.SERVER_SHUTDOWN_PORT,
Integer.toString(stopPort));
              System.setProperty(RemoteServer.SERVER_SHUTDOWN_COMMAND,
configuration.getStopCommand());
              System.setProperty(RemoteServer.SERVER_SHUTDOWN_HOST,
configuration.getStopHost());
+
              if (configuration.isDebug()) {
                  System.setProperty(RemoteServer.OPENEJB_SERVER_DEBUG,
"true");
                  System.setProperty(RemoteServer.SERVER_DEBUG_PORT,
Integer.toString(configuration.getDebugPort()));
              }
-            container = new RemoteServer();

+            container = new RemoteServer();
+            container.setPortStartup(httpPort);
              container.start(args(), "start", true);
              container.killOnExit();


Modified:
tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java?rev=1598562&r1=1598561&r2=1598562&view=diff

==============================================================================
---
tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
(original)
+++
tomee/tomee/trunk/arquillian/arquillian-tomee-webapp-remote/src/main/java/org/apache/tomee/arquillian/webapp/TomEEWebappContainer.java
Fri May 30 11:50:45 2014
@@ -54,9 +54,10 @@ public class TomEEWebappContainer extend
      @Override
      public void start() throws LifecycleException {
          // see if TomEE is already running by checking the http port
-        if (Setup.isRunning(configuration.getHost(),
configuration.getHttpPort())) {
+        int httpPort = configuration.getHttpPort();
+        if (Setup.isRunning(configuration.getHost(), httpPort)) {

-            logger.info(String.format("Tomcat found running on port %s",
configuration.getHttpPort()));
+            logger.info(String.format("Tomcat found running on port %s",
httpPort));

              return;
          }
@@ -141,12 +142,13 @@ public class TomEEWebappContainer extend
              if (!wereOpenejbHomeSet &&
configuration.isUseInstallerServlet()) {
                  // instead of calling the Installer, let's just do like
users do
                  // call the servlet installer instead
-                final String baseUrl = "http://"; +
configuration.getHost() + ":" + configuration.getHttpPort() +
"/tomee/installer";
+                final String baseUrl = "http://"; +
configuration.getHost() + ":" + httpPort + "/tomee/installer";

                  assert installer != null;
                  installer.addTomEEAdminConfInTomcatUsers(true);

                  final RemoteServer tmpContainer = new RemoteServer();
+                tmpContainer.setPortStartup(httpPort);
                  tmpContainer.start();

                  final URL url = new URL(baseUrl);
@@ -156,7 +158,7 @@ public class TomEEWebappContainer extend
                      final URLConnection uc = url.openConnection();
                      // dG9tZWU6dG9tZWU= --> Base64 of tomee:tomee
                      final String authorizationString = "Basic
dG9tZWU6dG9tZWU=";
-                    uc.setRequestProperty ("Authorization",
authorizationString);
+                    uc.setRequestProperty("Authorization",
authorizationString);
                      try {
                          final InputStream is = uc.getInputStream();
                          org.apache.openejb.loader.IO.slurp(is);
@@ -173,6 +175,7 @@ public class TomEEWebappContainer extend
              }

              container = new RemoteServer();
+            container.setPortStartup(httpPort);

  container.start(Arrays.asList("-Dorg.apache.openejb.servlet.filters=" +
ArquillianFilterRunner.class.getName() + "=" +
ServletMethodExecutor.ARQUILLIAN_SERVLET_MAPPING), "start", true);
              container.killOnExit();
          } catch (final Exception e) {

Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java?rev=1598562&r1=1598561&r2=1598562&view=diff

==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java
Fri May 30 11:50:45 2014
@@ -50,6 +50,8 @@ public class RemoteServer {
      public static final String SERVER_SHUTDOWN_HOST =
"server.shutdown.host";
      public static final String SERVER_SHUTDOWN_COMMAND =
"server.shutdown.command";
      public static final String OPENEJB_SERVER_DEBUG =
"openejb.server.debug";
+    public static final String START = "start";
+    public static final String STOP = "stop";

      private boolean debug = options.get(OPENEJB_SERVER_DEBUG, false);
      private final boolean profile = options.get("openejb.server.profile",
false);
@@ -66,10 +68,11 @@ public class RemoteServer {
      private Process server;
      private final int tries;
      private final boolean verbose;
-    private final int shutdownPort;
+    private final int portShutdown;
      private final String host;
      private final String command;
      private File home;
+    private int portStartup;

      public RemoteServer() {
          this(options.get("connect.tries", 60), options.get("verbose",
false));
@@ -81,7 +84,8 @@ public class RemoteServer {
          home = getHome();
          tomcat = (home != null) && (new File(new File(home, "bin"),
"catalina.sh").exists());

-        shutdownPort = options.get(SERVER_SHUTDOWN_PORT, tomcat ? 8005 :
4200);
+        portShutdown = options.get(SERVER_SHUTDOWN_PORT, tomcat ? 8005 :
4200);
+        portStartup = portShutdown;
          command = options.get(SERVER_SHUTDOWN_COMMAND, "SHUTDOWN");
          host = options.get(SERVER_SHUTDOWN_HOST, "localhost");
      }
@@ -97,10 +101,10 @@ public class RemoteServer {
      }

      public static void main(final String[] args) {
-        assert args.length > 0 : "no arguments supplied: valid argumen
-efts are 'start' or 'stop'";
-        if (args[0].equalsIgnoreCase("start")) {
+        assert args.length > 0 : "no arguments supplied: valid arguments
are 'start' or 'stop'";
+        if (args[0].equalsIgnoreCase(START)) {
              new RemoteServer().start();
-        } else if (args[0].equalsIgnoreCase("stop")) {
+        } else if (args[0].equalsIgnoreCase(STOP)) {
              final RemoteServer remoteServer = new RemoteServer();
              remoteServer.serverHasAlreadyBeenStarted = false;
              remoteServer.stop();
@@ -109,8 +113,16 @@ public class RemoteServer {
          }
      }

+    public int getPortStartup() {
+        return this.portStartup;
+    }
+
+    public void setPortStartup(int portStartup) {
+        this.portStartup = portStartup;
+    }
+
      public Properties getProperties() {
-        return properties;
+        return this.properties;
      }

      public void destroy() {
@@ -125,7 +137,7 @@ public class RemoteServer {
      }

      public void start() {
-        start(Collections.<String>emptyList(), "start", true);
+        start(Collections.<String>emptyList(), START, true);
      }

      public void start(final List<String> additionalArgs, final String
cmd, final boolean checkPortAvailable) {
@@ -134,9 +146,12 @@ public class RemoteServer {

      private void cmd(final List<String> additionalArgs, final String cmd,
final boolean checkPortAvailable) {
          boolean ok = true;
+        final int port = START.equals(cmd) ? portStartup : portShutdown;
+
          if (checkPortAvailable) {
-            ok = !connect();
+            ok = !connect(port, 1);
          }
+
          if (ok) {
              try {
                  if (verbose) {
@@ -170,7 +185,7 @@ public class RemoteServer {

                  final String java;
                  final boolean isWindows = System.getProperty("os.name",
"unknown").toLowerCase().startsWith("windows");
-                if (isWindows && "start".equals(cmd) &&
options.get("server.windows.fork", false)) {
+                if (isWindows && START.equals(cmd) &&
options.get("server.windows.fork", false)) {
                      // run and forget
                      java = new File(System.getProperty("java.home"),
"bin/javaw").getAbsolutePath();
                  } else {
@@ -298,7 +313,7 @@ public class RemoteServer {
                  }

                  if (cmd == null) {
-                    argsList.add("start");
+                    argsList.add(START);
                  } else {
                      argsList.add(cmd);
                  }
@@ -313,9 +328,9 @@ public class RemoteServer {
                  final Process process = Runtime.getRuntime().exec(args);
                  Pipe.pipeOut(process); // why would we need to redirect
System.in to the process, TomEE doesn't use it

-                if ("start".equals(cmd)) {
+                if (START.equals(cmd)) {
                      server = process;
-                } else if ("stop".equals(cmd) && server != null) {
+                } else if (STOP.equals(cmd) && server != null) {
                      server.waitFor();
                  }

@@ -324,11 +339,12 @@ public class RemoteServer {
              }
              if (checkPortAvailable) {
                  if (debug) {
-                    if (!connect(Integer.MAX_VALUE)) {
+
+                    if (!connect(port, Integer.MAX_VALUE)) {
                          throw new OpenEJBRuntimeException("Could not
connect to server");
                      }
                  } else {
-                    if (!connect(tries)) {
+                    if (!connect(port, tries)) {
                          throw new OpenEJBRuntimeException("Could not
connect to server");
                      }
                  }
@@ -443,7 +459,7 @@ public class RemoteServer {
          if (verbose) {
              System.out.print("Waiting for TomEE shutdown.");
          }
-        while (connect()) {
+        while (connect(portShutdown, tries)) {
              Thread.sleep(1000);
              if (verbose) {
                  System.out.print(".");
@@ -459,7 +475,7 @@ public class RemoteServer {
          Socket socket = null;
          OutputStream stream = null;
          try {
-            socket = new Socket(host, shutdownPort);
+            socket = new Socket(host, portShutdown);
              stream = socket.getOutputStream();
              final String shutdown = command + Character.toString((char)
0);
              for (int i = 0; i < shutdown.length(); i++) {
@@ -478,11 +494,7 @@ public class RemoteServer {
          }
      }

-    private boolean connect() {
-        return connect(1);
-    }
-
-    private boolean connect(int tries) {
+    private boolean connect(final int port, int tries) {
          if (verbose) {
              System.out.println("[] CONNECT ATTEMPT " + (this.tries -
tries));
          }
@@ -490,7 +502,7 @@ public class RemoteServer {
          Socket s = null;
          try {
              s = new Socket();
-            s.connect(new InetSocketAddress(host, shutdownPort), 1000);
+            s.connect(new InetSocketAddress(this.host, port), 1000);
              s.getOutputStream().close();
              if (verbose) {
                  System.out.println("[] CONNECTED IN " + (this.tries -
tries));
@@ -507,7 +519,7 @@ public class RemoteServer {
                  } catch (final Exception e2) {
                      e.printStackTrace();
                  }
-                return connect(--tries);
+                return connect(port, --tries);
              }
          } finally {
              if (s != null) {

Modified:
tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java?rev=1598562&r1=1598561&r2=1598562&view=diff

==============================================================================
---
tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
(original)
+++
tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
Fri May 30 11:50:45 2014
@@ -81,6 +81,7 @@ public abstract class AbstractTomEEMojo
      private static final String REMOVE_PREFIX = "remove:";
      public static final String QUIT_CMD = "quit";
      public static final String EXIT_CMD = "exit";
+    public static final String TOM_EE = "TomEE";

      @Component
      protected ArtifactFactory factory;
@@ -258,7 +259,7 @@ public abstract class AbstractTomEEMojo

      protected File deployedFile = null;
      protected RemoteServer server = null;
-    protected String container = "TomEE";
+    protected String container = TOM_EE;

      @Override
      public void execute() throws MojoExecutionException,
MojoFailureException {
@@ -711,7 +712,10 @@ public abstract class AbstractTomEEMojo

          addShutdownHooks(server); // some shutdown hooks are always added
(see UpdatableTomEEMojo)

-        if ("TomEE".equals(container)) {
+        if (TOM_EE.equals(container)) {
+
+            server.setPortStartup(tomeeHttpPort);
+
              getLog().info("Running '" +
getClass().getSimpleName().replace("TomEEMojo",
"").toLowerCase(Locale.ENGLISH)
                  + "'. Configured TomEE in plugin is " + tomeeHost + ":" +
tomeeHttpPort
                  + " (plugin shutdown port is " + tomeeShutdownPort + ")");
@@ -998,7 +1002,7 @@ public abstract class AbstractTomEEMojo

              File file = new File(catalinaBase, "conf/tomee.xml");
              if (file.exists()) {
-                container = "TomEE";
+                container = TOM_EE;
              } else {
                  container = "OpenEJB";
                  file = new File(catalinaBase, "conf/openejb.xml");

Modified:
tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/runner/ExecRunner.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/runner/ExecRunner.java?rev=1598562&r1=1598561&r2=1598562&view=diff

==============================================================================
---
tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/runner/ExecRunner.java
(original)
+++
tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/runner/ExecRunner.java
Fri May 30 11:50:45 2014
@@ -28,6 +28,7 @@ import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.util.ArrayList;
  import java.util.Collection;
+import java.util.Collections;
  import java.util.LinkedList;
  import java.util.List;
  import java.util.Locale;
@@ -83,7 +84,9 @@ public class ExecRunner {
          if (scripts != null) { // dont use filefilter to avoid dependency
issue
              for (final File f : scripts) {
                  if (f.getName().endsWith(".sh") && !f.canExecute()) {
-                    f.setExecutable(true, true);
+                    if(!f.setExecutable(true, true)){
+                        System.err.println("Failed make file executable:
" + f);
+                    }
                  }
              }
          }
@@ -101,7 +104,9 @@ public class ExecRunner {
                      throw new IllegalArgumentException("Can't find  " +
cmd);
                  }
                  if (cmd.endsWith(".sh")) {
-                    scriptFile.setExecutable(true);
+                    if(!scriptFile.setExecutable(true)){
+                        System.err.println("Failed make script file
executable: " + scriptFile);
+                    }
                  }
              }
          }
@@ -117,15 +122,15 @@ public class ExecRunner {
              System.setProperty("server.shutdown.command",
config.getProperty("shutdownCommand"));

              final RemoteServer server = new RemoteServer();
+            server.setPortStartup(Integer.parseInt(parser.http()));
+
              if (config.containsKey("additionalClasspath")) {

  server.setAdditionalClasspath(config.getProperty("additionalClasspath"));
              }

              final List<String> jvmArgs = new LinkedList<String>();
              if (additionalArgs != null) {
-                for (final String kv : additionalArgs.split(" ")) {
-                    jvmArgs.add(kv);
-                }
+                Collections.addAll(jvmArgs, additionalArgs.split(" "));
              }
              for (final String k : config.stringPropertyNames()) {
                  if (k.startsWith("jvmArg.")) {

Modified:
tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java?rev=1598562&r1=1598561&r2=1598562&view=diff

==============================================================================
---
tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
(original)
+++
tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/ContainersImplTomEE.java
Fri May 30 11:50:45 2014
@@ -32,7 +32,6 @@ import java.io.File;
  import java.io.IOException;
  import java.io.InputStream;
  import java.util.Arrays;
-import java.util.Collections;
  import java.util.Properties;

  /**
@@ -45,6 +44,7 @@ public class ContainersImplTomEE extends
      private Exception exception;
      private AppInfo appInfo;
      private File currentFile = null;
+    private int port = 8080;

      private Deployer lookup() {
          final Options options = new Options(System.getProperties());
@@ -53,8 +53,9 @@ public class ContainersImplTomEE extends
          String port = System.getProperty("server.http.port");
          if (port != null) {
              props.put(Context.PROVIDER_URL,
options.get(Context.PROVIDER_URL,"http://localhost:"; + port +
"/tomee/ejb"));
+            this.port = Integer.parseInt(port);
          } else {
-            throw new OpenEJBTCKRuntimeException("Please set the tomee
port as a system property");
+            throw new OpenEJBTCKRuntimeException("Please set the tomee
port using the system property 'server.http.port'");
          }

          final String deployerJndi =
System.getProperty("openejb.deployer.jndiname",
"openejb/DeployerBusinessRemote");
@@ -70,6 +71,7 @@ public class ContainersImplTomEE extends
          System.out.println("ContainersImpl=" +
ContainersImplTomEE.class.getName());
          System.out.println("Initialized ContainersImplTomEE " +
(++count));
          server = new RemoteServer();
+        server.setPortStartup(this.port);
      }
      @Override
      public boolean deploy(InputStream archive, String name) throws
IOException {
@@ -143,8 +145,10 @@ public class ContainersImplTomEE extends
      }

      protected File getFile(String name) {
-        final File dir = new File(tmpDir, Math.random()+"");
-        dir.mkdir();
+        final File dir = new File(tmpDir, Math.random() + "");
+        if (!dir.exists() && !dir.mkdir()) {
+            throw new RuntimeException("Failed to create directory: " +
dir);
+        }
          dir.deleteOnExit();
          return new File(dir, name);
      }

Modified:
tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java?rev=1598562&r1=1598561&r2=1598562&view=diff

==============================================================================
---
tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
(original)
+++
tomee/tomee/trunk/tck/tck-common/src/main/java/org/apache/openejb/tck/impl/FullRestartContainer.java
Fri May 30 11:50:45 2014
@@ -71,7 +71,14 @@ public class FullRestartContainer extend
          System.out.println(currentFile);
          writeToFile(currentFile, archive);

-        server = new RemoteServer(100, true);
+        String port = System.getProperty("server.http.port");
+        if (port != null) {
+            server = new RemoteServer(100, true);
+            server.setPortStartup(Integer.parseInt(port));
+        } else {
+            throw new OpenEJBTCKRuntimeException("Please set the tomee
port using the system property 'server.http.port'");
+        }
+
          try {
              server.start();
          } catch (RuntimeException e) {
@@ -84,7 +91,11 @@ public class FullRestartContainer extend

      @Override
      public void undeploy(String name) throws IOException {
-        server.destroy();
+
+        if (null != server) {
+            server.destroy();
+        }
+
          File folder = new File(currentFile.getParentFile(),
currentFile.getName().substring(0, currentFile.getName().length() - 4));
          if (folder.exists()) {
              delete(folder);
@@ -109,9 +120,9 @@ public class FullRestartContainer extend
          String port = System.getProperty("server.http.port");
          if (port != null) {
              System.out.println("provider url = " + "http://localhost:"; +
port + "/tomee/ejb");
-            props.put(Context.PROVIDER_URL,
options.get(Context.PROVIDER_URL,"http://localhost:"; + port +
"/tomee/ejb"));
+            props.put(Context.PROVIDER_URL,
options.get(Context.PROVIDER_URL, "http://localhost:"; + port +
"/tomee/ejb"));
          } else {
-            throw new OpenEJBTCKRuntimeException("Please set the tomee
port as a system property");
+            throw new OpenEJBTCKRuntimeException("Please set the tomee
port using the system property 'server.http.port'");
          }

          try {

Modified:
tomee/tomee/trunk/tomee/apache-tomee/src/main/java/org/apache/tomee/RemoteTomEEEJBContainer.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/apache-tomee/src/main/java/org/apache/tomee/RemoteTomEEEJBContainer.java?rev=1598562&r1=1598561&r2=1598562&view=diff

==============================================================================
---
tomee/tomee/trunk/tomee/apache-tomee/src/main/java/org/apache/tomee/RemoteTomEEEJBContainer.java
(original)
+++
tomee/tomee/trunk/tomee/apache-tomee/src/main/java/org/apache/tomee/RemoteTomEEEJBContainer.java
Fri May 30 11:50:45 2014
@@ -92,6 +92,7 @@ public class RemoteTomEEEJBContainer ext
              try {
                  instance = new RemoteTomEEEJBContainer();
                  instance.container = new RemoteServer();
+
  instance.container.setPortStartup(Integer.parseInt(parser.http()));
                  instance.container.start();
                  instance.context = new InitialContext(new Properties() {{
                      setProperty(Context.INITIAL_CONTEXT_FACTORY,
RemoteInitialContextFactory.class.getName());




--
  Andy Gumbrecht

  http://www.tomitribe.com
  [email protected]
  https://twitter.com/AndyGeeDe

  TomEE treibt Tomitribe! | http://tomee.apache.org

Reply via email to