summaryrefslogtreecommitdiff
path: root/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java')
-rw-r--r--java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java41
1 files changed, 22 insertions, 19 deletions
diff --git a/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java b/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java
index b858742c4e..f82408bd27 100644
--- a/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java
+++ b/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java
@@ -36,15 +36,14 @@ import org.apache.qpid.management.common.mbeans.ManagedExchange;
public class AddQueue
{
-
public static void main(String[] args)
{
//Example: add 'newqueue' to the 'test' virtualhost and bind to the 'amq.direct' exchange
//TODO: take these parameters as arguments
-
+
addQueue("test", "amq.direct", "newqueue");
}
-
+
private static JMXConnector getJMXConnection() throws Exception
{
//TODO: Take these parameters as main+method arguments
@@ -52,52 +51,55 @@ public class AddQueue
int port = 8999;
String username = "admin";
String password = "admin";
-
+
Map<String, Object> env = new HashMap<String, Object>();
JMXServiceURL jmxUrl = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi");
//Add user credential's to environment map for RMIConnector startup.
env.put(JMXConnector.CREDENTIALS, new String[] {username,password});
-
+
return JMXConnectorFactory.connect(jmxUrl, env);
}
-
- public static boolean addQueue(String virHost, String exchName, String queueName) {
+ public static boolean addQueue(String virHost, String exchName, String queueName)
+ {
JMXConnector jmxc = null;
try
{
jmxc = getJMXConnection();
-
+
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
ObjectName hostManagerObjectName = new ObjectName(
"org.apache.qpid:" +
"type=VirtualHost.VirtualHostManager," +
- "VirtualHost=" + virHost + ",*");
+ "VirtualHost=" + ObjectName.quote(virHost) + ",*");
Set<ObjectName> vhostManagers = mbsc.queryNames(hostManagerObjectName, null);
-
+
if(vhostManagers.size() == 0)
{
+ System.out.println("VirtualHostManager MBean wasnt found: " + virHost);
+
//The vhostManager MBean wasnt found, cant procede
return false;
}
-
+
ManagedBroker vhostManager = (ManagedBroker) MBeanServerInvocationHandler.newProxyInstance(
mbsc, (ObjectName) vhostManagers.toArray()[0], ManagedBroker.class, false);
ObjectName customExchangeObjectName = new ObjectName(
"org.apache.qpid:" +
"type=VirtualHost.Exchange," +
- "VirtualHost=" + virHost + "," +
- "name=" + exchName + "," +
- "ExchangeType=direct,*");
+ "VirtualHost=" + ObjectName.quote(virHost) + "," +
+ "name=" + ObjectName.quote(exchName) + ",*");
Set<ObjectName> exchanges = mbsc.queryNames(customExchangeObjectName, null);
-
+
if(exchanges.size() == 0)
{
+ System.out.println("Exchange wasnt found: " + exchName);
+
//The exchange doesnt exist, cant procede.
return false;
}
@@ -105,12 +107,14 @@ public class AddQueue
//create the MBean proxy
ManagedExchange managedExchange = (ManagedExchange) MBeanServerInvocationHandler.newProxyInstance(
mbsc, (ObjectName) exchanges.toArray()[0], ManagedExchange.class, false);
-
+
try
{
//create the new durable queue and bind it.
vhostManager.createNewQueue(queueName, null, true);
+ System.out.println("Created queue: " + queueName);
managedExchange.createNewBinding(queueName,queueName);
+ System.out.println("Bound queue to exchange: "+ exchName);
}
catch (Exception e)
{
@@ -126,7 +130,7 @@ public class AddQueue
{
System.out.println("Could not add queue due to error :" + e.getMessage());
e.printStackTrace();
- }
+ }
finally
{
if(jmxc != null)
@@ -141,9 +145,8 @@ public class AddQueue
}
}
}
-
+
return false;
-
}
}