|
xmlBlaster 2.2.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.xmlBlaster.protocol.stomp.XbStompInOutBridge
public class XbStompInOutBridge
Protocol bridge, to bridge between xmlBlaster and STOMP protocol. implements StompHandler and I_CallbackDriver for incoming STOMP messages and outgoing XmlBlaster Messages.
One instance per client connect
Field Summary | |
---|---|
private I_Authenticate |
authenticate
|
private ConnectQosServer |
connectQos
|
private XbStompDriver |
driver
|
private java.util.concurrent.ConcurrentHashMap<java.lang.String,RequestHolder> |
framesToAck
|
private Global |
glob
|
private static java.util.logging.Logger |
log
|
java.lang.String |
ME
|
private org.codehaus.stomp.StompHandler |
outputHandler
|
protected long |
pingResponseTimeout
How long to block on remote call waiting on ping responses |
static java.lang.String |
PROTOCOL_NAME
|
private java.lang.String |
remoteAddress
|
private java.lang.String |
secretSessionId
|
private boolean |
stompOpened
|
protected long |
updateResponseTimeout
How long to block on remote call waiting on update responses |
private I_XmlBlaster |
xb
|
static java.lang.String |
XB_SERVER_COMMAND_PING
|
static java.lang.String |
XB_SERVER_HEADER_KEY
|
static java.lang.String |
XB_SERVER_HEADER_QOS
|
Constructor Summary | |
---|---|
XbStompInOutBridge(Global glob,
XbStompDriver driver,
org.codehaus.stomp.StompHandler outputHandler)
|
Method Summary | |
---|---|
private void |
_destroy()
|
private boolean |
checkStompConnected()
|
private boolean |
checkXbConnected()
|
private java.lang.String |
cleanNewlines(java.lang.String str)
HTTP header key/value should not contain new line. |
void |
close()
Callback from #StompHandler |
private java.lang.String |
dump(org.codehaus.stomp.StompFrame frame)
|
private java.lang.String |
getContentType(MsgUnitRaw msgUnitRaw)
|
long |
getDefaultPingResponseTimeout()
How long to block on remote call waiting on a ping response. |
long |
getDefaultUpdateResponseTimeout()
How long to block on remote call waiting on a update() response. |
java.lang.String |
getExtendedLogId()
All stomp threads contain the remote address alreay, but not our internal threads |
private RequestHolder |
getFrameForMessageId(java.lang.String messageId)
|
RequestHolder[] |
getFramesToAck()
|
private KeyData |
getKeyData(MsgUnitRaw msgUnitRaw)
|
java.lang.String |
getLoginName()
|
java.lang.String |
getName()
Get a human readable name of this driver |
java.lang.String |
getProtocolId()
Access the xmlBlaster internal name of the protocol driver. |
java.lang.String |
getRawAddress()
Return the address how to access this driver. |
long |
getResponseTimeout(MethodName methodName)
|
java.lang.String |
getType()
|
java.lang.String |
getVersion()
|
void |
init(Global glob,
CallbackAddress addressConfig)
Intialize the driver. |
void |
init(Global glob,
PluginInfo pluginInfo)
This method is called by the PluginManager. |
boolean |
isAlive()
|
int |
notifyAllFrameAcks()
|
private boolean |
notifyFrameAck(RequestHolder requestHolder)
|
void |
onException(java.lang.Exception e)
Callback from Stomp |
protected void |
onStompAck(org.codehaus.stomp.StompFrame command)
|
protected void |
onStompConnect(org.codehaus.stomp.StompFrame command)
|
protected void |
onStompDisconnect(org.codehaus.stomp.StompFrame command)
|
void |
onStompFrame(org.codehaus.stomp.StompFrame frame)
Callback from stomp layer. |
protected void |
onStompNak(org.codehaus.stomp.StompFrame command)
|
protected void |
onStompSend(org.codehaus.stomp.StompFrame command)
|
protected void |
onStompSubscribe(org.codehaus.stomp.StompFrame command)
|
protected void |
onStompUnsubscribe(org.codehaus.stomp.StompFrame command)
|
java.lang.String |
ping(java.lang.String qos)
Ping to check if the clients callback server instance is alive. |
private RequestHolder |
registerFrame(org.codehaus.stomp.StompFrame frame)
|
I_ProgressListener |
registerProgressListener(I_ProgressListener listener)
Register a listener for to receive information about the progress of incoming data. |
private void |
removeFrameForMessageId(java.lang.String messageId)
|
private void |
sendExeption(org.codehaus.stomp.StompFrame command,
XmlBlasterException e)
|
private java.lang.String |
sendFrameAndWait(org.codehaus.stomp.StompFrame frame,
MethodName methodName)
|
private void |
sendFrameNoWait(org.codehaus.stomp.StompFrame frame)
|
private void |
sendResponse(org.codehaus.stomp.StompFrame command)
|
java.lang.String[] |
sendUpdate(MsgUnitRaw[] msgArr)
Send the message update to the client. |
void |
sendUpdateOneway(MsgUnitRaw[] msgArr)
The oneway variant, without return value |
void |
setPingResponseTimeout(long millis)
Set the given millis to protect against blocking client for ping invocations. |
void |
setUpdateResponseTimeout(long millis)
Set the given millis to protect against blocking client for update() invocations. |
void |
shutdown()
Called from xmlBlaster core on disconnect Called on exception or driver deactivate |
static byte[] |
toUtf8Bytes(java.lang.String s)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static java.util.logging.Logger log
public static final java.lang.String XB_SERVER_COMMAND_PING
public static final java.lang.String XB_SERVER_HEADER_KEY
public static final java.lang.String XB_SERVER_HEADER_QOS
public java.lang.String ME
public static final java.lang.String PROTOCOL_NAME
private final org.codehaus.stomp.StompHandler outputHandler
private final XbStompDriver driver
private final Global glob
private final java.util.concurrent.ConcurrentHashMap<java.lang.String,RequestHolder> framesToAck
private java.lang.String secretSessionId
private I_Authenticate authenticate
private I_XmlBlaster xb
private boolean stompOpened
protected long pingResponseTimeout
protected long updateResponseTimeout
private ConnectQosServer connectQos
private java.lang.String remoteAddress
Constructor Detail |
---|
public XbStompInOutBridge(Global glob, XbStompDriver driver, org.codehaus.stomp.StompHandler outputHandler)
Method Detail |
---|
public java.lang.String getExtendedLogId()
public void shutdown()
shutdown
in interface I_Plugin
public void close()
close
in interface org.codehaus.stomp.StompHandler
private void _destroy()
public int notifyAllFrameAcks()
public RequestHolder[] getFramesToAck()
private boolean checkStompConnected()
private boolean checkXbConnected()
public void onException(java.lang.Exception e)
onException
in interface org.codehaus.stomp.StompHandler
private java.lang.String dump(org.codehaus.stomp.StompFrame frame)
public void onStompFrame(org.codehaus.stomp.StompFrame frame) throws java.lang.Exception
onStompFrame
in interface org.codehaus.stomp.StompHandler
java.lang.Exception
protected void onStompConnect(org.codehaus.stomp.StompFrame command)
public java.lang.String getLoginName()
protected void onStompDisconnect(org.codehaus.stomp.StompFrame command)
protected void onStompSend(org.codehaus.stomp.StompFrame command)
protected void onStompSubscribe(org.codehaus.stomp.StompFrame command) throws java.lang.Exception
java.lang.Exception
protected void onStompUnsubscribe(org.codehaus.stomp.StompFrame command) throws java.lang.Exception
java.lang.Exception
protected void onStompAck(org.codehaus.stomp.StompFrame command) throws java.lang.Exception
java.lang.Exception
protected void onStompNak(org.codehaus.stomp.StompFrame command) throws java.lang.Exception
java.lang.Exception
private boolean notifyFrameAck(RequestHolder requestHolder)
public java.lang.String getName()
I_CallbackDriver
getName
in interface I_CallbackDriver
public java.lang.String getProtocolId()
I_CallbackDriver
getProtocolId
in interface I_CallbackDriver
public java.lang.String getRawAddress()
I_CallbackDriver
getRawAddress
in interface I_CallbackDriver
public long getDefaultPingResponseTimeout()
public long getDefaultUpdateResponseTimeout()
public final void setPingResponseTimeout(long millis)
millis
- If <= 0 it is set to the default (one minute). An argument
less than or equal to zero means not to wait at all and is not
supportedpublic final void setUpdateResponseTimeout(long millis)
millis
- If <= 0 it is set to the default (one minute). An argument
less than or equal to zero means not to wait at all and is not
supportedpublic long getResponseTimeout(MethodName methodName)
public void init(Global glob, CallbackAddress addressConfig) throws XmlBlasterException
I_CallbackDriver
init
in interface I_CallbackDriver
addressConfig
- Contains the callback address,
e.g. the stringified CORBA callback handle of the client or his email address.
XmlBlasterException
public boolean isAlive()
isAlive
in interface I_CallbackDriver
public java.lang.String ping(java.lang.String qos) throws XmlBlasterException
I_CallbackDriver
ping
in interface I_CallbackDriver
qos
- Currently not looked at, please pass an empty string ""
XmlBlasterException
org.xmlBlaster.protocol.I_XmlBlaster#ping(String)
public I_ProgressListener registerProgressListener(I_ProgressListener listener)
I_CallbackDriver
registerProgressListener
in interface I_CallbackDriver
listener
- Your listener, pass 0 to unregister.
private java.lang.String cleanNewlines(java.lang.String str)
str
-
private KeyData getKeyData(MsgUnitRaw msgUnitRaw)
private java.lang.String getContentType(MsgUnitRaw msgUnitRaw)
public java.lang.String[] sendUpdate(MsgUnitRaw[] msgArr) throws XmlBlasterException
I_CallbackDriver
sendUpdate
in interface I_CallbackDriver
msgArr
- Array of all messages to send, is guaranteed to never be null
<qos> <state id='OK'/> <!-- Client processing state OK | ERROR ... see Constants.java --> </qos>
XmlBlasterException
public void sendUpdateOneway(MsgUnitRaw[] msgArr) throws XmlBlasterException
I_CallbackDriver
sendUpdateOneway
in interface I_CallbackDriver
msgArr
- Array of all messages to send, is guaranteed to never be null
XmlBlasterException
- Is never from the client (oneway).public java.lang.String getType()
getType
in interface I_Plugin
public java.lang.String getVersion()
getVersion
in interface I_Plugin
public void init(Global glob, PluginInfo pluginInfo) throws XmlBlasterException
I_Plugin
// An entry in xmlBlaster.properties (in one line): MimeSubscribePlugin[ContentLenFilter][1.0]=\ org.xmlBlaster.engine.mime.demo.ContentLenFilter,\ DEFAULT_MAX_LEN=200,DEFAULT_MIN_LEN=20 // Access it like this: java.util.Properties props = pluginInfo.getParameters(); String maxLen = (String)props.get("DEFAULT_MAX_LEN"); String throwLen = (String)props.get("THROW_EXCEPTION_FOR_LEN");
init
in interface I_Plugin
XmlBlasterException
private RequestHolder getFrameForMessageId(java.lang.String messageId)
private RequestHolder registerFrame(org.codehaus.stomp.StompFrame frame)
private void removeFrameForMessageId(java.lang.String messageId)
private void sendFrameNoWait(org.codehaus.stomp.StompFrame frame) throws XmlBlasterException
XmlBlasterException
private java.lang.String sendFrameAndWait(org.codehaus.stomp.StompFrame frame, MethodName methodName) throws XmlBlasterException
XmlBlasterException
private void sendResponse(org.codehaus.stomp.StompFrame command) throws XmlBlasterException
XmlBlasterException
public static byte[] toUtf8Bytes(java.lang.String s)
private void sendExeption(org.codehaus.stomp.StompFrame command, XmlBlasterException e)
|
xmlBlaster 2.2.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |