Class UdpTransport
- java.lang.Object
-
- org.apache.activemq.util.ServiceSupport
-
- org.apache.activemq.transport.TransportSupport
-
- org.apache.activemq.transport.TransportThreadSupport
-
- org.apache.activemq.transport.udp.UdpTransport
-
- Direct Known Subclasses:
MulticastTransport
public class UdpTransport extends TransportThreadSupport implements Transport, Service, Runnable
An implementation of theTransportinterface using raw UDP
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedUdpTransport(OpenWireFormat wireFormat)UdpTransport(OpenWireFormat wireFormat, int port)Used by the server transportUdpTransport(OpenWireFormat wireFormat, SocketAddress socketAddress)UdpTransport(OpenWireFormat wireFormat, URI remoteLocation)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbind(DatagramSocket socket, SocketAddress localAddress)protected DatagramChannelconnect(DatagramChannel channel, SocketAddress targetAddress2)protected InetSocketAddresscreateAddress(URI remoteLocation)Creates an address from the given URIprotected CommandChannelcreateCommandChannel()protected CommandChannelcreateCommandDatagramChannel()protected DatagramHeaderMarshallercreateDatagramHeaderMarshaller()protected SocketAddresscreateLocalAddress()ReplayercreateReplayer()Creates a replayer for working with the reliable transportprotected voiddoStart()protected voiddoStop(ServiceStopper stopper)ByteBufferPoolgetBufferPool()protected DatagramChannelgetChannel()CommandChannelgetCommandChannel()intgetDatagramSize()InetSocketAddressgetLocalSocketAddress()intgetMinmumWireFormatVersion()X509Certificate[]getPeerCertificates()intgetPort()protected StringgetProtocolName()protected StringgetProtocolUriScheme()intgetReceiveCounter()Returns a counter which gets incremented as data is read from the transport.StringgetRemoteAddress()ReplayBuffergetReplayBuffer()ReplayStrategygetReplayStrategy()IntSequenceGeneratorgetSequenceGenerator()protected SocketAddressgetTargetAddress()OpenWireFormatgetWireFormat()Retrieves the WireFormat instance associated with this Transport instance.booleanisReplayEnabled()booleanisTrace()booleanisUseLocalHost()voidoneway(Object command)A one way asynchronous sendvoidoneway(Object command, SocketAddress address)A one way asynchronous send to a given addressprotected StringresolveHostName(String host)voidrun()reads packets from a SocketvoidsetBufferPool(ByteBufferPool bufferPool)protected voidsetChannel(DatagramChannel channel)voidsetCommandChannel(CommandDatagramChannel commandChannel)Sets the implementation of the command channel to use.voidsetDatagramSize(int datagramSize)voidsetMinmumWireFormatVersion(int minmumWireFormatVersion)voidsetPeerCertificates(X509Certificate[] certificates)Sets the certificates provided by the connected peer.voidsetPort(int port)Sets the port to connect onvoidsetReplayBuffer(ReplayBuffer replayBuffer)voidsetReplayEnabled(boolean replayEnabled)Sets whether or not replay should be enabled when using the reliable transport.voidsetReplayStrategy(ReplayStrategy replayStrategy)Sets the strategy used to replay missed datagramsvoidsetSequenceGenerator(IntSequenceGenerator sequenceGenerator)voidsetTargetEndpoint(Endpoint newTarget)We have received the WireFormatInfo from the server on the actual channel we should use for all future communication with the server, so lets set the target to be the actual channel that the server has chosen for us to talk on.voidsetTrace(boolean trace)voidsetUseLocalHost(boolean useLocalHost)Sets whether 'localhost' or the actual local host name should be used to make local connections.StringtoString()-
Methods inherited from class org.apache.activemq.transport.TransportThreadSupport
getStackSize, isDaemon, setDaemon, setStackSize
-
Methods inherited from class org.apache.activemq.transport.TransportSupport
asyncRequest, checkStarted, doConsume, getTransportListener, isConnected, isDisposed, isFaultTolerant, isReconnectSupported, isUpdateURIsSupported, narrow, onException, reconnect, request, request, setTransportListener, updateURIs
-
Methods inherited from class org.apache.activemq.util.ServiceSupport
addServiceListener, dispose, isStarted, isStopped, isStopping, postStop, preStart, removeServiceListener, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.activemq.transport.Transport
asyncRequest, getTransportListener, isConnected, isDisposed, isFaultTolerant, isReconnectSupported, isUpdateURIsSupported, narrow, reconnect, request, request, setTransportListener, updateURIs
-
-
-
-
Constructor Detail
-
UdpTransport
protected UdpTransport(OpenWireFormat wireFormat) throws IOException
- Throws:
IOException
-
UdpTransport
public UdpTransport(OpenWireFormat wireFormat, URI remoteLocation) throws UnknownHostException, IOException
- Throws:
UnknownHostExceptionIOException
-
UdpTransport
public UdpTransport(OpenWireFormat wireFormat, SocketAddress socketAddress) throws IOException
- Throws:
IOException
-
UdpTransport
public UdpTransport(OpenWireFormat wireFormat, int port) throws UnknownHostException, IOException
Used by the server transport- Throws:
UnknownHostExceptionIOException
-
-
Method Detail
-
createReplayer
public Replayer createReplayer() throws IOException
Creates a replayer for working with the reliable transport- Throws:
IOException
-
oneway
public void oneway(Object command) throws IOException
A one way asynchronous send- Specified by:
onewayin interfaceTransport- Throws:
IOException
-
oneway
public void oneway(Object command, SocketAddress address) throws IOException
A one way asynchronous send to a given address- Throws:
IOException
-
toString
public String toString()
-
setTargetEndpoint
public void setTargetEndpoint(Endpoint newTarget)
We have received the WireFormatInfo from the server on the actual channel we should use for all future communication with the server, so lets set the target to be the actual channel that the server has chosen for us to talk on.
-
isTrace
public boolean isTrace()
-
setTrace
public void setTrace(boolean trace)
-
getDatagramSize
public int getDatagramSize()
-
setDatagramSize
public void setDatagramSize(int datagramSize)
-
isUseLocalHost
public boolean isUseLocalHost()
-
setUseLocalHost
public void setUseLocalHost(boolean useLocalHost)
Sets whether 'localhost' or the actual local host name should be used to make local connections. On some operating systems such as Macs its not possible to connect as the local host name so localhost is better.
-
getCommandChannel
public CommandChannel getCommandChannel() throws IOException
- Throws:
IOException
-
setCommandChannel
public void setCommandChannel(CommandDatagramChannel commandChannel)
Sets the implementation of the command channel to use.
-
getReplayStrategy
public ReplayStrategy getReplayStrategy()
-
setReplayStrategy
public void setReplayStrategy(ReplayStrategy replayStrategy)
Sets the strategy used to replay missed datagrams
-
getPort
public int getPort()
-
setPort
public void setPort(int port)
Sets the port to connect on
-
getMinmumWireFormatVersion
public int getMinmumWireFormatVersion()
-
setMinmumWireFormatVersion
public void setMinmumWireFormatVersion(int minmumWireFormatVersion)
-
getWireFormat
public OpenWireFormat getWireFormat()
Description copied from interface:TransportRetrieves the WireFormat instance associated with this Transport instance.- Specified by:
getWireFormatin interfaceTransport- Returns:
- the WireFormat in use.
-
getSequenceGenerator
public IntSequenceGenerator getSequenceGenerator()
-
setSequenceGenerator
public void setSequenceGenerator(IntSequenceGenerator sequenceGenerator)
-
isReplayEnabled
public boolean isReplayEnabled()
-
setReplayEnabled
public void setReplayEnabled(boolean replayEnabled)
Sets whether or not replay should be enabled when using the reliable transport. i.e. should we maintain a buffer of messages that can be replayed?
-
getBufferPool
public ByteBufferPool getBufferPool()
-
setBufferPool
public void setBufferPool(ByteBufferPool bufferPool)
-
getReplayBuffer
public ReplayBuffer getReplayBuffer()
-
setReplayBuffer
public void setReplayBuffer(ReplayBuffer replayBuffer) throws IOException
- Throws:
IOException
-
createAddress
protected InetSocketAddress createAddress(URI remoteLocation) throws UnknownHostException, IOException
Creates an address from the given URI- Throws:
UnknownHostExceptionIOException
-
resolveHostName
protected String resolveHostName(String host) throws UnknownHostException
- Throws:
UnknownHostException
-
doStart
protected void doStart() throws Exception- Overrides:
doStartin classTransportThreadSupport- Throws:
Exception
-
createCommandChannel
protected CommandChannel createCommandChannel() throws IOException
- Throws:
IOException
-
createCommandDatagramChannel
protected CommandChannel createCommandDatagramChannel()
-
bind
protected void bind(DatagramSocket socket, SocketAddress localAddress) throws IOException
- Throws:
IOException
-
connect
protected DatagramChannel connect(DatagramChannel channel, SocketAddress targetAddress2) throws IOException
- Throws:
IOException
-
createLocalAddress
protected SocketAddress createLocalAddress()
-
doStop
protected void doStop(ServiceStopper stopper) throws Exception
- Specified by:
doStopin classServiceSupport- Throws:
Exception
-
createDatagramHeaderMarshaller
protected DatagramHeaderMarshaller createDatagramHeaderMarshaller()
-
getProtocolName
protected String getProtocolName()
-
getProtocolUriScheme
protected String getProtocolUriScheme()
-
getTargetAddress
protected SocketAddress getTargetAddress()
-
getChannel
protected DatagramChannel getChannel()
-
setChannel
protected void setChannel(DatagramChannel channel)
-
getLocalSocketAddress
public InetSocketAddress getLocalSocketAddress()
-
getRemoteAddress
public String getRemoteAddress()
- Specified by:
getRemoteAddressin interfaceTransport- Returns:
- the remote address for this connection
-
getReceiveCounter
public int getReceiveCounter()
Description copied from interface:TransportReturns a counter which gets incremented as data is read from the transport. It should only be used to determine if there is progress being made in reading the next command from the transport. The value may wrap into the negative numbers.- Specified by:
getReceiveCounterin interfaceTransport- Returns:
- a counter which gets incremented as data is read from the transport.
-
getPeerCertificates
public X509Certificate[] getPeerCertificates()
- Specified by:
getPeerCertificatesin interfaceTransport- Returns:
- the Certificates provided by the peer, or null if not a secure channel.
-
setPeerCertificates
public void setPeerCertificates(X509Certificate[] certificates)
Description copied from interface:TransportSets the certificates provided by the connected peer.- Specified by:
setPeerCertificatesin interfaceTransport- Parameters:
certificates- the Certificates provided by the peer.
-
-