Hi Rob:
I have opened an issue at http://jira.activemq.org/jira/browse/AMQ and the Key
for the issue is AMQ-520. Based on the current code for the JmsConnector and
its subclasses, I think what is needed is probably two JndiTemplate objects,
one for creating Foreign ConnectionFactory and one for creating Local
ConnectionFactory.
Fan
-Original Message-
From: Rob Davies [mailto:[EMAIL PROTECTED]
Sent: Wednesday, February 01, 2006 5:35 AM
Cc: Li, Fan; activemq-dev@geronimo.apache.org
Subject: Re: help needed regarding to org.activemq.network.jms package
Fan Li,
you can explicitly set the local ConnectionFactory on the
JmsTopicConnector/JmsQueueConnector - and use the JndiTemplate for initializing
the foreign JMS provider.
The JmsMessageConvertor doc is misleading in it's description - for inbound
messages it will expect foreign JMS -> ActiveMQ and outbound ActiveMQ -> JMS.
The JMS specification states that a JMS message provider should be able to
convert a foreign JMS Message if one is used - so this interface is only there
if special marshaling is required.
cheers,
Rob
On 1 Feb 2006, at 12:55, Rob Davies wrote:
> Hi Fan Li,
>
> it's great to get some feedback on this!
> I'm sure we can fix your issues pretty quickly. Would you mind raising
> a jira issue on this ? That way I won't forget about
>
> cheers,
>
> Rob
>
> First of all, my apologies for spamming your e-mail account, but I am
> looking for help from any ActiveMQ developer who can help me answer a
> couple of questions.
>
> I am currently working on a Project that would help our company to
> switch our existing messaging applications to used ActiveMQ instead of
> our own messaging system that is based on Rendezvous. My project has
> to do with creating a bridge that enables the communication of
> applications written using our messaging system to those applications
> written using ActiveMQ. After looking at ActiveMQ source code, I
> discovered a package, org.activemq.network.jms in the
> activemq-core/src/main/java directory, and it seems to provide the
> bridge functionalities I am looking for. However, when I was trying to
> test out the code in this package I run into a problem.
>
> The init() method in JmsTopicConnector class calls the methods
> initializeForeignTopicConnection() and
> initializeLocalTopicConnection() to set the appropriate
> ConnectionFactory and Connection by look them up from the JndiTemplate
> object of the class. The JndiTemplate object does object lookup using
> a Context object that is created by the implementation of
> InitialContextFactroy associated with "
> java.naming.factory.initial". This is a problem because different JMS
> implementations have different InitialContextFactory classes,
> therefore it is not possible for one implementation of
> InitialContextFactory to create Context object that is capable of
> looking up objects implemented by two different JMS providers.
> Unless the association between " java.naming.factory.initial" and the
> InitialContextFactory can be changed between the invocation of
> initializeForeignTopicConnection() and
> initializeLocalTopicConnection(), which would require code change in
> the JmsTopicConnector class. Does anyone know a way to work around
> this problem?
>
> Also, I need a bit of clarification on the description for the
> JmsMesageConvertor interface. The Java doc for the convert method of
> this interface says that the method is used to "Convert a foreign JMS
> Message to a native ActiveMQ Message", but should it also be used to
> perform the reverse conversion, which is to convert from a native
> ActiveMQ Message to a foreign JMS Message or is there a different
> interface that takes care of it?
>
> Thank you
>
> Fan Li