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]