You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Gordon Sim <gs...@redhat.com> on 2013/10/23 21:56:45 UTC
Review Request 14882: on-demand node creation policies
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/
-----------------------------------------------------------
Review request for qpid, Kenneth Giusti and Ted Ross.
Bugs: QPID-5251
https://issues.apache.org/jira/browse/QPID-5251
Repository: qpid
Description
-------
This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
qpidt create QueuePolicy dynamic-queue-*
will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
Diffs
-----
/trunk/qpid/cpp/src/amqp.cmake 1535048
/trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1535048
/trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1535048
/trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
/trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
/trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1535048
/trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1535048
/trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1535048
/trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1535048
/trunk/qpid/cpp/src/qpid/sys/regex.h 1535048
/trunk/qpid/specs/management-schema.xml 1535048
Diff: https://reviews.apache.org/r/14882/diff/
Testing
-------
Minimal.
Thanks,
Gordon Sim
Re: Review Request 14882: on-demand node creation policies
Posted by Gordon Sim <gs...@redhat.com>.
> On Oct. 25, 2013, 2:08 p.m., Kenneth Giusti wrote:
> > I like this approach. One question - I may have missed this in the patch - but does the ACL configuration regarding the ability to create queues/exchanges apply to these operations too? (I suspect so).
Depends what you mean... if a matching queue policy exists for an incoming link, then a queue will be created and that will require ACL permissions. However creating the queue policy itself is distinct. At present there is no explicit permission for that entity, but you would need the ability to invoke QMF methods etc in order to create them.
- Gordon
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27533
-----------------------------------------------------------
On Oct. 23, 2013, 7:56 p.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 23, 2013, 7:56 p.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1535048
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1535048
> /trunk/qpid/specs/management-schema.xml 1535048
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Kenneth Giusti <kg...@apache.org>.
> On Oct. 25, 2013, 2:08 p.m., Kenneth Giusti wrote:
> > I like this approach. One question - I may have missed this in the patch - but does the ACL configuration regarding the ability to create queues/exchanges apply to these operations too? (I suspect so).
>
> Gordon Sim wrote:
> Depends what you mean... if a matching queue policy exists for an incoming link, then a queue will be created and that will require ACL permissions. However creating the queue policy itself is distinct. At present there is no explicit permission for that entity, but you would need the ability to invoke QMF methods etc in order to create them.
I was asking about the queue/exchange creation itself, not the policy. Thanks for the clarification.
- Kenneth
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27533
-----------------------------------------------------------
On Oct. 23, 2013, 7:56 p.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 23, 2013, 7:56 p.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1535048
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1535048
> /trunk/qpid/specs/management-schema.xml 1535048
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Kenneth Giusti <kg...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27533
-----------------------------------------------------------
Ship it!
I like this approach. One question - I may have missed this in the patch - but does the ACL configuration regarding the ability to create queues/exchanges apply to these operations too? (I suspect so).
- Kenneth Giusti
On Oct. 23, 2013, 7:56 p.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 23, 2013, 7:56 p.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1535048
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1535048
> /trunk/qpid/specs/management-schema.xml 1535048
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Gordon Sim <gs...@redhat.com>.
> On Oct. 25, 2013, 11:18 a.m., Jakub Scholz wrote:
> > Hi Gordon,
> >
> > Some comments from my side ...
> >
> > - is there a possibility to configure the Queue Policy to create auto-delete queues? It seems that you always create the queues as autodelete=false
> >
> > - The qpidt tool seems to ignore the type when deleting the policy. You can delete the topic policy with command "qpidt delete QueuePolicy <topic-policy-name>
> >
> > - The qpidt tool you created for configuring topics and policies is located in my build in /usr/local/libexec/qpid/tests/qpidt. Is that some bug in my build or is that intended? I assume one can configure them over QMF from any program. But it would be nice to have a configuration utility to configure them from command line - either using qpid-config or by moving the qpidt to a /usr/bin directory to make it a bit easier to find
> >
> > - Last but not least, the broker seems to crash when a client which used the Topic Policy disconnects. I used topic policy created like this:
> > qpidt create TopicPolicy response.* durable=true exchange=response
> > and a client which created receiver:
> > response.ABCFR_ABCFRALMMACC1.591ec10a-4d57-4b8c-ba32-7eb1eaeb3686; { create: never, node: { type: 'queue' } }
> > The broker seems to crash when I close the receiver.
> >
> > Regards
> > Jakub
>
> Gordon Sim wrote:
> Excellent feedback. Thanks very much Jakub!
>
> I'll fix it to support autodelete queues and to verify type on delete.
>
> I agree the qpidt utility is not in an obvious place. This has been something of a longstanding question. I'll post some thoughts on that again to the user list separately.
>
> I'll look into that crash and fix it. Btw, the intention when creating a topic policy is that an exchange of the same name will be automatically created also (whereas a manually created topic needs to define its own exchange).
>
> Thanks again and if there is anything else you think doesn't work as well as it might, your thoughts will be gratefully received!
Autodeletion can now be configured and the type is verified on deletion. The crash was actually not related to this patch and has now been fixed on trunk.
Coming up will be a proposal re making the functionality of qpidt more accessible.
- Gordon
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27523
-----------------------------------------------------------
On Oct. 30, 2013, 11:27 a.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 30, 2013, 11:27 a.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1536223
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1536223
> /trunk/qpid/cpp/src/tests/policies.py PRE-CREATION
> /trunk/qpid/cpp/src/tests/swig_python_tests 1536223
> /trunk/qpid/specs/management-schema.xml 1536223
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Gordon Sim <gs...@redhat.com>.
> On Oct. 25, 2013, 11:18 a.m., Jakub Scholz wrote:
> > Hi Gordon,
> >
> > Some comments from my side ...
> >
> > - is there a possibility to configure the Queue Policy to create auto-delete queues? It seems that you always create the queues as autodelete=false
> >
> > - The qpidt tool seems to ignore the type when deleting the policy. You can delete the topic policy with command "qpidt delete QueuePolicy <topic-policy-name>
> >
> > - The qpidt tool you created for configuring topics and policies is located in my build in /usr/local/libexec/qpid/tests/qpidt. Is that some bug in my build or is that intended? I assume one can configure them over QMF from any program. But it would be nice to have a configuration utility to configure them from command line - either using qpid-config or by moving the qpidt to a /usr/bin directory to make it a bit easier to find
> >
> > - Last but not least, the broker seems to crash when a client which used the Topic Policy disconnects. I used topic policy created like this:
> > qpidt create TopicPolicy response.* durable=true exchange=response
> > and a client which created receiver:
> > response.ABCFR_ABCFRALMMACC1.591ec10a-4d57-4b8c-ba32-7eb1eaeb3686; { create: never, node: { type: 'queue' } }
> > The broker seems to crash when I close the receiver.
> >
> > Regards
> > Jakub
Excellent feedback. Thanks very much Jakub!
I'll fix it to support autodelete queues and to verify type on delete.
I agree the qpidt utility is not in an obvious place. This has been something of a longstanding question. I'll post some thoughts on that again to the user list separately.
I'll look into that crash and fix it. Btw, the intention when creating a topic policy is that an exchange of the same name will be automatically created also (whereas a manually created topic needs to define its own exchange).
Thanks again and if there is anything else you think doesn't work as well as it might, your thoughts will be gratefully received!
- Gordon
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27523
-----------------------------------------------------------
On Oct. 23, 2013, 7:56 p.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 23, 2013, 7:56 p.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1535048
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1535048
> /trunk/qpid/specs/management-schema.xml 1535048
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Jakub Scholz <ww...@scholzj.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27523
-----------------------------------------------------------
Hi Gordon,
Some comments from my side ...
- is there a possibility to configure the Queue Policy to create auto-delete queues? It seems that you always create the queues as autodelete=false
- The qpidt tool seems to ignore the type when deleting the policy. You can delete the topic policy with command "qpidt delete QueuePolicy <topic-policy-name>
- The qpidt tool you created for configuring topics and policies is located in my build in /usr/local/libexec/qpid/tests/qpidt. Is that some bug in my build or is that intended? I assume one can configure them over QMF from any program. But it would be nice to have a configuration utility to configure them from command line - either using qpid-config or by moving the qpidt to a /usr/bin directory to make it a bit easier to find
- Last but not least, the broker seems to crash when a client which used the Topic Policy disconnects. I used topic policy created like this:
qpidt create TopicPolicy response.* durable=true exchange=response
and a client which created receiver:
response.ABCFR_ABCFRALMMACC1.591ec10a-4d57-4b8c-ba32-7eb1eaeb3686; { create: never, node: { type: 'queue' } }
The broker seems to crash when I close the receiver.
Regards
Jakub
- Jakub Scholz
On Oct. 23, 2013, 7:56 p.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 23, 2013, 7:56 p.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1535048
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1535048
> /trunk/qpid/specs/management-schema.xml 1535048
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Gordon Sim <gs...@redhat.com>.
> On Oct. 23, 2013, 9:17 p.m., Ted Ross wrote:
> > Question: Do the command-line options limit you to simply taking the default queue or topic attributes?
They do, yes. The primary interface for configuration is through QMF. However as a last minute addition I added the command line options for convenience in the simple cases. Another limitation at present is that there is no way to specify which policy to use when more than one would match. I'll make an update to address that soon.
- Gordon
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27423
-----------------------------------------------------------
On Oct. 23, 2013, 7:56 p.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 23, 2013, 7:56 p.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1535048
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1535048
> /trunk/qpid/specs/management-schema.xml 1535048
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Ted Ross <tr...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27423
-----------------------------------------------------------
Question: Do the command-line options limit you to simply taking the default queue or topic attributes?
- Ted Ross
On Oct. 23, 2013, 7:56 p.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 23, 2013, 7:56 p.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1535048
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1535048
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1535048
> /trunk/qpid/specs/management-schema.xml 1535048
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Kenneth Giusti <kg...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27897
-----------------------------------------------------------
Ship it!
Ship It!
- Kenneth Giusti
On Oct. 30, 2013, 11:27 a.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 30, 2013, 11:27 a.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1536223
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1536223
> /trunk/qpid/cpp/src/tests/policies.py PRE-CREATION
> /trunk/qpid/cpp/src/tests/swig_python_tests 1536223
> /trunk/qpid/specs/management-schema.xml 1536223
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Kenneth Giusti <kg...@apache.org>.
> On Oct. 30, 2013, 2:03 p.m., Kenneth Giusti wrote:
> > /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp, line 114
> > <https://reviews.apache.org/r/14882/diff/1-2/?file=369941#file369941line114>
> >
> > My brain just stack dumped - durable is set to true if AUTO_DELETE is explicitly specified and true. Seems counter-intuitive to me, can you add a comment explaining the intent?
>
> Gordon Sim wrote:
> This is initialising the QueueSettings:the first parameter to the constructor is the durable property (which was set by the superclass), the second is the value for autodelete.
Doh! Yes, of course. Sorry, for some reason I can't read C++ today. :(
Disregard the comment request!
- Kenneth
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27771
-----------------------------------------------------------
On Oct. 30, 2013, 11:27 a.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 30, 2013, 11:27 a.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1536223
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1536223
> /trunk/qpid/cpp/src/tests/policies.py PRE-CREATION
> /trunk/qpid/cpp/src/tests/swig_python_tests 1536223
> /trunk/qpid/specs/management-schema.xml 1536223
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Gordon Sim <gs...@redhat.com>.
> On Oct. 30, 2013, 2:03 p.m., Kenneth Giusti wrote:
> > /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp, line 114
> > <https://reviews.apache.org/r/14882/diff/1-2/?file=369941#file369941line114>
> >
> > My brain just stack dumped - durable is set to true if AUTO_DELETE is explicitly specified and true. Seems counter-intuitive to me, can you add a comment explaining the intent?
This is initialising the QueueSettings:the first parameter to the constructor is the durable property (which was set by the superclass), the second is the value for autodelete.
> On Oct. 30, 2013, 2:03 p.m., Kenneth Giusti wrote:
> > /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp, line 121
> > <https://reviews.apache.org/r/14882/diff/1-2/?file=369941#file369941line121>
> >
> > Doesn't filterForQueue() erase AUTO_DELETE, making filtered.find(AUTO_DELETE) always == filtered.end()?
You are right! I'll fix that.
- Gordon
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27771
-----------------------------------------------------------
On Oct. 30, 2013, 11:27 a.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 30, 2013, 11:27 a.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1536223
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1536223
> /trunk/qpid/cpp/src/tests/policies.py PRE-CREATION
> /trunk/qpid/cpp/src/tests/swig_python_tests 1536223
> /trunk/qpid/specs/management-schema.xml 1536223
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Kenneth Giusti <kg...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/#review27771
-----------------------------------------------------------
/trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp
<https://reviews.apache.org/r/14882/#comment53970>
My brain just stack dumped - durable is set to true if AUTO_DELETE is explicitly specified and true. Seems counter-intuitive to me, can you add a comment explaining the intent?
/trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp
<https://reviews.apache.org/r/14882/#comment53967>
Doesn't filterForQueue() erase AUTO_DELETE, making filtered.find(AUTO_DELETE) always == filtered.end()?
- Kenneth Giusti
On Oct. 30, 2013, 11:27 a.m., Gordon Sim wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14882/
> -----------------------------------------------------------
>
> (Updated Oct. 30, 2013, 11:27 a.m.)
>
>
> Review request for qpid, Kenneth Giusti and Ted Ross.
>
>
> Bugs: QPID-5251
> https://issues.apache.org/jira/browse/QPID-5251
>
>
> Repository: qpid
>
>
> Description
> -------
>
> This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
>
> The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
>
> qpidt create QueuePolicy dynamic-queue-*
>
> will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
>
> In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
>
> ./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
>
>
> Diffs
> -----
>
> /trunk/qpid/cpp/src/amqp.cmake 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/PersistableObject.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
> /trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1536223
> /trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1536223
> /trunk/qpid/cpp/src/qpid/sys/regex.h 1536223
> /trunk/qpid/cpp/src/tests/policies.py PRE-CREATION
> /trunk/qpid/cpp/src/tests/swig_python_tests 1536223
> /trunk/qpid/specs/management-schema.xml 1536223
>
> Diff: https://reviews.apache.org/r/14882/diff/
>
>
> Testing
> -------
>
> Minimal.
>
>
> Thanks,
>
> Gordon Sim
>
>
Re: Review Request 14882: on-demand node creation policies
Posted by Gordon Sim <gs...@redhat.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14882/
-----------------------------------------------------------
(Updated Oct. 30, 2013, 11:27 a.m.)
Review request for qpid, Kenneth Giusti and Ted Ross.
Changes
-------
This update adds the ability to control autodeletion. This can be done either through the 'auto-delete' property (value is True or False) or through the qpid.lifetime-policy option whose value can be one of delete-if-unused, delete-if-unused-and-empty or manual (meaning not automatically deleted). If none of these is specified in a given queue policy, and the queue is not durable, queues created through matching that policy will default to delete-if-unused-and-empty. This allows them to be cleaned up without impacting use. If the queue is durable the manual lifetime policy is the default.
This update also adds a simple (simplistic) scheme for choosing between policies when more than one matches. In that case the longest pattern is chosen as a simple way of guessing at the most specific.
Bugs: QPID-5251
https://issues.apache.org/jira/browse/QPID-5251
Repository: qpid
Description
-------
This adds the ability to create QueuePolicy or TopicPolicy instances that enable on demand creation of queues or topics respectively for any name that fails to resolve to an existing queue/exchange/topic and matches the pattern on a defined policy.
The primary mechanism for managing these policies is through the QMF create/delete methods. E.g using the qpidt utility:
qpidt create QueuePolicy dynamic-queue-*
will create a queue policy with the pattern dynamic-queue-*, so that any attempt to link to a node that matches that pattern (i.e. starts with dynamic-queue-), e,g, dynamic-queue-abc, will result in the queue being created on demand. Other options can be specified for the policy and those will be used when creating the node.
In addition I've added a couple of 1.0 related command line options to qpidd - queue-pattern and topic-pattern - so that for the simple cases you can specify the desired behaviour when starting qpidd up. E.g.
./src/qpidd --auth no --load-module ./src/amqp.so --queue-pattern 'dynamic.\queues\.*' --topic-pattern 'dynamic\.topics\.*'
Diffs (updated)
-----
/trunk/qpid/cpp/src/amqp.cmake 1536223
/trunk/qpid/cpp/src/qpid/broker/PersistableObject.h 1536223
/trunk/qpid/cpp/src/qpid/broker/PersistableObject.cpp 1536223
/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp 1536223
/trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.h 1536223
/trunk/qpid/cpp/src/qpid/broker/amqp/BrokerContext.cpp 1536223
/trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.h PRE-CREATION
/trunk/qpid/cpp/src/qpid/broker/amqp/NodePolicy.cpp PRE-CREATION
/trunk/qpid/cpp/src/qpid/broker/amqp/ProtocolPlugin.cpp 1536223
/trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1536223
/trunk/qpid/cpp/src/qpid/broker/amqp/Topic.h 1536223
/trunk/qpid/cpp/src/qpid/broker/amqp/Topic.cpp 1536223
/trunk/qpid/cpp/src/qpid/sys/regex.h 1536223
/trunk/qpid/cpp/src/tests/policies.py PRE-CREATION
/trunk/qpid/cpp/src/tests/swig_python_tests 1536223
/trunk/qpid/specs/management-schema.xml 1536223
Diff: https://reviews.apache.org/r/14882/diff/
Testing
-------
Minimal.
Thanks,
Gordon Sim