JXTA

net.jxta.impl.endpoint.servlethttp
Class HttpClientMessenger

java.lang.Object
  extended by net.jxta.util.AbstractSimpleSelectable
      extended by net.jxta.endpoint.AbstractMessenger
          extended by net.jxta.impl.endpoint.BlockingMessenger
              extended by net.jxta.impl.endpoint.servlethttp.HttpClientMessenger
All Implemented Interfaces:
Messenger, SimpleSelectable

final class HttpClientMessenger
extends BlockingMessenger

Simple messenger that simply posts a message to a URL.

URL/HttpURLConnection is used, so (depending on your JDK) you will get reasonably good persistent connection management.


Nested Class Summary
 
Nested classes/interfaces inherited from interface net.jxta.util.SimpleSelectable
SimpleSelectable.IdentityReference
 
Field Summary
 
Fields inherited from class net.jxta.endpoint.AbstractMessenger
DEFAULT_MTU, dstAddress
 
Fields inherited from class net.jxta.util.AbstractSimpleSelectable
identityReference
 
Fields inherited from interface net.jxta.endpoint.Messenger
ANYSTATE, BREAKING, BROKEN, CLOSED, CLOSING, CONNECTED, DISCONNECTED, DISCONNECTING, IDLE, RECONCLOSING, RECONNECTING, RECONSATURATED, RESOLCLOSING, RESOLPENDING, RESOLSATURATED, RESOLVED, RESOLVING, SATURATED, SENDING, SENDINGSATURATED, TERMINAL, UNRESOLVABLE, UNRESOLVED, UNRESOLVING, USABLE
 
Constructor Summary
HttpClientMessenger(ServletHttpTransport servletHttpTransport, EndpointAddress srcAddr, EndpointAddress destAddr)
          Constructs the messenger.
 
Method Summary
 void closeImpl()
          Close connection.
(package private)  void doShutdown()
          
 EndpointAddress getLogicalDestinationImpl()
          Obtain the logical destination address from the implementer (a transport for example).
 boolean isIdleImpl()
          return true if this messenger has not been used for a long time.
 void sendMessageBImpl(Message message, String service, String serviceParam)
          Send a message blocking as needed until the message is sent.
 String toString()
          

A simple implementation for debugging.

 
Methods inherited from class net.jxta.impl.endpoint.BlockingMessenger
close, getChannelMessenger, getDestAddressToUse, getLogicalDestinationAddress, getState, isClosed, resolve, sendMessageB, sendMessageN, setOwner, shutdown
 
Methods inherited from class net.jxta.endpoint.AbstractMessenger
flush, getDestinationAddress, getDestinationAddressObject, getMTU, isIdle, isSynchronous, itemChanged, sendMessage, sendMessage, sendMessage, setStateLock, waitState
 
Methods inherited from class net.jxta.util.AbstractSimpleSelectable
getIdentityReference, haveListeners, notifyChange, register, registerListener, unregister, unregisterListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.jxta.util.SimpleSelectable
getIdentityReference, register, unregister
 

Constructor Detail

HttpClientMessenger

HttpClientMessenger(ServletHttpTransport servletHttpTransport,
                    EndpointAddress srcAddr,
                    EndpointAddress destAddr)
              throws IOException
Constructs the messenger.

Parameters:
servletHttpTransport - The transport this messenger will work for.
srcAddr - The source address.
destAddr - The destination address.
Throws:
IOException
Method Detail

toString

public String toString()

A simple implementation for debugging. Do not depend upon the format.

A simple implementation for debugging. Do not parse the String returned. All of the information is available in other (simpler) ways.

Overrides:
toString in class AbstractMessenger

doShutdown

void doShutdown()


closeImpl

public void closeImpl()
Close connection. May fail current send.

Specified by:
closeImpl in class BlockingMessenger

sendMessageBImpl

public void sendMessageBImpl(Message message,
                             String service,
                             String serviceParam)
                      throws IOException
Send a message blocking as needed until the message is sent.

Specified by:
sendMessageBImpl in class BlockingMessenger
Parameters:
message - The message to send.
service - The destination service.
serviceParam - The destination serivce param.
Throws:
IOException - Thrown for errors encountered while sending the message.

getLogicalDestinationImpl

public EndpointAddress getLogicalDestinationImpl()
Obtain the logical destination address from the implementer (a transport for example).

Specified by:
getLogicalDestinationImpl in class BlockingMessenger

isIdleImpl

public boolean isIdleImpl()
return true if this messenger has not been used for a long time. The definition of long time is: "sufficient such that closing it is worth the cost of having to re-open". A messenger should self close if it thinks it meets the definition of idle. BlockingMessenger leaves the evaluation to the transport but does the work automatically. Important: if self destruction is used, this method must work; not just return false. See the constructor. In general, if closeImpl does not need to do anything, then self destruction is not needed.

Specified by:
isIdleImpl in class BlockingMessenger
Returns:
true if theis messenger is, by it's own definition, idle.

JXSE