Ok, should be fixed, ATM we don't support a tomee without HTTP port (we use
it in some other places) so I guess we can keep this code for now (to avoid
to rework it too much for 1.7.0).



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


2014-05-31 19:48 GMT+02:00 Romain Manni-Bucau <[email protected]>:

> @Andy: any objection if we revert it and do the fix I proposed?
>
>
>
> Romain Manni-Bucau
> Twitter: @rmannibucau
> Blog: http://rmannibucau.wordpress.com/
> LinkedIn: http://fr.linkedin.com/in/rmannibucau
> Github: https://github.com/rmannibucau
>
>
> 2014-05-31 14:21 GMT+02:00 Thiago Veronezi <[email protected]>:
>
> Hi guys,
>>
>> It looks like cdi-tomee complains about this commit.
>>
>> Tests run: 1128, Failures: 1, Errors: 0, Skipped: 1127, Time elapsed:
>> 189.898 sec <<< FAILURE! - in TestSuite
>>
>> beforeSuite(org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest)
>>  Time elapsed: 185.126 sec  <<< FAILURE!
>> org.apache.openejb.OpenEJBRuntimeException: Could not connect to server
>> at org.apache.openejb.config.RemoteServer.cmd(RemoteServer.java:348)
>> at org.apache.openejb.config.RemoteServer.start(RemoteServer.java:144)
>> at
>>
>> org.apache.openejb.tck.impl.ContainersImplTomEE.setup(ContainersImplTomEE.java:159)
>> at org.jboss.testharness.AbstractTest.beforeSuite(AbstractTest.java:180)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>
>>
>> I guess it complains about it because the previous revision (r1598528)
>> works great.
>>
>> []s,
>> Thiago.
>>
>>
>> On Fri, May 30, 2014 at 8:52 AM, Romain Manni-Bucau <
>> [email protected]>
>> wrote:
>>
>> > 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