|
xmlBlaster 2.2.0 contributions API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.xmlBlaster.contrib.mime.DropIfNotDeliverable
public class DropIfNotDeliverable
Throw away callback messages and unsubscribe all subscriptions if a client gows to polling.
If a client callback goes to polling, this plugin removes all existing subscriptions
and clears all messages in the callback queue.
The client needs to add a filter Qos to its SubscribeQos to activate the plugin.
In a next step we could add configuration parameters to only
remove specific subscriptions (and not remove other callback queue entries).
Configuration example (put to xmlBlaster.properties):
MimeAccessPlugin[DropIfNotDeliverable][1.0]=\ org.xmlBlaster.contrib.mime.DropIfNotDeliverable,dropper.types=*dropper.types=* is default and activates the plugin for any published message where a subscriber has set this filter,
<qos> <multiSubscribe>false</multiSubscribe> <local>false</local> <initialUpdate>false</initialUpdate> <updateOneway>false</updateOneway> <notify>false</notify> <persistent>false</persistent> <filter type='DropIfNotDeliverable'> <![CDATA[_]]> </filter> </qos>
The query statement '_' is ignored by this plugin.
This plugin is a singleton and loaded once only for multiple subscribers configuring it
Field Summary | |
---|---|
static java.lang.String |
MIME_TYPES
|
Constructor Summary | |
---|---|
DropIfNotDeliverable()
|
Method Summary | |
---|---|
java.lang.String[] |
getMimeExtended()
Get the content MIME version number for which this plugin applies |
java.lang.String[] |
getMimeTypes()
Get the content MIME type for which this plugin applies, currently { "*" }. |
java.lang.String |
getName()
Get a human readable name of this filter implementation |
java.lang.String |
getType()
Return plugin type for Plugin loader |
java.lang.String |
getVersion()
Return plugin version for Plugin loader |
void |
init(org.xmlBlaster.util.Global glob,
org.xmlBlaster.util.plugin.PluginInfo pluginInfo)
This method is called by the PluginManager (enforced by I_Plugin). |
void |
initialize(org.xmlBlaster.engine.ServerScope serverScope)
This is called after instantiation of the plugin |
boolean |
match(org.xmlBlaster.authentication.SessionInfo receiver,
org.xmlBlaster.util.MsgUnit msgUnit,
org.xmlBlaster.engine.mime.Query query)
Check if the filter rule matches for this message. |
void |
shutdown()
Cleans up the resource. |
void |
toAlive(org.xmlBlaster.util.dispatch.I_DispatchManager dispatchManager,
org.xmlBlaster.util.dispatch.ConnectionStateEnum oldState)
|
void |
toAliveSync(org.xmlBlaster.util.dispatch.I_DispatchManager dispatchManager,
org.xmlBlaster.util.dispatch.ConnectionStateEnum oldState)
|
void |
toDead(org.xmlBlaster.util.dispatch.I_DispatchManager dispatchManager,
org.xmlBlaster.util.dispatch.ConnectionStateEnum oldState,
org.xmlBlaster.util.XmlBlasterException xmlBlasterException)
|
void |
toPolling(org.xmlBlaster.util.dispatch.I_DispatchManager dispatchManager,
org.xmlBlaster.util.dispatch.ConnectionStateEnum oldState)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String MIME_TYPES
Constructor Detail |
---|
public DropIfNotDeliverable()
Method Detail |
---|
public void initialize(org.xmlBlaster.engine.ServerScope serverScope)
initialize
in interface org.xmlBlaster.engine.mime.I_AccessFilter
glob
- The Global handle of this xmlBlaster server instance.public void init(org.xmlBlaster.util.Global glob, org.xmlBlaster.util.plugin.PluginInfo pluginInfo) throws org.xmlBlaster.util.XmlBlasterException
init
in interface org.xmlBlaster.util.plugin.I_Plugin
org.xmlBlaster.util.XmlBlasterException
I_Plugin.init(org.xmlBlaster.util.Global,org.xmlBlaster.util.plugin.PluginInfo)
public java.lang.String getType()
getType
in interface org.xmlBlaster.util.plugin.I_Plugin
public java.lang.String getVersion()
getVersion
in interface org.xmlBlaster.util.plugin.I_Plugin
public java.lang.String getName()
getName
in interface org.xmlBlaster.engine.mime.I_AccessFilter
public java.lang.String[] getMimeTypes()
getMimeTypes
in interface org.xmlBlaster.engine.mime.I_AccessFilter
public java.lang.String[] getMimeExtended()
getMimeExtended
in interface org.xmlBlaster.engine.mime.I_AccessFilter
public boolean match(org.xmlBlaster.authentication.SessionInfo receiver, org.xmlBlaster.util.MsgUnit msgUnit, org.xmlBlaster.engine.mime.Query query) throws org.xmlBlaster.util.XmlBlasterException
org.xmlBlaster.engine.mime.I_AccessFilter
Note that you are not allowed to manipulate the content or XmlKey or QoS of a message with your plugin as this would affect all other subscribers (you are working on a reference to the original message). You can find out the publisher name like msgUnit.getQosData().getSender()
match
in interface org.xmlBlaster.engine.mime.I_AccessFilter
receiver
- The session object describing the receiver, is never null.msgUnit
- The message to check, is never null.query
- The query containing the filter rule on subscribe/get usually
the client defines his own rule which is passed here.org.xmlBlaster.util.XmlBlasterException
- Is thrown on problems, for example if the MIME type
does not fit to message content.public void shutdown()
org.xmlBlaster.util.plugin.I_Plugin
shutdown
in interface org.xmlBlaster.engine.mime.I_AccessFilter
shutdown
in interface org.xmlBlaster.util.plugin.I_Plugin
public void toAlive(org.xmlBlaster.util.dispatch.I_DispatchManager dispatchManager, org.xmlBlaster.util.dispatch.ConnectionStateEnum oldState)
toAlive
in interface org.xmlBlaster.util.dispatch.I_ConnectionStatusListener
public void toAliveSync(org.xmlBlaster.util.dispatch.I_DispatchManager dispatchManager, org.xmlBlaster.util.dispatch.ConnectionStateEnum oldState)
toAliveSync
in interface org.xmlBlaster.util.dispatch.I_ConnectionStatusListener
public void toDead(org.xmlBlaster.util.dispatch.I_DispatchManager dispatchManager, org.xmlBlaster.util.dispatch.ConnectionStateEnum oldState, org.xmlBlaster.util.XmlBlasterException xmlBlasterException)
toDead
in interface org.xmlBlaster.util.dispatch.I_ConnectionStatusListener
xmlBlasterException
- Can be nullpublic void toPolling(org.xmlBlaster.util.dispatch.I_DispatchManager dispatchManager, org.xmlBlaster.util.dispatch.ConnectionStateEnum oldState)
toPolling
in interface org.xmlBlaster.util.dispatch.I_ConnectionStatusListener
|
xmlBlaster 2.2.0 contributions API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |