You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by bh...@apache.org on 2006/10/25 18:15:13 UTC

svn commit: r467700 - in /incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server: exchange/DestNameExchange.java exchange/DestWildExchange.java exchange/HeadersExchange.java protocol/AMQMinaProtocolSession.java protocol/ManagedConnection.java

Author: bhupendrab
Date: Wed Oct 25 09:15:06 2006
New Revision: 467700

URL: http://svn.apache.org/viewvc?view=rev&rev=467700
Log:
MBeans updated. Management operation implemented in HeadersExchange

Modified:
    incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestNameExchange.java
    incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestWildExchange.java
    incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/HeadersExchange.java
    incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/AMQMinaProtocolSession.java
    incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/ManagedConnection.java

Modified: incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestNameExchange.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestNameExchange.java?view=diff&rev=467700&r1=467699&r2=467700
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestNameExchange.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestNameExchange.java Wed Oct 25 09:15:06 2006
@@ -78,12 +78,12 @@
                 _bindingItemTypes[1] = new ArrayType(1, SimpleType.STRING);
 
                 _bindingDataType = new CompositeType("QueueBinding",
-                                             "Queue and binding keye",
+                                             "Binding key and bound Queue names",
                                              _bindingItemNames,
                                              _bindingItemDescriptions,
                                              _bindingItemTypes);
                 _bindinglistDataType = new TabularType("Bindings",
-                                             "List of queues and binding keys",
+                                             "List of queue bindings for " + getName() ,
                                              _bindingDataType,
                                              _bindingItemIndexNames);
             }

Modified: incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestWildExchange.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestWildExchange.java?view=diff&rev=467700&r1=467699&r2=467700
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestWildExchange.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/DestWildExchange.java Wed Oct 25 09:15:06 2006
@@ -77,12 +77,12 @@
                 _bindingItemTypes[1] = new ArrayType(1, SimpleType.STRING);
 
                 _bindingDataType = new CompositeType("QueueBinding",
-                                             "Queue and binding keye",
+                                             "Binding key and bound Queue names",
                                              _bindingItemNames,
                                              _bindingItemDescriptions,
                                              _bindingItemTypes);
                 _bindinglistDataType = new TabularType("Bindings",
-                                             "List of queues and binding keys",
+                                             "List of queue bindings for " + getName(),
                                              _bindingDataType,
                                              _bindingItemIndexNames);
             }

Modified: incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/HeadersExchange.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/HeadersExchange.java?view=diff&rev=467700&r1=467699&r2=467700
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/HeadersExchange.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/exchange/HeadersExchange.java Wed Oct 25 09:15:06 2006
@@ -19,20 +19,23 @@
 
 import org.apache.log4j.Logger;
 import org.apache.qpid.AMQException;
-import org.apache.qpid.framing.*;
-import org.apache.qpid.server.queue.AMQQueue;
-import org.apache.qpid.server.queue.AMQMessage;
-import org.apache.qpid.server.management.MBeanDescription;
+import org.apache.qpid.framing.BasicContentHeaderProperties;
+import org.apache.qpid.framing.ContentHeaderBody;
+import org.apache.qpid.framing.FieldTable;
 import org.apache.qpid.server.management.MBeanConstructor;
+import org.apache.qpid.server.management.MBeanDescription;
+import org.apache.qpid.server.queue.AMQMessage;
+import org.apache.qpid.server.queue.AMQQueue;
+import org.apache.qpid.server.registry.ApplicationRegistry;
 
-import javax.management.openmbean.*;
-import javax.management.ServiceNotFoundException;
+import javax.management.JMException;
 import javax.management.NotCompliantMBeanException;
