Hmm, checking protected Deployer deployer() throws NamingException in
TomEEContainer we should make retry number configurable in arquillian.xml I
think (TomEEConfiguration). Default to 5 with a pause of 200ms doesn't
sound that good, I'd go for a default duration of 20s with a pause of
100ms. Wdyt?



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:41 GMT+02:00 Romain Manni-Bucau <[email protected]>:

> 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