Where does DeliveryChannel.send() to?

View: New views
18 Messages — Rating Filter:   Alert me  

Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

When I call DeliveryChannel.send(), where does the message go? how can I set the destination?

thanks.

Parent Message unknown Re: Where does DeliveryChannel.send() to?

by Jean-Baptiste Onofré :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

DeliveryChannel is part of JBI specification. So when you call send() method on it, the exchange containing the normalized message is send into the Normalized Router (NMR). The message is routed to the destination using exchange properties (target service, target endpoint, MEP, ...).

Regards
JB
------Original Message------
From: youhaodeyi
To: users@...
ReplyTo: users@...
Subject: Where does DeliveryChannel.send() to?
Sent: Oct 27, 2009 02:17


When I call DeliveryChannel.send(), where does the message go? how can I set
the destination?

thanks.
--
View this message in context: http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.




Re: Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I define a bean component and want to route this message to another SU. How can I set its target service?

thanks

Jean-Baptiste Onofré wrote:
Hi,

DeliveryChannel is part of JBI specification. So when you call send() method on it, the exchange containing the normalized message is send into the Normalized Router (NMR). The message is routed to the destination using exchange properties (target service, target endpoint, MEP, ...).

Regards
JB
------Original Message------
From: youhaodeyi
To: users@servicemix.apache.org
ReplyTo: users@servicemix.apache.org
Subject: Where does DeliveryChannel.send() to?
Sent: Oct 27, 2009 02:17


When I call DeliveryChannel.send(), where does the message go? how can I set
the destination?

thanks.
--
View this message in context: http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.



Parent Message unknown Re: Where does DeliveryChannel.send() to?

by Jean-Baptiste Onofré :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Your bean components implements which interface: listener, consumer ?
------Original Message------
From: youhaodeyi
To: users@...
Subject: Re: Where does DeliveryChannel.send() to?
Sent: Oct 27, 2009 07:08


Hi,

I define a bean component and want to route this message to another SU. How
can I set its target service?

thanks


Jean-Baptiste Onofré wrote:

>
> Hi,
>
> DeliveryChannel is part of JBI specification. So when you call send()
> method on it, the exchange containing the normalized message is send into
> the Normalized Router (NMR). The message is routed to the destination
> using exchange properties (target service, target endpoint, MEP, ...).
>
> Regards
> JB
> ------Original Message------
> From: youhaodeyi
> To: users@...
> ReplyTo: users@...
> Subject: Where does DeliveryChannel.send() to?
> Sent: Oct 27, 2009 02:17
>
>
> When I call DeliveryChannel.send(), where does the message go? how can I
> set
> the destination?
>
> thanks.
> --
> View this message in context:
> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
>
>
>

--
View this message in context: http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.



Re: Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

This is my xbean.xml file:

<beans>

        <bean:endpoint service="uncompress_service" endpoint="uncompress_service_endpoint"
                bean="#receiver" />

        <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />

</beans>

The bean implements MessageExchangeListener interface. I want to route the message to another bean service.



Jean-Baptiste Onofré wrote:
Your bean components implements which interface: listener, consumer ?
------Original Message------
From: youhaodeyi
To: users@servicemix.apache.org
Subject: Re: Where does DeliveryChannel.send() to?
Sent: Oct 27, 2009 07:08


Hi,

I define a bean component and want to route this message to another SU. How
can I set its target service?

thanks


Jean-Baptiste Onofré wrote:
>
> Hi,
>
> DeliveryChannel is part of JBI specification. So when you call send()
> method on it, the exchange containing the normalized message is send into
> the Normalized Router (NMR). The message is routed to the destination
> using exchange properties (target service, target endpoint, MEP, ...).
>
> Regards
> JB
> ------Original Message------
> From: youhaodeyi
> To: users@servicemix.apache.org
> ReplyTo: users@servicemix.apache.org
> Subject: Where does DeliveryChannel.send() to?
> Sent: Oct 27, 2009 02:17
>
>
> When I call DeliveryChannel.send(), where does the message go? how can I
> set
> the destination?
>
> thanks.
> --
> View this message in context:
> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
>
>
>

--
View this message in context: http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Parent Message unknown Re: Where does DeliveryChannel.send() to?

by Jean-Baptiste Onofré :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ok.

A solution is a to add some property to your bean (targetService/targetEndpoint for example). You cab create a ServiceMixClient in your bean and send the exchange ussing this client.
Sorry I can't provide you some samples code for now (I'm in transit ;)).

Regards
JB
------Original Message------
From: youhaodeyi
To: users@...
Subject: Re: Where does DeliveryChannel.send() to?
Sent: Oct 27, 2009 07:23


Hi,

This is my xbean.xml file:

<beans>

        <bean:endpoint service="uncompress_service"
endpoint="uncompress_service_endpoint"
                bean="#receiver" />

        <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />

</beans>

The bean implements MessageExchangeListener interface. I want to route the
message to another bean service.




Jean-Baptiste Onofré wrote:

>
> Your bean components implements which interface: listener, consumer ?
> ------Original Message------
> From: youhaodeyi
> To: users@...
> Subject: Re: Where does DeliveryChannel.send() to?
> Sent: Oct 27, 2009 07:08
>
>
> Hi,
>
> I define a bean component and want to route this message to another SU.
> How
> can I set its target service?
>
> thanks
>
>
> Jean-Baptiste Onofré wrote:
>>
>> Hi,
>>
>> DeliveryChannel is part of JBI specification. So when you call send()
>> method on it, the exchange containing the normalized message is send into
>> the Normalized Router (NMR). The message is routed to the destination
>> using exchange properties (target service, target endpoint, MEP, ...).
>>
>> Regards
>> JB
>> ------Original Message------
>> From: youhaodeyi
>> To: users@...
>> ReplyTo: users@...
>> Subject: Where does DeliveryChannel.send() to?
>> Sent: Oct 27, 2009 02:17
>>
>>
>> When I call DeliveryChannel.send(), where does the message go? how can I
>> set
>> the destination?
>>
>> thanks.
>> --
>> View this message in context:
>> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>>
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
>
>

--
View this message in context: http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072663.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.



Re: Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Using ServiceMixClient will add dependency in my bean which is not flexible. Can I set the targetService in the xbean.xml file? In this way, I just call send() method in my bean, it will route the message to the service specified in the xbean.xml file.

In addition, does servicemix tutorial include this information?


Jean-Baptiste Onofré wrote:
Ok.

A solution is a to add some property to your bean (targetService/targetEndpoint for example). You cab create a ServiceMixClient in your bean and send the exchange ussing this client.
Sorry I can't provide you some samples code for now (I'm in transit ;)).

Regards
JB
------Original Message------
From: youhaodeyi
To: users@servicemix.apache.org
Subject: Re: Where does DeliveryChannel.send() to?
Sent: Oct 27, 2009 07:23


Hi,

This is my xbean.xml file:

<beans>

        <bean:endpoint service="uncompress_service"
endpoint="uncompress_service_endpoint"
                bean="#receiver" />

        <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />

</beans>

The bean implements MessageExchangeListener interface. I want to route the
message to another bean service.




Jean-Baptiste Onofré wrote:
>
> Your bean components implements which interface: listener, consumer ?
> ------Original Message------
> From: youhaodeyi
> To: users@servicemix.apache.org
> Subject: Re: Where does DeliveryChannel.send() to?
> Sent: Oct 27, 2009 07:08
>
>
> Hi,
>
> I define a bean component and want to route this message to another SU.
> How
> can I set its target service?
>
> thanks
>
>
> Jean-Baptiste Onofré wrote:
>>
>> Hi,
>>
>> DeliveryChannel is part of JBI specification. So when you call send()
>> method on it, the exchange containing the normalized message is send into
>> the Normalized Router (NMR). The message is routed to the destination
>> using exchange properties (target service, target endpoint, MEP, ...).
>>
>> Regards
>> JB
>> ------Original Message------
>> From: youhaodeyi
>> To: users@servicemix.apache.org
>> ReplyTo: users@servicemix.apache.org
>> Subject: Where does DeliveryChannel.send() to?
>> Sent: Oct 27, 2009 02:17
>>
>>
>> When I call DeliveryChannel.send(), where does the message go? how can I
>> set
>> the destination?
>>
>> thanks.
>> --
>> View this message in context:
>> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>>
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
>
>

--
View this message in context: http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072663.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Where does DeliveryChannel.send() to?

by Jean-Baptiste Onofré :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Agreed. Let me check the servicemix-bean code and provide a feedback to you.

Regards
JB
-----Original Message-----
From: youhaodeyi <youhaodeyi@...>
Date: Mon, 26 Oct 2009 23:42:27
To: <users@...>
Subject: Re: Where does DeliveryChannel.send() to?


Using ServiceMixClient will add dependency in my bean which is not flexible.
Can I set the targetService in the xbean.xml file? In this way, I just call
send() method in my bean, it will route the message to the service specified
in the xbean.xml file.

In addition, does servicemix tutorial include this information?



Jean-Baptiste Onofré wrote:

>
> Ok.
>
> A solution is a to add some property to your bean
> (targetService/targetEndpoint for example). You cab create a
> ServiceMixClient in your bean and send the exchange ussing this client.
> Sorry I can't provide you some samples code for now (I'm in transit ;)).
>
> Regards
> JB
> ------Original Message------
> From: youhaodeyi
> To: users@...
> Subject: Re: Where does DeliveryChannel.send() to?
> Sent: Oct 27, 2009 07:23
>
>
> Hi,
>
> This is my xbean.xml file:
>
> <beans>
>
> <bean:endpoint service="uncompress_service"
> endpoint="uncompress_service_endpoint"
> bean="#receiver" />
>
> <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />
>
> </beans>
>
> The bean implements MessageExchangeListener interface. I want to route the
> message to another bean service.
>
>
>
>
> Jean-Baptiste Onofré wrote:
>>
>> Your bean components implements which interface: listener, consumer ?
>> ------Original Message------
>> From: youhaodeyi
>> To: users@...
>> Subject: Re: Where does DeliveryChannel.send() to?
>> Sent: Oct 27, 2009 07:08
>>
>>
>> Hi,
>>
>> I define a bean component and want to route this message to another SU.
>> How
>> can I set its target service?
>>
>> thanks
>>
>>
>> Jean-Baptiste Onofré wrote:
>>>
>>> Hi,
>>>
>>> DeliveryChannel is part of JBI specification. So when you call send()
>>> method on it, the exchange containing the normalized message is send
>>> into
>>> the Normalized Router (NMR). The message is routed to the destination
>>> using exchange properties (target service, target endpoint, MEP, ...).
>>>
>>> Regards
>>> JB
>>> ------Original Message------
>>> From: youhaodeyi
>>> To: users@...
>>> ReplyTo: users@...
>>> Subject: Where does DeliveryChannel.send() to?
>>> Sent: Oct 27, 2009 02:17
>>>
>>>
>>> When I call DeliveryChannel.send(), where does the message go? how can I
>>> set
>>> the destination?
>>>
>>> thanks.
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072663.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>
>
>

--
View this message in context: http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072828.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Where does DeliveryChannel.send() to?

by Maciek Prochniak :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,
we are using the following in such situation:

Instance variables:

@Resource
private DeliveryChannel channel;

@ExchangeTarget(uri="service:http://the.service.you.want.to.route")
private Destination target;

routing to another service:
 NormalizedMessage nm = target.createMessage();
 nm.setContent(new StringSource("<bububub/>"));
 nm.setProperty("fileId", "parara");
//you receive Future<NormalizedMessage> object
 target.send(nm);

There are some caveats in this approach:
1. target.createMessage() can only create InOut message exchanges.
2. onMessageExchange method is invoked in different contexts, this is
the code that finally worked for us:
 public void onMessageExchange(MessageExchange me) throws
MessagingException {
  //our bean is receiving request, otherwise it's reply from
target.send
  if (me.getRole().equals(Role.PROVIDER)) {
    //do the real stuff
    process();
  }
  //we have to acknowledge - otherwise e.g. memory leaks may happen  
  if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
  me.setStatus(ExchangeStatus.DONE);
  channel.send(me);
  }
}
   
hope this helps

br,
maciek



On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:

> Hi,
>
> This is my xbean.xml file:
>
> <beans>
>
> <bean:endpoint service="uncompress_service"
> endpoint="uncompress_service_endpoint"
> bean="#receiver" />
>
> <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />
>
> </beans>
>
> The bean implements MessageExchangeListener interface. I want to route the
> message to another bean service.
>
>
>
>
> Jean-Baptiste Onofré wrote:
> >
> > Your bean components implements which interface: listener, consumer ?
> > ------Original Message------
> > From: youhaodeyi
> > To: users@...
> > Subject: Re: Where does DeliveryChannel.send() to?
> > Sent: Oct 27, 2009 07:08
> >
> >
> > Hi,
> >
> > I define a bean component and want to route this message to another SU.
> > How
> > can I set its target service?
> >
> > thanks
> >
> >
> > Jean-Baptiste Onofré wrote:
> >>
> >> Hi,
> >>
> >> DeliveryChannel is part of JBI specification. So when you call send()
> >> method on it, the exchange containing the normalized message is send into
> >> the Normalized Router (NMR). The message is routed to the destination
> >> using exchange properties (target service, target endpoint, MEP, ...).
> >>
> >> Regards
> >> JB
> >> ------Original Message------
> >> From: youhaodeyi
> >> To: users@...
> >> ReplyTo: users@...
> >> Subject: Where does DeliveryChannel.send() to?
> >> Sent: Oct 27, 2009 02:17
> >>
> >>
> >> When I call DeliveryChannel.send(), where does the message go? how can I
> >> set
> >> the destination?
> >>
> >> thanks.
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >>
> >>
> >>
> >>
> >>
> >
> > --
> > View this message in context:
> > http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >
> >
> >
> >
>


Re: Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

Thanks for your information.

In this way, I have to configure the target service in code which can't be modified at runtime. Can I configure this in a configuration? Does servicemix support something like outbound router?

Regards

Maciek Prochniak wrote:
Hello,
we are using the following in such situation:

Instance variables:

@Resource
private DeliveryChannel channel;

@ExchangeTarget(uri="service:http://the.service.you.want.to.route")
private Destination target;

routing to another service:
 NormalizedMessage nm = target.createMessage();
 nm.setContent(new StringSource("<bububub/>"));
 nm.setProperty("fileId", "parara");
//you receive Future<NormalizedMessage> object
 target.send(nm);

There are some caveats in this approach:
1. target.createMessage() can only create InOut message exchanges.
2. onMessageExchange method is invoked in different contexts, this is
the code that finally worked for us:
 public void onMessageExchange(MessageExchange me) throws
MessagingException {
  //our bean is receiving request, otherwise it's reply from
target.send
  if (me.getRole().equals(Role.PROVIDER)) {
    //do the real stuff
    process();
  }
  //we have to acknowledge - otherwise e.g. memory leaks may happen  
  if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
  me.setStatus(ExchangeStatus.DONE);
  channel.send(me);
  }
}
   
hope this helps

br,
maciek



On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
> Hi,
>
> This is my xbean.xml file:
>
> <beans>
>
> <bean:endpoint service="uncompress_service"
> endpoint="uncompress_service_endpoint"
> bean="#receiver" />
>
> <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />
>
> </beans>
>
> The bean implements MessageExchangeListener interface. I want to route the
> message to another bean service.
>
>
>
>
> Jean-Baptiste Onofré wrote:
> >
> > Your bean components implements which interface: listener, consumer ?
> > ------Original Message------
> > From: youhaodeyi
> > To: users@servicemix.apache.org
> > Subject: Re: Where does DeliveryChannel.send() to?
> > Sent: Oct 27, 2009 07:08
> >
> >
> > Hi,
> >
> > I define a bean component and want to route this message to another SU.
> > How
> > can I set its target service?
> >
> > thanks
> >
> >
> > Jean-Baptiste Onofré wrote:
> >>
> >> Hi,
> >>
> >> DeliveryChannel is part of JBI specification. So when you call send()
> >> method on it, the exchange containing the normalized message is send into
> >> the Normalized Router (NMR). The message is routed to the destination
> >> using exchange properties (target service, target endpoint, MEP, ...).
> >>
> >> Regards
> >> JB
> >> ------Original Message------
> >> From: youhaodeyi
> >> To: users@servicemix.apache.org
> >> ReplyTo: users@servicemix.apache.org
> >> Subject: Where does DeliveryChannel.send() to?
> >> Sent: Oct 27, 2009 02:17
> >>
> >>
> >> When I call DeliveryChannel.send(), where does the message go? how can I
> >> set
> >> the destination?
> >>
> >> thanks.
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >>
> >>
> >>
> >>
> >>
> >
> > --
> > View this message in context:
> > http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >
> >
> >
> >
>

Re: Where does DeliveryChannel.send() to?

by Maciek Prochniak :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Well, guess you could try to do sth like:

Destination target = new
DestinationImpl("service:http://the.service.you.want.to.route",
beanEndpoint);

where the beanEndpoint is the bean created by

<bean:endpoint service="uncompress_service"
endpoint="uncompress_service_endpoint" bean="#receiver" />

but it's kind of clumsy, and IMHO it's far easier to use camel for such
purpose

br,
maciek

On Wed, 2009-10-28 at 17:48 -0700, youhaodeyi wrote:

> Hello,
>
> Thanks for your information.
>
> In this way, I have to configure the target service in code which can't be
> modified at runtime. Can I configure this in a configuration? Does
> servicemix support something like outbound router?
>
> Regards
>
>
> Maciek Prochniak wrote:
> >
> > Hello,
> > we are using the following in such situation:
> >
> > Instance variables:
> >
> > @Resource
> > private DeliveryChannel channel;
> >
> > @ExchangeTarget(uri="service:http://the.service.you.want.to.route")
> > private Destination target;
> >
> > routing to another service:
> >  NormalizedMessage nm = target.createMessage();
> >  nm.setContent(new StringSource("<bububub/>"));
> >  nm.setProperty("fileId", "parara");
> > //you receive Future<NormalizedMessage> object
> >  target.send(nm);
> >
> > There are some caveats in this approach:
> > 1. target.createMessage() can only create InOut message exchanges.
> > 2. onMessageExchange method is invoked in different contexts, this is
> > the code that finally worked for us:
> >  public void onMessageExchange(MessageExchange me) throws
> > MessagingException {
> >   //our bean is receiving request, otherwise it's reply from
> > target.send
> >   if (me.getRole().equals(Role.PROVIDER)) {
> >     //do the real stuff
> >     process();
> >   }
> >   //we have to acknowledge - otherwise e.g. memory leaks may happen  
> >   if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
> >   me.setStatus(ExchangeStatus.DONE);
> >   channel.send(me);
> >   }
> > }
> >    
> > hope this helps
> >
> > br,
> > maciek
> >
> >
> >
> > On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
> >> Hi,
> >>
> >> This is my xbean.xml file:
> >>
> >> <beans>
> >>
> >> <bean:endpoint service="uncompress_service"
> >> endpoint="uncompress_service_endpoint"
> >> bean="#receiver" />
> >>
> >> <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />
> >>
> >> </beans>
> >>
> >> The bean implements MessageExchangeListener interface. I want to route
> >> the
> >> message to another bean service.
> >>
> >>
> >>
> >>
> >> Jean-Baptiste Onofré wrote:
> >> >
> >> > Your bean components implements which interface: listener, consumer ?
> >> > ------Original Message------
> >> > From: youhaodeyi
> >> > To: users@...
> >> > Subject: Re: Where does DeliveryChannel.send() to?
> >> > Sent: Oct 27, 2009 07:08
> >> >
> >> >
> >> > Hi,
> >> >
> >> > I define a bean component and want to route this message to another SU.
> >> > How
> >> > can I set its target service?
> >> >
> >> > thanks
> >> >
> >> >
> >> > Jean-Baptiste Onofré wrote:
> >> >>
> >> >> Hi,
> >> >>
> >> >> DeliveryChannel is part of JBI specification. So when you call send()
> >> >> method on it, the exchange containing the normalized message is send
> >> into
> >> >> the Normalized Router (NMR). The message is routed to the destination
> >> >> using exchange properties (target service, target endpoint, MEP, ...).
> >> >>
> >> >> Regards
> >> >> JB
> >> >> ------Original Message------
> >> >> From: youhaodeyi
> >> >> To: users@...
> >> >> ReplyTo: users@...
> >> >> Subject: Where does DeliveryChannel.send() to?
> >> >> Sent: Oct 27, 2009 02:17
> >> >>
> >> >>
> >> >> When I call DeliveryChannel.send(), where does the message go? how can
> >> I
> >> >> set
> >> >> the destination?
> >> >>
> >> >> thanks.
> >> >> --
> >> >> View this message in context:
> >> >>
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> >> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >
> >> > --
> >> > View this message in context:
> >> >
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> >> > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >> >
> >> >
> >> >
> >> >
> >>
> >
> >
> >
>


Re: Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

How about if I want to send reply message to client first and then route the message to another SE?

Maciek Prochniak wrote:
Well, guess you could try to do sth like:

