Re: QPID C++ - Dynamically Managing Broker

2014-09-18 Thread Spencer.Doak
Hey Gordon,

Thank you very much! That should give me a great start on this task.

As for the 'shutdown' command, that's actually exactly what I was thinking
too. I'm thinking about running a receiver process on the broker machine.
When it receives a message that says "shutdown" from an authenticated user,
it will perform 'system("/sbin/service qpid-stop");' or whatever the
relevant OS command is. In your opinion, is this a reasonable way to
accomplish this task? Would there perhaps be a better way than creating a
system call?

Thank you in advance,
Spencer



--
View this message in context: 
http://qpid.2158936.n2.nabble.com/QPID-C-Dynamically-Managing-Broker-tp7613792p7613863.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: [VOTE] Release Qpid 0.30 components

2014-09-18 Thread Ted Ross
+1 -  Qpid C++ (qpid-cpp-0.30.tar.gz)
  Qpid Java (qpid-java-0.30.tar.gz)
  Qpid Java QMF tools (qpid-java-qmf-tools-0.30.tar.gz)
+1 -  Qpid Python (qpid-python-0.30.tar.gz)
+1 -  Qpid QMF (qpid-qmf-0.30.tar.gz)
+1 -  Qpid tests (qpid-tests-0.30.tar.gz)
+1 -  Qpid tools (qpid-tools-0.30.tar.gz)


On 09/16/2014 03:12 PM, Justin Ross wrote:
> Hi, everyone.  The voting process this time is somewhat different.  Instead
> of voting for "Qpid" as a single release, we are voting for each Qpid
> source component individually (excluding Proton and Dispatch).
> 
> The RC artifacts are here:
> 
>   https://dist.apache.org/repos/dist/dev/qpid/0.30-rc/
> 
> They are signed.  If a given component is approved, the RC bits will be
> come the GA bits.
> 
> Please indicate your vote for each component below.  If you favor
> proceeding to GA with these RC bits, vote +1.  If you have reason to think
> a component is not ready for release, vote -1.
> 
>  - Qpid C++ (qpid-cpp-0.30.tar.gz)
> 
>  - Qpid Java (qpid-java-0.30.tar.gz)
> 
>  - Qpid Java QMF tools (qpid-java-qmf-tools-0.30.tar.gz)
> 
>  - Qpid Python (qpid-python-0.30.tar.gz)
> 
>  - Qpid QMF (qpid-qmf-0.30.tar.gz)
> 
>  - Qpid tests (qpid-tests-0.30.tar.gz)
> 
>  - Qpid tools (qpid-tools-0.30.tar.gz)
> 
> Thanks!
> Justin
> 
> ---
> 0.30 release page:
> https://cwiki.apache.org/confluence/display/qpid/0.30+Release
> 

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: [VOTE] Release Qpid 0.30 components

2014-09-18 Thread Chuck Rolke
+1  - Qpid C++ (qpid-cpp-0.30.tar.gz)
 
  - Qpid Java (qpid-java-0.30.tar.gz)
 
  - Qpid Java QMF tools (qpid-java-qmf-tools-0.30.tar.gz)
 
  - Qpid Python (qpid-python-0.30.tar.gz)
 
  - Qpid QMF (qpid-qmf-0.30.tar.gz)
 
  - Qpid tests (qpid-tests-0.30.tar.gz)
 
  - Qpid tools (qpid-tools-0.30.tar.gz)


- Original Message -
> From: "Justin Ross" 
> To: users@qpid.apache.org
> Sent: Tuesday, September 16, 2014 3:12:22 PM
> Subject: [VOTE] Release Qpid 0.30 components
> 
> Hi, everyone.  The voting process this time is somewhat different.  Instead
> of voting for "Qpid" as a single release, we are voting for each Qpid
> source component individually (excluding Proton and Dispatch).
> 
> The RC artifacts are here:
> 
>   https://dist.apache.org/repos/dist/dev/qpid/0.30-rc/
> 
> They are signed.  If a given component is approved, the RC bits will be
> come the GA bits.
> 
> Please indicate your vote for each component below.  If you favor
> proceeding to GA with these RC bits, vote +1.  If you have reason to think
> a component is not ready for release, vote -1.
> 
>  - Qpid C++ (qpid-cpp-0.30.tar.gz)
> 
>  - Qpid Java (qpid-java-0.30.tar.gz)
> 
>  - Qpid Java QMF tools (qpid-java-qmf-tools-0.30.tar.gz)
> 
>  - Qpid Python (qpid-python-0.30.tar.gz)
> 
>  - Qpid QMF (qpid-qmf-0.30.tar.gz)
> 
>  - Qpid tests (qpid-tests-0.30.tar.gz)
> 
>  - Qpid tools (qpid-tools-0.30.tar.gz)
> 
> Thanks!
> Justin
> 
> ---
> 0.30 release page:
> https://cwiki.apache.org/confluence/display/qpid/0.30+Release
> 

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: [VOTE] Release Qpid 0.30 components

2014-09-18 Thread Ken Giusti
I tested a subset, see below.

Testing on Centos 6 x86_64 VM, built and installed, then ran a series of 
Openstack oslo.messaging tests using the installed components.

- Original Message -
> From: "Justin Ross" 
> To: users@qpid.apache.org
> Sent: Tuesday, September 16, 2014 3:12:22 PM
> Subject: [VOTE] Release Qpid 0.30 components
> 
> Hi, everyone.  The voting process this time is somewhat different.  Instead
> of voting for "Qpid" as a single release, we are voting for each Qpid
> source component individually (excluding Proton and Dispatch).
> 
> The RC artifacts are here:
> 
>   https://dist.apache.org/repos/dist/dev/qpid/0.30-rc/
> 
> They are signed.  If a given component is approved, the RC bits will be
> come the GA bits.
> 
> Please indicate your vote for each component below.  If you favor
> proceeding to GA with these RC bits, vote +1.  If you have reason to think
> a component is not ready for release, vote -1.
> 
>  - Qpid C++ (qpid-cpp-0.30.tar.gz)
+1

> 
>  - Qpid Java (qpid-java-0.30.tar.gz)
> 
>  - Qpid Java QMF tools (qpid-java-qmf-tools-0.30.tar.gz)
> 
>  - Qpid Python (qpid-python-0.30.tar.gz)
+1

> 
>  - Qpid QMF (qpid-qmf-0.30.tar.gz)
+1

> 
>  - Qpid tests (qpid-tests-0.30.tar.gz)
> 
>  - Qpid tools (qpid-tools-0.30.tar.gz)
+1

> 
> Thanks!
> Justin
> 
> ---
> 0.30 release page:
> https://cwiki.apache.org/confluence/display/qpid/0.30+Release
> 

-- 
-K

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: Proton tutorial: synchronous request-response

2014-09-18 Thread Justin Ross
http://svn.apache.org/viewvc/qpid/proton/branches/examples/tutorial/sync_client.py?view=markup&pathrev=1626029

I think "invoke" is an unintuitive name there.  It's not "invoking the
request" or "invoking the client".  Invoke usually implies a named piece of
application logic.  I think in this case "send" or "send_request" would be
better, as in "send the request (and this is a request for which I expect a
synchronous response)".

On Thu, Sep 18, 2014 at 1:23 PM, Alan Conway  wrote:

> I checked this in on the examples branch.
>
> 
> r1626029 | aconway | 2014-09-18 13:11:12 -0400 (Thu, 18 Sep 2014) | 7
> lines
>
> NO-JIRA: Added tutorial/sync_client.py to demonstrate a synchronous
> request-response client.
>
> This client uses the familiar paradigm of making blocking calls that
> send a
> request and return the response.
>
> Made some improvements to BlockingThread error handling and timeouts.
>
> 
>
> It needs a little work to be realistic (needs to check correlation ids
> at least) but it is quite neat.
>
> Most of the current tutorial examples are in an event driven style,
> which is great for servers and intermediaries but less familiar on the
> client side. This demo shows that you can also do traditional
> client-driven request response quite easily. The error handling is
> simple: invoke() throws if anything goes wrong.
>
> I did this the hard way first - by writing my own raw event handlers. It
> was instructive but, well, hard. Then I noticed Gordon's
> BlockingConnection class already did everything I had figured out the
> hard way (blocking and error handing) so I rewrote it using that and it
> was very easy.
>
> So far I think this is promising.
>
> Cheers,
> Alan.
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
> For additional commands, e-mail: users-h...@qpid.apache.org
>
>


