From ced2c8b931237472d3319ad86dbeb0d31a593e71 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Tue, 4 Mar 2008 23:38:37 +0000 Subject: [PATCH] Minor URI fixes. --- .../ws/transport/http/HttpUrlConnection.java | 3 +- .../transport/tcp/TcpReceiverConnection.java | 8 +++- .../ws/transport/tcp/TcpSenderConnection.java | 7 +++ .../tcp/support/TcpTransportUtils.java | 44 +++++++++++++++++++ .../jms/support/JmsTransportUtils.java | 4 +- 5 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 sandbox/src/main/java/org/springframework/ws/transport/tcp/support/TcpTransportUtils.java diff --git a/core/src/main/java/org/springframework/ws/transport/http/HttpUrlConnection.java b/core/src/main/java/org/springframework/ws/transport/http/HttpUrlConnection.java index bb34cc71..9171fc59 100644 --- a/core/src/main/java/org/springframework/ws/transport/http/HttpUrlConnection.java +++ b/core/src/main/java/org/springframework/ws/transport/http/HttpUrlConnection.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Set; import org.springframework.util.Assert; +import org.springframework.util.ResourceUtils; import org.springframework.util.StringUtils; import org.springframework.ws.WebServiceMessage; import org.springframework.ws.transport.WebServiceConnection; @@ -66,7 +67,7 @@ public class HttpUrlConnection extends AbstractHttpSenderConnection { */ public URI getUri() throws URISyntaxException { - return connection.getURL().toURI(); + return ResourceUtils.toURI(connection.getURL()); } /* diff --git a/sandbox/src/main/java/org/springframework/ws/transport/tcp/TcpReceiverConnection.java b/sandbox/src/main/java/org/springframework/ws/transport/tcp/TcpReceiverConnection.java index 50f44392..cc6ed7aa 100644 --- a/sandbox/src/main/java/org/springframework/ws/transport/tcp/TcpReceiverConnection.java +++ b/sandbox/src/main/java/org/springframework/ws/transport/tcp/TcpReceiverConnection.java @@ -22,11 +22,14 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; +import java.net.URI; +import java.net.URISyntaxException; import java.util.Collections; import java.util.Iterator; import org.springframework.util.Assert; import org.springframework.ws.transport.AbstractReceiverConnection; +import org.springframework.ws.transport.tcp.support.TcpTransportUtils; /** @author Arjen Poutsma */ public class TcpReceiverConnection extends AbstractReceiverConnection { @@ -38,6 +41,10 @@ public class TcpReceiverConnection extends AbstractReceiverConnection { this.socket = socket; } + public URI getUri() throws URISyntaxException { + return TcpTransportUtils.toUri(socket); + } + public boolean hasError() throws IOException { return false; } @@ -84,5 +91,4 @@ public class TcpReceiverConnection extends AbstractReceiverConnection { protected void sendResponse(boolean sentFault) throws IOException { } - } diff --git a/sandbox/src/main/java/org/springframework/ws/transport/tcp/TcpSenderConnection.java b/sandbox/src/main/java/org/springframework/ws/transport/tcp/TcpSenderConnection.java index 27bd6b6d..319fab5b 100644 --- a/sandbox/src/main/java/org/springframework/ws/transport/tcp/TcpSenderConnection.java +++ b/sandbox/src/main/java/org/springframework/ws/transport/tcp/TcpSenderConnection.java @@ -22,12 +22,15 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; +import java.net.URI; +import java.net.URISyntaxException; import java.util.Collections; import java.util.Iterator; import org.springframework.util.Assert; import org.springframework.ws.transport.AbstractSenderConnection; import org.springframework.ws.transport.WebServiceConnection; +import org.springframework.ws.transport.tcp.support.TcpTransportUtils; /** * Implementation of {@link WebServiceConnection} that is used for client-side TCP/IP access. Exposes a {@link Socket}. @@ -49,6 +52,10 @@ public class TcpSenderConnection extends AbstractSenderConnection { return socket; } + public URI getUri() throws URISyntaxException { + return TcpTransportUtils.toUri(socket); + } + public void onClose() throws IOException { socket.close(); } diff --git a/sandbox/src/main/java/org/springframework/ws/transport/tcp/support/TcpTransportUtils.java b/sandbox/src/main/java/org/springframework/ws/transport/tcp/support/TcpTransportUtils.java new file mode 100644 index 00000000..9aef177a --- /dev/null +++ b/sandbox/src/main/java/org/springframework/ws/transport/tcp/support/TcpTransportUtils.java @@ -0,0 +1,44 @@ +/* + * Copyright 2008 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.transport.tcp.support; + +import java.net.Socket; +import java.net.URI; +import java.net.URISyntaxException; + +import org.springframework.ws.transport.tcp.TcpTransportConstants; + +/** + * Collection of utility methods to work with TCP/IP transports. + * + * @author Arjen Poutsma + */ +public abstract class TcpTransportUtils { + + /** + * Converts the given Socket into a tcp URI. + * + * @param socket the socket + * @return a tcp URI + */ + public static URI toUri(Socket socket) throws URISyntaxException { + String host = socket.getInetAddress().getHostName(); + return new URI(TcpTransportConstants.TCP_URI_SCHEME, null, host, socket.getPort(), null, null, null); + + } + +} diff --git a/support/src/main/java/org/springframework/ws/transport/jms/support/JmsTransportUtils.java b/support/src/main/java/org/springframework/ws/transport/jms/support/JmsTransportUtils.java index 3964ce09..ad568097 100644 --- a/support/src/main/java/org/springframework/ws/transport/jms/support/JmsTransportUtils.java +++ b/support/src/main/java/org/springframework/ws/transport/jms/support/JmsTransportUtils.java @@ -41,7 +41,7 @@ import org.springframework.ws.transport.jms.JmsTransportConstants; * @author Arjen Poutsma * @since 1.5.0 */ -public class JmsTransportUtils { +public abstract class JmsTransportUtils { private static final String[] CONVERSION_TABLE = new String[]{JmsTransportConstants.HEADER_CONTENT_TYPE, JmsTransportConstants.PROPERTY_CONTENT_TYPE, JmsTransportConstants.HEADER_CONTENT_LENGTH, @@ -95,7 +95,7 @@ public class JmsTransportUtils { } /** - * Converts the given JMS destination a jms URI. + * Converts the given JMS destination into a jms URI. * * @param destination the destination * @return a jms URI