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; [email protected] 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