Destination target = new
DestinationImpl("service:http://the.service.you.want.to.route",
beanEndpoint);

where the beanEndpoint is the bean created by

<bean:endpoint service="uncompress_service"
endpoint="uncompress_service_endpoint" bean="#receiver" />

but it's kind of clumsy, and IMHO it's far easier to use camel for such
purpose

br,
maciek

On Wed, 2009-10-28 at 17:48 -0700, youhaodeyi wrote:
> Hello,
>
> Thanks for your information.
>
> In this way, I have to configure the target service in code which can't be
> modified at runtime. Can I configure this in a configuration? Does
> servicemix support something like outbound router?
>
> Regards
>
>
> Maciek Prochniak wrote:
> >
> > Hello,
> > we are using the following in such situation:
> >
> > Instance variables:
> >
> > @Resource
> > private DeliveryChannel channel;
> >
> > @ExchangeTarget(uri="service:http://the.service.you.want.to.route")
> > private Destination target;
> >
> > routing to another service:
> >  NormalizedMessage nm = target.createMessage();
> >  nm.setContent(new StringSource("<bububub/>"));
> >  nm.setProperty("fileId", "parara");
> > //you receive Future<NormalizedMessage> object
> >  target.send(nm);
> >
> > There are some caveats in this approach:
> > 1. target.createMessage() can only create InOut message exchanges.
> > 2. onMessageExchange method is invoked in different contexts, this is
> > the code that finally worked for us:
> >  public void onMessageExchange(MessageExchange me) throws
> > MessagingException {
> >   //our bean is receiving request, otherwise it's reply from
> > target.send
> >   if (me.getRole().equals(Role.PROVIDER)) {
> >     //do the real stuff
> >     process();
> >   }
> >   //we have to acknowledge - otherwise e.g. memory leaks may happen  
> >   if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
> >   me.setStatus(ExchangeStatus.DONE);
> >   channel.send(me);
> >   }
> > }
> >    
> > hope this helps
> >
> > br,
> > maciek
> >
> >
> >
> > On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
> >> Hi,
> >>
> >> This is my xbean.xml file:
> >>
> >> <beans>
> >>
> >> <bean:endpoint service="uncompress_service"
> >> endpoint="uncompress_service_endpoint"
> >> bean="#receiver" />
> >>
> >> <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />
> >>
> >> </beans>
> >>
> >> The bean implements MessageExchangeListener interface. I want to route
> >> the
> >> message to another bean service.
> >>
> >>
> >>
> >>
> >> Jean-Baptiste Onofré wrote:
> >> >
> >> > Your bean components implements which interface: listener, consumer ?
> >> > ------Original Message------
> >> > From: youhaodeyi
> >> > To: users@servicemix.apache.org
> >> > Subject: Re: Where does DeliveryChannel.send() to?
> >> > Sent: Oct 27, 2009 07:08
> >> >
> >> >
> >> > Hi,
> >> >
> >> > I define a bean component and want to route this message to another SU.
> >> > How
> >> > can I set its target service?
> >> >
> >> > thanks
> >> >
> >> >
> >> > Jean-Baptiste Onofré wrote:
> >> >>
> >> >> Hi,
> >> >>
> >> >> DeliveryChannel is part of JBI specification. So when you call send()
> >> >> method on it, the exchange containing the normalized message is send
> >> into
> >> >> the Normalized Router (NMR). The message is routed to the destination
> >> >> using exchange properties (target service, target endpoint, MEP, ...).
> >> >>
> >> >> Regards
> >> >> JB
> >> >> ------Original Message------
> >> >> From: youhaodeyi
> >> >> To: users@servicemix.apache.org
> >> >> ReplyTo: users@servicemix.apache.org
> >> >> Subject: Where does DeliveryChannel.send() to?
> >> >> Sent: Oct 27, 2009 02:17
> >> >>
> >> >>
> >> >> When I call DeliveryChannel.send(), where does the message go? how can
> >> I
> >> >> set
> >> >> the destination?
> >> >>
> >> >> thanks.
> >> >> --
> >> >> View this message in context:
> >> >>
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> >> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >
> >> > --
> >> > View this message in context:
> >> >
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> >> > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >> >
> >> >
> >> >
> >> >
> >>
> >
> >
> >
>

Re: Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Where is DestinationImpl defined? Can I plug-in it in the configuration file?

Maciek Prochniak wrote:
Well, guess you could try to do sth like:

Destination target = new
DestinationImpl("service:http://the.service.you.want.to.route",
beanEndpoint);

where the beanEndpoint is the bean created by

<bean:endpoint service="uncompress_service"
endpoint="uncompress_service_endpoint" bean="#receiver" />

but it's kind of clumsy, and IMHO it's far easier to use camel for such
purpose

br,
maciek

On Wed, 2009-10-28 at 17:48 -0700, youhaodeyi wrote:
> Hello,
>
> Thanks for your information.
>
> In this way, I have to configure the target service in code which can't be
> modified at runtime. Can I configure this in a configuration? Does
> servicemix support something like outbound router?
>
> Regards
>
>
> Maciek Prochniak wrote:
> >
> > Hello,
> > we are using the following in such situation:
> >
> > Instance variables:
> >
> > @Resource
> > private DeliveryChannel channel;
> >
> > @ExchangeTarget(uri="service:http://the.service.you.want.to.route")
> > private Destination target;
> >
> > routing to another service:
> >  NormalizedMessage nm = target.createMessage();
> >  nm.setContent(new StringSource("<bububub/>"));
> >  nm.setProperty("fileId", "parara");
> > //you receive Future<NormalizedMessage> object
> >  target.send(nm);
> >
> > There are some caveats in this approach:
> > 1. target.createMessage() can only create InOut message exchanges.
> > 2. onMessageExchange method is invoked in different contexts, this is
> > the code that finally worked for us:
> >  public void onMessageExchange(MessageExchange me) throws
> > MessagingException {
> >   //our bean is receiving request, otherwise it's reply from
> > target.send
> >   if (me.getRole().equals(Role.PROVIDER)) {
> >     //do the real stuff
> >     process();
> >   }
> >   //we have to acknowledge - otherwise e.g. memory leaks may happen  
> >   if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
> >   me.setStatus(ExchangeStatus.DONE);
> >   channel.send(me);
> >   }
> > }
> >    
> > hope this helps
> >
> > br,
> > maciek
> >
> >
> >
> > On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
> >> Hi,
> >>
> >> This is my xbean.xml file:
> >>
> >> <beans>
> >>
> >> <bean:endpoint service="uncompress_service"
> >> endpoint="uncompress_service_endpoint"
> >> bean="#receiver" />
> >>
> >> <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />
> >>
> >> </beans>
> >>
> >> The bean implements MessageExchangeListener interface. I want to route
> >> the
> >> message to another bean service.
> >>
> >>
> >>
> >>
> >> Jean-Baptiste Onofré wrote:
> >> >
> >> > Your bean components implements which interface: listener, consumer ?
> >> > ------Original Message------
> >> > From: youhaodeyi
> >> > To: users@servicemix.apache.org
> >> > Subject: Re: Where does DeliveryChannel.send() to?
> >> > Sent: Oct 27, 2009 07:08
> >> >
> >> >
> >> > Hi,
> >> >
> >> > I define a bean component and want to route this message to another SU.
> >> > How
> >> > can I set its target service?
> >> >
> >> > thanks
> >> >
> >> >
> >> > Jean-Baptiste Onofré wrote:
> >> >>
> >> >> Hi,
> >> >>
> >> >> DeliveryChannel is part of JBI specification. So when you call send()
> >> >> method on it, the exchange containing the normalized message is send
> >> into
> >> >> the Normalized Router (NMR). The message is routed to the destination
> >> >> using exchange properties (target service, target endpoint, MEP, ...).
> >> >>
> >> >> Regards
> >> >> JB
> >> >> ------Original Message------
> >> >> From: youhaodeyi
> >> >> To: users@servicemix.apache.org
> >> >> ReplyTo: users@servicemix.apache.org
> >> >> Subject: Where does DeliveryChannel.send() to?
> >> >> Sent: Oct 27, 2009 02:17
> >> >>
> >> >>
> >> >> When I call DeliveryChannel.send(), where does the message go? how can
> >> I
> >> >> set
> >> >> the destination?
> >> >>
> >> >> thanks.
> >> >> --
> >> >> View this message in context:
> >> >>
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> >> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >
> >> > --
> >> > View this message in context:
> >> >
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> >> > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >> >
> >> >
> >> >
> >> >
> >>
> >
> >
> >
>

