From 74cbc1d33f7dfa9f97c2e11a67c85415a559f6d5 Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Mon, 31 May 2010 16:07:44 +0000 Subject: QPID-2585: Update extras OSGi plugin to work with latest interfaces Applied patch from Andrew Kennedy git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@949787 13f79535-47bb-0310-9956-ffa450edef68 --- .../exchanges/diagnostic/DiagnosticExchange.java | 63 ++++++----------- .../extras/exchanges/example/TestExchange.java | 10 +-- .../org/apache/qpid/server/plugins/ExtrasTest.java | 74 ++++++++++++++++++++ .../org/apache/qpid/server/plugins/PluginTest.java | 80 ---------------------- 4 files changed, 100 insertions(+), 127 deletions(-) create mode 100644 java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java delete mode 100644 java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/PluginTest.java (limited to 'java/broker-plugins/extras/src') diff --git a/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/diagnostic/DiagnosticExchange.java b/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/diagnostic/DiagnosticExchange.java index b497f192d6..4ab8a072b1 100644 --- a/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/diagnostic/DiagnosticExchange.java +++ b/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/diagnostic/DiagnosticExchange.java @@ -27,48 +27,35 @@ import javax.management.JMException; import javax.management.openmbean.OpenDataException; import javax.management.openmbean.TabularData; +import org.apache.log4j.Logger; import org.apache.qpid.AMQException; -import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; +import org.apache.qpid.management.common.mbeans.annotations.MBeanConstructor; +import org.apache.qpid.management.common.mbeans.annotations.MBeanDescription; +import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.exchange.AbstractExchange; import org.apache.qpid.server.exchange.AbstractExchangeMBean; import org.apache.qpid.server.exchange.ExchangeType; -import org.apache.qpid.server.exchange.Exchange; -import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.message.InboundMessage; -import org.apache.qpid.server.binding.Binding; +import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.virtualhost.VirtualHost; -import org.apache.qpid.junit.extensions.util.SizeOf; -import org.apache.qpid.management.common.mbeans.annotations.MBeanConstructor; -import org.apache.qpid.management.common.mbeans.annotations.MBeanDescription; -import org.apache.log4j.Logger; - /** - * * This is a special diagnostic exchange type which doesn't actually do anything * with messages. When it receives a message, it writes information about the * current memory usage to the "memory" property of the message and places it on the * diagnosticqueue for retrieval - * - * @author Aidan Skinner - * */ - public class DiagnosticExchange extends AbstractExchange { - private static final Logger _logger = Logger.getLogger(DiagnosticExchange.class); - public static final AMQShortString DIAGNOSTIC_EXCHANGE_CLASS = new AMQShortString("x-diagnostic"); public static final AMQShortString DIAGNOSTIC_EXCHANGE_NAME = new AMQShortString("diagnostic"); - /** - * the logger. - */ - //private static final Logger _logger = Logger.getLogger(DiagnosticExchange.class); + /** The logger */ + //private static final Logger _logger = Logger.getLogger(DiagnosticExchange.class); /** * MBean class implementing the management interfaces. @@ -76,7 +63,6 @@ public class DiagnosticExchange extends AbstractExchange @MBeanDescription("Management Bean for Diagnostic Exchange") private final class DiagnosticExchangeMBean extends AbstractExchangeMBean { - /** * Usual constructor. * @@ -95,9 +81,9 @@ public class DiagnosticExchange extends AbstractExchange * * @throws OpenDataException * @returns null - * @todo ... or can there? Could this actually return all the - * information in one easy to read table? + * TODO or can there? Could this actually return all the information in one easy to read table? */ + @Override public TabularData bindings() throws OpenDataException { return null; @@ -107,19 +93,16 @@ public class DiagnosticExchange extends AbstractExchange * This exchange type doesn't support queues, so this method does * nothing. * - * @param queueName - * the queue you'll fail to create - * @param binding - * the binding you'll fail to create - * @throws JMException - * an exception that will never be thrown + * @param queueName the queue you'll fail to create + * @param binding the binding you'll fail to create + * @throws JMException an exception that will never be thrown */ + @Override public void createNewBinding(String queueName, String binding) throws JMException { // No Op } - - } // End of MBean class + } public static final ExchangeType TYPE = new ExchangeType() @@ -167,7 +150,6 @@ public class DiagnosticExchange extends AbstractExchange protected AbstractExchangeMBean createMBean() throws JMException { return new DiagnosticExchange.DiagnosticExchangeMBean(); - } public Logger getLogger() @@ -203,20 +185,18 @@ public class DiagnosticExchange extends AbstractExchange public ArrayList doRoute(InboundMessage payload) { - + //TODO shouldn't modify messages... perhaps put a new message on the queue? + /* Long value = new Long(SizeOf.getUsedMemory()); AMQShortString key = new AMQShortString("memory"); - - //TODO shouldn't modify messages... perhaps put a new message on the queue? -/* FieldTable headers = ((BasicContentHeaderProperties)payload.getMessageHeader().properties).getHeaders(); + FieldTable headers = ((BasicContentHeaderProperties)payload.getMessageHeader().properties).getHeaders(); headers.put(key, value); - ((BasicContentHeaderProperties)payload.getMessageHeader().properties).setHeaders(headers);*/ + ((BasicContentHeaderProperties)payload.getMessageHeader().properties).setHeaders(headers); + */ AMQQueue q = getQueueRegistry().getQueue(new AMQShortString("diagnosticqueue")); - ArrayList queues = new ArrayList(); queues.add(q); return queues; - } @@ -226,14 +206,13 @@ public class DiagnosticExchange extends AbstractExchange return false; } - protected void onBind(final Binding binding) { - + // No op } protected void onUnbind(final Binding binding) { - + // No op } } diff --git a/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/example/TestExchange.java b/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/example/TestExchange.java index ace30b9b89..def0b3f91a 100644 --- a/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/example/TestExchange.java +++ b/java/broker-plugins/extras/src/main/java/org/apache/qpid/extras/exchanges/example/TestExchange.java @@ -21,6 +21,11 @@ package org.apache.qpid.extras.exchanges.example; */ +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.UUID; + import org.apache.qpid.AMQException; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; @@ -36,11 +41,6 @@ import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.queue.BaseQueue; import org.apache.qpid.server.virtualhost.VirtualHost; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; -import java.util.UUID; - public class TestExchange implements Exchange { diff --git a/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java b/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java new file mode 100644 index 0000000000..57b6e19b5d --- /dev/null +++ b/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java @@ -0,0 +1,74 @@ +/* + * 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.server.plugins; + +import junit.framework.TestCase; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.qpid.server.configuration.ServerConfiguration; +import org.apache.qpid.server.exchange.ExchangeType; +import org.apache.qpid.server.registry.ApplicationRegistry; +import org.apache.qpid.server.registry.IApplicationRegistry; +import org.apache.qpid.server.util.TestApplicationRegistry; + +import java.util.Map; + +public class ExtrasTest extends TestCase +{ + private static final String TEST_EXCHANGE_CLASS = "org.apache.qpid.extras.exchanges.example.TestExchangeType"; + + private static final String PLUGIN_DIRECTORY = System.getProperty("example.plugin.target"); + private static final String CACHE_DIRECTORY = System.getProperty("example.cache.target"); + + IApplicationRegistry _registry; + + @Override + public void setUp() throws Exception + { + PropertiesConfiguration properties = new PropertiesConfiguration(); + properties.addProperty("plugin-directory", PLUGIN_DIRECTORY); + properties.addProperty("cache-directory", CACHE_DIRECTORY); + ServerConfiguration config = new ServerConfiguration(properties); + + // This Test requires an application Registry + ApplicationRegistry.initialise(new TestApplicationRegistry(config)); + _registry = ApplicationRegistry.getInstance(); + } + + @Override + public void tearDown() throws Exception + { + ApplicationRegistry.remove(); + } + + public void testLoadExchanges() throws Exception + { + PluginManager manager = _registry.getPluginManager(); + Map> exchanges = manager.getExchanges(); + assertNotNull("No exchanges found in " + PLUGIN_DIRECTORY, exchanges); + assertEquals("Wrong number of exchanges found in " + PLUGIN_DIRECTORY, 2, exchanges.size()); + assertNotNull("Wrong exchange found in " + PLUGIN_DIRECTORY, exchanges.get(TEST_EXCHANGE_CLASS)); + } + + public void testNoExchanges() throws Exception + { + PluginManager manager = new PluginManager("/path/to/nowhere", "/tmp"); + Map> exchanges = manager.getExchanges(); + assertTrue("Exchanges found", exchanges.isEmpty()); + } +} diff --git a/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/PluginTest.java b/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/PluginTest.java deleted file mode 100644 index 6f8f7a3a2a..0000000000 --- a/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/PluginTest.java +++ /dev/null @@ -1,80 +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.server.plugins; - -import junit.framework.TestCase; -import org.apache.commons.configuration.PropertiesConfiguration; -import org.apache.qpid.server.configuration.ServerConfiguration; -import org.apache.qpid.server.exchange.ExchangeType; -import org.apache.qpid.server.registry.ApplicationRegistry; -import org.apache.qpid.server.registry.IApplicationRegistry; -import org.apache.qpid.server.util.TestApplicationRegistry; - -import java.util.Map; - -public class PluginTest extends TestCase -{ - - private static final String TEST_EXCHANGE_CLASS = "org.apache.qpid.extras.exchanges.example.TestExchangeType"; - private static final String PLUGIN_DIRECTORY = System.getProperty("example.plugin.target"); - - IApplicationRegistry _registry; - - @Override - public void setUp() throws Exception - { - PropertiesConfiguration properties = new PropertiesConfiguration(); - - properties.addProperty("plugin-directory", PLUGIN_DIRECTORY); - - ServerConfiguration config = new ServerConfiguration(properties); - // This Test requires an application Registry - ApplicationRegistry.initialise(new TestApplicationRegistry(config)); - _registry = ApplicationRegistry.getInstance(); - } - - @Override - public void tearDown() throws Exception - { - ApplicationRegistry.remove(); - } - - - public void testLoadExchanges() throws Exception - { - PluginManager manager = _registry.getPluginManager(); - Map> exchanges = manager.getExchanges(); - assertNotNull("No exchanges found in " + PLUGIN_DIRECTORY, exchanges); - assertEquals("Wrong number of exchanges found in " + PLUGIN_DIRECTORY, - 2, exchanges.size()); - assertNotNull("Wrong exchange found in " + PLUGIN_DIRECTORY, - exchanges.get(TEST_EXCHANGE_CLASS)); - } - - public void testNoExchanges() throws Exception - { - PluginManager manager = new PluginManager("/path/to/nowhere"); - Map> exchanges = manager.getExchanges(); - assertEquals("Exchanges found", 0, exchanges.size()); - } - -} -- cgit v1.2.1