[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster-devel] Using GnuRegexFilter



Matthew Sargent wrote:
Marcel,

If my content is xml, will the RegexFilter still work, or should I use an
XPath filter on the content?

If you have XML in your content using XPath is the way to go.

The Regex plugin should work perfectly with your 0.901 version,

regards

Marcel

Matt

----- Original Message ----- From: "Marcel Ruff" <mr at marcelruff.info>
To: <xmlblaster-devel at server.xmlBlaster.org>
Sent: Thursday, December 23, 2004 8:00 AM
Subject: Re: [xmlblaster-devel] Using GnuRegexFilter




Matthew Sargent wrote:

Hi,

I have a problem. I subscribe to xmlBlaster using an XPath that
specifies a certain value on the key. An initial message is posted that
does not have that value in the key, then later an update is posted that
does. Since the key is immutable, it is not changed and I do not get the
update message. I think I can I use the GnuRegexFilter to register a
filter that looks in the body of each message for the value I am
seeking, is that true?

When I attempt to do that, I get no messages back at all. Does anyone
have an example using the GnuRegexFilter for a subscribe? In my code, if
I take out the addAccessFilter with my regex expression, I get all the
messages posted, which is correct. When I add the addAccessFilter back
in with a simple expression that should match anything ".*", I get no
messages back at all.

Here is the dump of my subscribe key and subscribe qos

SubscribeKey=
<key queryType='XPATH'>
 //key[starts-with( at oid, 'msg-')]
</key>
SubscribeQos=
<qos>
 <content/>
 <multiSubscribe/>
 <local>false</local>
 <initialUpdate/>
 <filter type='GnuRegexFilter'>
  <![CDATA[.*]]>
 </filter>
 <history numEntries='1000' newestFirst='false'/>
 <isSubscribe/>
</qos>
Matt

Hi Matt,

if have played on command line with the clients below,
everthing works as expected here:

-------------------------------------
cd xmlBlaster

#Start server
java -jar lib/xmlBlaster.jar

#Start subscriber
java -cp lib/xmlBlaster.jar javaclients.HelloWorldSubscribe -xpath

"//key[starts-with( at oid,

'msg-')]" -filter.type GnuRegexFilter -filter.query ".*"

#Start a ".*A" filtering subscriber
java -cp lib/xmlBlaster.jar javaclients.HelloWorldSubscribe -xpath

"//key[starts-with( at oid,

'msg-')]" -filter.type GnuRegexFilter -filter.query ".*A"

#Start first publisher
java -cp lib/xmlBlaster.jar javaclients.HelloWorldPublish -numPublish

100 -oid "msg-1" -content "12A"

#Start second publisher
java -cp lib/xmlBlaster.jar javaclients.HelloWorldPublish -numPublish

100 -oid "msg-2" -content "12B"

-------------------------------------

One note: You have set "<local>false</local>", if your publisher uses
the same login connection as the subscriber the messages
are suppressed.

regards

Marcel

--
http://www.xmlBlaster.org





--
http://www.xmlBlaster.org