Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C0FEBD122 for ; Thu, 16 Aug 2012 22:34:05 +0000 (UTC) Received: (qmail 98322 invoked by uid 500); 16 Aug 2012 22:34:05 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 98239 invoked by uid 500); 16 Aug 2012 22:34:05 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 98230 invoked by uid 99); 16 Aug 2012 22:34:05 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Aug 2012 22:34:05 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Aug 2012 22:34:02 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id E62D823889C5; Thu, 16 Aug 2012 22:33:17 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1374091 - in /cxf/trunk: rt/transports/udp/src/main/java/org/apache/cxf/transport/udp/UDPConduit.java services/ws-discovery/ws-discovery-api/src/test/java/org/apache/cxf/ws/discovery/WSDiscoveryClientTest.java Date: Thu, 16 Aug 2012 22:33:17 -0000 To: commits@cxf.apache.org From: dkulp@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120816223317.E62D823889C5@eris.apache.org> Author: dkulp Date: Thu Aug 16 22:33:17 2012 New Revision: 1374091 URL: http://svn.apache.org/viewvc?rev=1374091&view=rev Log: Mina can handle multicast fine, it was the one-way that was causing the issue Modified: cxf/trunk/rt/transports/udp/src/main/java/org/apache/cxf/transport/udp/UDPConduit.java cxf/trunk/services/ws-discovery/ws-discovery-api/src/test/java/org/apache/cxf/ws/discovery/WSDiscoveryClientTest.java Modified: cxf/trunk/rt/transports/udp/src/main/java/org/apache/cxf/transport/udp/UDPConduit.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/udp/src/main/java/org/apache/cxf/transport/udp/UDPConduit.java?rev=1374091&r1=1374090&r2=1374091&view=diff ============================================================================== --- cxf/trunk/rt/transports/udp/src/main/java/org/apache/cxf/transport/udp/UDPConduit.java (original) +++ cxf/trunk/rt/transports/udp/src/main/java/org/apache/cxf/transport/udp/UDPConduit.java Thu Aug 16 22:33:17 2012 @@ -27,7 +27,6 @@ import java.net.DatagramSocket; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.InterfaceAddress; -import java.net.MulticastSocket; import java.net.NetworkInterface; import java.net.URI; import java.util.Enumeration; @@ -163,17 +162,13 @@ public class UDPConduit extends Abstract s = s.substring(0, s.indexOf('/')); } int port = Integer.parseInt(s); - sendViaBroadcast(message, null, port); + sendViaBroadcast(message, port); } else { InetSocketAddress isa = null; String hp = ""; isa = new InetSocketAddress(uri.getHost(), uri.getPort()); hp = uri.getHost() + ":" + uri.getPort(); - if (isa.getAddress().isMulticastAddress()) { - sendViaBroadcast(message, isa, uri.getPort()); - return; - } Queue q = connections.get(hp); ConnectFuture connFuture = null; @@ -183,10 +178,10 @@ public class UDPConduit extends Abstract if (connFuture == null) { connFuture = connector.connect(isa); connFuture.await(); + ((DatagramSessionConfig)connFuture.getSession().getConfig()).setSendBufferSize(64 * 1024); + ((DatagramSessionConfig)connFuture.getSession().getConfig()).setReceiveBufferSize(64 * 1024); } connFuture.getSession().setAttribute(CXF_MESSAGE_ATTR, message); - ((DatagramSessionConfig)connFuture.getSession().getConfig()).setSendBufferSize(64 * 1024); - ((DatagramSessionConfig)connFuture.getSession().getConfig()).setReceiveBufferSize(64 * 1024); message.setContent(OutputStream.class, new UDPConduitOutputStream(connector, connFuture, message)); message.getExchange().put(ConnectFuture.class, connFuture); message.getExchange().put(HOST_PORT, uri.getHost() + ":" + uri.getPort()); @@ -196,74 +191,51 @@ public class UDPConduit extends Abstract } } - private void sendViaBroadcast(Message message, InetSocketAddress isa, int port) { + private void sendViaBroadcast(Message message, int port) { message.setContent(OutputStream.class, - new UDPBroadcastOutputStream(port, isa, message)); + new UDPBroadcastOutputStream(port, message)); } private final class UDPBroadcastOutputStream extends LoadingByteArrayOutputStream { private final int port; private final Message message; - private final InetSocketAddress broadcastAddress; - private UDPBroadcastOutputStream(int port, InetSocketAddress isa, Message message) { + private UDPBroadcastOutputStream(int port, Message message) { this.port = port; this.message = message; - this.broadcastAddress = isa; } public void close() throws IOException { super.close(); DatagramSocket socket; - if (broadcastAddress == null) { - socket = new DatagramSocket(); - socket.setSendBufferSize(this.size()); - socket.setReceiveBufferSize(64 * 1024); - socket.setBroadcast(true); - Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); - while (interfaces.hasMoreElements()) { - NetworkInterface networkInterface = interfaces.nextElement(); - if (!networkInterface.isUp() || networkInterface.isLoopback()) { - continue; + socket = new DatagramSocket(); + socket.setSendBufferSize(this.size()); + socket.setReceiveBufferSize(64 * 1024); + socket.setBroadcast(true); + Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); + while (interfaces.hasMoreElements()) { + NetworkInterface networkInterface = interfaces.nextElement(); + if (!networkInterface.isUp() || networkInterface.isLoopback()) { + continue; + } + for (InterfaceAddress interfaceAddress : networkInterface.getInterfaceAddresses()) { + InetAddress broadcast = interfaceAddress.getBroadcast(); + if (broadcast == null) { + continue; } - for (InterfaceAddress interfaceAddress : networkInterface.getInterfaceAddresses()) { - InetAddress broadcast = interfaceAddress.getBroadcast(); - if (broadcast == null) { - continue; - } - DatagramPacket sendPacket = new DatagramPacket(this.getRawBytes(), - 0, - this.size(), - broadcast, - port); - - try { - socket.send(sendPacket); - } catch (Exception e) { - //ignore - } + DatagramPacket sendPacket = new DatagramPacket(this.getRawBytes(), + 0, + this.size(), + broadcast, + port); + + try { + socket.send(sendPacket); + } catch (Exception e) { + //ignore } } - } else { - socket = new MulticastSocket(null); - socket.setReuseAddress(true); - socket.setSendBufferSize(64 * 1024); - socket.setReceiveBufferSize(64 * 1024); - socket.bind(null); - ((MulticastSocket)socket).setTimeToLive(1); - - DatagramPacket sendPacket = new DatagramPacket(this.getRawBytes(), - 0, - this.size(), - broadcastAddress.getAddress(), - port); - - try { - socket.send(sendPacket); - } catch (Exception e) { - //ignore - } } if (!message.getExchange().isOneWay()) { @@ -330,9 +302,6 @@ public class UDPConduit extends Abstract } closed = true; send(); - if (message.getExchange().isOneWay()) { - future.getSession().close(true); - } } } Modified: cxf/trunk/services/ws-discovery/ws-discovery-api/src/test/java/org/apache/cxf/ws/discovery/WSDiscoveryClientTest.java URL: http://svn.apache.org/viewvc/cxf/trunk/services/ws-discovery/ws-discovery-api/src/test/java/org/apache/cxf/ws/discovery/WSDiscoveryClientTest.java?rev=1374091&r1=1374090&r2=1374091&view=diff ============================================================================== --- cxf/trunk/services/ws-discovery/ws-discovery-api/src/test/java/org/apache/cxf/ws/discovery/WSDiscoveryClientTest.java (original) +++ cxf/trunk/services/ws-discovery/ws-discovery-api/src/test/java/org/apache/cxf/ws/discovery/WSDiscoveryClientTest.java Thu Aug 16 22:33:17 2012 @@ -23,7 +23,6 @@ import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Endpoint; -import org.apache.cxf.ws.discovery.wsdl.HelloType; /** * @@ -38,11 +37,13 @@ public final class WSDiscoveryClientTest public static void main(String[] arg) throws Exception { Endpoint ep = Endpoint.publish("http://localhost:51919/Foo/Snarf", new FooImpl()); WSDiscoveryClient c = new WSDiscoveryClient(); - HelloType h = c.register(ep.getEndpointReference()); + c.register(ep.getEndpointReference()); - Thread.sleep(5000); + System.out.println("1"); + Thread.sleep(1000); //c.unregister(h); c.unregister(ep.getEndpointReference()); + System.out.println("2"); c.close(); System.exit(0);