You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/10/14 10:04:21 UTC
svn commit: r1531809 -
/tomee/tomee/trunk/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java
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();