Re: Where does DeliveryChannel.send() to?

by Maciek Prochniak :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

it's in  org.apache.servicemix.bean.support package (servicemix-bean).

What do you mean by 'plugin-in in configuration file'?
Define it in xbean.xml?

br,
maciek


On Sat, 14 Nov 2009 02:57:44 -0800 (PST), youhaodeyi <youhaodeyi@...>
wrote:

> Where is DestinationImpl defined? Can I plug-in it in the configuration
> file?
>
>
> Maciek Prochniak wrote:
>>
>> Well, guess you could try to do sth like:
>>
>> Destination target = new
>> DestinationImpl("service:http://the.service.you.want.to.route",
>> beanEndpoint);
>>
>> where the beanEndpoint is the bean created by
>>
>> <bean:endpoint service="uncompress_service"
>> endpoint="uncompress_service_endpoint" bean="#receiver" />
>>
>> but it's kind of clumsy, and IMHO it's far easier to use camel for such
>> purpose
>>
>> br,
>> maciek
>>
>> On Wed, 2009-10-28 at 17:48 -0700, youhaodeyi wrote:
>>> Hello,
>>>
>>> Thanks for your information.
>>>
>>> In this way, I have to configure the target service in code which can't
>>> be
>>> modified at runtime. Can I configure this in a configuration? Does
>>> servicemix support something like outbound router?
>>>
>>> Regards
>>>
>>>
>>> Maciek Prochniak wrote:
>>> >
>>> > Hello,
>>> > we are using the following in such situation:
>>> >
>>> > Instance variables:
>>> >
>>> > @Resource
>>> > private DeliveryChannel channel;
>>> >
>>> > @ExchangeTarget(uri="service:http://the.service.you.want.to.route")
>>> > private Destination target;
>>> >
>>> > routing to another service:
>>> >  NormalizedMessage nm = target.createMessage();
>>> >  nm.setContent(new StringSource("<bububub/>"));
>>> >  nm.setProperty("fileId", "parara");
>>> > //you receive Future<NormalizedMessage> object
>>> >  target.send(nm);
>>> >
>>> > There are some caveats in this approach:
>>> > 1. target.createMessage() can only create InOut message exchanges.
>>> > 2. onMessageExchange method is invoked in different contexts, this is
>>> > the code that finally worked for us:
>>> >  public void onMessageExchange(MessageExchange me) throws
>>> > MessagingException {
>>> >   //our bean is receiving request, otherwise it's reply from
>>> > target.send
>>> >   if (me.getRole().equals(Role.PROVIDER)) {
>>> >     //do the real stuff
>>> >     process();
>>> >   }
>>> >   //we have to acknowledge - otherwise e.g. memory leaks may happen  
>>> >
>>> >   if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
>>> >   me.setStatus(ExchangeStatus.DONE);
>>> >   channel.send(me);
>>> >   }
>>> > }
>>> >    
>>> > hope this helps
>>> >
>>> > br,
>>> > maciek
>>> >
>>> >
>>> >
>>> > On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
>>> >> Hi,
>>> >>
>>> >> This is my xbean.xml file:
>>> >>
>>> >> <beans>
>>> >>
>>> >> <bean:endpoint service="uncompress_service"
>>> >> endpoint="uncompress_service_endpoint"
>>> >> bean="#receiver" />
>>> >>
>>> >> <bean id="receiver"
class="com.ge.med.ric.service.UncompressService"

>>> />
>>> >>
>>> >> </beans>
>>> >>
>>> >> The bean implements MessageExchangeListener interface. I want to
>>> >> route
>>> >> the
>>> >> message to another bean service.
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> Jean-Baptiste Onofré wrote:
>>> >> >
>>> >> > Your bean components implements which interface: listener,
consumer

>>> ?
>>> >> > ------Original Message------
>>> >> > From: youhaodeyi
>>> >> > To: users@...
>>> >> > Subject: Re: Where does DeliveryChannel.send() to?
>>> >> > Sent: Oct 27, 2009 07:08
>>> >> >
>>> >> >
>>> >> > Hi,
>>> >> >
>>> >> > I define a bean component and want to route this message to
another

>>> SU.
>>> >> > How
>>> >> > can I set its target service?
>>> >> >
>>> >> > thanks
>>> >> >
>>> >> >
>>> >> > Jean-Baptiste Onofré wrote:
>>> >> >>
>>> >> >> Hi,
>>> >> >>
>>> >> >> DeliveryChannel is part of JBI specification. So when you call
>>> send()
>>> >> >> method on it, the exchange containing the normalized message is
>>> send
>>> >> into
>>> >> >> the Normalized Router (NMR). The message is routed to the
>>> destination
>>> >> >> using exchange properties (target service, target endpoint, MEP,
>>> ...).
>>> >> >>
>>> >> >> Regards
>>> >> >> JB
>>> >> >> ------Original Message------
>>> >> >> From: youhaodeyi
>>> >> >> To: users@...
>>> >> >> ReplyTo: users@...
>>> >> >> Subject: Where does DeliveryChannel.send() to?
>>> >> >> Sent: Oct 27, 2009 02:17
>>> >> >>
>>> >> >>
>>> >> >> When I call DeliveryChannel.send(), where does the message go?
how

>>> can
>>> >> I
>>> >> >> set
>>> >> >> the destination?
>>> >> >>
>>> >> >> thanks.
>>> >> >> --
>>> >> >> View this message in context:
>>> >> >>
>>> >>
>>>
http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html

>>> >> >> Sent from the ServiceMix - User mailing list archive at
>>> >> >> Nabble.com.
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >
>>> >> > --
>>> >> > View this message in context:
>>> >> >
>>> >>
>>>
http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
>>> >> > Sent from the ServiceMix - User mailing list archive at
Nabble.com.

>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >>
>>> >
>>> >
>>> >
>>>
>>
>>
>>

Re: Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Yes I mean plug-in the xbean.xml.

What I want to do is to make the service url be configured.
In addition, can I use Destination to send message to a service by service name or endpoint name not url? I have a service doesn't have an URL. How can I send message to this service?

thanks,

Zhao Yi

Maciek Prochniak wrote:
it's in  org.apache.servicemix.bean.support package (servicemix-bean).

What do you mean by 'plugin-in in configuration file'?
Define it in xbean.xml?

br,
maciek


On Sat, 14 Nov 2009 02:57:44 -0800 (PST), youhaodeyi <youhaodeyi@gmail.com>
wrote:
> Where is DestinationImpl defined? Can I plug-in it in the configuration
> file?
>
>
> Maciek Prochniak wrote:
>>
>> Well, guess you could try to do sth like:
>>
>> Destination target = new
>> DestinationImpl("service:http://the.service.you.want.to.route",
>> beanEndpoint);
>>
>> where the beanEndpoint is the bean created by
>>
>> <bean:endpoint service="uncompress_service"
>> endpoint="uncompress_service_endpoint" bean="#receiver" />
>>
>> but it's kind of clumsy, and IMHO it's far easier to use camel for such
>> purpose
>>
>> br,
>> maciek
>>
>> On Wed, 2009-10-28 at 17:48 -0700, youhaodeyi wrote:
>>> Hello,
>>>
>>> Thanks for your information.
>>>
>>> In this way, I have to configure the target service in code which can't
>>> be
>>> modified at runtime. Can I configure this in a configuration? Does
>>> servicemix support something like outbound router?
>>>
>>> Regards
>>>
>>>
>>> Maciek Prochniak wrote:
>>> >
>>> > Hello,
>>> > we are using the following in such situation:
>>> >
>>> > Instance variables:
>>> >
>>> > @Resource
>>> > private DeliveryChannel channel;
>>> >
>>> > @ExchangeTarget(uri="service:http://the.service.you.want.to.route")
>>> > private Destination target;
>>> >
>>> > routing to another service:
>>> >  NormalizedMessage nm = target.createMessage();
>>> >  nm.setContent(new StringSource("<bububub/>"));
>>> >  nm.setProperty("fileId", "parara");
>>> > //you receive Future<NormalizedMessage> object
>>> >  target.send(nm);
>>> >
>>> > There are some caveats in this approach:
>>> > 1. target.createMessage() can only create InOut message exchanges.
>>> > 2. onMessageExchange method is invoked in different contexts, this is
>>> > the code that finally worked for us:
>>> >  public void onMessageExchange(MessageExchange me) throws
>>> > MessagingException {
>>> >   //our bean is receiving request, otherwise it's reply from
>>> > target.send
>>> >   if (me.getRole().equals(Role.PROVIDER)) {
>>> >     //do the real stuff
>>> >     process();
>>> >   }
>>> >   //we have to acknowledge - otherwise e.g. memory leaks may happen  
>>> >
>>> >   if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
>>> >   me.setStatus(ExchangeStatus.DONE);
>>> >   channel.send(me);
>>> >   }
>>> > }
>>> >    
>>> > hope this helps
>>> >
>>> > br,
>>> > maciek
>>> >
>>> >
>>> >
>>> > On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
>>> >> Hi,
>>> >>
>>> >> This is my xbean.xml file:
>>> >>
>>> >> <beans>
>>> >>
>>> >> <bean:endpoint service="uncompress_service"
>>> >> endpoint="uncompress_service_endpoint"
>>> >> bean="#receiver" />
>>> >>
>>> >> <bean id="receiver"
class="com.ge.med.ric.service.UncompressService"
>>> />
>>> >>
>>> >> </beans>
>>> >>
>>> >> The bean implements MessageExchangeListener interface. I want to
>>> >> route
>>> >> the
>>> >> message to another bean service.
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> Jean-Baptiste Onofré wrote:
>>> >> >
>>> >> > Your bean components implements which interface: listener,
consumer
>>> ?
>>> >> > ------Original Message------
>>> >> > From: youhaodeyi
>>> >> > To: users@servicemix.apache.org
>>> >> > Subject: Re: Where does DeliveryChannel.send() to?
>>> >> > Sent: Oct 27, 2009 07:08
>>> >> >
>>> >> >
>>> >> > Hi,
>>> >> >
>>> >> > I define a bean component and want to route this message to
another
>>> SU.
>>> >> > How
>>> >> > can I set its target service?
>>> >> >
>>> >> > thanks
>>> >> >
>>> >> >
>>> >> > Jean-Baptiste Onofré wrote:
>>> >> >>
>>> >> >> Hi,
>>> >> >>
>>> >> >> DeliveryChannel is part of JBI specification. So when you call
>>> send()
>>> >> >> method on it, the exchange containing the normalized message is
>>> send
>>> >> into
>>> >> >> the Normalized Router (NMR). The message is routed to the
>>> destination
>>> >> >> using exchange properties (target service, target endpoint, MEP,
>>> ...).
>>> >> >>
>>> >> >> Regards
>>> >> >> JB
>>> >> >> ------Original Message------
>>> >> >> From: youhaodeyi
>>> >> >> To: users@servicemix.apache.org
>>> >> >> ReplyTo: users@servicemix.apache.org
>>> >> >> Subject: Where does DeliveryChannel.send() to?
>>> >> >> Sent: Oct 27, 2009 02:17
>>> >> >>
>>> >> >>
>>> >> >> When I call DeliveryChannel.send(), where does the message go?
how
>>> can
>>> >> I
>>> >> >> set
>>> >> >> the destination?
>>> >> >>
>>> >> >> thanks.
>>> >> >> --
>>> >> >> View this message in context:
>>> >> >>
>>> >>
>>>
http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
>>> >> >> Sent from the ServiceMix - User mailing list archive at
>>> >> >> Nabble.com.
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >
>>> >> > --
>>> >> > View this message in context:
>>> >> >
>>> >>
>>>
http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
>>> >> > Sent from the ServiceMix - User mailing list archive at
Nabble.com.
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >>
>>> >
>>> >
>>> >
>>>
>>
>>
>>

Re: Where does DeliveryChannel.send() to?

by youhaodeyi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I don't find send() method in Destination class. How can you send message to the target service?

thanks,

Zhao Yi
Maciek Prochniak wrote:
Hello,
we are using the following in such situation:

Instance variables:

@Resource
private DeliveryChannel channel;

@ExchangeTarget(uri="service:http://the.service.you.want.to.route")
private Destination target;

routing to another service:
 NormalizedMessage nm = target.createMessage();
 nm.setContent(new StringSource("<bububub/>"));
 nm.setProperty("fileId", "parara");
//you receive Future<NormalizedMessage> object
 target.send(nm);

There are some caveats in this approach:
1. target.createMessage() can only create InOut message exchanges.
2. onMessageExchange method is invoked in different contexts, this is
the code that finally worked for us:
 public void onMessageExchange(MessageExchange me) throws
MessagingException {
  //our bean is receiving request, otherwise it's reply from
target.send
  if (me.getRole().equals(Role.PROVIDER)) {
    //do the real stuff
    process();
  }
  //we have to acknowledge - otherwise e.g. memory leaks may happen  
  if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
  me.setStatus(ExchangeStatus.DONE);
  channel.send(me);
  }
}
   
hope this helps

br,
maciek



On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
> Hi,
>
> This is my xbean.xml file:
>
> <beans>
>
> <bean:endpoint service="uncompress_service"
> endpoint="uncompress_service_endpoint"
> bean="#receiver" />
>
> <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />
>
> </beans>
>
> The bean implements MessageExchangeListener interface. I want to route the
> message to another bean service.
>
>
>
>
> Jean-Baptiste Onofré wrote:
> >
> > Your bean components implements which interface: listener, consumer ?
> > ------Original Message------
> > From: youhaodeyi
> > To: users@servicemix.apache.org
> > Subject: Re: Where does DeliveryChannel.send() to?
> > Sent: Oct 27, 2009 07:08
> >
> >
> > Hi,
> >
> > I define a bean component and want to route this message to another SU.
> > How
> > can I set its target service?
> >
> > thanks
> >
> >
> > Jean-Baptiste Onofré wrote:
> >>
> >> Hi,
> >>
> >> DeliveryChannel is part of JBI specification. So when you call send()
> >> method on it, the exchange containing the normalized message is send into
> >> the Normalized Router (NMR). The message is routed to the destination
> >> using exchange properties (target service, target endpoint, MEP, ...).
> >>
> >> Regards
> >> JB
> >> ------Original Message------
> >> From: youhaodeyi
> >> To: users@servicemix.apache.org
> >> ReplyTo: users@servicemix.apache.org
> >> Subject: Where does DeliveryChannel.send() to?
> >> Sent: Oct 27, 2009 02:17
> >>
> >>
> >> When I call DeliveryChannel.send(), where does the message go? how can I
> >> set
> >> the destination?
> >>
> >> thanks.
> >> --
> >> View this message in context:
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >>
> >>
> >>
> >>
> >>
> >
> > --
> > View this message in context:
> > http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >
> >
> >
> >
>

Re: Where does DeliveryChannel.send() to?

by Maciek Prochniak :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

in smx 3.3, it has signature in Destination interface:
Future<NormalizedMessage> send(NormalizedMessage message).
Which version are you using?

br, maciek


On Sat, 2009-11-14 at 17:46 -0800, youhaodeyi wrote:

> Hi,
>
> I don't find send() method in Destination class. How can you send message to
> the target service?
>
> thanks,
>
> Zhao Yi
>
> Maciek Prochniak wrote:
> >
> > Hello,
> > we are using the following in such situation:
> >
> > Instance variables:
> >
> > @Resource
> > private DeliveryChannel channel;
> >
> > @ExchangeTarget(uri="service:http://the.service.you.want.to.route")
> > private Destination target;
> >
> > routing to another service:
> >  NormalizedMessage nm = target.createMessage();
> >  nm.setContent(new StringSource("<bububub/>"));
> >  nm.setProperty("fileId", "parara");
> > //you receive Future<NormalizedMessage> object
> >  target.send(nm);
> >
> > There are some caveats in this approach:
> > 1. target.createMessage() can only create InOut message exchanges.
> > 2. onMessageExchange method is invoked in different contexts, this is
> > the code that finally worked for us:
> >  public void onMessageExchange(MessageExchange me) throws
> > MessagingException {
> >   //our bean is receiving request, otherwise it's reply from
> > target.send
> >   if (me.getRole().equals(Role.PROVIDER)) {
> >     //do the real stuff
> >     process();
> >   }
> >   //we have to acknowledge - otherwise e.g. memory leaks may happen  
> >   if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
> >   me.setStatus(ExchangeStatus.DONE);
> >   channel.send(me);
> >   }
> > }
> >    
> > hope this helps
> >
> > br,
> > maciek
> >
> >
> >
> > On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
> >> Hi,
> >>
> >> This is my xbean.xml file:
> >>
> >> <beans>
> >>
> >> <bean:endpoint service="uncompress_service"
> >> endpoint="uncompress_service_endpoint"
> >> bean="#receiver" />
> >>
> >> <bean id="receiver" class="com.ge.med.ric.service.UncompressService" />
> >>
> >> </beans>
> >>
> >> The bean implements MessageExchangeListener interface. I want to route
> >> the
> >> message to another bean service.
> >>
> >>
> >>
> >>
> >> Jean-Baptiste Onofré wrote:
> >> >
> >> > Your bean components implements which interface: listener, consumer ?
> >> > ------Original Message------
> >> > From: youhaodeyi
> >> > To: users@...
> >> > Subject: Re: Where does DeliveryChannel.send() to?
> >> > Sent: Oct 27, 2009 07:08
> >> >
> >> >
> >> > Hi,
> >> >
> >> > I define a bean component and want to route this message to another SU.
> >> > How
> >> > can I set its target service?
> >> >
> >> > thanks
> >> >
> >> >
> >> > Jean-Baptiste Onofré wrote:
> >> >>
> >> >> Hi,
> >> >>
> >> >> DeliveryChannel is part of JBI specification. So when you call send()
> >> >> method on it, the exchange containing the normalized message is send
> >> into
> >> >> the Normalized Router (NMR). The message is routed to the destination
> >> >> using exchange properties (target service, target endpoint, MEP, ...).
> >> >>
> >> >> Regards
> >> >> JB
> >> >> ------Original Message------
> >> >> From: youhaodeyi
> >> >> To: users@...
> >> >> ReplyTo: users@...
> >> >> Subject: Where does DeliveryChannel.send() to?
> >> >> Sent: Oct 27, 2009 02:17
> >> >>
> >> >>
> >> >> When I call DeliveryChannel.send(), where does the message go? how can
> >> I
> >> >> set
> >> >> the destination?
> >> >>
> >> >> thanks.
> >> >> --
> >> >> View this message in context:
> >> >>
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> >> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >
> >> > --
> >> > View this message in context:
> >> >
> >> http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> >> > Sent from the ServiceMix - User mailing list archive at Nabble.com.
> >> >
> >> >
> >> >
> >> >
> >>
> >
> >
> >
>


Re: Where does DeliveryChannel.send() to?

by Maciek Prochniak :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Sat, 2009-11-14 at 17:22 -0800, youhaodeyi wrote:
> Yes I mean plug-in the xbean.xml.
>
> What I want to do is to make the service url be configured.
> In addition, can I use Destination to send message to a service by service
> name or endpoint name not url? I have a service doesn't have an URL. How can
> I send message to this service?

what do you mean by service that doesn't have URL??
Each service is identified on NMR by uri - if you use form of
urn:foo:bar:MyService:MyEndpoint - then you can also use it
in Destination configuration.

About configuration in xbean.xml - I think it's easiest
to inject just the URI of target service - e.g.
have destinationServiceURI property (string) in bean implementing
MessageExchangeListener, and then just use it to create
destination

br,
maciek