Proton tutorial: synchronous request-response

2014-09-18 Thread Alan Conway
I checked this in on the examples branch.


r1626029 | aconway | 2014-09-18 13:11:12 -0400 (Thu, 18 Sep 2014) | 7
lines

NO-JIRA: Added tutorial/sync_client.py to demonstrate a synchronous
request-response client.

This client uses the familiar paradigm of making blocking calls that
send a
request and return the response.

Made some improvements to BlockingThread error handling and timeouts.



It needs a little work to be realistic (needs to check correlation ids
at least) but it is quite neat.

Most of the current tutorial examples are in an event driven style,
which is great for servers and intermediaries but less familiar on the
client side. This demo shows that you can also do traditional
client-driven request response quite easily. The error handling is
simple: invoke() throws if anything goes wrong.

I did this the hard way first - by writing my own raw event handlers. It
was instructive but, well, hard. Then I noticed Gordon's
BlockingConnection class already did everything I had figured out the
hard way (blocking and error handing) so I rewrote it using that and it
was very easy.

So far I think this is promising.

Cheers,
Alan.


-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: [VOTE] Migrate the repo for the new JMS client work to use Git

2014-09-18 Thread Chuck Rolke
+1

Just promoting git in general.

- Original Message -
> From: "Robbie Gemmell" 
> To: users@qpid.apache.org
> Sent: Tuesday, September 16, 2014 12:35:09 PM
> Subject: [VOTE] Migrate the repo for the new JMS client work to use Git
> 
> Hello all,
> 
> I mentioned this briefly in a previous thread, and have decided just to
> call a vote on the subject. I would like to migrate the repo for the new
> JMS client work to use Git rather than Subversion.
> 
> This wont affect the rest of the Qpid codebase, though it could be viewed
> as a test for any such move in future. Only the bits in the following
> subtree are under consideration for migation at this time:
> http://svn.apache.org/repos/asf/qpid/jms/
> 
> I believe it would make things easier for those of us currently working on
> it, and ease future usage of things like the Github integration we
> can/should have Apache infra enable. For anyone still wanting to use a
> Subversion client to check things out, there will still be an option there
> as e.g. Github repos can also be checked out with svn clients, and Apache
> mirror things to Github.
> 
> Please cast your votes. Even if you don't intend to work on the code in
> question, please vote or at least contribute your thoughts to any
> discussion that pops up. I will tally the votes after this point on Friday,
> i.e. 72hrs.
> 
> Robbie
> 

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: [VOTE] Migrate the repo for the new JMS client work to use Git

2014-09-18 Thread Justin Ross
+1

On Tue, Sep 16, 2014 at 12:35 PM, Robbie Gemmell 
wrote:
>
> Please cast your votes. Even if you don't intend to work on the code in
> question, please vote or at least contribute your thoughts to any
> discussion that pops up. I will tally the votes after this point on Friday,
> i.e. 72hrs.
>
> Robbie
>


RE: [VOTE] Migrate the repo for the new JMS client work to use Git

2014-09-18 Thread Adams, Cory
+ 1 bizillion 

Jack and Jimmy cast your votes.

-Original Message-
From: Steve Huston [mailto:shus...@riverace.com] 
Sent: Thursday, September 18, 2014 11:13 AM
To: users@qpid.apache.org
Subject: RE: [VOTE] Migrate the repo for the new JMS client work to use Git

+1

> -Original Message-
> From: Robbie Gemmell [mailto:robbie.gemm...@gmail.com]
> Sent: Tuesday, September 16, 2014 12:35 PM
> To: users@qpid.apache.org
> Subject: [VOTE] Migrate the repo for the new JMS client work to use 
> Git
> 
> Hello all,
> 
> I mentioned this briefly in a previous thread, and have decided just 
> to call a vote on the subject. I would like to migrate the repo for 
> the new JMS client work to use Git rather than Subversion.
> 
> This wont affect the rest of the Qpid codebase, though it could be 
> viewed as a test for any such move in future. Only the bits in the 
> following subtree are under consideration for migation at this time:
> http://svn.apache.org/repos/asf/qpid/jms/
> 
> I believe it would make things easier for those of us currently 
> working on it, and ease future usage of things like the Github 
> integration we can/should have Apache infra enable. For anyone still 
> wanting to use a Subversion client to check things out, there will 
> still be an option there as e.g. Github repos can also be checked out with 
> svn clients, and Apache mirror things to Github.
> 
> Please cast your votes. Even if you don't intend to work on the code 
> in question, please vote or at least contribute your thoughts to any 
> discussion that pops up. I will tally the votes after this point on Friday, 
> i.e. 72hrs.
> 
> Robbie
B CB  [  
X  ܚX KK[XZ[
 \ \  ][  X  ܚX P\Y
 \X K ܙ B  ܈Y][ۘ[  [X[  K[XZ[
 \ \  Z[\Y
 \X K ܙ B B


RE: [VOTE] Migrate the repo for the new JMS client work to use Git

2014-09-18 Thread Steve Huston
+1

> -Original Message-
> From: Robbie Gemmell [mailto:robbie.gemm...@gmail.com]
> Sent: Tuesday, September 16, 2014 12:35 PM
> To: users@qpid.apache.org
> Subject: [VOTE] Migrate the repo for the new JMS client work to use Git
> 
> Hello all,
> 
> I mentioned this briefly in a previous thread, and have decided just to call a
> vote on the subject. I would like to migrate the repo for the new JMS client
> work to use Git rather than Subversion.
> 
> This wont affect the rest of the Qpid codebase, though it could be viewed as
> a test for any such move in future. Only the bits in the following subtree are
> under consideration for migation at this time:
> http://svn.apache.org/repos/asf/qpid/jms/
> 
> I believe it would make things easier for those of us currently working on it,
> and ease future usage of things like the Github integration we can/should
> have Apache infra enable. For anyone still wanting to use a Subversion client
> to check things out, there will still be an option there as e.g. Github repos 
> can
> also be checked out with svn clients, and Apache mirror things to Github.
> 
> Please cast your votes. Even if you don't intend to work on the code in
> question, please vote or at least contribute your thoughts to any discussion
> that pops up. I will tally the votes after this point on Friday, i.e. 72hrs.
> 
> Robbie


Re: [VOTE] Migrate the repo for the new JMS client work to use Git

2014-09-18 Thread Robbie Gemmell
On 18 September 2014 10:38, Gordon Sim  wrote:

> On 09/18/2014 10:07 AM, Robbie Gemmell wrote:
>
>> On 17 September 2014 09:25, Gordon Sim  wrote:
>>
>>  On 09/16/2014 05:35 PM, Robbie Gemmell wrote:
>>>
>>>  Hello all,

 I mentioned this briefly in a previous thread, and have decided just to
 call a vote on the subject. I would like to migrate the repo for the new
 JMS client work to use Git rather than Subversion.

 This wont affect the rest of the Qpid codebase, though it could be
 viewed
 as a test for any such move in future. Only the bits in the following
 subtree are under consideration for migation at this time:
 http://svn.apache.org/repos/asf/qpid/jms/

 I believe it would make things easier for those of us currently working
 on
 it, and ease future usage of things like the Github integration we
 can/should have Apache infra enable. For anyone still wanting to use a
 Subversion client to check things out, there will still be an option
 there
 as e.g. Github repos can also be checked out with svn clients, and
 Apache
 mirror things to Github.

 Please cast your votes. Even if you don't intend to work on the code in
 question, please vote or at least contribute your thoughts to any
 discussion that pops up. I will tally the votes after this point on
 Friday,
 i.e. 72hrs.


>>> I'm in favour of those doing the work deciding what suits them best. Git
>>> is now well enough established that switching isn't in any real sense
>>> raising a barrier to new contributors.
>>>
>>>
>>>  Just to be certain, is your reply to be taken as +1 vote Gordon?
>>
>
> It's more in the category of 'contributing my thoughts' :-)


Thats actually what I thought, just wanted to confirm before the final
tally.


> I'm not going to be immediately involved, so I feel odd voting on it and
> since I don't think you are short of votes, I'm just saying explicitly that
> what you decide is alright with me. (as opposed to being silent which might
> be interpreted differently)
>

Ok. Additional votes are welcome though ;)


Re: [VOTE] Migrate the repo for the new JMS client work to use Git

2014-09-18 Thread Gordon Sim

On 09/18/2014 10:07 AM, Robbie Gemmell wrote:

On 17 September 2014 09:25, Gordon Sim  wrote:


On 09/16/2014 05:35 PM, Robbie Gemmell wrote:


Hello all,

I mentioned this briefly in a previous thread, and have decided just to
call a vote on the subject. I would like to migrate the repo for the new
JMS client work to use Git rather than Subversion.

This wont affect the rest of the Qpid codebase, though it could be viewed
as a test for any such move in future. Only the bits in the following
subtree are under consideration for migation at this time:
http://svn.apache.org/repos/asf/qpid/jms/

I believe it would make things easier for those of us currently working on
it, and ease future usage of things like the Github integration we
can/should have Apache infra enable. For anyone still wanting to use a
Subversion client to check things out, there will still be an option there
as e.g. Github repos can also be checked out with svn clients, and Apache
mirror things to Github.

Please cast your votes. Even if you don't intend to work on the code in
question, please vote or at least contribute your thoughts to any
discussion that pops up. I will tally the votes after this point on
Friday,
i.e. 72hrs.



I'm in favour of those doing the work deciding what suits them best. Git
is now well enough established that switching isn't in any real sense
raising a barrier to new contributors.



Just to be certain, is your reply to be taken as +1 vote Gordon?


It's more in the category of 'contributing my thoughts' :-) I'm not 
going to be immediately involved, so I feel odd voting on it and since I 
don't think you are short of votes, I'm just saying explicitly that what 
you decide is alright with me. (as opposed to being silent which might 
be interpreted differently).



-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: Java QMF library and ObjectId

2014-09-18 Thread Michal Zerola
Hello Fraser and thanks for an exhaustive answer.

There are still some foggy parts in this behavior for me, but let me clarify
firstly some parts which were not explained clearly from my side:

* we are connecting to the C++ Qpid broker
* we are really using asynchronous mechanism from Java QMF API:

>From what you have written we might be really the only users using
query+subscribe mechanism :) but we are quite satisfied with it. In
particular, what we do is following:

- create qmfPredicate describing what kind of objects are we interested in
- create subscription based on the query using the predicate
- register subscription to the console
- in the onEvent() callback we receive updates and from the WorkItem we
finally mine the List with that ObjectId(s) using which we
identify what was changed/deleted/added and store it in our internal
structures

Now why do we have a problem with the 'recycled' ObjectIds. Because of
auditing/monitoring reasons we need to keep track of also deleted objects on
the broker (for some time). Things are more complicated since objects can
reference each other - e.g. binding references queue and exchange it binds
together. However, if the references are the same for deleted and newly
created objects (with the same name) it is quite a challenge to keep track
of what is referencing what.

Of course, if it is given by the broker, there is not too much we can do
about it.

Now, what still puzzles me:

* from the Python I have been using qmf.console API and again it's
asynchronous mechanism to receive object's updates. Briefly:

...Session(self.eventListener, rcvObjects=True, manageConnections=True,
userBindings=True, rcvEvents=True)
...bindClass("org.apache.qpid.broker", "queue")

where eventListener implements objectProps(self, broker, record) and
objectStats(self, broker, record) callbacks. From here I am getting Object
ID:

oid = record.getObjectId()

and here I can see that the ID has a different ('more unique') format: e.g.
the same queue recreated had 0-2-1-0-15440 and later after deletion
0-2-1-0-1592.

I can buy the argument that it uses older QMF1 protocol, but looking into
the code of console.py I can see that it supports both QMF1 + QMF2 and if
the QMF2 is available, the temporary request/response queues created should
have form qmfc-v2-... - which is exactly what I can see on the broker.

This makes me think: is my Python client communicating with QMF1 or QMF2? If
QMF2 why do I see different ObjectId's than in Java QMF if they should be
generated by the broker?

Is there something I am missing?

Thank you.

Cheers,

Michal





--
View this message in context: 
http://qpid.2158936.n2.nabble.com/Re-Java-QMF-library-and-ObjectId-tp7613784p7613803.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: Qpid with RabbitMQ and Glassfish4 SOLVED

2014-09-18 Thread Gordon Sim

On 09/17/2014 10:43 PM, Nathan Kunkee wrote:

On 09/15/2014 03:35 PM, Nathan Kunkee wrote:

Hi all,

I'm trying to get QPID JCA adapter, Glassfish, and RabbitMQ to work
together. At this point, I believe that the Destination is not recreated
correctly from the initial Queue when creating a MessageProducer. I can
see in the log messages that the Queue is populated correctly when
initially created, but later when the Session is creating the
MessageProducer, it is empty, causing AMQNoRouteException. It would be
really nice if this could be addressed in your next release.

I downloaded the 0.30-rc code (r6489 I think) and built with maven, with
one change as listed below. It allows use of the JCA adapter if
transactions are not required. When I create a MessageProducer, I get
the following error:
org.apache.qpid.client.AMQNoRouteException: Error: NO_ROUTE [error code
312: no route]


Hi all,

I reproduced this using Wildfly, which at least caused me to look closer
at the error message. In this case, the error was in the bounced message
handler, which I missed earlier. RabbitMQ was rejecting the message as
it decided the routing was too vague. When I updated my BURL destination
string to include exchange, queue, and routing key
(BURL:direct://outbound/hello/fromjava), then I was able to send
outbound messages successfully.

I have been able to get inbound messages from RabbitMQ working by
setting the ActivationConfigProperty destination to the JNDI name of the
queue, and useLocalTx to true. I also ran into issue QPID-5906 and had
to set the -DIMMEDIATE_PREFETCH=true property. My glassfish-ejb-jar.xml
maps the bean name, jndi name, and resource adapter module name together
as required by Glassfish.

Hopefully this is helpful to someone else!


I'm sure it will be, thanks for taking the time to update the list. I'm 
afraid I have no expertise with the JCA adapter.


Regarding your patch, could you attach it to a JIRA? That's the best 
mechanism for getting it applied.



-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: 0.30 release update - Release notes preview

2014-09-18 Thread Gordon Sim

On 09/17/2014 10:16 AM, Erik Aschenbrenner wrote:

Hi Qpid-Devs,

when can we expect the release of Qpid 0.30?


A release candidate has been produced and a vote on the artefacts has 
been initiated. Unless there are any blocking issues identified at this 
stage it should not be too long to get the RC published, possibly next 
week some time, at the latest I would hope the week after that.



-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org



Re: [VOTE] Migrate the repo for the new JMS client work to use Git

2014-09-18 Thread Robbie Gemmell
On 17 September 2014 09:25, Gordon Sim  wrote:

> On 09/16/2014 05:35 PM, Robbie Gemmell wrote:
>
>> Hello all,
>>
>> I mentioned this briefly in a previous thread, and have decided just to
>> call a vote on the subject. I would like to migrate the repo for the new
>> JMS client work to use Git rather than Subversion.
>>
>> This wont affect the rest of the Qpid codebase, though it could be viewed
>> as a test for any such move in future. Only the bits in the following
>> subtree are under consideration for migation at this time:
>> http://svn.apache.org/repos/asf/qpid/jms/
>>
>> I believe it would make things easier for those of us currently working on
>> it, and ease future usage of things like the Github integration we
>> can/should have Apache infra enable. For anyone still wanting to use a
>> Subversion client to check things out, there will still be an option there
>> as e.g. Github repos can also be checked out with svn clients, and Apache
>> mirror things to Github.
>>
>> Please cast your votes. Even if you don't intend to work on the code in
>> question, please vote or at least contribute your thoughts to any
>> discussion that pops up. I will tally the votes after this point on
>> Friday,
>> i.e. 72hrs.
>>
>
> I'm in favour of those doing the work deciding what suits them best. Git
> is now well enough established that switching isn't in any real sense
> raising a barrier to new contributors.
>
>
Just to be certain, is your reply to be taken as +1 vote Gordon?

Robbie


Re: [VOTE] Migrate the repo for the new JMS client work to use Git

2014-09-18 Thread Robbie Gemmell
Adding my fairly obvious +1 explicitly, as I always forget to do it in the
initial mail.

Robbie

On 16 September 2014 17:35, Robbie Gemmell  wrote:

> Hello all,
>
> I mentioned this briefly in a previous thread, and have decided just to
> call a vote on the subject. I would like to migrate the repo for the new
> JMS client work to use Git rather than Subversion.
>
> This wont affect the rest of the Qpid codebase, though it could be viewed
> as a test for any such move in future. Only the bits in the following
> subtree are under consideration for migation at this time:
> http://svn.apache.org/repos/asf/qpid/jms/
>
> I believe it would make things easier for those of us currently working on
> it, and ease future usage of things like the Github integration we
> can/should have Apache infra enable. For anyone still wanting to use a
> Subversion client to check things out, there will still be an option there
> as e.g. Github repos can also be checked out with svn clients, and Apache
> mirror things to Github.
>
> Please cast your votes. Even if you don't intend to work on the code in
> question, please vote or at least contribute your thoughts to any
> discussion that pops up. I will tally the votes after this point on Friday,
> i.e. 72hrs.
>
> Robbie
>


Re: QPID C++ - Dynamically Managing Broker

2014-09-18 Thread Gordon Sim

On 09/18/2014 12:56 AM, Spencer.Doak wrote:

Hello,

I'm faced with a bit of an issue. For an application I'm working on, I'm in
need of several abilities:

1. Create, destroy, and clear queues on an exchange.
2. Create and destroy exchanges on a broker.
3. Fetch a list of all existing connections on a broker.
4. If possible, send a management message telling the broker to shutdown.
5. Verify the existence of a queue. (I have a workaround for this)

Based on what I've been reading, I believe QMF would be the way to go for
this. The issue is that I cannot seem to find much information about QMF
despite all of the digging I've been doing.


Yes, sorry about that, it is indeed not documented very well at all. 
Fortunately, it's quite simple.


All you do is send specially structured map messages to the broker of 
interest, and then process the replies that come back.


There are two categories of request. The first is a method request, the 
two methods of most interest being 'create' and 'delete'. With these you 
can create or delete queues, exchanges and bindings. The second category 
is a query request. With these you get back the objects of a particular 
type (e.g. connection, queue, exchange) or indeed a specific object by id.


All qmf request messages are sent to 'qmf.default.direct/broker '(i.e. 
to the exchange named 'qmf.default.direct', with a routing key or 
subject of 'broker'). The message should contain a reply-to address 
through which responses will be sent.


There are two message properties that must also be set. These are 
'x-amqp-0-10.app-id', which should always have the value 'qmf2' and 
'qmf.opcode' which for method requests should always have the value 
'_method_request' and for query requests should have the value 
'_query_request'.


For a method requests the content is a map with three top-level entries. 
The first is an entry with key _object_id whose value is a nested map 
identifying the target of the command. For the commands considered here 
(create and delete) the target is always the broker itself. Thus the 
_object_id map contains a single value with key _object_name and value 
org.apache.qpid.broker:broker:amqp-broker. The second is an entry with 
key '_method_name' whose value is the method name (i.e. create or 
delete). The third is an entry with key '_arguments' which is a nested 
map represention the arguments to the method. For create and delete, the 
name and type arguments are required. For create you often want an 
additional 'properties' entry, whose value is a nested map containing 
the properties of the object you want to create (e.g. for a queue 
qpid.max_count or similar).


For a query request the content is a map with one entry named 
'_schema_id' that usually contains a nested map with one entry, 
'_class_name' containing the type of object to query, e.g. queue, 
exchange etc. In addition there is an entry with key '_what' and value 
'OBJECT'.


The expected response for a method request will have the qmf.opcode 
property set to _method_response. For a query request it will be 
_query_response.


I've attached a very rudimentary example that shows create, delete and 
querying which I suspect is easier to follow then the textual 
description of the structure. To use it specify one of create, delete or 
list and a type (queue, exchange, binding etc). For create and delete 
you also need a 'name'. The 'name' for a binding is a concatenation of 
exchange name, queue name and key name, with '/' separating them. E.g.


   qmf_ctrl create queue my-queue
   qmf_ctrl create exchange my-exchange
   qmf_ctrl create binding my-exchange/my-queue/my-key

   qmf_ctrl create queue another-queue
   qmf_ctrl list queue
   qmf_ctrl create queue another-queue
   qmf_ctrl list queue

   qmf_ctrl list connection

Hopefully this is enough to get you started. If you have further 
questions please don't hesitate to ask.


Regarding point 4. in your mail, there is at present no way to shutdown 
the broker via qmf. You could perhaps create a special 'agent' program 
to do that. I.e. it would run colocated with the broker, and listen on a 
special address for a shutdown message, on receiving which it would send 
a signal to the broker. You might want some sort of security around 
that, either message based or acl controls on the address in question 
for the broker.


--Gordon.



/*
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS