You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Andrea Zoppello <zo...@tiscali.it> on 2008/03/25 11:52:54 UTC
Drools Problems reappeared???? Any Idea??
Hi,
I've just downloaded the latest nightly build of servicemix 3.2.2 and it
seems
problem in evaluating expression with namespace are reappred in this
version.
When i write in the drools rule a rule with namespace prefix, this will
cause
a runtime errors saying the namespace is not bound.
What i've found is that at deployment phase the namespace context is not
populated.
This seem strange because in the xbean of drools su i've declared
namespace context
as i'm usually able to declare.
Any idea??
Here my xbean:
<?xml version="1.0"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
xmlns:drools="http://servicemix.apache.org/drools/1.0"
xmlns:Es2_v_0="urn:eng:spagic:processes:Es2:v0"
xmlns:util="http://www.springframework.org/schema/util">
<drools:endpoint
service="Es2_v_0:Es2.Val2Livello_v_0"
endpoint="Es2.Val2Livello_v_0"
ruleBaseResource="classpath:val2.drl"
namespaceContext="#nsContext"
assertedObjects="#assertedObjects"
defaultTargetService="Es2_v_0:Es2.Router1_v_0">
</drools:endpoint>
<util:list id="assertedObjects">
<ref bean="dbhelper"/>
</util:list>
<bean id="dbhelper" class="org.spagic.smx.helpers.DbHelper">
</bean>
<drools:endpoint
service="Es2_v_0:Es2.Router1_v_0"
endpoint="Es2.Router1_v_0"
ruleBaseResource="classpath:Es2.Router1_v_0.drl"
namespaceContext="#nsContext">
</drools:endpoint>
<drools:endpoint
service="Es2_v_0:Es2.Router2_v_0"
endpoint="Es2.Router2_v_0"
ruleBaseResource="classpath:Es2.Router2_v_0.drl"
namespaceContext="#nsContext">
</drools:endpoint>
<drools:namespace-context id="nsContext">
<drools:namespaces>
<drools:namespace
prefix="spgtypes">urn:spagic:crm:types</drools:namespace>
<drools:namespace
prefix="restart">urn:it:eng:spagic:restart</drools:namespace>
<drools:namespace
prefix="spagic">urn:it:eng:spagic</drools:namespace>
<drools:namespace
prefix="spgser">urn:spagic:crm:services</drools:namespace>
</drools:namespaces>
</drools:namespace-context>
</beans>
Here the drools file causing the problem is:
package org.apache.servicemix.drools
import org.apache.servicemix.drools.model.Exchange;
import org.spagic.smx.helpers.DbHelper;
global org.apache.servicemix.drools.model.JbiHelper jbi;
rule "Route FaultInFlow "
when
me : Exchange( status == Exchange.ACTIVE, in : in != null )
eval( in.xpath("/spgser:in/spgtypes:TIPO_SERVIZIO = '10'") )
then
jbi.routeToDefault("<Fault> Tipo Servizio 10 </Fault>");
end
Re: Drools Problems reappeared???? Any Idea??
Posted by Guillaume Nodet <gn...@gmail.com>.
Yeah, we've recently discussed that on the dev list.
Freeman is the release manager for this release so he'll certainly be able
to provide more informations.
On Tue, Mar 25, 2008 at 4:15 PM, Andrea Zoppello <zo...@tiscali.it>
wrote:
> Thx,
>
> Is there any plan for 3.2.2 release??
>
> Andrea
> Guillaume Nodet ha scritto:
> > I've raise and fixed https://issues.apache.org/activemq/browse/SM-1287
> >
> > On Tue, Mar 25, 2008 at 2:20 PM, Guillaume Nodet <gn...@gmail.com>
> wrote:
> >
> >
> >> You need to rebuild the drools component. The xbean informations are
> >> stored in the jar, so it should be sufficient. If it works, can you
> raise a
> >> JIRA please?
> >>
> >>
> >> On Tue, Mar 25, 2008 at 1:40 PM, Andrea Zoppello <zo...@tiscali.it>
> >> wrote:
> >>
> >>
> >>> Looking at the two codebase effectively the NamespaceContextImpl of
> eip
> >>> declare setter and getters,
> >>> instead the drools one does not declare getters and getter.
> >>>
> >>> Do i need to compile all with maven?? or is just enough to add the
> >>> setter and getters method to the
> >>> NamespaceContextImpl class???
> >>>
> >>> Andrea
> >>>
> >>> Guillaume Nodet ha scritto:
> >>>
> >>>> If the same config was working in 3.2.1, it may be caused by an
> >>>>
> >>> upgrade of
> >>>
> >>>> xbean which is used to parse the spring xml configuration. I must
> >>>>
> >>> admit
> >>>
> >>>> the map support in xbean is kinda difficult to understand :-(
> >>>>
> >>>> Looking at the "same" class in servicemix-eip, it redefines the
> getter
> >>>>
> >>> /
> >>>
> >>>> setter so that they can be found by xbean in the generation phase.
> >>>> Can you try adding those back and see if it works better ?
> >>>>
> >>>> On Tue, Mar 25, 2008 at 11:52 AM, Andrea Zoppello <
> zoppello@tiscali.it
> >>>>
> >>>> wrote:
> >>>>
> >>>>
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> I've just downloaded the latest nightly build of servicemix 3.2.2and
> >>>>>
> >>> it
> >>>
> >>>>> seems
> >>>>> problem in evaluating expression with namespace are reappred in this
> >>>>> version.
> >>>>>
> >>>>> When i write in the drools rule a rule with namespace prefix, this
> >>>>>
> >>> will
> >>>
> >>>>> cause
> >>>>> a runtime errors saying the namespace is not bound.
> >>>>>
> >>>>> What i've found is that at deployment phase the namespace context is
> >>>>>
> >>> not
> >>>
> >>>>> populated.
> >>>>>
> >>>>> This seem strange because in the xbean of drools su i've declared
> >>>>> namespace context
> >>>>> as i'm usually able to declare.
> >>>>>
> >>>>> Any idea??
> >>>>>
> >>>>> Here my xbean:
> >>>>>
> >>>>> <?xml version="1.0"?>
> >>>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
> >>>>> xmlns:drools="http://servicemix.apache.org/drools/1.0"
> >>>>> xmlns:Es2_v_0="urn:eng:spagic:processes:Es2:v0"
> >>>>> xmlns:util="http://www.springframework.org/schema/util">
> >>>>> <drools:endpoint
> >>>>> service="Es2_v_0:Es2.Val2Livello_v_0"
> >>>>> endpoint="Es2.Val2Livello_v_0"
> >>>>> ruleBaseResource="classpath:val2.drl"
> >>>>> namespaceContext="#nsContext"
> >>>>> assertedObjects="#assertedObjects"
> >>>>> defaultTargetService="Es2_v_0:Es2.Router1_v_0">
> >>>>>
> >>>>> </drools:endpoint>
> >>>>> <util:list id="assertedObjects">
> >>>>> <ref bean="dbhelper"/>
> >>>>> </util:list>
> >>>>> <bean id="dbhelper" class="
> >>>>>
> >>> org.spagic.smx.helpers.DbHelper">
> >>>
> >>>>> </bean>
> >>>>>
> >>>>> <drools:endpoint
> >>>>> service="Es2_v_0:Es2.Router1_v_0"
> >>>>> endpoint="Es2.Router1_v_0"
> >>>>> ruleBaseResource="classpath:Es2.Router1_v_0.drl"
> >>>>> namespaceContext="#nsContext">
> >>>>> </drools:endpoint>
> >>>>>
> >>>>> <drools:endpoint
> >>>>> service="Es2_v_0:Es2.Router2_v_0"
> >>>>> endpoint="Es2.Router2_v_0"
> >>>>> ruleBaseResource="classpath:Es2.Router2_v_0.drl"
> >>>>> namespaceContext="#nsContext">
> >>>>> </drools:endpoint>
> >>>>>
> >>>>> <drools:namespace-context id="nsContext">
> >>>>> <drools:namespaces>
> >>>>> <drools:namespace
> >>>>> prefix="spgtypes">urn:spagic:crm:types</drools:namespace>
> >>>>> <drools:namespace
> >>>>> prefix="restart">urn:it:eng:spagic:restart</drools:namespace>
> >>>>> <drools:namespace
> >>>>> prefix="spagic">urn:it:eng:spagic</drools:namespace>
> >>>>> <drools:namespace
> >>>>> prefix="spgser">urn:spagic:crm:services</drools:namespace>
> >>>>> </drools:namespaces>
> >>>>> </drools:namespace-context>
> >>>>> </beans>
> >>>>>
> >>>>> Here the drools file causing the problem is:
> >>>>>
> >>>>> package org.apache.servicemix.drools
> >>>>>
> >>>>> import org.apache.servicemix.drools.model.Exchange;
> >>>>> import org.spagic.smx.helpers.DbHelper;
> >>>>>
> >>>>> global org.apache.servicemix.drools.model.JbiHelper jbi;
> >>>>>
> >>>>> rule "Route FaultInFlow "
> >>>>> when
> >>>>> me : Exchange( status == Exchange.ACTIVE, in : in != null )
> >>>>> eval( in.xpath("/spgser:in/spgtypes:TIPO_SERVIZIO = '10'") )
> >>>>> then
> >>>>> jbi.routeToDefault("<Fault> Tipo Servizio 10 </Fault>");
> >>>>> end
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >> --
> >> Cheers,
> >> Guillaume Nodet
> >> ------------------------
> >> Blog: http://gnodet.blogspot.com/
> >>
> >>
> >
> >
> >
> >
>
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
Re: Drools Problems reappeared???? Any Idea??
Posted by Andrea Zoppello <zo...@tiscali.it>.
Thx,
Is there any plan for 3.2.2 release??
Andrea
Guillaume Nodet ha scritto:
> I've raise and fixed https://issues.apache.org/activemq/browse/SM-1287
>
> On Tue, Mar 25, 2008 at 2:20 PM, Guillaume Nodet <gn...@gmail.com> wrote:
>
>
>> You need to rebuild the drools component. The xbean informations are
>> stored in the jar, so it should be sufficient. If it works, can you raise a
>> JIRA please?
>>
>>
>> On Tue, Mar 25, 2008 at 1:40 PM, Andrea Zoppello <zo...@tiscali.it>
>> wrote:
>>
>>
>>> Looking at the two codebase effectively the NamespaceContextImpl of eip
>>> declare setter and getters,
>>> instead the drools one does not declare getters and getter.
>>>
>>> Do i need to compile all with maven?? or is just enough to add the
>>> setter and getters method to the
>>> NamespaceContextImpl class???
>>>
>>> Andrea
>>>
>>> Guillaume Nodet ha scritto:
>>>
>>>> If the same config was working in 3.2.1, it may be caused by an
>>>>
>>> upgrade of
>>>
>>>> xbean which is used to parse the spring xml configuration. I must
>>>>
>>> admit
>>>
>>>> the map support in xbean is kinda difficult to understand :-(
>>>>
>>>> Looking at the "same" class in servicemix-eip, it redefines the getter
>>>>
>>> /
>>>
>>>> setter so that they can be found by xbean in the generation phase.
>>>> Can you try adding those back and see if it works better ?
>>>>
>>>> On Tue, Mar 25, 2008 at 11:52 AM, Andrea Zoppello <zoppello@tiscali.it
>>>>
>>>> wrote:
>>>>
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> I've just downloaded the latest nightly build of servicemix 3.2.2 and
>>>>>
>>> it
>>>
>>>>> seems
>>>>> problem in evaluating expression with namespace are reappred in this
>>>>> version.
>>>>>
>>>>> When i write in the drools rule a rule with namespace prefix, this
>>>>>
>>> will
>>>
>>>>> cause
>>>>> a runtime errors saying the namespace is not bound.
>>>>>
>>>>> What i've found is that at deployment phase the namespace context is
>>>>>
>>> not
>>>
>>>>> populated.
>>>>>
>>>>> This seem strange because in the xbean of drools su i've declared
>>>>> namespace context
>>>>> as i'm usually able to declare.
>>>>>
>>>>> Any idea??
>>>>>
>>>>> Here my xbean:
>>>>>
>>>>> <?xml version="1.0"?>
>>>>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>>>>> xmlns:drools="http://servicemix.apache.org/drools/1.0"
>>>>> xmlns:Es2_v_0="urn:eng:spagic:processes:Es2:v0"
>>>>> xmlns:util="http://www.springframework.org/schema/util">
>>>>> <drools:endpoint
>>>>> service="Es2_v_0:Es2.Val2Livello_v_0"
>>>>> endpoint="Es2.Val2Livello_v_0"
>>>>> ruleBaseResource="classpath:val2.drl"
>>>>> namespaceContext="#nsContext"
>>>>> assertedObjects="#assertedObjects"
>>>>> defaultTargetService="Es2_v_0:Es2.Router1_v_0">
>>>>>
>>>>> </drools:endpoint>
>>>>> <util:list id="assertedObjects">
>>>>> <ref bean="dbhelper"/>
>>>>> </util:list>
>>>>> <bean id="dbhelper" class="
>>>>>
>>> org.spagic.smx.helpers.DbHelper">
>>>
>>>>> </bean>
>>>>>
>>>>> <drools:endpoint
>>>>> service="Es2_v_0:Es2.Router1_v_0"
>>>>> endpoint="Es2.Router1_v_0"
>>>>> ruleBaseResource="classpath:Es2.Router1_v_0.drl"
>>>>> namespaceContext="#nsContext">
>>>>> </drools:endpoint>
>>>>>
>>>>> <drools:endpoint
>>>>> service="Es2_v_0:Es2.Router2_v_0"
>>>>> endpoint="Es2.Router2_v_0"
>>>>> ruleBaseResource="classpath:Es2.Router2_v_0.drl"
>>>>> namespaceContext="#nsContext">
>>>>> </drools:endpoint>
>>>>>
>>>>> <drools:namespace-context id="nsContext">
>>>>> <drools:namespaces>
>>>>> <drools:namespace
>>>>> prefix="spgtypes">urn:spagic:crm:types</drools:namespace>
>>>>> <drools:namespace
>>>>> prefix="restart">urn:it:eng:spagic:restart</drools:namespace>
>>>>> <drools:namespace
>>>>> prefix="spagic">urn:it:eng:spagic</drools:namespace>
>>>>> <drools:namespace
>>>>> prefix="spgser">urn:spagic:crm:services</drools:namespace>
>>>>> </drools:namespaces>
>>>>> </drools:namespace-context>
>>>>> </beans>
>>>>>
>>>>> Here the drools file causing the problem is:
>>>>>
>>>>> package org.apache.servicemix.drools
>>>>>
>>>>> import org.apache.servicemix.drools.model.Exchange;
>>>>> import org.spagic.smx.helpers.DbHelper;
>>>>>
>>>>> global org.apache.servicemix.drools.model.JbiHelper jbi;
>>>>>
>>>>> rule "Route FaultInFlow "
>>>>> when
>>>>> me : Exchange( status == Exchange.ACTIVE, in : in != null )
>>>>> eval( in.xpath("/spgser:in/spgtypes:TIPO_SERVIZIO = '10'") )
>>>>> then
>>>>> jbi.routeToDefault("<Fault> Tipo Servizio 10 </Fault>");
>>>>> end
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>> --
>> Cheers,
>> Guillaume Nodet
>> ------------------------
>> Blog: http://gnodet.blogspot.com/
>>
>>
>
>
>
>
Re: Drools Problems reappeared???? Any Idea??
Posted by Guillaume Nodet <gn...@gmail.com>.
I've raise and fixed https://issues.apache.org/activemq/browse/SM-1287
On Tue, Mar 25, 2008 at 2:20 PM, Guillaume Nodet <gn...@gmail.com> wrote:
> You need to rebuild the drools component. The xbean informations are
> stored in the jar, so it should be sufficient. If it works, can you raise a
> JIRA please?
>
>
> On Tue, Mar 25, 2008 at 1:40 PM, Andrea Zoppello <zo...@tiscali.it>
> wrote:
>
> > Looking at the two codebase effectively the NamespaceContextImpl of eip
> > declare setter and getters,
> > instead the drools one does not declare getters and getter.
> >
> > Do i need to compile all with maven?? or is just enough to add the
> > setter and getters method to the
> > NamespaceContextImpl class???
> >
> > Andrea
> >
> > Guillaume Nodet ha scritto:
> > > If the same config was working in 3.2.1, it may be caused by an
> > upgrade of
> > > xbean which is used to parse the spring xml configuration. I must
> > admit
> > > the map support in xbean is kinda difficult to understand :-(
> > >
> > > Looking at the "same" class in servicemix-eip, it redefines the getter
> > /
> > > setter so that they can be found by xbean in the generation phase.
> > > Can you try adding those back and see if it works better ?
> > >
> > > On Tue, Mar 25, 2008 at 11:52 AM, Andrea Zoppello <zoppello@tiscali.it
> > >
> > > wrote:
> > >
> > >
> > >> Hi,
> > >>
> > >> I've just downloaded the latest nightly build of servicemix 3.2.2 and
> > it
> > >> seems
> > >> problem in evaluating expression with namespace are reappred in this
> > >> version.
> > >>
> > >> When i write in the drools rule a rule with namespace prefix, this
> > will
> > >> cause
> > >> a runtime errors saying the namespace is not bound.
> > >>
> > >> What i've found is that at deployment phase the namespace context is
> > not
> > >> populated.
> > >>
> > >> This seem strange because in the xbean of drools su i've declared
> > >> namespace context
> > >> as i'm usually able to declare.
> > >>
> > >> Any idea??
> > >>
> > >> Here my xbean:
> > >>
> > >> <?xml version="1.0"?>
> > >> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
> > >> xmlns:drools="http://servicemix.apache.org/drools/1.0"
> > >> xmlns:Es2_v_0="urn:eng:spagic:processes:Es2:v0"
> > >> xmlns:util="http://www.springframework.org/schema/util">
> > >> <drools:endpoint
> > >> service="Es2_v_0:Es2.Val2Livello_v_0"
> > >> endpoint="Es2.Val2Livello_v_0"
> > >> ruleBaseResource="classpath:val2.drl"
> > >> namespaceContext="#nsContext"
> > >> assertedObjects="#assertedObjects"
> > >> defaultTargetService="Es2_v_0:Es2.Router1_v_0">
> > >>
> > >> </drools:endpoint>
> > >> <util:list id="assertedObjects">
> > >> <ref bean="dbhelper"/>
> > >> </util:list>
> > >> <bean id="dbhelper" class="
> > org.spagic.smx.helpers.DbHelper">
> > >> </bean>
> > >>
> > >> <drools:endpoint
> > >> service="Es2_v_0:Es2.Router1_v_0"
> > >> endpoint="Es2.Router1_v_0"
> > >> ruleBaseResource="classpath:Es2.Router1_v_0.drl"
> > >> namespaceContext="#nsContext">
> > >> </drools:endpoint>
> > >>
> > >> <drools:endpoint
> > >> service="Es2_v_0:Es2.Router2_v_0"
> > >> endpoint="Es2.Router2_v_0"
> > >> ruleBaseResource="classpath:Es2.Router2_v_0.drl"
> > >> namespaceContext="#nsContext">
> > >> </drools:endpoint>
> > >>
> > >> <drools:namespace-context id="nsContext">
> > >> <drools:namespaces>
> > >> <drools:namespace
> > >> prefix="spgtypes">urn:spagic:crm:types</drools:namespace>
> > >> <drools:namespace
> > >> prefix="restart">urn:it:eng:spagic:restart</drools:namespace>
> > >> <drools:namespace
> > >> prefix="spagic">urn:it:eng:spagic</drools:namespace>
> > >> <drools:namespace
> > >> prefix="spgser">urn:spagic:crm:services</drools:namespace>
> > >> </drools:namespaces>
> > >> </drools:namespace-context>
> > >> </beans>
> > >>
> > >> Here the drools file causing the problem is:
> > >>
> > >> package org.apache.servicemix.drools
> > >>
> > >> import org.apache.servicemix.drools.model.Exchange;
> > >> import org.spagic.smx.helpers.DbHelper;
> > >>
> > >> global org.apache.servicemix.drools.model.JbiHelper jbi;
> > >>
> > >> rule "Route FaultInFlow "
> > >> when
> > >> me : Exchange( status == Exchange.ACTIVE, in : in != null )
> > >> eval( in.xpath("/spgser:in/spgtypes:TIPO_SERVIZIO = '10'") )
> > >> then
> > >> jbi.routeToDefault("<Fault> Tipo Servizio 10 </Fault>");
> > >> end
> > >>
> > >>
> > >>
> > >
> > >
> > >
> >
> >
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
Re: Drools Problems reappeared???? Any Idea??
Posted by Guillaume Nodet <gn...@gmail.com>.
You need to rebuild the drools component. The xbean informations are stored
in the jar, so it should be sufficient. If it works, can you raise a JIRA
please?
On Tue, Mar 25, 2008 at 1:40 PM, Andrea Zoppello <zo...@tiscali.it>
wrote:
> Looking at the two codebase effectively the NamespaceContextImpl of eip
> declare setter and getters,
> instead the drools one does not declare getters and getter.
>
> Do i need to compile all with maven?? or is just enough to add the
> setter and getters method to the
> NamespaceContextImpl class???
>
> Andrea
>
> Guillaume Nodet ha scritto:
> > If the same config was working in 3.2.1, it may be caused by an upgrade
> of
> > xbean which is used to parse the spring xml configuration. I must
> admit
> > the map support in xbean is kinda difficult to understand :-(
> >
> > Looking at the "same" class in servicemix-eip, it redefines the getter /
> > setter so that they can be found by xbean in the generation phase.
> > Can you try adding those back and see if it works better ?
> >
> > On Tue, Mar 25, 2008 at 11:52 AM, Andrea Zoppello <zo...@tiscali.it>
> > wrote:
> >
> >
> >> Hi,
> >>
> >> I've just downloaded the latest nightly build of servicemix 3.2.2 and
> it
> >> seems
> >> problem in evaluating expression with namespace are reappred in this
> >> version.
> >>
> >> When i write in the drools rule a rule with namespace prefix, this will
> >> cause
> >> a runtime errors saying the namespace is not bound.
> >>
> >> What i've found is that at deployment phase the namespace context is
> not
> >> populated.
> >>
> >> This seem strange because in the xbean of drools su i've declared
> >> namespace context
> >> as i'm usually able to declare.
> >>
> >> Any idea??
> >>
> >> Here my xbean:
> >>
> >> <?xml version="1.0"?>
> >> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
> >> xmlns:drools="http://servicemix.apache.org/drools/1.0"
> >> xmlns:Es2_v_0="urn:eng:spagic:processes:Es2:v0"
> >> xmlns:util="http://www.springframework.org/schema/util">
> >> <drools:endpoint
> >> service="Es2_v_0:Es2.Val2Livello_v_0"
> >> endpoint="Es2.Val2Livello_v_0"
> >> ruleBaseResource="classpath:val2.drl"
> >> namespaceContext="#nsContext"
> >> assertedObjects="#assertedObjects"
> >> defaultTargetService="Es2_v_0:Es2.Router1_v_0">
> >>
> >> </drools:endpoint>
> >> <util:list id="assertedObjects">
> >> <ref bean="dbhelper"/>
> >> </util:list>
> >> <bean id="dbhelper" class="org.spagic.smx.helpers.DbHelper
> ">
> >> </bean>
> >>
> >> <drools:endpoint
> >> service="Es2_v_0:Es2.Router1_v_0"
> >> endpoint="Es2.Router1_v_0"
> >> ruleBaseResource="classpath:Es2.Router1_v_0.drl"
> >> namespaceContext="#nsContext">
> >> </drools:endpoint>
> >>
> >> <drools:endpoint
> >> service="Es2_v_0:Es2.Router2_v_0"
> >> endpoint="Es2.Router2_v_0"
> >> ruleBaseResource="classpath:Es2.Router2_v_0.drl"
> >> namespaceContext="#nsContext">
> >> </drools:endpoint>
> >>
> >> <drools:namespace-context id="nsContext">
> >> <drools:namespaces>
> >> <drools:namespace
> >> prefix="spgtypes">urn:spagic:crm:types</drools:namespace>
> >> <drools:namespace
> >> prefix="restart">urn:it:eng:spagic:restart</drools:namespace>
> >> <drools:namespace
> >> prefix="spagic">urn:it:eng:spagic</drools:namespace>
> >> <drools:namespace
> >> prefix="spgser">urn:spagic:crm:services</drools:namespace>
> >> </drools:namespaces>
> >> </drools:namespace-context>
> >> </beans>
> >>
> >> Here the drools file causing the problem is:
> >>
> >> package org.apache.servicemix.drools
> >>
> >> import org.apache.servicemix.drools.model.Exchange;
> >> import org.spagic.smx.helpers.DbHelper;
> >>
> >> global org.apache.servicemix.drools.model.JbiHelper jbi;
> >>
> >> rule "Route FaultInFlow "
> >> when
> >> me : Exchange( status == Exchange.ACTIVE, in : in != null )
> >> eval( in.xpath("/spgser:in/spgtypes:TIPO_SERVIZIO = '10'") )
> >> then
> >> jbi.routeToDefault("<Fault> Tipo Servizio 10 </Fault>");
> >> end
> >>
> >>
> >>
> >
> >
> >
>
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
Re: Drools Problems reappeared???? Any Idea??
Posted by Andrea Zoppello <zo...@tiscali.it>.
Looking at the two codebase effectively the NamespaceContextImpl of eip
declare setter and getters,
instead the drools one does not declare getters and getter.
Do i need to compile all with maven?? or is just enough to add the
setter and getters method to the
NamespaceContextImpl class???
Andrea
Guillaume Nodet ha scritto:
> If the same config was working in 3.2.1, it may be caused by an upgrade of
> xbean which is used to parse the spring xml configuration. I must admit
> the map support in xbean is kinda difficult to understand :-(
>
> Looking at the "same" class in servicemix-eip, it redefines the getter /
> setter so that they can be found by xbean in the generation phase.
> Can you try adding those back and see if it works better ?
>
> On Tue, Mar 25, 2008 at 11:52 AM, Andrea Zoppello <zo...@tiscali.it>
> wrote:
>
>
>> Hi,
>>
>> I've just downloaded the latest nightly build of servicemix 3.2.2 and it
>> seems
>> problem in evaluating expression with namespace are reappred in this
>> version.
>>
>> When i write in the drools rule a rule with namespace prefix, this will
>> cause
>> a runtime errors saying the namespace is not bound.
>>
>> What i've found is that at deployment phase the namespace context is not
>> populated.
>>
>> This seem strange because in the xbean of drools su i've declared
>> namespace context
>> as i'm usually able to declare.
>>
>> Any idea??
>>
>> Here my xbean:
>>
>> <?xml version="1.0"?>
>> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
>> xmlns:drools="http://servicemix.apache.org/drools/1.0"
>> xmlns:Es2_v_0="urn:eng:spagic:processes:Es2:v0"
>> xmlns:util="http://www.springframework.org/schema/util">
>> <drools:endpoint
>> service="Es2_v_0:Es2.Val2Livello_v_0"
>> endpoint="Es2.Val2Livello_v_0"
>> ruleBaseResource="classpath:val2.drl"
>> namespaceContext="#nsContext"
>> assertedObjects="#assertedObjects"
>> defaultTargetService="Es2_v_0:Es2.Router1_v_0">
>>
>> </drools:endpoint>
>> <util:list id="assertedObjects">
>> <ref bean="dbhelper"/>
>> </util:list>
>> <bean id="dbhelper" class="org.spagic.smx.helpers.DbHelper">
>> </bean>
>>
>> <drools:endpoint
>> service="Es2_v_0:Es2.Router1_v_0"
>> endpoint="Es2.Router1_v_0"
>> ruleBaseResource="classpath:Es2.Router1_v_0.drl"
>> namespaceContext="#nsContext">
>> </drools:endpoint>
>>
>> <drools:endpoint
>> service="Es2_v_0:Es2.Router2_v_0"
>> endpoint="Es2.Router2_v_0"
>> ruleBaseResource="classpath:Es2.Router2_v_0.drl"
>> namespaceContext="#nsContext">
>> </drools:endpoint>
>>
>> <drools:namespace-context id="nsContext">
>> <drools:namespaces>
>> <drools:namespace
>> prefix="spgtypes">urn:spagic:crm:types</drools:namespace>
>> <drools:namespace
>> prefix="restart">urn:it:eng:spagic:restart</drools:namespace>
>> <drools:namespace
>> prefix="spagic">urn:it:eng:spagic</drools:namespace>
>> <drools:namespace
>> prefix="spgser">urn:spagic:crm:services</drools:namespace>
>> </drools:namespaces>
>> </drools:namespace-context>
>> </beans>
>>
>> Here the drools file causing the problem is:
>>
>> package org.apache.servicemix.drools
>>
>> import org.apache.servicemix.drools.model.Exchange;
>> import org.spagic.smx.helpers.DbHelper;
>>
>> global org.apache.servicemix.drools.model.JbiHelper jbi;
>>
>> rule "Route FaultInFlow "
>> when
>> me : Exchange( status == Exchange.ACTIVE, in : in != null )
>> eval( in.xpath("/spgser:in/spgtypes:TIPO_SERVIZIO = '10'") )
>> then
>> jbi.routeToDefault("<Fault> Tipo Servizio 10 </Fault>");
>> end
>>
>>
>>
>
>
>
Re: Drools Problems reappeared???? Any Idea??
Posted by Guillaume Nodet <gn...@gmail.com>.
If the same config was working in 3.2.1, it may be caused by an upgrade of
xbean which is used to parse the spring xml configuration. I must admit
the map support in xbean is kinda difficult to understand :-(
Looking at the "same" class in servicemix-eip, it redefines the getter /
setter so that they can be found by xbean in the generation phase.
Can you try adding those back and see if it works better ?
On Tue, Mar 25, 2008 at 11:52 AM, Andrea Zoppello <zo...@tiscali.it>
wrote:
> Hi,
>
> I've just downloaded the latest nightly build of servicemix 3.2.2 and it
> seems
> problem in evaluating expression with namespace are reappred in this
> version.
>
> When i write in the drools rule a rule with namespace prefix, this will
> cause
> a runtime errors saying the namespace is not bound.
>
> What i've found is that at deployment phase the namespace context is not
> populated.
>
> This seem strange because in the xbean of drools su i've declared
> namespace context
> as i'm usually able to declare.
>
> Any idea??
>
> Here my xbean:
>
> <?xml version="1.0"?>
> <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
> xmlns:drools="http://servicemix.apache.org/drools/1.0"
> xmlns:Es2_v_0="urn:eng:spagic:processes:Es2:v0"
> xmlns:util="http://www.springframework.org/schema/util">
> <drools:endpoint
> service="Es2_v_0:Es2.Val2Livello_v_0"
> endpoint="Es2.Val2Livello_v_0"
> ruleBaseResource="classpath:val2.drl"
> namespaceContext="#nsContext"
> assertedObjects="#assertedObjects"
> defaultTargetService="Es2_v_0:Es2.Router1_v_0">
>
> </drools:endpoint>
> <util:list id="assertedObjects">
> <ref bean="dbhelper"/>
> </util:list>
> <bean id="dbhelper" class="org.spagic.smx.helpers.DbHelper">
> </bean>
>
> <drools:endpoint
> service="Es2_v_0:Es2.Router1_v_0"
> endpoint="Es2.Router1_v_0"
> ruleBaseResource="classpath:Es2.Router1_v_0.drl"
> namespaceContext="#nsContext">
> </drools:endpoint>
>
> <drools:endpoint
> service="Es2_v_0:Es2.Router2_v_0"
> endpoint="Es2.Router2_v_0"
> ruleBaseResource="classpath:Es2.Router2_v_0.drl"
> namespaceContext="#nsContext">
> </drools:endpoint>
>
> <drools:namespace-context id="nsContext">
> <drools:namespaces>
> <drools:namespace
> prefix="spgtypes">urn:spagic:crm:types</drools:namespace>
> <drools:namespace
> prefix="restart">urn:it:eng:spagic:restart</drools:namespace>
> <drools:namespace
> prefix="spagic">urn:it:eng:spagic</drools:namespace>
> <drools:namespace
> prefix="spgser">urn:spagic:crm:services</drools:namespace>
> </drools:namespaces>
> </drools:namespace-context>
> </beans>
>
> Here the drools file causing the problem is:
>
> package org.apache.servicemix.drools
>
> import org.apache.servicemix.drools.model.Exchange;
> import org.spagic.smx.helpers.DbHelper;
>
> global org.apache.servicemix.drools.model.JbiHelper jbi;
>
> rule "Route FaultInFlow "
> when
> me : Exchange( status == Exchange.ACTIVE, in : in != null )
> eval( in.xpath("/spgser:in/spgtypes:TIPO_SERVIZIO = '10'") )
> then
> jbi.routeToDefault("<Fault> Tipo Servizio 10 </Fault>");
> end
>
>
--
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/