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/