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

Reply via email to