I have another question. I am looking at the servicemix.xml in the su
directory. In the servicemix.xml, it states the brokerURL as
tcp://localhost:61616.
My question is, is it possible to change this URL dynamically? Is it
possible that after I change the URL (possibly the port number) in the
servicemix.xml, I don't need to rebuild the loanbroker-sa.zip? That is can
I not include the servicemix.xml in the loanbroker-sa.zip but just deploy
it, will loanbroker-sa.zip able to find the servicemix.xml for the service
unit in its classpath?
Thanks for your help!!!
dadade wrote:
>
> Thank you for your help again!
>
> I am still confused about my first question.
>
> I am looking at the servicemix.xml (The loanBrokerJmsBinding Component).
> I see the defaultDestinationName's value is "demo.org.servicemix.source".
>
> How does the loanBrokerJmsBinding Component stated in the servicemix.xml
> know where to put the out message? Should there be another property that
> has the value of
> "demo.org.servicemix.output" in the servicemix.xml?
>
> Also, when I build the Loan Broker Example, I see two components being
> install: servicemix-lwcontainer-3.0-incubating-installer.zip and
> servicemix-shared-3.0-incubating-installer.zip. What are these components
> for?
>
> Thanks
>
>
> gnodet wrote:
>>
>> On 10/10/06, dadade <[EMAIL PROTECTED]> wrote:
>>>
>>> Thank you for providing detail explanation. It really helps me
>>> understand.
>>> Thanks!
>>>
>>> Another question, in the LoanBroker class after processing loan quote,
>>> it
>>> invokes send(ag.request). How does it know it is going to put the out
>>> the
>>> message in the ActiveMQQueue ("demo.org.servicemix.output") from the
>>> server
>>> side? If it is not define in the server side, what if there are
>>> multiple
>>> applications being deployed, how does it know which output queue the out
>>> message should go to?
>>
>> At this point, the LoanBroker just create the out message of the request
>> and send it back. The NMR will route it to the consumer component
>> (the loanBrokerJmsBinding component). The JMS destination used
>> for answers has been provided using the JMSReplyTo destination
>> property by the client (look at JMSClient.java)
>>
>>>
>>> I am trying to create a InOnly Message Exchange example that use the
>>> same
>>> loan broker pattern.
>>>
>>> 1. I have the Client-to-JmsServiceComponent interaction.
>>> 2. JmsServiceComponent-to-Controller interaction.
>>> 3. Controller to DataManagementComponent interaction.
>>>
>>> The Controller is like the Loan Broker (provider of the
>>> JmsServiceComponent
>>> and consumer of the DataManagementComponent). DataManagementComponent
>>> is
>>> the provider. I implemented the DataManagementComponent by extending
>>> the
>>> TransformComponentSupport and implementing the transform method. My
>>> question is, am I extending the right class and implement the right
>>> method?
>>> Also, where do I call the done(exchange) for the
>>> DataManagementComponent?
>>
>> The TransformComponentSupport will handle the status of the exchange for
>> you,
>> so you just have to fill the output message. TransformComponentSupport
>> should
>> be implemented by components that just act as a provider, receive an
>> exchange
>> and fill the output. If you need to create and send exchanges (acting as
>> a
>> consumer), you should use its parent class: ComponentSUpport.
>>
>>>
>>> Another question is for the JMSClient, since this is an InOnly Message
>>> Exchange, do I still need to use
>>> MultiplexingRequestor.newInstance(factory,
>>> inQueue, outQueue)? Because I don't think I will have an outQueue.
>>
>> No. This example uses Lingo as a client, but you can use another way
>> (plain jms, spring, etc ...) if you prefer.
>>
>>>
>>> Thanks for your help in advance!!!
>>>
>>>
>>> gnodet wrote:
>>> >
>>> > On 10/6/06, dadade <[EMAIL PROTECTED]> wrote:
>>> >>
>>> >> I am trying to understand how ServiceMix works with JMS and
>>> >> WS-Notification/Web Service.
>>> >> The questions I am asking might be stupid, but just trying to
>>> understand.
>>> >>
>>> >> Looking at the loan broker example:
>>> >>
>>> >> The LOANBROKER_NS is the namespace, does this has to be a accessable
>>> URI?
>>> >>
>>> >> The line :
>>> >> super(new QName(Constants.LOANBROKER_NS,
>>> Constants.LOANBROKER_SERVICE),
>>> >> "input");
>>> >>
>>> >> Is "input" the endpoint? Where is input begin defined? Is it a
>>> reserved
>>> >> keyword?
>>> >
>>> > "input" is indeed the endpoint name, but in the configuration, only
>>> the
>>> > service
>>> > name is specified for routing.
>>> >
>>> > <sm:activationSpec componentName="loanBrokerJmsBinding"
>>> >
>>> destinationService="lb:loan-broker">
>>> >
>>> > so the endpoint name is not used in this case
>>> >
>>> >>
>>> >> I am looking at the Interaction between JmsServiceComponet to
>>> LoanBroker.
>>> >> So after
>>> >> loan broker process the input request, it is send out to Credit
>>> Agency by
>>> >> invoking send(inout). How is send(inout) invoke the transform method
>>> in
>>> >> the
>>> >> CreditAgency class?
>>> >
>>> > Lightweight components implements the MessageExchangeListener.
>>> > All jbi exchanges sent to a component go to the onMessageExchange
>>> > method. The loanbroker sends an InOut exchange asynchronously
>>> > to the specified service using
>>> > new QName(Constants.LOANBROKER_NS, Constants.CREDITAGENCY_SERVICE)
>>> > The JBI NMR will send the exchange to the matching service name:
>>> >
>>> > <sm:activationSpec componentName="creditAgency"
>>> > service="lb:credit-agency">
>>> >
>>> > which is the loanbroker.CreditAgency component.
>>> > This component extends TransformComponentSupport and thus will receive
>>> > the request in its transform method.
>>> >
>>> >>
>>> >> Then if I look at the CreditAgency class, the transform method takes
>>> >> MessageExchange exchange, NormalizedMessage in, and NormalizedMessge
>>> out
>>> >> as
>>> >> arguments. Which argument in the transform method does the Inout
>>> inout
>>> >> refers to?
>>> >
>>> > InOut, InOnly, RobustInOnly and InOptionalOut are all interfaces
>>> > deriving from MessageExchange. So the inout exchange sent by the
>>> > loanbroker is received in the "exchange" parameter. The "msg" message
>>> > created by the loanbroker (which is the "in" message of the InOut
>>> > exchange)
>>> > is mapped to the "in" parameter of the transform method. The "out"
>>> > parameter is created by the TransformComponentSupport.
>>> >
>>> >>
>>> >> Why doesn't the CreditAgency class need to extends ComponentSupport
>>> but
>>> >> just
>>> >> the TransformComponentSupport?
>>> >
>>> > TransformComponentSupport extends ComponentSupport and provides
>>> > additional
>>> > methods to ease the writing of simple components that mainly support a
>>> > request / response pattern. The loan broker is more complicated, so
>>> it
>>> > can
>>> > not benefit from the implementation of TransformComponentSupport.
>>> >
>>> > The main difference is that the CreditAgency only acts as a provider
>>> > (it receives a jbi exchange, process it and send it back), whereas
>>> > the loanbroker acts as both a provider and a consumer (it creates
>>> > exchange and send them to other components).
>>> >
>>> >>
>>> >> Why doesn't the CreditAgency class need the onMessageExchange method?
>>> >
>>> > Because it is implemented by the TransformComponentSupport
>>> >
>>> >
>>> http://incubator.apache.org/servicemix/dist/servicemix-3.0-incubating/site/servicemix-core/apidocs/org/apache/servicemix/components/util/package-frame.html
>>> >
>>> http://incubator.apache.org/servicemix/dist/servicemix-3.0-incubating/site/servicemix-core/xref/org/apache/servicemix/components/util/TransformComponentSupport.html
>>> >
>>> > As can see, TransformComponentSupport implements the onMessageExchange
>>> > and derived classes just need to implement the transform method.
>>> >
>>> >>
>>> >> Thanks
>>> >> --
>>> >> View this message in context:
>>> >> http://www.nabble.com/JMS-Implementation-tf2392384.html#a6670308
>>> >> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>> >>
>>> >>
>>> >
>>> >
>>> > --
>>> > Cheers,
>>> > Guillaume Nodet
>>> >
>>> >
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/JMS-Implementation-tf2392384.html#a6729245
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>> --
>> Cheers,
>> Guillaume Nodet
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/JMS-Implementation-tf2392384.html#a6761934
Sent from the ServiceMix - User mailing list archive at Nabble.com.