You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rob Godfrey (JIRA)" <ji...@apache.org> on 2015/12/15 21:44:46 UTC

[jira] [Created] (QPID-6954) [Java Broker] Add the ability to define "policies" for node auto-creation based on address

Rob Godfrey created QPID-6954:
---------------------------------

             Summary: [Java Broker] Add the ability to define "policies" for node auto-creation based on address
                 Key: QPID-6954
                 URL: https://issues.apache.org/jira/browse/QPID-6954
             Project: Qpid
          Issue Type: Improvement
          Components: Java Broker
            Reporter: Rob Godfrey
            Assignee: Rob Godfrey
             Fix For: qpid-java-6.1


See: [this mail|http://mail-archives.apache.org/mod_mbox/qpid-users/201512.mbox/%3C55CF1C5A18D1B84CAE275B17381A7C6CC174E2825B%40winavi5.AviFN.local%3E] and QPID-5251 (C++ Broker equivalent).

It is sometimes useful to be able to provide behaviours based on namespaces/patterns such that queues/exchanges which match those patterns get automatically created.

Add a new property to the virtualHost called "nodeAutoCreationPolicies", which is a list of polices.  A policy is an object with attributes "pattern", "nodeType", "createdOnPublish", "createdOnConsume" and "attributes".

* pattern is a Java RegExp which will be matched against the name used by the client for an incoming published message / consume request.
* nodeType is one of "queue" or "exchange".
* createdOnPublish is a boolean indicating whether the node should be created when new messages are published (or an incoming link is created)
* createdOnConsume is a boolean indicating whether the node should be created when a new consumer is created
* attributes is a map, containing the default attributes of the node to be created.  These attributes are the same used in the REST API for the node type.

The nodeAutoCreationPolicies can be set via the REST API, or (if you are using a JSON VirtualHostNode) by hand editing the virtualHost configuration.

For instance here is a snippet from a JSON virtualHost configuration with defined nodeAutoCreationPolicies:

{code:javascript}
{
  "id" : "134c0b84-b1b2-46c8-ba2d-f05ba13be56f",
  "name" : "default",
  "type" : "BDB",
  "context" : {
    "foo" : "1"
  },
  "modelVersion" : "6.1",
  "nodeAutoCreationPolicies" : [ {
    "pattern" : "rob\\.durable\\..*",
    "createdOnPublish" : true,
    "createdOnConsume" : true,
    "nodeType" : "queue",
    "attributes" : {
      "durable" : true
    }
  }, {
    "pattern" : "rob\\.exchange\\..*",
    "createdOnPublish" : true,
    "createdOnConsume" : false,
    "nodeType" : "exchange",
    "attributes" : {
      "type" : "direct",
      "durable" : true
    }
  } ],
  "queue.deadLetterQueueEnabled" : false,
  "exchanges" : [ {
    "id" : "5fcbd3f5-fe7c-4ab0-9605-950d7784844c",
    "name" : "amq.direct",
    "type" : "direct"
  }, {
    "id" : "3f17dd6f-269b-43a6-868e-dd487271719a",
    "name" : "amq.fanout",
    "type" : "fanout"
  }, {
    "id" : "45e9eba0-3bcc-4634-b042-87a652447cbe",
    "name" : "amq.match",
    "type" : "headers"
  }, {
    "id" : "d7b703c4-0d64-4a44-8008-1314a18e30e7",
    "name" : "amq.topic",
    "type" : "topic"
  } ],

{code}

 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org