You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Arif Mohd <ar...@wipro.com> on 2007/07/03 09:33:38 UTC
Re: How to pass parameter into Drool 3.2 rule .
Hi gnodet,
I read the blog, can you please elobarate where and how to configure the
Data base url,username, password inside the servicemix?
You have given the jndiName as follows
<property name="jndiName" value="java:myDataBase" />
but where is the myDataBase configured?
One more general question, Is it the right way of putting business
logic inside ESB?
gnodet wrote:
>
> Nicely written, Andrea, thanks !
> Btw, you may be interested in a recent change in servicemix-drools:
> the ability to inject beans configured inside the xbean.xml into the rules
> definition file (such as a helper with a configured dataSource for
> example).
> See
> http://gnodet.blogspot.com/2007/06/accessing-databases-in-servicemix.html
>
> On 6/29/07, Andrea Zoppello <zo...@tiscali.it> wrote:
>> I've already done this by extendig not only the drools component but
>> also,
>> the class org.apache.servicemix.drools.model.Message with a method like
>> this:ù
>>
>> org.apache.servicemix.drools.model:
>>
>> public String valueOf(String xpath) throws Exception {
>> JAXPStringXPathExpression expression = new
>> JAXPStringXPathExpression(xpath);
>> if (this.namespaceContext != null)
>> expression.setNamespaceContext(this.namespaceContext);
>> String res = (String)expression.evaluate(null, message);
>> return res;
>> }
>>
>> at this point in you can use your dbHelper in drools as follow:
>>
>>
>> dbh.isDomestic(in.valueOf('/MESSAGE/@par1'),in.valueOf('/MESSAGE/@par2'))
>>
>>
>>
>> in this example i assume the incoming message is something like:
>>
>> <MESSAGE par1="PAR1" par2="PAR2">
>> </MESSAGE>
>>
>> Andrea Zoppello
>> Engineering Ing. Informatica.
>>
>>
>>
>> pksahoo ha scritto:
>>
>> > Hi ,
>> >
>> > I am new to Drool and need some help . I have done integration of
>> > Drool with database.
>> >
>> > I am calling DB helper class memeber function in
>> > Drool.
>> >
>> > In my Drool file (.drl) file, I need to pass 2
>> > parameter as input . Basically, I have to provide
>> > source airport code and destination airport code to my
>> > rule engine. it will call the database and based on
>> > query, it will return domestic or international.
>> >
>> > How can I pass the input parameter to Drool as
>> > variable? Right now, it is hard coded in drool file
>> > like dbh.isDomestic("JFK", "YYZ") . Here is the .drl
>> > file:
>> >
>> > package org.apache.servicemix.drools
>> >
>> > import org.apache.commons.logging.Log;
>> > import org.apache.commons.logging.LogFactory;
>> > import org.apache.servicemix.drools.model.Exchange;
>> >
>> > import loanbroker.DbHelper;
>> >
>> > global org.apache.servicemix.drools.model.JbiHelper
>> > jbi;
>> >
>> >
>> > rule TourType
>> > when
>> > me : Exchange( status == Exchange.ACTIVE, in : in !=
>> > null, operation ==
>> > "{urn:logicblaze:soa:creditagency}getCreditHistoryLength")
>> > then
>> > DbHelper dbh = new DbHelper();
>> > jbi.answer("<TourTypeResponse><name>" +
>> > dbh.isDomestic("JFK", "YYZ") +
>> > "</name></TourTypeResponse>");
>> > end
>> >
>> >
>> > Please advise.
>> > Regards,
>> > Prasanta
>> >
>> >
>> >
>>
>>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Principal Engineer, IONA
> Blog: http://gnodet.blogspot.com/
>
>
--
View this message in context: http://www.nabble.com/How-to-pass-parameter-into-Servicemix-Drool-3.2-rule-.-tf3996673s12049.html#a11407248
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: How to pass parameter into Drool 3.2 rule .
Posted by Guillaume Nodet <gn...@gmail.com>.
Take a look at conf/jndi.xml in your ServiceMix distribution.
You will find examples of configuring stuff in JNDI.
On 7/3/07, Arif Mohd <ar...@wipro.com> wrote:
>
> Hi gnodet,
>
> I read the blog, can you please elobarate where and how to configure the
> Data base url,username, password inside the servicemix?
>
> You have given the jndiName as follows
> <property name="jndiName" value="java:myDataBase" />
>
> but where is the myDataBase configured?
> One more general question, Is it the right way of putting business
> logic inside ESB?
>
>
> gnodet wrote:
> >
> > Nicely written, Andrea, thanks !
> > Btw, you may be interested in a recent change in servicemix-drools:
> > the ability to inject beans configured inside the xbean.xml into the rules
> > definition file (such as a helper with a configured dataSource for
> > example).
> > See
> > http://gnodet.blogspot.com/2007/06/accessing-databases-in-servicemix.html
> >
> > On 6/29/07, Andrea Zoppello <zo...@tiscali.it> wrote:
> >> I've already done this by extendig not only the drools component but
> >> also,
> >> the class org.apache.servicemix.drools.model.Message with a method like
> >> this:ù
> >>
> >> org.apache.servicemix.drools.model:
> >>
> >> public String valueOf(String xpath) throws Exception {
> >> JAXPStringXPathExpression expression = new
> >> JAXPStringXPathExpression(xpath);
> >> if (this.namespaceContext != null)
> >> expression.setNamespaceContext(this.namespaceContext);
> >> String res = (String)expression.evaluate(null, message);
> >> return res;
> >> }
> >>
> >> at this point in you can use your dbHelper in drools as follow:
> >>
> >>
> >> dbh.isDomestic(in.valueOf('/MESSAGE/@par1'),in.valueOf('/MESSAGE/@par2'))
> >>
> >>
> >>
> >> in this example i assume the incoming message is something like:
> >>
> >> <MESSAGE par1="PAR1" par2="PAR2">
> >> </MESSAGE>
> >>
> >> Andrea Zoppello
> >> Engineering Ing. Informatica.
> >>
> >>
> >>
> >> pksahoo ha scritto:
> >>
> >> > Hi ,
> >> >
> >> > I am new to Drool and need some help . I have done integration of
> >> > Drool with database.
> >> >
> >> > I am calling DB helper class memeber function in
> >> > Drool.
> >> >
> >> > In my Drool file (.drl) file, I need to pass 2
> >> > parameter as input . Basically, I have to provide
> >> > source airport code and destination airport code to my
> >> > rule engine. it will call the database and based on
> >> > query, it will return domestic or international.
> >> >
> >> > How can I pass the input parameter to Drool as
> >> > variable? Right now, it is hard coded in drool file
> >> > like dbh.isDomestic("JFK", "YYZ") . Here is the .drl
> >> > file:
> >> >
> >> > package org.apache.servicemix.drools
> >> >
> >> > import org.apache.commons.logging.Log;
> >> > import org.apache.commons.logging.LogFactory;
> >> > import org.apache.servicemix.drools.model.Exchange;
> >> >
> >> > import loanbroker.DbHelper;
> >> >
> >> > global org.apache.servicemix.drools.model.JbiHelper
> >> > jbi;
> >> >
> >> >
> >> > rule TourType
> >> > when
> >> > me : Exchange( status == Exchange.ACTIVE, in : in !=
> >> > null, operation ==
> >> > "{urn:logicblaze:soa:creditagency}getCreditHistoryLength")
> >> > then
> >> > DbHelper dbh = new DbHelper();
> >> > jbi.answer("<TourTypeResponse><name>" +
> >> > dbh.isDomestic("JFK", "YYZ") +
> >> > "</name></TourTypeResponse>");
> >> > end
> >> >
> >> >
> >> > Please advise.
> >> > Regards,
> >> > Prasanta
> >> >
> >> >
> >> >
> >>
> >>
> >
> >
> > --
> > Cheers,
> > Guillaume Nodet
> > ------------------------
> > Principal Engineer, IONA
> > Blog: http://gnodet.blogspot.com/
> >
> >
>
> --
> View this message in context: http://www.nabble.com/How-to-pass-parameter-into-Servicemix-Drool-3.2-rule-.-tf3996673s12049.html#a11407248
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
--
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/
Re: How to pass parameter into Drool 3.2 rule .
Posted by Arif Mohd <ar...@wipro.com>.
Hi gnodet,
can you please reply.
Arif Mohd wrote:
>
> Hi gnodet,
>
> I read the blog, can you please elobarate where and how to configure the
> Data base url,username, password inside the servicemix?
>
> You have given the jndiName as follows
> <property name="jndiName" value="java:myDataBase" />
>
> but where is the myDataBase configured?
> One more general question, Is it the right way of putting business
> logic inside ESB?
>
>
> gnodet wrote:
>>
>> Nicely written, Andrea, thanks !
>> Btw, you may be interested in a recent change in servicemix-drools:
>> the ability to inject beans configured inside the xbean.xml into the
>> rules
>> definition file (such as a helper with a configured dataSource for
>> example).
>> See
>> http://gnodet.blogspot.com/2007/06/accessing-databases-in-servicemix.html
>>
>> On 6/29/07, Andrea Zoppello <zo...@tiscali.it> wrote:
>>> I've already done this by extendig not only the drools component but
>>> also,
>>> the class org.apache.servicemix.drools.model.Message with a method like
>>> this:ù
>>>
>>> org.apache.servicemix.drools.model:
>>>
>>> public String valueOf(String xpath) throws Exception {
>>> JAXPStringXPathExpression expression = new
>>> JAXPStringXPathExpression(xpath);
>>> if (this.namespaceContext != null)
>>> expression.setNamespaceContext(this.namespaceContext);
>>> String res = (String)expression.evaluate(null, message);
>>> return res;
>>> }
>>>
>>> at this point in you can use your dbHelper in drools as follow:
>>>
>>>
>>> dbh.isDomestic(in.valueOf('/MESSAGE/@par1'),in.valueOf('/MESSAGE/@par2'))
>>>
>>>
>>>
>>> in this example i assume the incoming message is something like:
>>>
>>> <MESSAGE par1="PAR1" par2="PAR2">
>>> </MESSAGE>
>>>
>>> Andrea Zoppello
>>> Engineering Ing. Informatica.
>>>
>>>
>>>
>>> pksahoo ha scritto:
>>>
>>> > Hi ,
>>> >
>>> > I am new to Drool and need some help . I have done integration of
>>> > Drool with database.
>>> >
>>> > I am calling DB helper class memeber function in
>>> > Drool.
>>> >
>>> > In my Drool file (.drl) file, I need to pass 2
>>> > parameter as input . Basically, I have to provide
>>> > source airport code and destination airport code to my
>>> > rule engine. it will call the database and based on
>>> > query, it will return domestic or international.
>>> >
>>> > How can I pass the input parameter to Drool as
>>> > variable? Right now, it is hard coded in drool file
>>> > like dbh.isDomestic("JFK", "YYZ") . Here is the .drl
>>> > file:
>>> >
>>> > package org.apache.servicemix.drools
>>> >
>>> > import org.apache.commons.logging.Log;
>>> > import org.apache.commons.logging.LogFactory;
>>> > import org.apache.servicemix.drools.model.Exchange;
>>> >
>>> > import loanbroker.DbHelper;
>>> >
>>> > global org.apache.servicemix.drools.model.JbiHelper
>>> > jbi;
>>> >
>>> >
>>> > rule TourType
>>> > when
>>> > me : Exchange( status == Exchange.ACTIVE, in : in !=
>>> > null, operation ==
>>> > "{urn:logicblaze:soa:creditagency}getCreditHistoryLength")
>>> > then
>>> > DbHelper dbh = new DbHelper();
>>> > jbi.answer("<TourTypeResponse><name>" +
>>> > dbh.isDomestic("JFK", "YYZ") +
>>> > "</name></TourTypeResponse>");
>>> > end
>>> >
>>> >
>>> > Please advise.
>>> > Regards,
>>> > Prasanta
>>> >
>>> >
>>> >
>>>
>>>
>>
>>
>> --
>> Cheers,
>> Guillaume Nodet
>> ------------------------
>> Principal Engineer, IONA
>> Blog: http://gnodet.blogspot.com/
>>
>>
>
>
--
View this message in context: http://www.nabble.com/How-to-pass-parameter-into-Servicemix-Drool-3.2-rule-.-tf3996673s12049.html#a11412574
Sent from the ServiceMix - User mailing list archive at Nabble.com.