Hmm

actually RemoteServer doesn't need it. I think you see the issue with
arquillian mainly and in this case we have a retry mecanism created for it
in deployer lookup.

Isn't it what should have been configured?



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 14:34 GMT+02:00 Andy Gumbrecht <[email protected]>:

> 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