qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Godfrey <rob.j.godf...@gmail.com>
Subject Re: New User JMS API Questions
Date Thu, 20 Feb 2014 09:48:22 GMT
Hmmm, I can't imagine this change would have had that effect...  I'll have
a look back through the changes in the client between 0.24 and 0.26 to see
if there is anything obvious... Can you confirm which version of ActiveMQ
you are using?

Thanks,
Rob


On 20 February 2014 05:42, Mark Barker <mark.barker@shaw.ca> wrote:

> Thanks Rob & Robbie. That's quick stuff.
>
> I did manage to do an ant build (was all a bit fingers-crossed, since I'd
> never even touched subversion before - but it seemed to work), but it was
> good to have the build from the experts to have to try too!
>
> I will need to do some more testing tomorrow, but one thing I did notice
> so far is that in a basic test case (just a single-protocol, single
> context/session AMQP 1.0 JMS client producer), the client seems to hang on
> the producer.send() call with this 0.27 client (with the ActiveMQ broker on
> its AMQP transport connector). The message has indeed been placed in the
> queue nominated on the broker, since if I CTRL-C out of the producer client
> and run a simple consumer client (again linked against the new 0.27 API
> test .jar), the message is subsequently received seemingly intact (at least
> the TextMessage body is as expected).
>
> More news tomorrow, but I wanted you to know this bit.
>
> Thanks again for your help thus far.
>
> Mark.
>
>
>
> -----Original Message----- From: Robbie Gemmell
> Sent: Wednesday, February 19, 2014 5:09 PM
>
> To: users@qpid.apache.org
> Subject: Re: New User JMS API Questions
>
> I forced the nightly release job to run a little early, you should now find
> binaries with the change included at:
> https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-
> Java-Artefact-Release/lastSuccessfulBuild/artifact/
> trunk/qpid/java/amqp-1-0-client-jms/release/
>
> Alternatively you can use the maven artefacts from the snapshots repo at:
> https://repository.apache.org/content/repositories/snapshots/
>
> <dependency>
>  <groupId>org.apache.qpid</groupId>
>  <artifactId>qpid-amqp-1-0-client-jms</artifactId>
>  <version>0.28-SNAPSHOT</version>
> </dependency>
>
> Robbie
>
> On 19 February 2014 20:53, Rob Godfrey wrote:
>
>  OK, I've checked in a change to the trunk codebase so that the Qpid
>> DestinationImpl object no longer implements javax.jms.Queue and
>> javax.jms.Topic interfaces... I think this should help ActiveMQ to cope
>> with it...
>>
>> If you want to test this you'll need to check out the source code from
>> here:
>>
>> http://svn.apache.org/repos/asf/qpid/trunk/qpid/
>>
>> Go to the java subdirectory, and build using ant (e.g. "ant build").  The
>> built libraries will then be in the build/lib subdirectory (you'll only
>> want the amqp-1-0-*0.27.jar files).
>>
>> Let me know if you manage to get it working or encounter any more issues.
>>
>>
>> Cheers,
>>
>> Rob
>>
>>
>> and
>>
>>
>> On 19 February 2014 21:42, Rob Godfrey wrote:
>>
>> > OK... looking up their code tree a bit I see why it gets confused by the
>> > Qpid destination... because the Qpid AMQP 1.0 DestinationImpl implements
>> > both Queue and Topic... I'm not sure why it does that (probably a
>> > historical artefact).  If I change that in Qpid, it might make ActiveMQ
>> > happier...
>> >
>> > -- Rob
>> >
>> >
>> > On 19 February 2014 21:10, Rob Godfrey wrote:
>> >
>> >> Ah interesting... it's ActiveMQ code that is throwing the exception...
>> As
>> >> per the JMS contract, the Qpid message producer is setting the
>> >> JMSDestination on the message it is sending (in this case a foreign
>> >> message, namely an ActiveMQ message).  The ActiveMQ message class
>> doesn't
>> >> seem to like having a destination set on it which isn't one that it can
>> >> resolve (even though it doesn't need to).  The code in question appears
>> to
>> >> be here in the activeMQ codebase:
>> >>
>> >>
>> >>
>> http://grepcode.com/file/repo1.maven.org/maven2/org.
>> apache.activemq/activemq-core/5.6.0/org/apache/activemq/command/
>> DefaultUnresolvedDestinationTransformer.java
>> >>
>> >> It looks like ActiveMQ is requiring Queue and Topic implementations to
>> >> implement the methods isQueue() and/or isTopic()... but these are not
>> part
>> >> of the API defined for JMS Queues and topics AFAIK (see
>> >> http://docs.oracle.com/javaee/6/api/javax/jms/Queue.html for example).
>> >>  So I think that ActiveMQ is in error / violation of the JMS spec here
>> >> (though Robbie who has been reading the JMS spec carefully lately may
>> >> be
>> >> able to give better advice).  If ActiveMQ is absolutely determined to
>> turn
>> >> the destination object into an ActiveMQ one, I'm not entirely sure why
>> the
>> >> ActiveMQ code doesn't fall back to an instanceof test to determine
>> whether
>> >> the the passed in Destination is a Queue (or if not a Topic)...
>> >>
>> >> -- Rob
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message