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