Repository: tomee Updated Branches: refs/heads/master 0cfff22d9 -> 3f79e41b8
get rid of keepServerXmlAsthis - thanks David Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3f79e41b Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3f79e41b Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3f79e41b Branch: refs/heads/master Commit: 3f79e41b8eadfba586767e62d201ceecb399fc0e Parents: 0cfff22 Author: Romain Manni-Bucau <[email protected]> Authored: Wed Jun 10 08:56:59 2015 +0200 Committer: Romain Manni-Bucau <[email protected]> Committed: Wed Jun 10 08:56:59 2015 +0200 ---------------------------------------------------------------------- .../maven/plugin/AbstractAddressMojo.java | 6 +- .../maven/plugin/AbstractCommandMojo.java | 7 + .../openejb/maven/plugin/AbstractTomEEMojo.java | 169 ++++++++++++------- .../openejb/maven/plugin/BuildTomEEMojo.java | 4 - .../apache/tomee/util/QuickServerXmlParser.java | 23 ++- 5 files changed, 136 insertions(+), 73 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/3f79e41b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractAddressMojo.java ---------------------------------------------------------------------- diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractAddressMojo.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractAddressMojo.java index f47f681..1339b28 100644 --- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractAddressMojo.java +++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractAddressMojo.java @@ -21,10 +21,10 @@ import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugins.annotations.Parameter; public abstract class AbstractAddressMojo extends AbstractMojo { - @Parameter(property = "tomee-plugin.http", defaultValue = "8080") - protected int tomeeHttpPort = 8080; + @Parameter(property = "tomee-plugin.http") + protected Integer tomeeHttpPort; - @Parameter(property = "tomee-plugin.host", defaultValue = "localhost") + @Parameter(property = "tomee-plugin.host") protected String tomeeHost; @Parameter(property = "tomee-plugin.user") http://git-wip-us.apache.org/repos/asf/tomee/blob/3f79e41b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java ---------------------------------------------------------------------- diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java index 49fca85..eecc1ae 100644 --- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java +++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractCommandMojo.java @@ -23,6 +23,13 @@ import java.util.Properties; public abstract class AbstractCommandMojo extends AbstractAddressMojo { protected Object lookup(final String name) { + if (tomeeHttpPort == null) { + tomeeHttpPort = 8080; + } + if (tomeeHost == null) { + tomeeHost = "localhost"; + } + final Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory"); props.put(Context.PROVIDER_URL, "http://" + tomeeHost + ":" + tomeeHttpPort + "/tomee/ejb"); http://git-wip-us.apache.org/repos/asf/tomee/blob/3f79e41b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java ---------------------------------------------------------------------- diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java index 517b165..0b51b6b 100644 --- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java +++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java @@ -141,8 +141,8 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { @Parameter(property = "tomee-plugin.classifier", defaultValue = "webprofile") protected String tomeeClassifier; - @Parameter(property = "tomee-plugin.shutdown", defaultValue = "8005") - protected int tomeeShutdownPort; + @Parameter(property = "tomee-plugin.shutdown") + protected Integer tomeeShutdownPort; @Parameter(property = "tomee-plugin.shutdown.attempts", defaultValue = "60") protected int tomeeShutdownAttempts; @@ -150,8 +150,8 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { @Parameter(property = "tomee-plugin.shutdown-command", defaultValue = "SHUTDOWN") protected String tomeeShutdownCommand; - @Parameter(property = "tomee-plugin.ajp", defaultValue = "8009") - protected int tomeeAjpPort; + @Parameter(property = "tomee-plugin.ajp") + protected Integer tomeeAjpPort; @Parameter(property = "tomee-plugin.https") protected Integer tomeeHttpsPort; @@ -195,7 +195,7 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { /** * relative to tomee.base. */ - @Parameter(defaultValue = "webapps") + @Parameter protected String webappDir; /** @@ -309,9 +309,6 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { @Parameter(defaultValue = "${project.packaging}", readonly = true) protected String packaging; - @Parameter(property = "tomee-plugin.keep-server-xml", defaultValue = "false") - protected boolean keepServerXmlAsthis; - @Parameter(property = "tomee-plugin.check-started", defaultValue = "false") protected boolean checkStarted; @@ -384,31 +381,6 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { } unzip(resolve()); - if (removeDefaultWebapps) { // do it first to let add other war - removeDefaultWebapps(removeTomeeWebapp, existingWebapps); - } - copyLibs(libs, new File(catalinaBase, libDir), "jar"); - copyLibs(endorsedLibs, new File(catalinaBase, "endorsed"), "jar"); - copyLibs(webapps, new File(catalinaBase, webappDir), "war"); - copyLibs(apps, new File(catalinaBase, appDir), "jar"); - overrideConf(config, "conf"); - overrideConf(lib, "lib"); - final Collection<File> copied = overrideConf(bin, "bin"); - - for (final File copy : copied) { - if (copy.getName().endsWith(".sh")) { - if (!copy.setExecutable(true)) { - getLog().warn("can't make " + copy.getPath() + " executable"); - } - } - } - - if (classpaths == null) { // NPE protection for activateSimpleLog() and run() - classpaths = new ArrayList<String>(); - } - if (simpleLog) { - activateSimpleLog(); - } if (inlinedServerXml != null && inlinedServerXml.getChildCount() > 0) { final File serverXml = new File(catalinaBase, "conf/server.xml"); @@ -428,9 +400,37 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { throw new MojoExecutionException(e.getMessage(), e); } } - if (!keepServerXmlAsthis) { - overrideAddresses(); + + overrideConf(config, "conf"); + overrideServerXml(); + alignConfigOnServerXmlCurrentConfig(); + + if (removeDefaultWebapps) { // do it first to let add other war + removeDefaultWebapps(removeTomeeWebapp, existingWebapps); + } + + if (classpaths == null) { // NPE protection for activateSimpleLog() and run() + classpaths = new ArrayList<>(); + } + if (simpleLog) { + activateSimpleLog(); } + + copyLibs(libs, new File(catalinaBase, libDir), "jar"); + copyLibs(endorsedLibs, new File(catalinaBase, "endorsed"), "jar"); + copyLibs(webapps, new File(catalinaBase, webappDir), "war"); + copyLibs(apps, new File(catalinaBase, appDir), "jar"); + overrideConf(lib, "lib"); + final Collection<File> copied = overrideConf(bin, "bin"); + + for (final File copy : copied) { + if (copy.getName().endsWith(".sh")) { + if (!copy.setExecutable(true)) { + getLog().warn("can't make " + copy.getPath() + " executable"); + } + } + } + if (!skipCurrentProject) { copyWar(); } @@ -482,11 +482,47 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { thread.setContextClassLoader(currentLoader); } } + } else { + alignConfigOnServerXmlCurrentConfig(); } run(); } + private void alignConfigOnServerXmlCurrentConfig() { + final File sXml = new File(catalinaBase, "conf/server.xml"); + if (sXml.isFile()) { + final QuickServerXmlParser quickServerXmlParser = QuickServerXmlParser.parse(sXml, false); + final String http = quickServerXmlParser.value("HTTP", null); + if (http != null) { + tomeeHttpPort = Integer.parseInt(http); + } + final String https = quickServerXmlParser.value("HTTPS", null); + if (https != null) { + tomeeHttpsPort = Integer.parseInt(https); + } + final String ajp = quickServerXmlParser.value("AJP", null); + if (ajp != null) { + tomeeAjpPort = Integer.parseInt(ajp); + } + final String stop = quickServerXmlParser.value("STOP", null); + if (stop != null) { + tomeeShutdownPort = Integer.parseInt(stop); + } + final String host = quickServerXmlParser.value("host", null); + if (host != null) { + tomeeHost = host; + } + final String appBase = quickServerXmlParser.value("app-base", null); + if (appBase != null) { + webappDir = appBase; + } + } + if (webappDir == null) { + webappDir = "webapps"; + } + } + @SuppressWarnings("unchecked") private ClassLoader createClassLoader(final ClassLoader parent) { final List<URL> urls = new ArrayList<>(); @@ -549,7 +585,7 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { private List<String> webappsAlreadyAdded() { final List<String> list = new ArrayList<String>(); - final File webapps = new File(catalinaBase, webappDir); + final File webapps = new File(catalinaBase, webappDirOrImplicitDefault()); if (webapps.exists() && webapps.isDirectory()) { final File[] files = webapps.listFiles(); if (files != null) { @@ -561,6 +597,10 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { return list; } + private String webappDirOrImplicitDefault() { + return webappDir == null ? "webapps" : webappDir; + } + private void activateSimpleLog() { // replacing java.util.logging.SimpleFormatter by SimpleTomEEFormatter final File loggingProperties = new File(catalinaBase, "conf/logging.properties"); @@ -581,7 +621,7 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { } private void removeDefaultWebapps(final boolean removeTomee, final Collection<String> providedWebapps) { - final File webapps = new File(catalinaBase, webappDir); + final File webapps = new File(catalinaBase, webappDirOrImplicitDefault()); if (webapps.isDirectory()) { final File[] files = webapps.listFiles(); if (null != files) { @@ -811,7 +851,7 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { return warFile.getName(); } - private void overrideAddresses() { + private void overrideServerXml() { final File serverXml = new File(catalinaBase, "conf/server.xml"); if (!serverXml.exists()) { // openejb return; @@ -819,7 +859,8 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { final QuickServerXmlParser parser = QuickServerXmlParser.parse(serverXml); - String value = read(serverXml); + final String original = read(serverXml); + String value = original; File keystoreFile = new File(parser.keystore()); @@ -842,25 +883,35 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { " clientAuth=\"false\" sslProtocol=\"TLS\" keystoreFile=\"" + keystoreFilePath + "\" />\n"); } - if (tomeeHttpsPort == null) { - // avoid NPE - tomeeHttpsPort = 8443; + if (tomeeHttpPort != null) { + value = value.replace("\"" + parser.http() + '"', '"' + Integer.toString(tomeeHttpPort) + '"'); + } + if (tomeeHttpsPort != null) { + value = value.replace("\"" + parser.https() + '"', '"' + Integer.toString(tomeeHttpsPort) + '"'); + } + if (tomeeAjpPort != null) { + value = value.replace("\"" + parser.ajp() + '"', '"' + Integer.toString(tomeeAjpPort) + '"'); + } + if (tomeeShutdownPort != null) { + value = value.replace("\"" + parser.stop() + '"', '"' + Integer.toString(tomeeShutdownPort) + '"'); + } + if (webappDir != null) { + value = value.replace("\"" + parser.value("app-base", "webapps") + '"', '"' + webappDir + '"'); + } + if (tomeeHost != null) { + value = value.replace("\"" + parser.host() + '"', '"' + tomeeHost + '"'); } - FileWriter writer = null; - 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)); - } catch (final IOException e) { - throw new TomEEException(e.getMessage(), e); - } finally { - close(writer); + if (!original.equals(value)) { + FileWriter writer = null; + try { + writer = new FileWriter(serverXml); + writer.write(value); + } catch (final IOException e) { + throw new TomEEException(e.getMessage(), e); + } finally { + close(writer); + } } } @@ -931,7 +982,7 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { protected void run() { if (classpaths == null) { // NPE protection when execute is skipped and mojo delegates to run directly - classpaths = new ArrayList<String>(); + classpaths = new ArrayList<>(); } final List<String> strings = generateJVMArgs(); @@ -952,10 +1003,10 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { if (TOM_EE.equals(container)) { - server.setPortStartup(tomeeHttpPort); + server.setPortStartup(tomeeHttpPort == null ? tomeeHttpsPort : tomeeHttpPort); getLog().info("Running '" + getClass().getName().replace("TomEEMojo", "").toLowerCase(Locale.ENGLISH) - + "'. Configured TomEE in plugin is " + tomeeHost + ":" + tomeeHttpPort + + "'. Configured TomEE in plugin is " + tomeeHost + ":" + server.getPortStartup() + " (plugin shutdown port is " + tomeeShutdownPort + " and https port is " + tomeeHttpsPort + ")"); } else { getLog().info("Running '" + getClass().getSimpleName().replace("TomEEMojo", "").toLowerCase(Locale.ENGLISH)); http://git-wip-us.apache.org/repos/asf/tomee/blob/3f79e41b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java ---------------------------------------------------------------------- diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java index be84905..ce4f8f1 100644 --- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java +++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/BuildTomEEMojo.java @@ -27,7 +27,6 @@ import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; -import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectHelper; import org.apache.openejb.loader.Files; import org.apache.openejb.loader.IO; @@ -61,9 +60,6 @@ public class BuildTomEEMojo extends AbstractTomEEMojo { @Component protected MavenProjectHelper projectHelper; - @Parameter(defaultValue = "${project}", readonly = true) - protected MavenProject project; - @Parameter(property = "tomee-plugin.classifier") protected String classifier = null; http://git-wip-us.apache.org/repos/asf/tomee/blob/3f79e41b/tomee/tomee-util/src/main/java/org/apache/tomee/util/QuickServerXmlParser.java ---------------------------------------------------------------------- diff --git a/tomee/tomee-util/src/main/java/org/apache/tomee/util/QuickServerXmlParser.java b/tomee/tomee-util/src/main/java/org/apache/tomee/util/QuickServerXmlParser.java index 4dd0fde..8f87f4f 100644 --- a/tomee/tomee-util/src/main/java/org/apache/tomee/util/QuickServerXmlParser.java +++ b/tomee/tomee-util/src/main/java/org/apache/tomee/util/QuickServerXmlParser.java @@ -56,12 +56,17 @@ public class QuickServerXmlParser extends DefaultHandler { private final Map<String, String> values = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER); public QuickServerXmlParser() { // ensure defaults are present - values.put(STOP_KEY, DEFAULT_STOP_PORT); - values.put(HTTP_KEY, DEFAULT_HTTP_PORT); - values.put(AJP_KEY, DEFAULT_AJP_PORT); - values.put(HOST_KEY, DEFAULT_HOST); - values.put(APP_BASE_KEY, DEFAULT_APP_BASE); - values.put(KEYSTORE_KEY, DEFAULT_KEYSTORE); + this(true); + } + public QuickServerXmlParser(final boolean useDefaults) { + if (useDefaults) { + values.put(STOP_KEY, DEFAULT_STOP_PORT); + values.put(HTTP_KEY, DEFAULT_HTTP_PORT); + values.put(AJP_KEY, DEFAULT_AJP_PORT); + values.put(HOST_KEY, DEFAULT_HOST); + values.put(APP_BASE_KEY, DEFAULT_APP_BASE); + values.put(KEYSTORE_KEY, DEFAULT_KEYSTORE); + } } @Override @@ -108,7 +113,11 @@ public class QuickServerXmlParser extends DefaultHandler { } public static QuickServerXmlParser parse(final File serverXml) { - final QuickServerXmlParser handler = new QuickServerXmlParser(); + return parse(serverXml, true); + } + + public static QuickServerXmlParser parse(final File serverXml, final boolean defaults) { + final QuickServerXmlParser handler = new QuickServerXmlParser(defaults); try { final SAXParser parser = FACTORY.newSAXParser(); parser.parse(serverXml, handler);
