Author: rmannibucau Date: Mon Oct 14 08:04:21 2013 New Revision: 1531809 URL: http://svn.apache.org/r1531809 Log: TOMEE-1058 Expose configurable classpath parameter. Thanks Bob Ziuchkovski for the patch
Modified: tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java 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=1531809&r1=1531808&r2=1531809&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 Mon Oct 14 08:04:21 2013 @@ -178,6 +178,9 @@ public abstract class AbstractTomEEMojo @Parameter protected Map<String, String> systemVariables; + @Parameter + private List<String> classpaths; + @Parameter(property = "tomee-plugin.quick-session", defaultValue = "true") private boolean quickSession; @@ -234,7 +237,6 @@ public abstract class AbstractTomEEMojo protected File deployedFile = null; protected RemoteServer server = null; - private String additionalCp = null; @Override public void execute() throws MojoExecutionException, MojoFailureException { @@ -269,8 +271,11 @@ public abstract class AbstractTomEEMojo } } + if (classpaths == null) { // NPE protection for activateSimpleLog() and run() + classpaths = new ArrayList<String>(); + } if (simpleLog) { - additionalCp = activateSimpleLog(); + activateSimpleLog(); } if (!keepServerXmlAsthis) { @@ -279,9 +284,22 @@ public abstract class AbstractTomEEMojo if (!skipCurrentProject) { copyWar(); } + run(); } + protected String getAdditionalClasspath() { + if (!classpaths.isEmpty()) { + final StringBuilder cpBuilder = new StringBuilder(); + for (final String cp : classpaths) { + cpBuilder.append(cp); + cpBuilder.append(File.pathSeparatorChar); + } + return cpBuilder.substring(0, cpBuilder.length() - 1); // Dump the final path separator + } + return null; + } + private List<String> webappsAlreadyAdded() { final List<String> list = new ArrayList<String>(); final File webapps = new File(catalinaBase, webappDir); @@ -305,17 +323,18 @@ public abstract class AbstractTomEEMojo if (loggingProperties.exists() && !new File(config, "conf/logging.properties").exists()) { try { final String content = IO.slurp(loggingProperties) - .replace(SimpleFormatter.class.getName(), SimpleTomEEFormatter.class.getName()); + .replace(SimpleFormatter.class.getName(), SimpleTomEEFormatter.class.getName()); final FileWriter writer = new FileWriter(loggingProperties); try { writer.write(content); } finally { IO.close(writer); } - } catch (Exception e) { + } catch (final Exception e) { getLog().error("Can't set SimpleTomEEFormatter", e); return null; } + classpaths.add(cp); return cp; } return null; @@ -520,9 +539,9 @@ public abstract class AbstractTomEEMojo if (tomeeHttpsPort != null && tomeeHttpsPort > 0 && parser.value("HTTPS", null) == null) { // ensure connector is not commented value = value.replace("<Service name=\"Catalina\">", "<Service name=\"Catalina\">\n" - + " <Connector port=\"" + tomeeHttpsPort + "\" protocol=\"HTTP/1.1\" SSLEnabled=\"true\"\n" + - " scheme=\"https\" secure=\"true\"\n" + - " clientAuth=\"false\" sslProtocol=\"TLS\" />\n"); + + " <Connector port=\"" + tomeeHttpsPort + "\" protocol=\"HTTP/1.1\" SSLEnabled=\"true\"\n" + + " scheme=\"https\" secure=\"true\"\n" + + " clientAuth=\"false\" sslProtocol=\"TLS\" />\n"); } if (tomeeHttpsPort == null) { @@ -534,12 +553,12 @@ public abstract class AbstractTomEEMojo try { writer = new FileWriter(serverXml); writer.write(value - .replace(parser.http(), Integer.toString(tomeeHttpPort)) - .replace(parser.https(), Integer.toString(tomeeHttpsPort)) - .replace(parser.ajp(), Integer.toString(tomeeAjpPort)) - .replace(parser.stop(), Integer.toString(tomeeShutdownPort)) - .replace(parser.host(), tomeeHost) - .replace(parser.appBase(), webappDir)); + .replace(parser.http(), Integer.toString(tomeeHttpPort)) + .replace(parser.https(), Integer.toString(tomeeHttpsPort)) + .replace(parser.ajp(), Integer.toString(tomeeAjpPort)) + .replace(parser.stop(), Integer.toString(tomeeShutdownPort)) + .replace(parser.host(), tomeeHost) + .replace(parser.appBase(), webappDir)); } catch (IOException e) { throw new TomEEException(e.getMessage(), e); } finally { @@ -671,9 +690,8 @@ public abstract class AbstractTomEEMojo System.setProperty("server.shutdown.port", Integer.toString(tomeeShutdownPort)); server = new RemoteServer(getConnectAttempts(), false); - if (additionalCp != null) { - server.setAdditionalClasspath(additionalCp); - } + server.setAdditionalClasspath(getAdditionalClasspath()); + addShutdownHooks(server); // some shutdown hooks are always added (see UpdatableTomEEMojo) if (!getWaitTomEE()) { @@ -681,8 +699,8 @@ public abstract class AbstractTomEEMojo } getLog().info("Running '" + getClass().getSimpleName().replace("TomEEMojo", "").toLowerCase(Locale.ENGLISH) - + "'. Configured TomEE in plugin is " + tomeeHost + ":" + tomeeHttpPort - + " (plugin shutdown port is " + tomeeShutdownPort + ")"); + + "'. Configured TomEE in plugin is " + tomeeHost + ":" + tomeeHttpPort + + " (plugin shutdown port is " + tomeeShutdownPort + ")"); final InputStream originalIn = System.in; // piped when starting resmote server so saving it @@ -777,16 +795,16 @@ public abstract class AbstractTomEEMojo try { if ("snapshots".equals(apacheRepos) || "true".equals(apacheRepos)) { remoteRepos.add(new DefaultArtifactRepository("apache", "https://repository.apache.org/content/repositories/snapshots/", - new DefaultRepositoryLayout(), - new ArtifactRepositoryPolicy(true, UPDATE_POLICY_DAILY, CHECKSUM_POLICY_WARN), - new ArtifactRepositoryPolicy(false, UPDATE_POLICY_NEVER, CHECKSUM_POLICY_WARN))); + new DefaultRepositoryLayout(), + new ArtifactRepositoryPolicy(true, UPDATE_POLICY_DAILY, CHECKSUM_POLICY_WARN), + new ArtifactRepositoryPolicy(false, UPDATE_POLICY_NEVER, CHECKSUM_POLICY_WARN))); } else { try { new URI(apacheRepos); // to check it is a uri remoteRepos.add(new DefaultArtifactRepository("additional-repo-tomee-mvn-plugin", apacheRepos, - new DefaultRepositoryLayout(), - new ArtifactRepositoryPolicy(true, UPDATE_POLICY_DAILY, CHECKSUM_POLICY_WARN), - new ArtifactRepositoryPolicy(true, UPDATE_POLICY_NEVER, CHECKSUM_POLICY_WARN))); + new DefaultRepositoryLayout(), + new ArtifactRepositoryPolicy(true, UPDATE_POLICY_DAILY, CHECKSUM_POLICY_WARN), + new ArtifactRepositoryPolicy(true, UPDATE_POLICY_NEVER, CHECKSUM_POLICY_WARN))); } catch (URISyntaxException e) { // ignored, use classical repos } @@ -855,9 +873,9 @@ public abstract class AbstractTomEEMojo final FileWriter writer = new FileWriter(new File(catalinaBase, "conf/tomee.xml")); writer.write("<?xml version=\"1.0\"?>\n" + - "<tomee>\n" + - " <Deployments dir=\"apps\" />\n" + - "</tomee>\n"); + "<tomee>\n" + + " <Deployments dir=\"apps\" />\n" + + "</tomee>\n"); writer.close(); new File(catalinaBase, "apps").mkdirs();