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...@libero.it> on 2006/11/17 18:15:00 UTC

Problems in DroolsComponent - senderEndpoint property in MessageExchange is null???

Hi all,

I've develop a simple service assembly composed as follow:

Soap (BC) -> EipXPathSplitter (SE) -> DroolsRouter(SE) --> Screen

Then i trid to trace all MessageExchange with a ExchangeListener, and 
for each exchange i tried to retrieve the senderEndpoint
with the folowing instructions:

System.out.println("Sender: 
"+exchange.getProperty("org.apache.servicemix.senderEndpoint"));
System.out.println("Service: " + exchange.getService());

I've noticed that in the  message exchange sent  by the DroolsComponent 
the property "org.apache.servicemix.senderEndpoint" is NULL.
otherwise the messages sent by XPathSplitter does not have  this problem.

It seems that EIPXPathSplitter use the metod "sendConsumerExchange" of 
the class "AsyncBaseLifeCycle that set the property
with this code:

String key = EndpointSupport.getKey(endpoint);
exchange.setProperty(JbiConstants.SENDER_ENDPOINT, key);

Is this a BUG??? I'm using the 3.0 release.

Thanks

Andrea Zoppello




Re: Problems in DroolsComponent - senderEndpoint property in MessageExchange is null???

Posted by Guillaume Nodet <gn...@gmail.com>.
Note that it should work out of the box with the new
drools SE (http://servicemix.goopen.org/site/servicemix-drools.html)

On 11/20/06, Andrea Zoppello <zo...@libero.it> wrote:
> Hi Guillaume,
>
> Thank you for your response, the problem that i've now is to register
> in a database all the exchanges between components and one information i
> need is to capture
> the sender of the message.
>
> Looking at the code it seems not difficult to add this feature to the
> DroolsComponent ( The lightweight ).
> I tried to add this line to the method "forwardToExchange" of the class
> ComponentSupport
>
> outExchange.setProperty(JbiConstants.SENDER_ENDPOINT, getService() + ":"
> + getEndpoint());
>
> and it works.
>
> Andrea Zoppello
>
> Guillaume Nodet ha scritto:
> > I'm not sure what your problem is.
> > This property is only set by standard JBI components.
> > The lightweight drools does not set it, but the new
> > Drools standard JBI component [1] does.
> >
> > [1] http://servicemix.goopen.org/site/servicemix-drools.html
> >
> > On 11/17/06, Andrea Zoppello <zo...@libero.it> wrote:
> >> Hi all,
> >>
> >> I've develop a simple service assembly composed as follow:
> >>
> >> Soap (BC) -> EipXPathSplitter (SE) -> DroolsRouter(SE) --> Screen
> >>
> >> Then i trid to trace all MessageExchange with a ExchangeListener, and
> >> for each exchange i tried to retrieve the senderEndpoint
> >> with the folowing instructions:
> >>
> >> System.out.println("Sender:
> >> "+exchange.getProperty("org.apache.servicemix.senderEndpoint"));
> >> System.out.println("Service: " + exchange.getService());
> >>
> >> I've noticed that in the  message exchange sent  by the DroolsComponent
> >> the property "org.apache.servicemix.senderEndpoint" is NULL.
> >> otherwise the messages sent by XPathSplitter does not have  this
> >> problem.
> >>
> >> It seems that EIPXPathSplitter use the metod "sendConsumerExchange" of
> >> the class "AsyncBaseLifeCycle that set the property
> >> with this code:
> >>
> >> String key = EndpointSupport.getKey(endpoint);
> >> exchange.setProperty(JbiConstants.SENDER_ENDPOINT, key);
> >>
> >> Is this a BUG??? I'm using the 3.0 release.
> >>
> >> Thanks
> >>
> >> Andrea Zoppello
> >>
> >>
> >>
> >>
> >
> >
>
>


-- 
Cheers,
Guillaume Nodet

Re: Problems in DroolsComponent - senderEndpoint property in MessageExchange is null???

Posted by Andrea Zoppello <zo...@libero.it>.
Hi Guillaume,

Thank you for your response, the problem that i've now is to register
in a database all the exchanges between components and one information i 
need is to capture
the sender of the message.

Looking at the code it seems not difficult to add this feature to the 
DroolsComponent ( The lightweight ).
I tried to add this line to the method "forwardToExchange" of the class 
ComponentSupport

outExchange.setProperty(JbiConstants.SENDER_ENDPOINT, getService() + ":" 
+ getEndpoint());

and it works.

Andrea Zoppello

Guillaume Nodet ha scritto:
> I'm not sure what your problem is.
> This property is only set by standard JBI components.
> The lightweight drools does not set it, but the new
> Drools standard JBI component [1] does.
>
> [1] http://servicemix.goopen.org/site/servicemix-drools.html
>
> On 11/17/06, Andrea Zoppello <zo...@libero.it> wrote:
>> Hi all,
>>
>> I've develop a simple service assembly composed as follow:
>>
>> Soap (BC) -> EipXPathSplitter (SE) -> DroolsRouter(SE) --> Screen
>>
>> Then i trid to trace all MessageExchange with a ExchangeListener, and
>> for each exchange i tried to retrieve the senderEndpoint
>> with the folowing instructions:
>>
>> System.out.println("Sender:
>> "+exchange.getProperty("org.apache.servicemix.senderEndpoint"));
>> System.out.println("Service: " + exchange.getService());
>>
>> I've noticed that in the  message exchange sent  by the DroolsComponent
>> the property "org.apache.servicemix.senderEndpoint" is NULL.
>> otherwise the messages sent by XPathSplitter does not have  this 
>> problem.
>>
>> It seems that EIPXPathSplitter use the metod "sendConsumerExchange" of
>> the class "AsyncBaseLifeCycle that set the property
>> with this code:
>>
>> String key = EndpointSupport.getKey(endpoint);
>> exchange.setProperty(JbiConstants.SENDER_ENDPOINT, key);
>>
>> Is this a BUG??? I'm using the 3.0 release.
>>
>> Thanks
>>
>> Andrea Zoppello
>>
>>
>>
>>
>
>


Re: Problems in DroolsComponent - senderEndpoint property in MessageExchange is null???

Posted by Guillaume Nodet <gn...@gmail.com>.
I'm not sure what your problem is.
This property is only set by standard JBI components.
The lightweight drools does not set it, but the new
Drools standard JBI component [1] does.

[1] http://servicemix.goopen.org/site/servicemix-drools.html

On 11/17/06, Andrea Zoppello <zo...@libero.it> wrote:
> Hi all,
>
> I've develop a simple service assembly composed as follow:
>
> Soap (BC) -> EipXPathSplitter (SE) -> DroolsRouter(SE) --> Screen
>
> Then i trid to trace all MessageExchange with a ExchangeListener, and
> for each exchange i tried to retrieve the senderEndpoint
> with the folowing instructions:
>
> System.out.println("Sender:
> "+exchange.getProperty("org.apache.servicemix.senderEndpoint"));
> System.out.println("Service: " + exchange.getService());
>
> I've noticed that in the  message exchange sent  by the DroolsComponent
> the property "org.apache.servicemix.senderEndpoint" is NULL.
> otherwise the messages sent by XPathSplitter does not have  this problem.
>
> It seems that EIPXPathSplitter use the metod "sendConsumerExchange" of
> the class "AsyncBaseLifeCycle that set the property
> with this code:
>
> String key = EndpointSupport.getKey(endpoint);
> exchange.setProperty(JbiConstants.SENDER_ENDPOINT, key);
>
> Is this a BUG??? I'm using the 3.0 release.
>
> Thanks
>
> Andrea Zoppello
>
>
>
>


-- 
Cheers,
Guillaume Nodet