From b35947d1e0f7d8dfaa1367d16395126771c5d2e2 Mon Sep 17 00:00:00 2001 From: Andrea Gazzarini Date: Tue, 17 Feb 2009 11:49:58 +0000 Subject: QPID-1606 : Connect example + Connect interface Improvements git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@744967 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/qpid/management/Names.java | 24 +++++- .../wsdm/capabilities/QManAdapterCapability.java | 10 ++- .../qpid/management/wsdm/common/QManFault.java | 2 +- .../common/UnableToConnectWithBrokerFault.java | 86 ++++++++++++++++++++++ 4 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/UnableToConnectWithBrokerFault.java (limited to 'java/management/client/src/main') diff --git a/java/management/client/src/main/java/org/apache/qpid/management/Names.java b/java/management/client/src/main/java/org/apache/qpid/management/Names.java index 351195db0b..808cafb6a7 100644 --- a/java/management/client/src/main/java/org/apache/qpid/management/Names.java +++ b/java/management/client/src/main/java/org/apache/qpid/management/Names.java @@ -170,11 +170,31 @@ public abstract class Names "EventsLifeCycleTopic", Names.PREFIX); + public final static QName HOST_QNAME = new QName( + Names.NAMESPACE_URI, + "host", + Names.PREFIX); + + public final static QName PORT_QNAME = new QName( + Names.NAMESPACE_URI, + "port", + Names.PREFIX); + + public final static QName USERNAME_QNAME= new QName( + Names.NAMESPACE_URI, + "username", + Names.PREFIX); + + public final static QName VIRTUAL_HOST_QNAME= new QName( + Names.NAMESPACE_URI, + "virtualHost", + Names.PREFIX); + public final static QName UNKNOWN_OBJECT_TYPE_LIFECYLE_TOPIC_NAME= new QName( Names.NAMESPACE_URI, "UnclassifiedLifeCycleTopic", Names.PREFIX); - + public final static String NAME_ATTRIBUTE = "name"; public final static String MODIFIABILITY = "modifiability"; @@ -191,4 +211,6 @@ public abstract class Names public final static String ADAPTER_HOST_PROPERTY_NAME = "qman.host"; public final static String ADAPTER_PORT_PROPERTY_NAME = "qman.port"; + + } \ No newline at end of file diff --git a/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapability.java b/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapability.java index 980eb9c1b5..414f37a746 100644 --- a/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapability.java +++ b/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/QManAdapterCapability.java @@ -53,6 +53,7 @@ import org.apache.qpid.management.Names; import org.apache.qpid.management.configuration.Configuration; import org.apache.qpid.management.jmx.EntityLifecycleNotification; import org.apache.qpid.management.wsdm.common.ThreadSessionManager; +import org.apache.qpid.management.wsdm.common.UnableToConnectWithBrokerFault; import org.apache.qpid.management.wsdm.muse.engine.WSDMAdapterEnvironment; import org.apache.qpid.management.wsdm.muse.serializer.ByteArraySerializer; import org.apache.qpid.management.wsdm.notifications.LifeCycleEvent; @@ -347,7 +348,14 @@ public class QManAdapterCapability extends AbstractCapability long.class.getName()}); } catch(Exception exception) { - throw new SoapFault(exception); + LOGGER.error(Messages.QMAN_100017_UNABLE_TO_CONNECT,host,port); + throw new UnableToConnectWithBrokerFault( + getResource().getEndpointReference(), + host, + port, + username, + virtualHost, + exception.getMessage()); } } diff --git a/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/QManFault.java b/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/QManFault.java index 9c78dfa0bb..0a52c2ba65 100644 --- a/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/QManFault.java +++ b/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/QManFault.java @@ -35,7 +35,7 @@ public class QManFault extends BaseFault private static final long serialVersionUID = 5977379710882983474L; private final static QName SERVICE = new QName( Names.NAMESPACE_URI, - "Service", + "QMan", Names.PREFIX); private final static QName EXCEPTION_QNAME = new QName( diff --git a/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/UnableToConnectWithBrokerFault.java b/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/UnableToConnectWithBrokerFault.java new file mode 100644 index 0000000000..55365b4051 --- /dev/null +++ b/java/management/client/src/main/java/org/apache/qpid/management/wsdm/common/UnableToConnectWithBrokerFault.java @@ -0,0 +1,86 @@ +/* + * + * 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.management.wsdm.common; + +import javax.xml.namespace.QName; + +import org.apache.muse.util.xml.XmlUtils; +import org.apache.muse.ws.addressing.EndpointReference; +import org.apache.qpid.management.Names; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +/** + * This is the exception encapsulating the fault that will be thrown in case of + * broker connection failure. + * + * @author Andrea Gazzarini + */ +public class UnableToConnectWithBrokerFault extends QManFault +{ + private static final long serialVersionUID = 5977379710882983474L; + + private String _host; + private int _port; + private String _username; + private String _virtualHostName; + + /** + * Builds a new exception with the given endpoint reference and connection data. + * + * @param host the requested qpid host. + * @param port the requested qpid port. + * @param username the username used for estabilishing connection. + * @param virtualHostName the name of the target virtual host.. + */ + public UnableToConnectWithBrokerFault( + EndpointReference endpointReference, + String host, + int port, + String username, + String virtualHostName, + String message) + { + super( + endpointReference, + new QName( + Names.NAMESPACE_URI, + "UnableToConnectFault", + Names.PREFIX), + String.format("Unable to connect with the requested broker. Underlying exception message was %s",message)); + this._host = host; + this._port = port; + this._username = username; + this._virtualHostName = virtualHostName; + } + + @Override + public Element getDetail() + { + Element detail = super.getDetail(); + Document owner = detail.getOwnerDocument(); + detail.appendChild(XmlUtils.createElement(owner, Names.HOST_QNAME,_host)); + detail.appendChild(XmlUtils.createElement(owner, Names.PORT_QNAME,_port)); + detail.appendChild(XmlUtils.createElement(owner, Names.USERNAME_QNAME,_username)); + detail.appendChild(XmlUtils.createElement(owner, Names.VIRTUAL_HOST_QNAME,_virtualHostName)); + return detail; + } +} \ No newline at end of file -- cgit v1.2.1