From 2c497e4ee2425dec0a977baa02ddae528a75fa5e Mon Sep 17 00:00:00 2001 From: Andrea Gazzarini Date: Wed, 11 Feb 2009 14:11:41 +0000 Subject: QPID-1582 : WS-Notification implementation on QMan git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743341 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/management/TestConstants.java | 3 -- .../wsdm/EnhancedReflectionProxyHandler.java | 9 +++-- .../apache/qpid/management/wsdm/ServerThread.java | 40 +++++++++++++++++----- .../wsdm/WebApplicationLifeCycleListener.java | 9 +++++ .../qpid/management/wsdm/WsDmAdapterTest.java | 13 +++---- 5 files changed, 51 insertions(+), 23 deletions(-) (limited to 'java/management/client/src/test') diff --git a/java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java b/java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java index d7ecd707fe..12ba1fab73 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/TestConstants.java @@ -64,7 +64,4 @@ public interface TestConstants String YEARS = "years"; int SAMPLE_MIN_VALUE = 1; int SAMPLE_MAX_VALUE = 120; - - String DEFAULT_HOST = "localhost"; - int DEFAULT_PORT = 8080; } \ No newline at end of file diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java index 732f110ba3..615d744546 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/EnhancedReflectionProxyHandler.java @@ -29,8 +29,12 @@ import org.apache.qpid.management.wsdm.muse.serializer.ByteArraySerializer; import org.w3c.dom.Element; /** - * Custom implementation of Muse ReflectionProxyHandler that uses a base64 serializer - * for byte arrays. + * Custom implementation of Muse ReflectionProxyHandler + * that uses a base64 serializer for byte arrays. + * Note that this proxy handler is only needed for tests because it provides + * client side Base64 serializer capability. + * In a concrete scenario we don't mind what instrument the client is using in order to + * propertly serialize byte arrays. * * @author Andrea Gazzarini */ @@ -53,6 +57,7 @@ public class EnhancedReflectionProxyHandler extends ReflectionProxyHandler } } + @SuppressWarnings("unchecked") @Override protected Object deserialize(Element xml, Class theClass) throws SoapFault { diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java index ff7d9b5a8a..395fe657c0 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/ServerThread.java @@ -30,23 +30,39 @@ import org.mortbay.jetty.nio.SelectChannelConnector; import org.mortbay.jetty.webapp.WebAppContext; import org.mortbay.start.Monitor; +/** + * Web Server startup thread. + * It is used on adapter test case in order to start the embedded + * web server as a separated thread. + * + * @author Andrea Gazzarini + */ public class ServerThread extends Thread { private final Listener _lifecycleListener; - private Server server; + private Server _server; + + /** + * Builds a new server thread with the given lifecycle listener. + * + * @param listener the lifecycle listener. + */ ServerThread(Listener listener) { this._lifecycleListener = listener; } + /** + * Starts the server. + */ @Override public void run() { try { Monitor.monitor(); - server = new Server(); - server.setStopAtShutdown(true); + _server = new Server(); + _server.setStopAtShutdown(true); Connector connector=new SelectChannelConnector(); connector.setPort( @@ -54,11 +70,12 @@ public class ServerThread extends Thread System.getProperty(Names.ADAPTER_PORT_PROPERTY_NAME))); connector.setHost(System.getProperty(Names.ADAPTER_HOST_PROPERTY_NAME)); - server.setConnectors(new Connector[]{connector}); + _server.setConnectors(new Connector[]{connector}); WebAppContext webapp = new WebAppContext(); -// webapp.setExtractWAR(false); webapp.setContextPath("/qman"); + + // Additional web application descriptor containing test components. webapp.setDefaultsDescriptor("/org/apache/qpid/management/wsdm/web.xml"); String webApplicationPath = System.getProperty("qman.war"); @@ -66,17 +83,22 @@ public class ServerThread extends Thread webapp.setWar(rootFolderPath.toURI().toURL().toExternalForm()); webapp.addLifeCycleListener(_lifecycleListener); - server.setHandler(webapp); - server.start(); - server.join(); + _server.setHandler(webapp); + _server.start(); + _server.join(); } catch(Exception exception) { throw new RuntimeException(exception); } } + /** + * Shutdown the server. + * + * @throws Exception when a problem is encountered during shutdown. + */ public void shutdown() throws Exception { - server.stop(); + _server.stop(); } } diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WebApplicationLifeCycleListener.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WebApplicationLifeCycleListener.java index 3a0bbb608a..91c646467e 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WebApplicationLifeCycleListener.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WebApplicationLifeCycleListener.java @@ -19,6 +19,7 @@ * */ package org.apache.qpid.management.wsdm; + import org.mortbay.component.LifeCycle; import org.mortbay.component.LifeCycle.Listener; @@ -26,6 +27,14 @@ import org.mortbay.component.LifeCycle.Listener; * Adapter class used to provide an empty (base) implementation of * Lifecycle listener interface. * + * Adapter test case needs to be informed about the lifecycle of the + * deployed QMan application. Only when its deployment is completed the test + * case can run successfully. + * + * So, following the same logic of Swng event model, this is an adapter that provides + * empty implementation of the listener interface (see for example MouseAdapter + * for mouse events listener) + * * @author Andrea Gazzarini */ public class WebApplicationLifeCycleListener implements Listener diff --git a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java index 8a4434bee1..1e0bc4c131 100644 --- a/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java +++ b/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java @@ -49,7 +49,7 @@ import org.apache.muse.ws.addressing.soap.SoapFault; import org.apache.muse.ws.resource.remote.WsResourceClient; import org.apache.muse.ws.resource.sg.remote.ServiceGroupClient; import org.apache.qpid.management.Names; -import org.apache.qpid.management.TestConstants; +import org.apache.qpid.management.Protocol; import org.apache.qpid.management.wsdm.capabilities.Result; import org.apache.qpid.management.wsdm.muse.serializer.DateSerializer; import org.apache.qpid.management.wsdm.muse.serializer.InvocationResultSerializer; @@ -126,11 +126,11 @@ public class WsDmAdapterTest extends TestCase { System.setProperty( Names.ADAPTER_PORT_PROPERTY_NAME, - String.valueOf(TestConstants.DEFAULT_PORT)); + String.valueOf(Protocol.DEFAULT_QMAN_PORT_NUMBER)); System.setProperty( Names.ADAPTER_HOST_PROPERTY_NAME, - TestConstants.DEFAULT_HOST); + Protocol.DEFAULT_QMAN_HOSTNAME); server = new ServerThread(listener); server.start(); @@ -787,12 +787,7 @@ public class WsDmAdapterTest extends TestCase { */ private ServiceGroupClient getServiceGroupClient() { - URI address = URI.create( - "http://"+ - TestConstants.DEFAULT_HOST+ - ":"+ - TestConstants.DEFAULT_PORT+ - "/qman/services/adapter"); + URI address = URI.create(Protocol.DEFAULT_ENDPOINT_URI); return new ServiceGroupClient(new EndpointReference(address)); } -- cgit v1.2.1