-import java.util.concurrent.CopyOnWriteArrayList;
+import javax.management.openmbean.*;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * An exchange that binds queues based on a set of required headers and header values
@@ -76,7 +79,7 @@
     {
         private String[]   _bindingItemNames = {"Queue", "HeaderBinding"};
         private String[]   _bindingItemDescriptions = {"Queue Name", "Header attribute bindings"};
-        private String[]   _bindingItemIndexNames = {"Queue"};
+        private String[]   _bindingItemIndexNames = {"HeaderBinding"};
         private OpenType[] _bindingItemTypes = new OpenType[2];
 
         private CompositeType      _bindingDataType = null;
@@ -97,15 +100,15 @@
             try
             {
                 _bindingItemTypes[0] = SimpleType.STRING;
-                _bindingItemTypes[1] = new ArrayType(1, SimpleType.STRING);;
+                _bindingItemTypes[1] = new ArrayType(1, SimpleType.STRING);
 
                 _bindingDataType = new CompositeType("QueueAndHeaderAttributesBinding",
-                                             "Queue and header attributes binding",
+                                             "Queue name and header bindings",
                                              _bindingItemNames,
                                              _bindingItemDescriptions,
                                              _bindingItemTypes);
                 _bindinglistDataType = new TabularType("HeaderBindings",
-                                             "List of queues and related header attribute bindings",
+                                             "List of queue bindings for " + getName(),
                                              _bindingDataType,
                                              _bindingItemIndexNames);
             }
@@ -148,10 +151,36 @@
             return _bindingList;
         }
 
-        public void createBinding(String QueueName, String binding)
-            throws ServiceNotFoundException
+        /**
+         * Creates bindings. Binding pattern is as follows-
+         * <attributename>=<value>,<attributename>=<value>,...
+         * @param queueName
+         * @param binding
+         * @throws JMException
+         */
+        public void createBinding(String queueName, String binding)
+            throws JMException
         {
-            throw new ServiceNotFoundException("This service is not supported by \"" + this.getName() + "\"");
+            AMQQueue queue = ApplicationRegistry.getInstance().getQueueRegistry().getQueue(queueName);
+
+            if (queue == null)
+            {
+                throw new JMException("Queue \"" + queueName + "\" is not registered with the exchange.");
+            }
+
+            String[] bindings  = binding.split(",");
+            FieldTable fieldTable = new FieldTable();
+            for (int i = 0; i < bindings.length; i++)
+            {
+                String[] keyAndValue = bindings[i].split("=");
+                if (keyAndValue == null || keyAndValue.length < 2)
+                {
+                    throw new JMException("Format for headers binding should be \"<attribute1>=<value1>,<attribute2>=<value2>\" ");
+                }
+                fieldTable.put(keyAndValue[0], keyAndValue[1]);
+            }
+
+            _bindings.add(new Registration(new HeadersBinding(fieldTable), queue));
         }
 
     } // End of MBean class

Modified: incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/AMQMinaProtocolSession.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/AMQMinaProtocolSession.java?view=diff&rev=467700&r1=467699&r2=467700
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/AMQMinaProtocolSession.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/AMQMinaProtocolSession.java Wed Oct 25 09:15:06 2006
@@ -178,13 +178,13 @@
             try
             {
                 _channelType = new CompositeType("channel",
-                                              "a Channel",
+                                              "Channel Details",
                                               _channelAtttibuteNames,
                                               _channelAttributeDescriptions,
                                               _channelAttributeTypes);
 
                 _channelsType = new TabularType("channelsType",
-                                       "List of available channelsType",
+                                       "List of available channels",
                                        _channelType,
                                        _indexNames);
             }

Modified: incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/ManagedConnection.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/ManagedConnection.java?view=diff&rev=467700&r1=467699&r2=467700
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/ManagedConnection.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/org/apache/qpid/server/protocol/ManagedConnection.java Wed Oct 25 09:15:06 2006
@@ -85,8 +85,6 @@
      * taking required action is there are more channels being created.
      * @return maximum number of channels allowed to be created.
      */
-    @MBeanAttribute(name="MaximumNumberOfAllowedChannels",
-                         description="The maximum number of channels that can be opened using this connection")
     Long getMaximumNumberOfAllowedChannels();
 
     /**
@@ -94,6 +92,8 @@
      * this connection.
      * @param value
      */
+    @MBeanAttribute(name="MaximumNumberOfAllowedChannels",
+                             description="The maximum number of channels that can be opened using this connection")    
     void setMaximumNumberOfAllowedChannels(Long value);
 
     //********** Operations *****************//