RE: help needed regarding to org.activemq.network.jms package

2006-02-01 Thread Li, Fan
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


Re: help needed regarding to org.activemq.network.jms package

2006-02-01 Thread Rob Davies

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