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

Re: [xmlblaster-devel] Using GnuRegexFilter



Marcel,

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

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