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