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 *****************//