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 >> >> >
