You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by dj...@apache.org on 2016/03/07 19:26:12 UTC

[02/50] incubator-quarks git commit: fix ssl tests - fix ant vs eclipse test keystore path handling - fix test ssl system prop mgmt

fix ssl tests
- fix ant vs eclipse test keystore path handling
- fix test ssl system prop mgmt

Project: http://git-wip-us.apache.org/repos/asf/incubator-quarks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quarks/commit/af73f91d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quarks/tree/af73f91d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quarks/diff/af73f91d

Branch: refs/heads/master
Commit: af73f91d2b0f3dd15df6f22c6f44a15a87b2e98d
Parents: 6e59577
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Thu Mar 3 16:30:52 2016 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Thu Mar 3 16:30:52 2016 -0500

----------------------------------------------------------------------
 .../wsclient/javax/websocket/KeystorePath.java  | 26 +++++++
 .../javax/websocket/WebSocketClientTest.java    | 78 +++++++++++---------
 .../javax/websocket/WebSocketServerEcho.java    |  5 +-
 3 files changed, 69 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/af73f91d/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/KeystorePath.java
----------------------------------------------------------------------
diff --git a/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/KeystorePath.java b/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/KeystorePath.java
new file mode 100644
index 0000000..f75b64a
--- /dev/null
+++ b/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/KeystorePath.java
@@ -0,0 +1,26 @@
+/*
+# Licensed Materials - Property of IBM
+# Copyright IBM Corp. 2015,2016 
+*/
+package quarks.tests.connectors.wsclient.javax.websocket;
+
+import java.io.File;
+
+public class KeystorePath {
+    
+    public static String getStorePath(String storeLeaf) {
+        String path = System.getProperty("user.dir");
+        // Under eclipse/junit: path to project in repo: <repo>/connectors
+        // Under ant/junit: <repo>/connectors/<project>/unittests/testrunxxxxxxx
+        if (!path.endsWith("/connectors")) {
+            int indx = path.indexOf("/connectors/");
+            indx += "/connectors/".length() - 1;
+            path = path.substring(0, indx);
+        }
+        path += "/wsclient-javax.websocket/src/test/keystores/" + storeLeaf;
+        if (!new File(path).exists())
+            throw new IllegalArgumentException("File does not exist: "+path);
+        return path;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/af73f91d/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketClientTest.java
----------------------------------------------------------------------
diff --git a/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketClientTest.java b/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketClientTest.java
index 5af8d7d..cd93adf 100644
--- a/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketClientTest.java
+++ b/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketClientTest.java
@@ -9,6 +9,8 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assume.assumeTrue;
 
 import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
@@ -98,10 +100,7 @@ public class WebSocketClientTest extends ConnectorTestBase {
     }
     
     private String getStorePath(String storeLeaf) {
-        // path to project in repo: <repo>/connectors
-        String path = System.getProperty("user.dir");
-        path += "/wsclient-javax.websocket/src/test/keystores/" + storeLeaf;
-        return path;
+        return KeystorePath.getStorePath(storeLeaf);
     }
     
     @Test
@@ -283,6 +282,36 @@ public class WebSocketClientTest extends ConnectorTestBase {
         
         // TODO
     }
+
+    private class SslSystemPropMgr {
+        private final Map<String,String> origProps = new HashMap<>();
+        
+        public void set() {
+            set("javax.net.ssl.trustStore", getStorePath("clientTrustStore.jks"));
+            set("javax.net.ssl.trustStorePassword", "passw0rd");
+            set("javax.net.ssl.keyStore", getStorePath("clientKeyStore.jks"));
+            set("javax.net.ssl.keyStorePassword", "passw0rd");
+        }
+        
+        private void set(String prop, String defaultVal) {
+            origProps.put(prop, System.setProperty(prop, defaultVal));
+        }
+        
+        public void restore() {
+            restore("javax.net.ssl.trustStore");
+            restore("javax.net.ssl.trustStorePassword");
+            restore("javax.net.ssl.keyStore");
+            restore("javax.net.ssl.keyStorePassword");
+        }
+        
+        private void restore(String prop) {
+            String origValue = origProps.get(prop);
+            if (origValue == null)
+                System.getProperties().remove(prop);
+            else
+                System.setProperty(prop, origValue);
+        }
+    }
     
     @Test
     public void testSslSystemProperty() throws Exception {
@@ -294,12 +323,10 @@ public class WebSocketClientTest extends ConnectorTestBase {
         Properties config = getConfig();  // no SSL config stuff
         config.setProperty("ws.uri", getWssUri());
 
-        String origTrustStore = null;
-        String origTrustStorePassword = null;
+        SslSystemPropMgr sslProps = new SslSystemPropMgr();
         try {
             // a trust store that contains the server's cert
-            origTrustStore = System.setProperty("javax.net.ssl.trustStore", getStorePath("clientTrustStore.jks"));
-            origTrustStorePassword = System.setProperty("javax.net.ssl.trustStorePassword", "passw0rd");
+            sslProps.set();
     
             // System.setProperty("javax.net.debug", "ssl"); // or "all"; "help" for full list
             
@@ -316,10 +343,7 @@ public class WebSocketClientTest extends ConnectorTestBase {
             completeAndValidate("", t, rcvd, SEC_TMO, expected);
         }
         finally {
-            if (origTrustStore != null)
-                System.setProperty("javax.net.ssl.trustStore", origTrustStore);
-            if (origTrustStorePassword != null)
-                System.setProperty("javax.net.ssl.trustStorePassword", origTrustStorePassword);
+            sslProps.restore();
         }
     }
     
@@ -333,16 +357,10 @@ public class WebSocketClientTest extends ConnectorTestBase {
         Properties config = getConfig();  // no SSL config stuff
         config.setProperty("ws.uri", getWssUri());
 
-        String origTrustStore = null;
-        String origTrustStorePassword = null;
-        String origKeyStore = null;
-        String origKeyStorePassword = null;
+        SslSystemPropMgr sslProps = new SslSystemPropMgr();
         try {
             // a trust store that contains the server's cert
-            origTrustStore = System.setProperty("javax.net.ssl.trustStore", getStorePath("clientTrustStore.jks"));
-            origTrustStorePassword = System.setProperty("javax.net.ssl.trustStorePassword", "passw0rd");
-            origKeyStore = System.setProperty("javax.net.ssl.keyStore", getStorePath("clientKeyStore.jks"));
-            origKeyStorePassword = System.setProperty("javax.net.ssl.keyStorePassword", "passw0rd");
+            sslProps.set();
     
             // System.setProperty("javax.net.debug", "ssl"); // or "all"; "help" for full list
             
@@ -359,14 +377,7 @@ public class WebSocketClientTest extends ConnectorTestBase {
             completeAndValidate("", t, rcvd, SEC_TMO, expected);
         }
         finally {
-            if (origTrustStore != null)
-                System.setProperty("javax.net.ssl.trustStore", origTrustStore);
-            if (origTrustStorePassword != null)
-                System.setProperty("javax.net.ssl.trustStorePassword", origTrustStorePassword);
-            if (origKeyStore != null)
-                System.setProperty("javax.net.ssl.keyStore", origKeyStore);
-            if (origKeyStorePassword != null)
-                System.setProperty("javax.net.ssl.keyStorePassword", origKeyStorePassword);
+            sslProps.restore();
         }
     }
     
@@ -636,11 +647,9 @@ public class WebSocketClientTest extends ConnectorTestBase {
         Properties config = getConfig();
         config.setProperty("ws.uri", "wss://echo.websocket.org");
 
-        String origTrustStore = null;
-        String origTrustStorePassword = null;
+        SslSystemPropMgr sslProps = new SslSystemPropMgr();
         try {
-            origTrustStore = System.setProperty("javax.net.ssl.trustStore", getStorePath("clientTrustStore.jks"));
-            origTrustStorePassword = System.setProperty("javax.net.ssl.trustStorePassword", "passw0rd");
+            sslProps.set();
     
             // System.setProperty("javax.net.debug", "ssl"); // or "all"; "help" for full list
             
@@ -657,10 +666,7 @@ public class WebSocketClientTest extends ConnectorTestBase {
             completeAndValidate("", t, rcvd, SEC_TMO, new String[0]);  //rcv nothing
         }
         finally {
-            if (origTrustStore != null)
-                System.setProperty("javax.net.ssl.trustStore", origTrustStore);
-            if (origTrustStorePassword != null)
-                System.setProperty("javax.net.ssl.trustStorePassword", origTrustStorePassword);
+            sslProps.restore();
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-quarks/blob/af73f91d/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketServerEcho.java
----------------------------------------------------------------------
diff --git a/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketServerEcho.java b/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketServerEcho.java
index 68815ec..d09f7d0 100644
--- a/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketServerEcho.java
+++ b/connectors/wsclient-javax.websocket/src/test/java/quarks/tests/connectors/wsclient/javax/websocket/WebSocketServerEcho.java
@@ -121,10 +121,7 @@ public class WebSocketServerEcho {
     }
     
     private String getStorePath(String storeLeaf) {
-        // path to project in repo: <repo>/connectors
-        String path = System.getProperty("user.dir");
-        path += "/wsclient-javax.websocket/src/test/keystores/" + storeLeaf;
-        return path;
+        return KeystorePath.getStorePath(storeLeaf);
     }
     
     public int getPort() {