Repository: tomee Updated Branches: refs/heads/master 5286814da -> 1f25711f5
using keystore config in tomee mojo instead of hardcoding local paths Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/1f25711f Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/1f25711f Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/1f25711f Branch: refs/heads/master Commit: 1f25711f565d6d8c7d0072cc79e60f509d50dce5 Parents: 5286814 Author: Romain Manni-Bucau <rmannibu...@apache.org> Authored: Fri Jun 19 16:43:10 2015 +0200 Committer: Romain Manni-Bucau <rmannibu...@apache.org> Committed: Fri Jun 19 16:43:10 2015 +0200 ---------------------------------------------------------------------- .../openejb/maven/plugin/AbstractTomEEMojo.java | 45 ++++++++++++++------ .../maven/plugin/TomEEMavenPluginRule.java | 1 - .../apache/tomee/util/QuickServerXmlParser.java | 6 +-- 3 files changed, 35 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/1f25711f/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 0b51b6b..53d4a3e 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 @@ -360,6 +360,16 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { @Parameter(property = "tomee-plugin.override-on-unzip", defaultValue = "true") protected boolean overrideOnUnzip; + /** + * the actual path used in server.xml for the https keystore if relevant. + * Common usage will be to put in src/main/tomee/conf a keystore foo.jks + * and set this value to ${catalina.base}/foo.jks. + * + * Note: if not set we'll check for any *.jks in conf/. You can set it to "ignore" to skip this. + */ + @Parameter(property = "tomee-plugin.keystore") + protected String keystore; + protected File deployedFile = null; protected RemoteServer server = null; protected String container = TOM_EE; @@ -862,25 +872,34 @@ public abstract class AbstractTomEEMojo extends AbstractAddressMojo { final String original = read(serverXml); String value = original; - File keystoreFile = new File(parser.keystore()); - - if (!keystoreFile.exists()) { - keystoreFile = new File(System.getProperty("user.home"), ".keystore"); - } - - if (!keystoreFile.exists()) { - keystoreFile = new File("target", ".keystore"); - } - - final String keystoreFilePath = (keystoreFile.exists() ? keystoreFile.getAbsolutePath() : ""); + if (tomeeHttpsPort != null && tomeeHttpsPort > 0 && parser.value("HTTPS", null) == null) { + String keystorePath = keystore != null ? keystore : parser.keystore(); + if (keystorePath == null) { + final File conf = new File(catalinaBase, "conf"); + if (conf.isDirectory()) { + final File[] jks = conf.listFiles(new FilenameFilter() { + @Override + public boolean accept(final File dir, final String name) { + return name.endsWith(".jks"); + } + }); + if (jks != null && jks.length == 1) { + keystorePath = "${catalina.base}/conf/" + jks[0].getName(); + } else { + throw new IllegalArgumentException("Ambiguous jks in conf/,please use <keystore /> to force it."); + } + } + } + if (keystorePath == null) { + throw new IllegalArgumentException("No keystore specified, please use <keystore></keystore>"); + } - 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\" keystoreFile=\"" + keystoreFilePath + "\" />\n"); + " clientAuth=\"false\" sslProtocol=\"TLS\" keystoreFile=\"" + keystorePath + "\" />\n"); } if (tomeeHttpPort != null) { http://git-wip-us.apache.org/repos/asf/tomee/blob/1f25711f/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/TomEEMavenPluginRule.java ---------------------------------------------------------------------- diff --git a/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/TomEEMavenPluginRule.java b/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/TomEEMavenPluginRule.java index 9e5ae3a..dead8a1 100644 --- a/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/TomEEMavenPluginRule.java +++ b/maven/tomee-maven-plugin/src/test/java/org/apache/openejb/maven/plugin/TomEEMavenPluginRule.java @@ -201,7 +201,6 @@ public class TomEEMavenPluginRule implements MethodRule { tomEEMojo.config = new File(tomEEMojo.catalinaBase.getPath() + "-conf"); tomEEMojo.lib = new File(tomEEMojo.catalinaBase.getPath() + "-lib"); - tomEEMojo.tomeeHttpsPort = NetworkUtil.getNextAvailablePort(); tomEEMojo.tomeeHttpPort = NetworkUtil.getNextAvailablePort(); tomEEMojo.tomeeAjpPort = NetworkUtil.getNextAvailablePort(); tomEEMojo.tomeeShutdownPort = NetworkUtil.getNextAvailablePort(); http://git-wip-us.apache.org/repos/asf/tomee/blob/1f25711f/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 8f87f4f..175f0b3 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 @@ -20,12 +20,12 @@ import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; import java.io.ByteArrayInputStream; import java.io.File; import java.util.Map; import java.util.TreeMap; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; @SuppressWarnings("UnusedDeclaration") public class QuickServerXmlParser extends DefaultHandler { @@ -51,7 +51,7 @@ public class QuickServerXmlParser extends DefaultHandler { public static final String DEFAULT_AJP_PORT = "8009"; public static final String DEFAULT_HOST = "localhost"; public static final String DEFAULT_APP_BASE = "webapps"; - public static final String DEFAULT_KEYSTORE = new File(System.getProperty("user.home"), ".keystore").getAbsolutePath(); + public static final String DEFAULT_KEYSTORE = null; private final Map<String, String> values = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);