> thanks,
>
> Zhao Yi
>
>
> Maciek Prochniak wrote:
> >
> > it's in  org.apache.servicemix.bean.support package (servicemix-bean).
> >
> > What do you mean by 'plugin-in in configuration file'?
> > Define it in xbean.xml?
> >
> > br,
> > maciek
> >
> >
> > On Sat, 14 Nov 2009 02:57:44 -0800 (PST), youhaodeyi
> > <youhaodeyi@...>
> > wrote:
> >> Where is DestinationImpl defined? Can I plug-in it in the configuration
> >> file?
> >>
> >>
> >> Maciek Prochniak wrote:
> >>>
> >>> Well, guess you could try to do sth like:
> >>>
> >>> Destination target = new
> >>> DestinationImpl("service:http://the.service.you.want.to.route",
> >>> beanEndpoint);
> >>>
> >>> where the beanEndpoint is the bean created by
> >>>
> >>> <bean:endpoint service="uncompress_service"
> >>> endpoint="uncompress_service_endpoint" bean="#receiver" />
> >>>
> >>> but it's kind of clumsy, and IMHO it's far easier to use camel for such
> >>> purpose
> >>>
> >>> br,
> >>> maciek
> >>>
> >>> On Wed, 2009-10-28 at 17:48 -0700, youhaodeyi wrote:
> >>>> Hello,
> >>>>
> >>>> Thanks for your information.
> >>>>
> >>>> In this way, I have to configure the target service in code which can't
> >>>> be
> >>>> modified at runtime. Can I configure this in a configuration? Does
> >>>> servicemix support something like outbound router?
> >>>>
> >>>> Regards
> >>>>
> >>>>
> >>>> Maciek Prochniak wrote:
> >>>> >
> >>>> > Hello,
> >>>> > we are using the following in such situation:
> >>>> >
> >>>> > Instance variables:
> >>>> >
> >>>> > @Resource
> >>>> > private DeliveryChannel channel;
> >>>> >
> >>>> > @ExchangeTarget(uri="service:http://the.service.you.want.to.route")
> >>>> > private Destination target;
> >>>> >
> >>>> > routing to another service:
> >>>> >  NormalizedMessage nm = target.createMessage();
> >>>> >  nm.setContent(new StringSource("<bububub/>"));
> >>>> >  nm.setProperty("fileId", "parara");
> >>>> > //you receive Future<NormalizedMessage> object
> >>>> >  target.send(nm);
> >>>> >
> >>>> > There are some caveats in this approach:
> >>>> > 1. target.createMessage() can only create InOut message exchanges.
> >>>> > 2. onMessageExchange method is invoked in different contexts, this is
> >>>> > the code that finally worked for us:
> >>>> >  public void onMessageExchange(MessageExchange me) throws
> >>>> > MessagingException {
> >>>> >   //our bean is receiving request, otherwise it's reply from
> >>>> > target.send
> >>>> >   if (me.getRole().equals(Role.PROVIDER)) {
> >>>> >     //do the real stuff
> >>>> >     process();
> >>>> >   }
> >>>> >   //we have to acknowledge - otherwise e.g. memory leaks may happen  
> >>>> >
> >>>> >   if (me.getStatus().equals(ExchangeStatus.ACTIVE)) {
> >>>> >   me.setStatus(ExchangeStatus.DONE);
> >>>> >   channel.send(me);
> >>>> >   }
> >>>> > }
> >>>> >    
> >>>> > hope this helps
> >>>> >
> >>>> > br,
> >>>> > maciek
> >>>> >
> >>>> >
> >>>> >
> >>>> > On Mon, 2009-10-26 at 23:23 -0700, youhaodeyi wrote:
> >>>> >> Hi,
> >>>> >>
> >>>> >> This is my xbean.xml file:
> >>>> >>
> >>>> >> <beans>
> >>>> >>
> >>>> >> <bean:endpoint service="uncompress_service"
> >>>> >> endpoint="uncompress_service_endpoint"
> >>>> >> bean="#receiver" />
> >>>> >>
> >>>> >> <bean id="receiver"
> > class="com.ge.med.ric.service.UncompressService"
> >>>> />
> >>>> >>
> >>>> >> </beans>
> >>>> >>
> >>>> >> The bean implements MessageExchangeListener interface. I want to
> >>>> >> route
> >>>> >> the
> >>>> >> message to another bean service.
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >> Jean-Baptiste Onofré wrote:
> >>>> >> >
> >>>> >> > Your bean components implements which interface: listener,
> > consumer
> >>>> ?
> >>>> >> > ------Original Message------
> >>>> >> > From: youhaodeyi
> >>>> >> > To: users@...
> >>>> >> > Subject: Re: Where does DeliveryChannel.send() to?
> >>>> >> > Sent: Oct 27, 2009 07:08
> >>>> >> >
> >>>> >> >
> >>>> >> > Hi,
> >>>> >> >
> >>>> >> > I define a bean component and want to route this message to
> > another
> >>>> SU.
> >>>> >> > How
> >>>> >> > can I set its target service?
> >>>> >> >
> >>>> >> > thanks
> >>>> >> >
> >>>> >> >
> >>>> >> > Jean-Baptiste Onofré wrote:
> >>>> >> >>
> >>>> >> >> Hi,
> >>>> >> >>
> >>>> >> >> DeliveryChannel is part of JBI specification. So when you call
> >>>> send()
> >>>> >> >> method on it, the exchange containing the normalized message is
> >>>> send
> >>>> >> into
> >>>> >> >> the Normalized Router (NMR). The message is routed to the
> >>>> destination
> >>>> >> >> using exchange properties (target service, target endpoint, MEP,
> >>>> ...).
> >>>> >> >>
> >>>> >> >> Regards
> >>>> >> >> JB
> >>>> >> >> ------Original Message------
> >>>> >> >> From: youhaodeyi
> >>>> >> >> To: users@...
> >>>> >> >> ReplyTo: users@...
> >>>> >> >> Subject: Where does DeliveryChannel.send() to?
> >>>> >> >> Sent: Oct 27, 2009 02:17
> >>>> >> >>
> >>>> >> >>
> >>>> >> >> When I call DeliveryChannel.send(), where does the message go?
> > how
> >>>> can
> >>>> >> I
> >>>> >> >> set
> >>>> >> >> the destination?
> >>>> >> >>
> >>>> >> >> thanks.
> >>>> >> >> --
> >>>> >> >> View this message in context:
> >>>> >> >>
> >>>> >>
> >>>>
> > http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26070654.html
> >>>> >> >> Sent from the ServiceMix - User mailing list archive at
> >>>> >> >> Nabble.com.
> >>>> >> >>
> >>>> >> >>
> >>>> >> >>
> >>>> >> >>
> >>>> >> >>
> >>>> >> >
> >>>> >> > --
> >>>> >> > View this message in context:
> >>>> >> >
> >>>> >>
> >>>>
> > http://www.nabble.com/Where-does-DeliveryChannel.send%28%29-to--tp26070654p26072560.html
> >>>> >> > Sent from the ServiceMix - User mailing list archive at
> > Nabble.com.
> >>>> >> >
> >>>> >> >
> >>>> >> >
> >>>> >> >
> >>>> >>
> >>>> >
> >>>> >
> >>>> >
> >>>>
> >>>
> >>>
> >>>
> >
> >
>