xmlBlaster 2.2.0 API

org.xmlBlaster.engine.mime.regex
Class GnuRegexFilter

java.lang.Object
  extended by org.xmlBlaster.engine.mime.regex.GnuRegexFilter
All Implemented Interfaces:
I_AccessFilter, I_Plugin

public class GnuRegexFilter
extends java.lang.Object
implements I_Plugin, I_AccessFilter

This regex plugin allows to filter message contents with regular expressions.

Message contents which don't match the regular expression are not send via update() or updateOneway() to the subscriber. The same filter may be used for the synchronous get() access and for clusters to map messages to master nodes.

Please register this plugin in xmlBlaster.properties:

 MimeAccessPlugin[GnuRegexFilter][1.0]=org.xmlBlaster.engine.mime.regex.GnuRegexFilter
 
Plugins must implement the I_Plugin interface to be loadable by the PluginManager and must implement the I_AccessFilter interface to be usable as a filter.

NOTE: Since JDK 1.4 we have a java.util.regex package, but regrettably this can't be used with JDK 1.2 or JDK 1.3. If you want to use Suns package just copy this class and code it with suns implementation in our match() method:

   import java.util.regex.Pattern;
   import java.util.regex.Matcher;
   ...

   query.setPreparedQuery(Pattern.compile(query.getQuery()));
   ...
   Matcher m = preparedQuery.matcher(msgUnit.getContentStr());
   return  m.matches();
 

Author:
xmlBlaster@marcelruff.info
See Also:
The GNU regex package

Field Summary
private  ServerScope glob
           
private static java.util.logging.Logger log
           
private  java.lang.String ME
           
 
Constructor Summary
GnuRegexFilter()
           
 
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
 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(Global glob, PluginInfo pluginInfo)
          This method is called by the PluginManager (enforced by I_Plugin).
 void initialize(ServerScope glob)
          This is called after instantiation of the plugin
 boolean match(SessionInfo receiver, MsgUnit msgUnit, Query query)
          Check if the filter rule matches for this message.
 void shutdown()
          Cleans up the resource.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ME

private final java.lang.String ME
See Also:
Constant Field Values

glob

private ServerScope glob

log

private static java.util.logging.Logger log
Constructor Detail

GnuRegexFilter

public GnuRegexFilter()
Method Detail

initialize

public void initialize(ServerScope glob)
This is called after instantiation of the plugin

Specified by:
initialize in interface I_AccessFilter
Parameters:
glob - The Global handle of this xmlBlaster server instance.

init

public void init(Global glob,
                 PluginInfo pluginInfo)
This method is called by the PluginManager (enforced by I_Plugin).

Specified by:
init in interface I_Plugin
See Also:
I_Plugin.init(org.xmlBlaster.util.Global,org.xmlBlaster.util.plugin.PluginInfo)

getType

public java.lang.String getType()
Return plugin type for Plugin loader

Specified by:
getType in interface I_Plugin
Returns:
"GnuRegexFilter"

getVersion

public java.lang.String getVersion()
Return plugin version for Plugin loader

Specified by:
getVersion in interface I_Plugin
Returns:
"1.0"

getName

public java.lang.String getName()
Get a human readable name of this filter implementation

Specified by:
getName in interface I_AccessFilter
Returns:
"GnuRegexFilter"

getMimeTypes

public java.lang.String[] getMimeTypes()
Get the content MIME type for which this plugin applies

Specified by:
getMimeTypes in interface I_AccessFilter
Returns:
"*" This plugin handles all mime types

getMimeExtended

public java.lang.String[] getMimeExtended()
Get the content MIME version number for which this plugin applies

Specified by:
getMimeExtended in interface I_AccessFilter
Returns:
"1.0" (this is the default version number)

match

public boolean match(SessionInfo receiver,
                     MsgUnit msgUnit,
                     Query query)
              throws XmlBlasterException
Check if the filter rule matches for this message.

Specified by:
match in interface I_AccessFilter
Parameters:
publisher - The subject object describing the publisher
receiver - The subject object describing the receiver
msgUnit - The message to check
query - The Query instance holding the regular expression from your filter.
Returns:
true The filter regex expression matches the message content.
Throws:
see - I_AccessFilter#match()
XmlBlasterException - Is thrown on problems, for example if the MIME type does not fit to message content.
Take care throwing an exception, the message is not updated and an error is logged and the message is sent as dead letter. (see TopicHandler.java:1032). It is best to return 'false' instead and handle the situation yourself.

shutdown

public void shutdown()
Description copied from interface: I_Plugin
Cleans up the resource.

Specified by:
shutdown in interface I_AccessFilter
Specified by:
shutdown in interface I_Plugin

xmlBlaster 2.2.0 API

Copyright © 1999-2014 The xmlBlaster.org contributers.