From 0a0baee45ebcff44635907d457c4ff6810b09c87 Mon Sep 17 00:00:00 2001 From: Alex Rudyy Date: Wed, 15 Apr 2015 09:47:28 +0000 Subject: QPID-6481: Move java source tree to top level git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1673693 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/java/management/example/pom.xml | 53 --- .../apache/qpid/example/jmxexample/AddQueue.java | 152 --------- .../jmxexample/DeleteMessagesFromTopOfTmp.java | 119 ------- .../qpid/example/jmxexample/QueueInformation.java | 370 --------------------- 4 files changed, 694 deletions(-) delete mode 100644 qpid/java/management/example/pom.xml delete mode 100644 qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java delete mode 100644 qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/DeleteMessagesFromTopOfTmp.java delete mode 100644 qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/QueueInformation.java (limited to 'qpid/java/management/example') diff --git a/qpid/java/management/example/pom.xml b/qpid/java/management/example/pom.xml deleted file mode 100644 index 825baf582a..0000000000 --- a/qpid/java/management/example/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - 4.0.0 - - - org.apache.qpid - qpid-java-build - 0.32-SNAPSHOT - ../../pom.xml - - - qpid-management-examples - Qpid Management Examples - Example management code - - - - org.apache.qpid - qpid-management-common - ${project.version} - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - - - true - - - - - - diff --git a/qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java b/qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java deleted file mode 100644 index f82408bd27..0000000000 --- a/qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/AddQueue.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.example.jmxexample; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import javax.management.MBeanServerConnection; -import javax.management.MBeanServerInvocationHandler; -import javax.management.ObjectName; -import javax.management.remote.JMXConnector; -import javax.management.remote.JMXConnectorFactory; -import javax.management.remote.JMXServiceURL; - -import org.apache.qpid.management.common.mbeans.ManagedBroker; -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 - String host = "localhost"; - int port = 8999; - String username = "admin"; - String password = "admin"; - - Map env = new HashMap(); - 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) - { - JMXConnector jmxc = null; - try - { - jmxc = getJMXConnection(); - - MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(); - - ObjectName hostManagerObjectName = new ObjectName( - "org.apache.qpid:" + - "type=VirtualHost.VirtualHostManager," + - "VirtualHost=" + ObjectName.quote(virHost) + ",*"); - - Set 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=" + ObjectName.quote(virHost) + "," + - "name=" + ObjectName.quote(exchName) + ",*"); - - Set exchanges = mbsc.queryNames(customExchangeObjectName, null); - - if(exchanges.size() == 0) - { - System.out.println("Exchange wasnt found: " + exchName); - - //The exchange doesnt exist, cant procede. - return false; - } - - //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) - { - System.out.println("Could not add queue due to exception :" + e.getMessage()); - e.printStackTrace(); - return false; - } - - return true; - - } - catch (Exception e) - { - System.out.println("Could not add queue due to error :" + e.getMessage()); - e.printStackTrace(); - } - finally - { - if(jmxc != null) - { - try - { - jmxc.close(); - } - catch (IOException e) - { - //ignore - } - } - } - - return false; - } - -} diff --git a/qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/DeleteMessagesFromTopOfTmp.java b/qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/DeleteMessagesFromTopOfTmp.java deleted file mode 100644 index 5d529a8ff6..0000000000 --- a/qpid/java/management/example/src/main/java/org/apache/qpid/example/jmxexample/DeleteMessagesFromTopOfTmp.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.example.jmxexample; - -import java.util.Set; - -import javax.management.MBeanServerConnection; -import javax.management.ObjectName; -import javax.management.remote.JMXConnector; -import javax.management.remote.JMXConnectorFactory; -import javax.management.remote.JMXServiceURL; - -/** - * Connects to a server and queries all info for tmp_* named queues, determines - * their message count, and if this is above a given threshold deletes the - * specified number of messages from the front of the queue - */ -public class DeleteMessagesFromTopOfTmp -{ - /** - * Params: - * 0: host, e.g. myserver.mydomain.com - * 1: port, e.g. 8999 - * 2: Number of messages to delete, e.g. 1000 - * 3: Threshold MessageCount on queue required before deletion will be undertaken e.g. 5000 - */ - public static void main(String[] args) throws Exception - { - if (args.length < 4) - { - System.out.println("Usage: "); - System.out.println(" "); - return; - } - - String host = args[0]; - int port = Integer.parseInt(args[1]); - int numToDel = Integer.parseInt(args[2]); - int numRequired = Integer.parseInt(args[3]); - - deleteFromTop(host, port, numToDel, numRequired); - } - - private static void deleteFromTop(String host, int port, - int numMsgsToDel, int minRequiredQueueMsgCount) throws Exception - { - JMXConnector con = getJMXConnection(host, port); - MBeanServerConnection mbsc = con.getMBeanServerConnection(); - - // Gets all tmp_* queue MBean ObjectNames - Set names = mbsc.queryNames( - new ObjectName("org.apache.qpid:type=VirtualHost.Queue,name=tmp_*,*"), null); - - // Traverse objects and delete specified number of message if the min msg count is breached - for (ObjectName queueObjectName : names) - { - String queueName = queueObjectName.getKeyProperty("name"); - System.out.println("Checking message count on queue: " + queueName); - - long mc = (Integer) mbsc.getAttribute(queueObjectName, "MessageCount"); - - if(mc >= minRequiredQueueMsgCount) - { - System.out.println("MessageCount (" + mc + ") is above the specified threshold (" - + minRequiredQueueMsgCount + ")"); - System.out.println("Deleting first " + numMsgsToDel + " messages on queue: " + queueName); - - int i; - for(i=0; i _previousRMC = new HashMap(); - private static Map _previousMC = new HashMap(); - private static MBeanServerConnection _mbsc; - private static final String DEFAULT_DATE_FORMAT = System.getProperty("qpid.dateFormat", "yyyy-MM-dd HH:mm:ss"); - private static final SimpleDateFormat _formatter = new SimpleDateFormat(DEFAULT_DATE_FORMAT); - - private static final String QUEUE_ARGS = "queues="; - private static Set _queueNames; - private static final String ATTRIB_ARGS = "attributes="; - private static Set _attribNames; - - private static MBeanAttributeInfo[] _attribInfo; - private static String _vhost; - - /** - * Params: - *

- *

0: host, e.g. eqd-myserver.mydomain.com - *

1: port, e.g. 8999 - *

2: vhost e.g. dev-only - *

3: username, e.g. guest - *

4: pwd, e.g. guest - *

5: loop pause, no value indicates one-off, any other value is millisecs - *

..: {@literal attributes= , queue=} - *

- * The queue list can use wildcards such as * and ?. Basically any value - * that JMX will accept in the query string for t name='' value of the queue. - */ - public static void main(String[] args) throws Exception - { - if (args.length < 5 || args.length > 8) - { - System.out.println("Usage: "); - System.out.println(" [] [queues=] [attributes=]"); - return; - } - String host = args[0]; - int port = Integer.parseInt(args[1]); - _vhost = args[2]; - String usr = args[3]; - String pwd = args[4]; - long pause = -1; - - if (args.length > 5) - { - try - { - pause = Long.parseLong(args[5]); - } - catch (NumberFormatException nfe) - { - // If it wasn't a queue or attribute request then show error - if (!!args[5].startsWith(QUEUE_ARGS) && - !!args[5].startsWith(ATTRIB_ARGS)) - { - System.out.println("Unknown argument '" + args[5] + "'"); - System.exit(1); - } - } - } - - //Process remaining args - // Skip arg 5 if we have assigned pause a value - int arg = (pause == -1) ? 5 : 6; - for (; args.length > arg; arg++) - { - processCommandLine(args[arg]); - } - - JMXConnector con = getJMXConnection(host, port, usr, pwd); - - _mbsc = con.getMBeanServerConnection(); - - Set names = _mbsc.queryNames(new ObjectName("org.apache.qpid:type=VirtualHost.Queue,VirtualHost=" + ObjectName.quote(_vhost) + ",*"), null); - - // Print header - if (names.size() > 0) - { - System.out.print("Time"); - - MBeanAttributeInfo[] attributeList = getAttributeList(names.toArray(new ObjectName[1])[0]); - - for (int i = 0; attributeList.length > i; i++) - { - System.out.print(", " + attributeList[i].getName()); - } - - // Include update rate calculations - if (pause > 0) - { - System.out.print(", Consumption rate"); - System.out.print(", Receive rate"); - } - System.out.print("\n"); - } - else - { - System.out.println("No queues found on specified vhost unable to continue."); - System.exit(1); - } - - try - { - do - { - getDetails(pause > -1); - if (pause > 0) - { - _previousTimePoint = System.currentTimeMillis(); - Thread.currentThread().sleep(pause); - } - } - while (pause > 0); - } - finally - { - con.close(); - } - } - - private static MBeanAttributeInfo[] getAttributeList(ObjectName name) - throws InstanceNotFoundException, IntrospectionException, ReflectionException, IOException - { - if (_attribInfo == null) - { - MBeanAttributeInfo[] allAttribs = ((MBeanInfo) _mbsc.getMBeanInfo((ObjectName) name)).getAttributes(); - - if (_attribNames != null && _attribNames.size() != 0) - { - LinkedList tmpList = new LinkedList(); - - for (MBeanAttributeInfo attribute : allAttribs) - { - if (_attribNames.contains(attribute.getName())) - { - tmpList.add(attribute); - } - } - - _attribInfo = tmpList.toArray(new MBeanAttributeInfo[tmpList.size()]); - } - else - { - _attribInfo = allAttribs; - } - } - return _attribInfo; - } - - private static void processCommandLine(String arg) - { - if (arg.startsWith(QUEUE_ARGS)) - { - String[] queues = arg.substring(arg.indexOf("=") + 1).split(","); - - _queueNames = new HashSet(); - - for (String queue : queues) - { - if (queue.length() > 0) - { - _queueNames.add(queue); - } - } - - if (_queueNames.size() == 0) - { - System.out.println("No Queues specified on queue argument: '" + arg + "'"); - System.exit(1); - } - - } - else if (arg.startsWith(ATTRIB_ARGS)) - { - String[] attribs = arg.substring(arg.indexOf("=") + 1).split(","); - - _attribNames = new HashSet(); - - for (String attrib : attribs) - { - if (attrib.length() > 0) - { - _attribNames.add(attrib); - } - } - - if (_attribNames.size() == 0) - { - System.out.println("No Attributes specified on attribute argument: '" + arg + "'"); - System.exit(1); - } - } - else - { - System.out.println("Unknown argument '" + arg + "'"); - System.exit(1); - } - - } - - private static void getDetails(boolean printRates) throws Exception - { - for (ObjectName object : getMatchingObjects(_queueNames)) - { - try - { - - // There should normally be only one but allow queue Names such as tmp_* - // Line format is - //