Author: fmoga
Date: Mon Nov  8 20:50:46 2010
New Revision: 1032702

URL: http://svn.apache.org/viewvc?rev=1032702&view=rev
Log:
Finished url parsing and check.

Modified:
    
labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/connection/WebSocketConnectionFactory.java
    
labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/url/WebSocketURL.java
    
labs/monsoon/trunk/modules/monsoon-client/src/test/java/org/apache/monsoon/client/WebSocketURLTest.java

Modified: 
labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/connection/WebSocketConnectionFactory.java
URL: 
http://svn.apache.org/viewvc/labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/connection/WebSocketConnectionFactory.java?rev=1032702&r1=1032701&r2=1032702&view=diff
==============================================================================
--- 
labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/connection/WebSocketConnectionFactory.java
 (original)
+++ 
labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/connection/WebSocketConnectionFactory.java
 Mon Nov  8 20:50:46 2010
@@ -18,9 +18,8 @@
  */
 package org.apache.monsoon.client.connection;
 
-/**
- * 
- */
 public class WebSocketConnectionFactory {
 
+    
+    
 }

Modified: 
labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/url/WebSocketURL.java
URL: 
http://svn.apache.org/viewvc/labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/url/WebSocketURL.java?rev=1032702&r1=1032701&r2=1032702&view=diff
==============================================================================
--- 
labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/url/WebSocketURL.java
 (original)
+++ 
labs/monsoon/trunk/modules/monsoon-client/src/main/java/org/apache/monsoon/client/url/WebSocketURL.java
 Mon Nov  8 20:50:46 2010
@@ -18,8 +18,10 @@
  */
 package org.apache.monsoon.client.url;
 
+import java.net.InetAddress;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.net.UnknownHostException;
 
 import org.apache.monsoon.client.util.WebSocketConstants;
 import org.apache.monsoon.client.util.WebSocketUtils;
@@ -32,18 +34,27 @@ public class WebSocketURL {
     private static final int DEFAULT_WSS_PORT = 443;
 
     private URL url;
+    private InetAddress address;
 
     public WebSocketURL(String websocketUrl) throws WebSocketURLException {
         WebSocketUtils.checkNull(websocketUrl, WebSocketConstants.URL_NULL);
         url = parseUrl(websocketUrl);
+        resolveAddress();
         if (!checkScheme() || hasFragment() || !isAsciiHost()
                 || !isAsciiResourceName()) {
             throw new WebSocketURLException(WebSocketConstants.URL_MALFORMED);
         }
     }
 
+    private void resolveAddress() throws WebSocketURLException {
+        try {
+            address = InetAddress.getByName(url.getHost());
+        } catch (UnknownHostException e) {
+            throw new WebSocketURLException(e.getMessage(), e);
+        }
+    }
+
     private URL parseUrl(String websocketUrl) throws WebSocketURLException {
-        // TODO: resolve URL?
         URL parsedUrl = null;
         try {
             parsedUrl = new URL(websocketUrl);
@@ -64,8 +75,7 @@ public class WebSocketURL {
 
     private boolean isAsciiResourceName() {
         for (char c : getResourceName().toCharArray()) {
-            if (c < '!' || '~' < c) {
-                // not between U+0021 and U+007E
+            if (c < (char)0x0021 || (char)0x007E < c) {
                 return false;
             }
         }
@@ -74,8 +84,7 @@ public class WebSocketURL {
 
     private boolean isAsciiHost() {
         for (char c : getHost().toCharArray())
-            if (c > '~') {
-                // bigger than U+007E
+            if (c > 0x007E) {
                 return false;
             }
         return true;
@@ -103,12 +112,16 @@ public class WebSocketURL {
     public String getResourceName() {
         String resourceName = url.getPath();
         if (resourceName.length() == 0) {
-            resourceName = "/";
+            resourceName = "" + (char)0x002F;
         }
         if (url.getQuery() != null) {
-            resourceName += "?" + url.getQuery();
+            resourceName += (char)0x003F + url.getQuery();
         }
         return resourceName;
     }
 
+    public InetAddress getAddress() {
+        return address;
+    }
+
 }

Modified: 
labs/monsoon/trunk/modules/monsoon-client/src/test/java/org/apache/monsoon/client/WebSocketURLTest.java
URL: 
http://svn.apache.org/viewvc/labs/monsoon/trunk/modules/monsoon-client/src/test/java/org/apache/monsoon/client/WebSocketURLTest.java?rev=1032702&r1=1032701&r2=1032702&view=diff
==============================================================================
--- 
labs/monsoon/trunk/modules/monsoon-client/src/test/java/org/apache/monsoon/client/WebSocketURLTest.java
 (original)
+++ 
labs/monsoon/trunk/modules/monsoon-client/src/test/java/org/apache/monsoon/client/WebSocketURLTest.java
 Mon Nov  8 20:50:46 2010
@@ -42,6 +42,14 @@ public class WebSocketURLTest extends Te
         } catch (WebSocketURLException e) {
         }
     }
+    
+    public void testRelativeURL() {
+        try {
+            new WebSocketURL("monsoon/client");
+            fail();
+        } catch (WebSocketURLException e) {
+        }
+    }
 
     public void testEmptyScheme() {
         try {
@@ -77,7 +85,7 @@ public class WebSocketURLTest extends Te
 
     public void testValidScheme() {
         try {
-            new WebSocketURL("ws://monsoon.apache.org");
+            new WebSocketURL("ws://labs.apache.org");
         } catch (WebSocketURLException e) {
             fail(e.getMessage());
         }
@@ -85,7 +93,7 @@ public class WebSocketURLTest extends Te
 
     public void testValidSchemeUppercase() {
         try {
-            new WebSocketURL("WS://monsoon.apache.org");
+            new WebSocketURL("WS://labs.apache.org");
         } catch (WebSocketURLException e) {
             fail(e.getMessage());
         }
@@ -93,7 +101,7 @@ public class WebSocketURLTest extends Te
 
     public void testValidSecureScheme() {
         try {
-            new WebSocketURL("wss://monsoon.apache.org");
+            new WebSocketURL("wss://labs.apache.org");
         } catch (WebSocketURLException e) {
             fail(e.getMessage());
         }
@@ -101,7 +109,7 @@ public class WebSocketURLTest extends Te
 
     public void testFragment() {
         try {
-            new WebSocketURL("ws://monsoon.apache.org#fragment");
+            new WebSocketURL("ws://labs.apache.org#fragment");
             fail();
         } catch (WebSocketURLException e) {
         }
@@ -155,8 +163,8 @@ public class WebSocketURLTest extends Te
 
     public void testHost2() {
         try {
-            WebSocketURL webSocketURL = new WebSocketURL("wss://monsoon");
-            assertEquals("monsoon", webSocketURL.getHost());
+            WebSocketURL webSocketURL = new WebSocketURL("wss://apache.org");
+            assertEquals("apache.org", webSocketURL.getHost());
         } catch (WebSocketURLException e) {
             fail(e.getMessage());
         }
@@ -165,7 +173,7 @@ public class WebSocketURLTest extends Te
     public void testWsPredefinedPort() {
         try {
             WebSocketURL webSocketURL = new WebSocketURL(
-                    "ws://monsoon.apache.org");
+                    "ws://labs.apache.org");
             assertEquals(80, webSocketURL.getPort());
         } catch (WebSocketURLException e) {
             fail(e.getMessage());
@@ -175,7 +183,7 @@ public class WebSocketURLTest extends Te
     public void testWssPredefinedPort() {
         try {
             WebSocketURL webSocketURL = new WebSocketURL(
-                    "wss://monsoon.apache.org");
+                    "wss://labs.apache.org");
             assertEquals(443, webSocketURL.getPort());
         } catch (WebSocketURLException e) {
             fail(e.getMessage());
@@ -185,7 +193,7 @@ public class WebSocketURLTest extends Te
     public void testWsPort() {
         try {
             WebSocketURL webSocketURL = new WebSocketURL(
-                    "ws://monsoon.apache.org:443");
+                    "ws://labs.apache.org:443");
             assertEquals(443, webSocketURL.getPort());
         } catch (WebSocketURLException e) {
             fail(e.getMessage());
@@ -195,7 +203,7 @@ public class WebSocketURLTest extends Te
     public void testWssPort() {
         try {
             WebSocketURL webSocketURL = new WebSocketURL(
-                    "wss://monsoon.apache.org:80");
+                    "wss://labs.apache.org:80");
             assertEquals(80, webSocketURL.getPort());
         } catch (WebSocketURLException e) {
             fail(e.getMessage());



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to