qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Sim <g...@redhat.com>
Subject Re: Mixing up AMQP QPID and JMS
Date Wed, 19 Aug 2009 15:22:24 GMT
Leglise Yann wrote:
> Thank you Gordon.
> 
> Your answers helped, but I want to make it a little bit clearer about the relation between
QPID and JMS.
> I can only see 2 possible interpretation of the relation between JMS and QPID (one will
necessarily be wrong):
> 1)  QPID relies on (i.e. make use of) a JMS implementation in order to use the JMS services
to satisfy the AMQP purposes,
> 2)  QPID actually IS a JMS implementation that directly includes the AMQP required behaviour.

Option 2 is the correct one.

> This is confusing for me since in my java program, I am linked to a jms.jar (gotten from
the J2EE SDK), in association with the qpid jars, and I suppose this jms.jar contains a JMS
implementation (leading to the first interpretation).
> 
> So in the case 1), I cannot understand how a JMS object (that does not "know" I am using
a QPID jar) can interact with an AMQP broker (I mean, when I invoke a send API on a javax.jms.MessageProducer,
how is it that Wireshark detects AMQP frames? The meaning of my question in my previous mail
was to understand how could the JMS objects (defined, according to me, in the jms.jar) could
interact with the QPID jars (I supposed that the AMQP frames are sent by some classes of the
QPID jars) since nothing is (apparently) made to link JMS object with QPID classes).
> 
> In case 2), why should I need using the jms.jar if the implementation already exists
in the QPID jars?
> 
> The only explanation I can imagine is that the jms.jar is used only for the interfaces
like Connection, Session etc. some implementors of which resides in QPID library that are
used because using org.apache.qpid.jndi.PropertiesFileInitialContextFactory in JNDI. Then,
as every used object (ConnectionFactory, Destination ...) are obtained through a first QPID
class implementing the InitialContext, this implementing class also choose a QPID class implementing
those interfaces (and so on for Connection, Queue ...). This is what I guess, but I would
like to have a confirmation from someone who "knows".

Yes, assuming you mean the geronimo-jms_1.1_spec-1.0.jar, that is 
correct. It contains only the interface definitions.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Mime
View raw message