Added: webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Exception.java URL: http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Exception.java?rev=811951&view=auto ============================================================================== --- webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Exception.java (added) +++ webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Exception.java Sun Sep 6 23:21:23 2009 @@ -0,0 +1,351 @@ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed 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.ws.scout.registry; + +import org.uddi.api_v3.*; + +/** + * Thrown to indicate that a UDDI Exception was encountered. + * + * <i>Borrowed from jUDDI project.</i> + * + * @author Steve Viens (svi...@apache.org) + */ +public class RegistryV3Exception extends Exception +{ + private static final long serialVersionUID = 1L; + public static final int E_ASSERTION_NOT_FOUND = 30000; + public static final int E_AUTH_TOKEN_EXPIRED = 10110; + public static final int E_AUTH_TOKEN_REQUIRED = 10120; + public static final int E_ACCOUNT_LIMIT_EXCEEDED = 10160; + public static final int E_BUSY = 10400; + public static final int E_CATEGORIZATION_NOT_ALLOWED = 20100; + public static final int E_FATAL_ERROR = 10500; + public static final int E_INVALID_KEY_PASSED = 10210; + public static final int E_INVALID_PROJECTION = 20230; + public static final int E_INVALID_CATEGORY = 20000; + public static final int E_INVALID_COMPLETION_STATUS = 30100; + public static final int E_INVALID_URL_PASSED = 10220; + public static final int E_INVALID_VALUE = 20200; + public static final int E_KEY_RETIRED = 10310; + public static final int E_LANGUAGE_ERROR = 10060; + public static final int E_MESSAGE_TOO_LARGE = 30110; + public static final int E_NAME_TOO_LONG = 10020; + public static final int E_OPERATOR_MISMATCH = 10130; + public static final int E_PUBLISHER_CANCELLED = 30220; + public static final int E_REQUEST_DENIED = 30210; + public static final int E_SECRET_UNKNOWN = 30230; + public static final int E_SUCCESS = 0; + public static final int E_TOO_MANY_OPTIONS = 10030; + public static final int E_TRANSFER_ABORTED = 30200; + public static final int E_UNRECOGNIZED_VERSION = 10040; + public static final int E_UNKNOWN_USER = 10150; + public static final int E_UNSUPPORTED = 10050; + public static final int E_USER_MISMATCH = 10140; + public static final int E_VALUE_NOT_ALLOWED = 20210; + public static final int E_UNVALIDATABLE = 20220; + public static final int E_REQUEST_TIMEOUT = 20240; + public static final int E_INVALID_TIME = 40030; + public static final int E_RESULT_SET_TOO_LARGE = 40300; + + // SOAP SOAPFault Actor + private String faultActor; + + // SOAP SOAPFault Code + private String faultCode; + + // SOAP SOAPFault SOAPMessage + private String faultString; + + // UDDI DispositionReport + private DispositionReport dispReport; + + private ObjectFactory objectFactory = new ObjectFactory(); + + /** + * Constructs a RegistryException instance. + * @param msg additional error information + */ + public RegistryV3Exception(String msg) + { + super(msg); + + setFaultCode(null); + setFaultString(msg); + setFaultActor(null); + } + + /** + * Constructs a RegistryException instance. + * @param ex the original exception + */ + public RegistryV3Exception(Exception ex) + { + super(ex); + + if (ex != null) + { + // Not sure why this would ever happen but + // just in case we are asked to create a new + // RegistryException using values from another + // let's be sure to grab all relevant values. + // + if (ex instanceof RegistryV3Exception) + { + RegistryV3Exception regex = (RegistryV3Exception)ex; + setFaultCode(regex.getFaultCode()); + setFaultString(regex.getFaultString()); + setFaultActor(regex.getFaultActor()); + setDispositionReport(regex.getDispositionReport()); + } + else // Not a RegistryException (or subclass) + { + setFaultString(ex.getMessage()); + } + } + } + + /** + * Constructs a RegistryException instance. + * + * @param fCode + * @param fString + * @param fActor + * @param dispRpt + */ + public RegistryV3Exception(String fCode,String fString,String fActor,DispositionReport dispRpt) + { + super(fString); + + setFaultCode(fCode); + setFaultString(fString); + setFaultActor(fActor); + setDispositionReport(dispRpt); + } + + /** + * Constructs a RegistryException instance. + * @param ex the original exception + */ + RegistryV3Exception(String fCode,int errno,String msg) + { + super(buildMessage(errno,msg)); + + String errCode = lookupErrCode(errno); + + if (fCode != null) { + setFaultCode(fCode); + } + + setFaultString(getMessage()); + + Result r = this.objectFactory.createResult(); + ErrInfo ei = this.objectFactory.createErrInfo(); + + if (errCode != null) { + ei.setErrCode(errCode); + } + + ei.setValue(getMessage()); + + r.setErrno(errno); + + if (ei != null) { + r.setErrInfo(ei); + } + + addResult(r); + } + + /** + * Sets the fault actor of this SOAP SOAPFault to the given value. + * @param actor The new actor value for this SOAP SOAPFault. + */ + public void setFaultActor(String actor) + { + this.faultActor = actor; + } + + /** + * Returns the fault actor of this SOAP SOAPFault. + * @return The fault actor of this SOAP SOAPFault. + */ + public String getFaultActor() + { + return this.faultActor; + } + + /** + * Sets the fault code of this SOAP SOAPFault to the given value. + * @param code The new code number for this SOAP SOAPFault. + */ + public void setFaultCode(String code) + { + this.faultCode = code; + } + + /** + * Returns the fault code of this SOAP SOAPFault. + * @return The fault code of this SOAP SOAPFault. + */ + public String getFaultCode() + { + return this.faultCode; + } + + /** + * Sets the fault string of this SOAP SOAPFault to the given value. + * @param value The new fault string for this SOAP SOAPFault. + */ + public void setFaultString(String value) + { + this.faultString = value; + } + + /** + * Returns the fault string of this SOAP SOAPFault. + * @return The fault string of this SOAP SOAPFault. + */ + public String getFaultString() + { + return this.faultString; + } + + /** + * Sets the UDDI DispositionReport value to the instance + * specified + * @param dispRpt The new UDDI DispositionReport instance for + * this SOAP Fault. + */ + public void setDispositionReport(DispositionReport dispRpt) + { + this.dispReport = dispRpt; + } + + /** + * Returns the disposition report associated with this jUDDI exception. It + * uses the results Vector to determine if a disposition report is present + * and should be returned. + * @return The disposition report associated with this jUDDI exception. + */ + public DispositionReport getDispositionReport() + { + return this.dispReport; + } + + /** + * Adds a result instance to this Exception. Multiple result objects + * may exist within a DispositionReport + */ + public void addResult(Result result) + { + if (this.dispReport==null) { + this.dispReport = this.objectFactory.createDispositionReport(); + } + + Result jaxbResult = this.objectFactory.createResult(); + this.dispReport.getResult().add(jaxbResult); + + if (result.getErrInfo() != null) jaxbResult.setErrInfo(result.getErrInfo()); + if (result.getKeyType() != null) jaxbResult.setKeyType(result.getKeyType()); + jaxbResult.setErrno(result.getErrno()); + } + + /** + * + */ + public String toString() + { + String msg = getMessage(); + if (msg == null) + return ""; + else + return getMessage(); + } + + private static final String buildMessage(int errno,String msg) + { + StringBuffer buffer = new StringBuffer(); + + String errCode = lookupErrCode(errno); + if (errCode != null) + { + buffer.append(errCode); + buffer.append(" "); + } + + buffer.append("("); + buffer.append(errno); + buffer.append(") "); + + //String errText = lookupErrText(errno); + // FIXME: What should error text be? + String errText = ""; + if (errText != null) + { + buffer.append(errText); + buffer.append(" "); + } + + if ((msg != null) && (msg.trim().length() > 0)) + { + buffer.append(msg); + } + + return buffer.toString(); + } + + public static final String lookupErrCode(int errno) + { + switch (errno) + { + case E_ACCOUNT_LIMIT_EXCEEDED : return "E_accountLimitExceeded"; + case E_ASSERTION_NOT_FOUND : return "E_assertionNotFound"; + case E_AUTH_TOKEN_EXPIRED : return "E_authTokenExpired"; + case E_AUTH_TOKEN_REQUIRED : return "E_authTokenRequired"; + case E_BUSY : return "E_busy"; + case E_CATEGORIZATION_NOT_ALLOWED : return "E_categorizationNotAllowed"; + case E_FATAL_ERROR : return "E_fatalError"; + case E_INVALID_CATEGORY : return "E_invalidCategory"; + case E_INVALID_COMPLETION_STATUS : return "E_invalidCompletionStatus"; + case E_INVALID_KEY_PASSED : return "E_invalidKeyPassed"; + case E_INVALID_PROJECTION : return "E_invalidProjection"; + case E_INVALID_TIME : return "E_invalidTime"; + case E_INVALID_URL_PASSED : return "E_invalidURLPassed"; + case E_INVALID_VALUE : return "E_invalidValue"; + case E_KEY_RETIRED : return "E_keyRetired"; + case E_LANGUAGE_ERROR : return "E_languageError"; + case E_MESSAGE_TOO_LARGE : return "E_messageTooLarge"; + case E_NAME_TOO_LONG : return "E_nameTooLong"; + case E_OPERATOR_MISMATCH : return "E_operatorMismatch"; + case E_PUBLISHER_CANCELLED : return "E_publisherCancelled"; + case E_REQUEST_DENIED : return "E_requestDenied"; + case E_REQUEST_TIMEOUT : return "E_requestTimeout"; + case E_RESULT_SET_TOO_LARGE : return "E_resultSetTooLarge"; + case E_SECRET_UNKNOWN : return "E_secretUnknown"; + case E_SUCCESS : return "E_success"; + case E_TOO_MANY_OPTIONS : return "E_tooManyOptions"; + case E_TRANSFER_ABORTED : return "E_transferAborted"; + case E_UNKNOWN_USER : return "E_unknownUser"; + case E_UNRECOGNIZED_VERSION : return "E_unrecognizedVersion"; + case E_UNSUPPORTED : return "E_unsupported"; + case E_UNVALIDATABLE : return "E_unvalidatable"; + case E_USER_MISMATCH : return "E_userMismatch"; + case E_VALUE_NOT_ALLOWED : return "E_valueNotAllowed"; + default : return null; + } + } +} \ No newline at end of file
Added: webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java URL: http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java?rev=811951&view=auto ============================================================================== --- webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java (added) +++ webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/RegistryV3Impl.java Sun Sep 6 23:21:23 2009 @@ -0,0 +1,1206 @@ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed 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.ws.scout.registry; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Properties; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.uddi.api_v3.*; +import org.apache.ws.scout.transport.Transport; +import org.apache.ws.scout.transport.TransportException; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +/** + * RegistryImpl is the implementation of IRegistry. + * + * <p>The execute() function signature has been changed slightly from the jUDDI + * version, since the URL can no longer be decided dynamically (in an easy + * enough manner) as we don't use jUDDI data types anymore.</p> + * + * <i>The function code is borrowed from jUDDI, with appropriate modifications so + * that xmlbeans data types are used intead of jUDDI data types.</i> + * + */ + +public class RegistryV3Impl implements IRegistryV3 { + + public static final String INQUIRY_ENDPOINT_PROPERTY_NAME = "scout.proxy.inquiryURL"; + public static final String PUBLISH_ENDPOINT_PROPERTY_NAME = "scout.proxy.publishURL"; + public static final String SECURITY_ENDPOINT_PROPERTY_NAME = "scout.proxy.securityURL"; + public static final String ADMIN_ENDPOINT_PROPERTY_NAME = "scout.proxy.adminURL"; + public static final String TRANSPORT_CLASS_PROPERTY_NAME = "scout.proxy.transportClass"; + public static final String SECURITY_PROVIDER_PROPERTY_NAME = "scout.proxy.securityProvider"; + public static final String PROTOCOL_HANDLER_PROPERTY_NAME = "scout.proxy.protocolHandler"; + public static final String UDDI_VERSION_PROPERTY_NAME = "scout.proxy.uddiVersion"; + public static final String UDDI_NAMESPACE_PROPERTY_NAME = "scout.proxy.uddiNamespace"; + + public static final String DEFAULT_INQUIRY_ENDPOINT = "http://localhost/juddi/inquiry"; + public static final String DEFAULT_PUBLISH_ENDPOINT = "http://localhost/juddi/publish"; + public static final String DEFAULT_SECURITY_ENDPOINT = "http://localhost/juddi/security"; + public static final String DEFAULT_ADMIN_ENDPOINT = "http://localhost/juddi/admin"; + public static final String DEFAULT_TRANSPORT_CLASS = "org.apache.ws.scout.transport.AxisTransport"; + public static final String DEFAULT_SECURITY_PROVIDER = "com.sun.net.ssl.internal.ssl.Provider"; + public static final String DEFAULT_PROTOCOL_HANDLER = "com.sun.net.ssl.internal.www.protocol"; + public static final String DEFAULT_UDDI_VERSION = "2.0"; + public static final String DEFAULT_UDDI_NAMESPACE = "urn:uddi-org:api_v2"; + + private URI adminURI; + private URI inquiryURI; + private URI publishURI; + private URI securityURI; + + private Transport transport; + + private String securityProvider; + private String protocolHandler; + private String uddiVersion; + private String uddiNamespace; + + private ObjectFactory objectFactory = new ObjectFactory(); + + private Marshaller marshaller = null; + private Unmarshaller unmarshaller = null; + + private static Log log = LogFactory.getLog(RegistryV3Impl.class); + + /** + * Creates a new instance of RegistryImpl. + */ + public RegistryV3Impl(Properties props) { + super(); + + this.init(props); + } + + /** + * + */ + private void init(Properties props) { + // We need to have a non-null Properties + // instance so initialization takes place. + if (props == null) + props = new Properties(); + + // Override defaults with specific specific values + try { + String iURL = props.getProperty(INQUIRY_ENDPOINT_PROPERTY_NAME); + if (iURL != null) + this.setInquiryURI(new URI(iURL)); + else + this.setInquiryURI(new URI(DEFAULT_INQUIRY_ENDPOINT)); + + String pURL = props.getProperty(PUBLISH_ENDPOINT_PROPERTY_NAME); + if (pURL != null) + this.setPublishURI(new URI(pURL)); + else + this.setPublishURI(new URI(DEFAULT_PUBLISH_ENDPOINT)); + + String sURL = props.getProperty(SECURITY_ENDPOINT_PROPERTY_NAME); + if (sURL != null) + this.setSecurityURI(new URI(sURL)); + else + this.setSecurityURI(new URI(DEFAULT_SECURITY_ENDPOINT)); + + String aURL = props.getProperty(ADMIN_ENDPOINT_PROPERTY_NAME); + if (aURL != null) + this.setAdminURI(new URI(aURL)); + else + this.setAdminURI(new URI(DEFAULT_ADMIN_ENDPOINT)); + } catch (URISyntaxException muex) { + throw new RuntimeException(muex); + } + + String secProvider = props.getProperty(SECURITY_PROVIDER_PROPERTY_NAME); + if (secProvider != null) + this.setSecurityProvider(secProvider); + else + this.setSecurityProvider(DEFAULT_SECURITY_PROVIDER); + + String protoHandler = props.getProperty(PROTOCOL_HANDLER_PROPERTY_NAME); + if (protoHandler != null) + this.setProtocolHandler(protoHandler); + else + this.setProtocolHandler(DEFAULT_PROTOCOL_HANDLER); + + String uddiVer = props.getProperty(UDDI_VERSION_PROPERTY_NAME); + if (uddiVer != null) + this.setUddiVersion(uddiVer); + else + this.setUddiVersion(DEFAULT_UDDI_VERSION); + + String uddiNS = props.getProperty(UDDI_NAMESPACE_PROPERTY_NAME); + if (uddiNS != null) + this.setUddiNamespace(uddiNS); + else + this.setUddiNamespace(DEFAULT_UDDI_NAMESPACE); + + String transClass = props.getProperty(TRANSPORT_CLASS_PROPERTY_NAME); + if (transClass != null) + this.setTransport(this.getTransport(transClass)); + else + this.setTransport(this.getTransport(DEFAULT_TRANSPORT_CLASS)); + + try + { + JAXBContext context = JAXBContext.newInstance(new Class[] {ObjectFactory.class}); + JAXBContext v3context = JAXBContext.newInstance(new Class[] {org.uddi.api_v3.ObjectFactory.class}); + if ("3.0".equals(uddiVer)) { + this.unmarshaller = v3context.createUnmarshaller(); + } else { + this.unmarshaller = context.createUnmarshaller(); + } + this.marshaller = context.createMarshaller(); + } + catch(JAXBException e) + { + throw new RuntimeException(e); + } + } + + /** + * + * @param uddiRequest + * @return String + * @throws RegistryV3Exception + */ + public String execute(String uddiRequest, String urltype) + throws TransportException { + URI endPointURL = null; + if (urltype.equalsIgnoreCase("INQUIRY")) + endPointURL = this.getInquiryURI(); + else + endPointURL = this.getPublishURI(); + + // A SOAP request is made and a SOAP response + // is returned. + + return transport.send(uddiRequest, endPointURL); + } + + /** + * + */ + public JAXBElement<?> execute(JAXBElement<?> uddiRequest, URI endPointURI) + throws RegistryV3Exception { + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + Document doc; + try { + DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); + docBuilderFactory.setNamespaceAware(true); + DocumentBuilder docBuilder= docBuilderFactory.newDocumentBuilder(); + this.marshaller.marshal(uddiRequest, baos); + doc = docBuilder.parse(new ByteArrayInputStream(baos.toByteArray())); + } catch (SAXException saxe) { + throw (new RegistryV3Exception(saxe)); + } catch (ParserConfigurationException pce) { + throw (new RegistryV3Exception(pce)); + } catch (IOException ioe) { + throw (new RegistryV3Exception(ioe)); + } catch (JAXBException ioe) { + throw (new RegistryV3Exception(ioe)); + } + Element request = doc.getDocumentElement(); + + request.setAttribute("xmlns", this.getUddiNamespace()); + if (!"3.0".equals(this.getUddiVersion())) { + request.setAttribute("generic", this.getUddiVersion()); + } + //request.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns", this.getUddiNamespace()); + // A SOAP request is made and a SOAP response + // is returned. + + Element response; + try { + response = transport.send(request, endPointURI); + } catch (TransportException te) { + throw new RegistryV3Exception(te); + } + /* if (response.hasAttributes()) { + NamedNodeMap am = response.getAttributes(); + ArrayList<String> al = new ArrayList<String>(); + for (int i = 0; i < am.getLength(); i++) { + Node n = am.item(i); + String attribute = n.getNodeName(); + if (attribute!= null && attribute.startsWith("xmlns")) { + al.add(attribute); + } + } + for (String attr : al) { + response.removeAttribute(attr); + } + }*/ + + if (response.getNamespaceURI()==null) { + response.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns", this.getUddiNamespace()); + } + + // If we are getting responses from a UDDI v3, remove the xmlns + + // First, let's make sure that a response + // (any response) is found in the SOAP Body. + + String responseName = response.getLocalName(); + if (responseName == null) { + throw new RegistryV3Exception("Unsupported response " + + "from registry. A value was not present."); + } + + // Let's now try to determine which UDDI response + // we received and unmarshal it appropriately or + // throw a RegistryV3Exception if it's unknown. + // Well, we have now determined that something was + // returned and it is "a something" that we know + // about so let's unmarshal it into a RegistryObject + // Next, let's make sure we didn't recieve a SOAP + // Fault. If it is a SOAP Fault then throw it + // immediately. + + JAXBElement<?> uddiResponse = null; + try { + uddiResponse = (JAXBElement<?>) unmarshaller.unmarshal(response); + } catch (JAXBException xmle) { + throw (new RegistryV3Exception(xmle)); + } + + if (responseName.toLowerCase().equals("fault")) { + NodeList nodeList = null; + + // Child Elements + String fCode = null; + nodeList = response.getElementsByTagName("faultcode"); + if (nodeList.getLength() > 0) + fCode = nodeList.item(0).getNodeValue(); + + String fString = null; + nodeList = response.getElementsByTagName("faultstring"); + if (nodeList.getLength() > 0) + fString = nodeList.item(0).getNodeValue(); + + String fActor = null; + nodeList = response.getElementsByTagName("faultactor"); + if (nodeList.getLength() > 0) + fActor = nodeList.item(0).getNodeValue(); + + DispositionReport dispRpt = null; + + nodeList = response.getElementsByTagName("detail"); + if (nodeList.getLength() > 0) { + nodeList = ((Element) nodeList.item(0)) + .getElementsByTagName("dispositionReport"); + if (nodeList.getLength() > 0) { + JAXBElement<DispositionReport> dispRptObj = null; + try { + dispRptObj = (JAXBElement<DispositionReport>) unmarshaller.unmarshal((Element) nodeList + .item(0)); + } catch (JAXBException xmle) { + throw (new RegistryV3Exception(xmle)); + } + dispRpt = dispRptObj.getValue(); + } + } + + RegistryV3Exception e = new RegistryV3Exception(fCode, fString, fActor, dispRpt); + + // Create RegistryV3Exception instance and return + throw e; + } + + return uddiResponse; + } + + /** + * @return Returns the adminURL. + */ + public URI getAdminURI() { + return this.adminURI; + } + + /** + * @param url + * The adminURL to set. + */ + public void setAdminURI(URI url) { + this.adminURI = url; + } + + /** + * @return Returns the inquiryURL. + */ + public URI getInquiryURI() { + return this.inquiryURI; + } + + /** + * @param inquiryURI + * The inquiryURI to set. + */ + public void setInquiryURI(URI inquiryURI) { + this.inquiryURI = inquiryURI; + } + + /** + * @return Returns the protocolHandler. + */ + public String getProtocolHandler() { + return this.protocolHandler; + } + + /** + * @param protocolHandler + * The protocolHandler to set. + */ + public void setProtocolHandler(String protocolHandler) { + this.protocolHandler = protocolHandler; + } + + /** + * @return Returns the publishURL. + */ + public URI getPublishURI() { + return this.publishURI; + } + + /** + * @return Returns the publishURL. + */ + public URI getSecurityURI() { + return this.securityURI; + } + + /** + * @param publishURI + * The publishURI to set. + */ + public void setPublishURI(URI publishURI) { + this.publishURI = publishURI; + } + + /** + * @param publishURI + * The publishURI to set. + */ + public void setSecurityURI(URI securityURI) { + this.securityURI = securityURI; + } + + /** + * @return Returns the securityProvider. + */ + public String getSecurityProvider() { + return this.securityProvider; + } + + /** + * @param securityProvider + * The securityProvider to set. + */ + public void setSecurityProvider(String securityProvider) { + this.securityProvider = securityProvider; + } + + /** + * @return Returns the transport. + */ + public Transport getTransport() { + return transport; + } + + /** + * @param transport + * The transport to set. + */ + public void setTransport(Transport transport) { + this.transport = transport; + } + + /** + * @return Returns the uddiNS. + */ + public String getUddiNamespace() { + return this.uddiNamespace; + } + + /** + * @param uddiNS + * The uddiNS to set. + */ + public void setUddiNamespace(String uddiNS) { + this.uddiNamespace = uddiNS; + } + + /** + * @return Returns the uddiVersion. + */ + public String getUddiVersion() { + return this.uddiVersion; + } + + /** + * @param uddiVersion + * The uddiVersion to set. + */ + public void setUddiVersion(String uddiVersion) { + this.uddiVersion = uddiVersion; + } + + /** + * "Used to remove an existing bindingTemplate from the bindingTemplates + * collection that is part of a specified businessService structure." + * + * @exception RegistryV3Exception; + */ + public DispositionReport deleteBinding(String authInfo, + String[] bindingKeyArray) throws RegistryV3Exception { + DeleteBinding request = this.objectFactory.createDeleteBinding(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (bindingKeyArray != null) { + request.getBindingKey().addAll(Arrays.asList(bindingKeyArray)); + } + + DispositionReport dr; + JAXBElement<?> o = execute(this.objectFactory.createDeleteBinding(request), this.getPublishURI()); + dr = (DispositionReport) o.getValue(); + + return dr; + } + + /** + * "Used to delete registered businessEntity information from the registry." + * + * @exception RegistryV3Exception; + */ + public DispositionReport deleteBusiness(String authInfo, + String[] businessKeyArray) throws RegistryV3Exception { + DeleteBusiness request = this.objectFactory.createDeleteBusiness(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (businessKeyArray != null) { + request.getBusinessKey().addAll(Arrays.asList(businessKeyArray)); + } + + DispositionReport dr; + JAXBElement<?> o = execute(this.objectFactory.createDeleteBusiness(request), this.getPublishURI()); + dr = (DispositionReport) o.getValue(); + + return dr; + } + + /** + * @exception RegistryV3Exception; + */ + public DispositionReport deletePublisherAssertions(String authInfo, + PublisherAssertion[] assertionArray) throws RegistryV3Exception { + DeletePublisherAssertions request = this.objectFactory.createDeletePublisherAssertions(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (assertionArray != null) { + request.getPublisherAssertion().addAll(Arrays.asList(assertionArray)); + } + + DispositionReport dr; + JAXBElement<?> o = execute(this.objectFactory.createDeletePublisherAssertions(request), + this.getPublishURI()); + dr = (DispositionReport) o.getValue(); + + return dr; + } + + /** + * "Used to delete an existing businessService from the businessServices + * collection that is part of a specified businessEntity." + * + * @exception RegistryV3Exception; + */ + public DispositionReport deleteService(String authInfo, + String[] serviceKeyArray) throws RegistryV3Exception { + DeleteService request = this.objectFactory.createDeleteService(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (serviceKeyArray != null) { + request.getServiceKey().addAll(Arrays.asList(serviceKeyArray)); + } + + DispositionReport dr; + JAXBElement<?> o = execute(this.objectFactory.createDeleteService(request), + this.getPublishURI()); + dr = (DispositionReport) o.getValue(); + + return dr; + } + + /** + * "Used to delete registered information about a tModel. If there are any + * references to a tModel when this call is made, the tModel will be marked + * deleted instead of being physically removed." + * + * @exception RegistryV3Exception; + */ + public DispositionReport deleteTModel(String authInfo, + String[] tModelKeyArray) throws RegistryV3Exception { + DeleteTModel request = this.objectFactory.createDeleteTModel(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (tModelKeyArray != null) { + request.getTModelKey().addAll(Arrays.asList(tModelKeyArray)); + } + + DispositionReport dr; + JAXBElement<?> o = execute(this.objectFactory.createDeleteTModel(request), + this.getPublishURI()); + dr = (DispositionReport) o.getValue(); + + return dr; + } + + /** + * Used to locate information about one or more businesses. Returns a + * businessList message that matches the conditions specified. + * + * @exception RegistryV3Exception; + */ + public BusinessList findBusiness(Name[] nameArray, + DiscoveryURLs discoveryURLs, IdentifierBag identifierBag, + CategoryBag categoryBag, TModelBag tModelBag, + FindQualifiers findQualifiers, int maxRows) + throws RegistryV3Exception { + FindBusiness request = this.objectFactory.createFindBusiness(); + + if (nameArray != null) { + request.getName().addAll(Arrays.asList(nameArray)); + } + + if (discoveryURLs != null) { + request.setDiscoveryURLs(discoveryURLs); + } + + if (identifierBag != null) { + request.setIdentifierBag(identifierBag); + } + + if (categoryBag != null) { + request.setCategoryBag(categoryBag); + } + + if (tModelBag != null) { + request.setTModelBag(tModelBag); + } + + if (findQualifiers != null) { + request.setFindQualifiers(findQualifiers); + } + + request.setMaxRows(maxRows); + + BusinessList bl; + JAXBElement<?> o = execute(this.objectFactory.createFindBusiness(request), + this.getInquiryURI()); + bl = (BusinessList) o.getValue(); + + return bl; + } + + /** + * "Used to locate specific bindings within a registered businessService. + * Returns a bindingDetail message." + * + * @exception RegistryV3Exception + */ + public BindingDetail findBinding(String serviceKey, + CategoryBag categoryBag, TModelBag tModelBag, + FindQualifiers findQualifiers, int maxRows) + throws RegistryV3Exception { + // FIXME: Juddi's methods also set category bag (per uddi spec v3). + // However, we are sticking to v2 for now, so categorybag doesn't + // exist under FindBinding. It is fine for now, since the incoming + // parameter value is always null anyways -- but this may change + // in the future. + + FindBinding request = this.objectFactory.createFindBinding(); + + if (serviceKey != null) { + request.setServiceKey(serviceKey); + } + + if (categoryBag != null) { + request.setCategoryBag(categoryBag); + } + + if (tModelBag != null) { + request.setTModelBag(tModelBag); + } + + if (findQualifiers != null) { + request.setFindQualifiers(findQualifiers); + } + request.setMaxRows(maxRows); + + BindingDetail bd; + JAXBElement<?> o = execute(this.objectFactory.createFindBinding(request), + this.getInquiryURI()); + bd = (BindingDetail) o.getValue(); + + return bd; + } + + /** + * "Used to locate specific services within a registered businessEntity. + * Return a serviceList message." From the XML spec (API, p18) it appears + * that the name, categoryBag, and tModelBag arguments are mutually + * exclusive. + * + * @exception RegistryV3Exception; + */ + public ServiceList findService(String businessKey, Name[] nameArray, + CategoryBag categoryBag, TModelBag tModelBag, + FindQualifiers findQualifiers, int maxRows) + throws RegistryV3Exception { + FindService request = this.objectFactory.createFindService(); + + if (businessKey != null) { + request.setBusinessKey(businessKey); + } + + if (nameArray != null) { + request.getName().addAll(Arrays.asList(nameArray)); + } + + if (categoryBag != null) { + request.setCategoryBag(categoryBag); + } + + if (tModelBag != null) { + request.setTModelBag(tModelBag); + } + + if (findQualifiers != null) { + request.setFindQualifiers(findQualifiers); + } + + request.setMaxRows(maxRows); + + ServiceList sl; + JAXBElement<?> o = execute(this.objectFactory.createFindService(request), + this.getInquiryURI()); + sl = (ServiceList) o.getValue(); + + return sl; + } + + /** + * "Used to locate one or more tModel information structures. Returns a + * tModelList structure." + * + * @exception RegistryV3Exception; + */ + public TModelList findTModel(String name, CategoryBag categoryBag, + IdentifierBag identifierBag, FindQualifiers findQualifiers, + int maxRows) throws RegistryV3Exception { + FindTModel request = this.objectFactory.createFindTModel(); + + Name jaxbName = this.objectFactory.createName(); + + if (name != null) { + jaxbName.setValue(name); + } + + request.setName(jaxbName); + + if (categoryBag != null) { + request.setCategoryBag(categoryBag); + } + + if (identifierBag != null) { + request.setIdentifierBag(identifierBag); + } + + if (findQualifiers != null) { + request.setFindQualifiers(findQualifiers); + } + + request.setMaxRows(maxRows); + + TModelList tml; + JAXBElement<?> o = execute(this.objectFactory.createFindTModel(request), + this.getInquiryURI()); + tml = (TModelList) o.getValue(); + + return tml; + } + + /** + * @exception RegistryV3Exception; + */ + public AssertionStatusReport getAssertionStatusReport(String authInfo, + String completionStatus) throws RegistryV3Exception { + GetAssertionStatusReport request = this.objectFactory.createGetAssertionStatusReport(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (completionStatus != null) { + CompletionStatus cs = CompletionStatus.fromValue(completionStatus); + request.setCompletionStatus(cs); + } + + AssertionStatusReport asr; + JAXBElement<?> o = execute(this.objectFactory.createGetAssertionStatusReport(request), + this.getPublishURI()); + asr = (AssertionStatusReport) o.getValue(); + + return asr; + } + + /** + * "Used to request an authentication token from an Operator Site. + * Authentication tokens are required to use all other APIs defined in the + * publishers API. This server serves as the program's equivalent of a login + * request." + * + * @exception RegistryV3Exception; + */ + public AuthToken getAuthToken(String userID, String cred) + throws RegistryV3Exception { + GetAuthToken request = this.objectFactory.createGetAuthToken(); + + if (userID != null) { + request.setUserID(userID); + } + + if (cred != null) { + request.setCred(cred); + } + + URI getAuthTokenURI = null; + if ("3.0".equals(uddiVersion)) { + getAuthTokenURI = this.getSecurityURI(); + } else { + getAuthTokenURI = this.getPublishURI(); + } + + AuthToken at; + JAXBElement<?> o = execute(this.objectFactory.createGetAuthToken(request), + getAuthTokenURI); + at = (AuthToken) o.getValue(); + + return at; + } + + /** + * Used to get the full businessEntity information for a particular business + * entity. Returns a businessDetail message. + * + * @exception RegistryV3Exception; + */ + public BusinessDetail getBusinessDetail(String businessKey) + throws RegistryV3Exception { + String[] keys = new String[1]; + keys[0] = businessKey; + + return getBusinessDetail(keys); + } + + /** + * "Used to get the full businessEntity information for one or more + * businesses. Returns a businessDetail message." + * + * @exception RegistryV3Exception; + */ + public BusinessDetail getBusinessDetail(String[] businessKeyArray) + throws RegistryV3Exception { + GetBusinessDetail request = this.objectFactory.createGetBusinessDetail(); + + if (businessKeyArray != null) { + request.getBusinessKey().addAll(Arrays.asList(businessKeyArray)); + } + + BusinessDetail bd; + JAXBElement<?> o = execute(this.objectFactory.createGetBusinessDetail(request), + this.getInquiryURI()); + bd = (BusinessDetail) o.getValue(); + return bd; + } + + /** + * @exception RegistryV3Exception; + */ + public PublisherAssertions getPublisherAssertions(String authInfo) + throws RegistryV3Exception { + GetPublisherAssertions request = this.objectFactory.createGetPublisherAssertions(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + PublisherAssertions pa = new PublisherAssertions(); + JAXBElement<?> o = execute(this.objectFactory.createGetPublisherAssertions(request), + this.getPublishURI()); + PublisherAssertionsResponse par = (PublisherAssertionsResponse) o.getValue(); + List<PublisherAssertion> assertions = par.getPublisherAssertion(); + for (int i = 0; i < assertions.size(); i++ ) { + pa.getPublisherAssertion().add((PublisherAssertion)assertions.get(i)); + } + + return pa; + } + + /** + * @exception RegistryV3Exception; + */ + public RegisteredInfo getRegisteredInfo(String authInfo) + throws RegistryV3Exception { + GetRegisteredInfo request = this.objectFactory.createGetRegisteredInfo(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + RegisteredInfo ri; + JAXBElement<?> o = execute(this.objectFactory.createGetRegisteredInfo(request), + this.getPublishURI()); + ri = (RegisteredInfo) o.getValue(); + + return ri; + } + + /** + * "Used to get full details for a particular registered businessService. + * Returns a serviceDetail message." + * + * @exception RegistryV3Exception; + */ + public ServiceDetail getServiceDetail(String serviceKey) + throws RegistryV3Exception { + String[] keys = new String[1]; + keys[0] = serviceKey; + + return getServiceDetail(keys); + } + + /** + * "Used to get full details for a given set of registered businessService + * data. Returns a serviceDetail message." + * + * @exception RegistryV3Exception; + */ + public ServiceDetail getServiceDetail(String[] serviceKeyArray) + throws RegistryV3Exception { + GetServiceDetail request = this.objectFactory.createGetServiceDetail(); + + if (serviceKeyArray != null) { + request.getServiceKey().addAll(Arrays.asList(serviceKeyArray)); + } + + ServiceDetail sd; + JAXBElement<?> o = execute(this.objectFactory.createGetServiceDetail(request), + this.getInquiryURI()); + sd = (ServiceDetail) o.getValue(); + + return sd; + } + + /** + * "Used to get full details for a particular registered TModel. Returns a + * tModelDetail message." + * + * @exception RegistryV3Exception; + */ + public TModelDetail getTModelDetail(String tModelKey) + throws RegistryV3Exception { + String[] keys = new String[1]; + keys[0] = tModelKey; + + return getTModelDetail(keys); + } + + /** + * "Used to get full details for a given set of registered tModel data. + * Returns a tModelDetail message." + * + * @exception RegistryV3Exception; + */ + public TModelDetail getTModelDetail(String[] tModelKeyArray) + throws RegistryV3Exception { + GetTModelDetail request = this.objectFactory.createGetTModelDetail(); + + if (tModelKeyArray != null) { + request.getTModelKey().addAll(Arrays.asList(tModelKeyArray)); + } + + TModelDetail tmd; + JAXBElement<?> o = execute(this.objectFactory.createGetTModelDetail(request), + this.getInquiryURI()); + tmd = (TModelDetail) o.getValue(); + + return tmd; + } + + /** + * @exception RegistryV3Exception; + */ + public PublisherAssertions setPublisherAssertions(String authInfo, + PublisherAssertion[] assertionArray) throws RegistryV3Exception { + SetPublisherAssertions request = this.objectFactory.createSetPublisherAssertions(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (assertionArray != null) { + request.getPublisherAssertion().addAll(Arrays.asList(assertionArray)); + } + + PublisherAssertions pa; + JAXBElement<?> o = execute(this.objectFactory.createSetPublisherAssertions(request), + this.getPublishURI()); + pa = (PublisherAssertions) o.getValue(); + + return pa; + } + + /** + * "Used to register new bindingTemplate information or update existing + * bindingTemplate information. Use this to control information about + * technical capabilities exposed by a registered business." + * + * @exception RegistryV3Exception; + */ + public BindingDetail saveBinding(String authInfo, + BindingTemplate[] bindingArray) throws RegistryV3Exception { + SaveBinding request = this.objectFactory.createSaveBinding(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (bindingArray != null) { + request.getBindingTemplate().addAll(Arrays.asList(bindingArray)); + } + + BindingDetail bd; + JAXBElement<?> o = execute(this.objectFactory.createSaveBinding(request), + this.getPublishURI()); + bd = (BindingDetail) o.getValue(); + + return bd; + } + + /** + * "Used to register new businessEntity information or update existing + * businessEntity information. Use this to control the overall information + * about the entire business. Of the save_x APIs this one has the broadest + * effect." + * + * @exception RegistryV3Exception; + */ + public BusinessDetail saveBusiness(String authInfo, + BusinessEntity[] businessArray) throws RegistryV3Exception { + SaveBusiness request = this.objectFactory.createSaveBusiness(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (businessArray != null) { + for (int i = 0; i < businessArray.length; i++) { + BusinessEntity be = businessArray[i]; + if (be.getBusinessServices().getBusinessService().size() == 0) { + be.setBusinessServices(null); + } + } + + request.getBusinessEntity().addAll(Arrays.asList(businessArray)); + } + + BusinessDetail bd; + JAXBElement<?> o = execute(this.objectFactory.createSaveBusiness(request), + this.getPublishURI()); + bd = (BusinessDetail) o.getValue(); + + return bd; + } + + /** + * "Used to register or update complete information about a businessService + * exposed by a specified businessEntity." + * + * @exception RegistryV3Exception; + */ + public ServiceDetail saveService(String authInfo, + BusinessService[] serviceArray) throws RegistryV3Exception { + SaveService request = this.objectFactory.createSaveService(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (serviceArray != null) { + request.getBusinessService().addAll(Arrays.asList(serviceArray)); + } + + ServiceDetail sd; + JAXBElement<?> o = execute(this.objectFactory.createSaveService(request), + this.getPublishURI()); + sd = (ServiceDetail) o.getValue(); + + return sd; + } + + /** + * "Used to register or update complete information about a tModel." + * + * @exception RegistryV3Exception; + */ + public TModelDetail saveTModel(String authInfo, TModel[] tModelArray) + throws RegistryV3Exception { + SaveTModel request = this.objectFactory.createSaveTModel(); + + if (authInfo != null) { + request.setAuthInfo(authInfo); + } + + if (tModelArray != null) { + request.getTModel().addAll(Arrays.asList(tModelArray)); + } + + TModelDetail tmd; + JAXBElement<?> o = execute(this.objectFactory.createSaveTModel(request), + this.getPublishURI()); + tmd = (TModelDetail) o.getValue(); + return tmd; + } + + /** + * Returns an implementation of Transport based on the className passed in. + * If a null value is passed then the default Transport implementation + * "org.apache.ws.scout.transport.AxisTransport" is created and returned. + * + * @return Transport + */ + public Transport getTransport(String className) { + Transport transport = null; + Class transportClass = null; + + // If a Transport class name isn't supplied use + // the default Transport implementation. + if (className == null) + className = DEFAULT_TRANSPORT_CLASS; + + try { + // instruct class loader to load the TransportFactory + transportClass = getClassForName(className); + } catch (ClassNotFoundException cnfex) { + throw new RuntimeException(cnfex); + } + + try { + // try to instantiate the TransportFactory + transport = (Transport) transportClass.newInstance(); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + + return transport; + } + + /** + * + * @param name + * @return The class object for the name given + * @throws ClassNotFoundException + * @throws NoClassDefFoundError + */ + public static Class getClassForName(String name) + throws ClassNotFoundException, NoClassDefFoundError { + Class clazz = null; + + try { + // log.info("Using the Context ClassLoader"); + ClassLoader ccl = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() + { + public ClassLoader run() { + return Thread.currentThread().getContextClassLoader(); + } + }); + + clazz = Class.forName(name, true, ccl); + } catch (Exception e) { + log.debug("Failed to load the class " + name + " with context class loader " + e); + } + + if (null == clazz) { + ClassLoader scl = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() + { + public ClassLoader run() { + return ClassLoader.getSystemClassLoader(); + } + }); + + try { + clazz = Class.forName(name, true, scl); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + return clazz; + } +} Modified: webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java URL: http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java?rev=811951&r1=811950&r2=811951&view=diff ============================================================================== --- webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java (original) +++ webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/AxisTransport.java Sun Sep 6 23:21:23 2009 @@ -19,6 +19,9 @@ import java.net.URI; import java.util.Vector; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + import org.apache.axis.AxisFault; import org.apache.axis.Message; import org.apache.axis.client.Call; @@ -28,6 +31,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ws.scout.registry.RegistryException; +import org.w3c.dom.Document; import org.w3c.dom.Element; /** @@ -43,7 +47,7 @@ private static Log log = LogFactory.getLog(AxisTransport.class); public Element send(Element request,URI endpointURL) - throws RegistryException + throws TransportException { Service service = null; Call call = null; @@ -73,11 +77,11 @@ response = msg.getSOAPEnvelope().getFirstBody().getAsDOM(); } catch (Exception ex) { - throw new RegistryException(ex); + throw new TransportException(ex); } } catch (Exception ex) { - throw new RegistryException(ex); + throw new TransportException(ex); } if (log.isDebugEnabled()) { @@ -89,7 +93,7 @@ } public String send(String request,URI endpointURL) - throws RegistryException + throws TransportException { Service service = null; Call call = null; @@ -116,11 +120,11 @@ response = msg.getSOAPEnvelope().getFirstBody().getAsString(); } catch (Exception ex) { - throw new RegistryException(ex); + throw new TransportException(ex); } } catch (Exception ex) { - throw new RegistryException(ex); + throw new TransportException(ex); } log.debug("\nResponse message:\n" + response); Added: webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/JAXRTransportException.java URL: http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/JAXRTransportException.java?rev=811951&view=auto ============================================================================== --- webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/JAXRTransportException.java (added) +++ webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/JAXRTransportException.java Sun Sep 6 23:21:23 2009 @@ -0,0 +1,4 @@ +package org.apache.ws.scout.transport; + +public class JAXRTransportException extends Exception { +} Modified: webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/LocalTransport.java URL: http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/LocalTransport.java?rev=811951&r1=811950&r2=811951&view=diff ============================================================================== --- webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/LocalTransport.java (original) +++ webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/LocalTransport.java Sun Sep 6 23:21:23 2009 @@ -44,7 +44,7 @@ * Sends an element and returns an element. */ public Element send(Element request,URI endpointURI) - throws RegistryException + throws TransportException { Element response = null; @@ -64,7 +64,7 @@ response = (Element) node.getFirstChild(); } catch (Exception ex) { - throw new RegistryException(ex); + throw new TransportException(ex); } if (log.isDebugEnabled()) { log.debug("\nResponse message:\n" + XMLUtils.convertNodeToXMLString(response)); @@ -76,7 +76,7 @@ * Sends an XML, responds with an XML. */ public String send(String request,URI endpointURI) - throws RegistryException + throws TransportException { String response = null; log.debug("\nRequest message:\n" + request); @@ -87,7 +87,7 @@ Element element = document.getDocumentElement(); response= XMLUtils.convertNodeToXMLString(send(element, endpointURI)); } catch (Exception ex) { - throw new RegistryException(ex); + throw new TransportException(ex); } log.debug("\nResponse message:\n" + response); return response; Modified: webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/RMITransport.java URL: http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/RMITransport.java?rev=811951&r1=811950&r2=811951&view=diff ============================================================================== --- webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/RMITransport.java (original) +++ webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/RMITransport.java Sun Sep 6 23:21:23 2009 @@ -47,7 +47,7 @@ * Sends an element and returns an element. */ public Element send(Element request,URI endpointURI) - throws RegistryException + throws TransportException { Element response = null; @@ -88,7 +88,7 @@ response = (Element) node.getFirstChild(); } catch (Exception ex) { - throw new RegistryException(ex); + throw new TransportException(ex); } if (log.isDebugEnabled()) { log.debug("\nResponse message:\n" + XMLUtils.convertNodeToXMLString(response)); @@ -100,7 +100,7 @@ * Sends an XML, responds with an XML. */ public String send(String request,URI endpointURI) - throws RegistryException + throws TransportException { String response = null; log.debug("\nRequest message:\n" + request); @@ -111,7 +111,7 @@ Element element = document.getDocumentElement(); response= XMLUtils.convertNodeToXMLString(send(element, endpointURI)); } catch (Exception ex) { - throw new RegistryException(ex); + throw new TransportException(ex); } log.debug("\nResponse message:\n" + response); return response; Modified: webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/Transport.java URL: http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/Transport.java?rev=811951&r1=811950&r2=811951&view=diff ============================================================================== --- webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/Transport.java (original) +++ webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/Transport.java Sun Sep 6 23:21:23 2009 @@ -30,8 +30,8 @@ public interface Transport { Element send(Element request,URI endPointURI) - throws RegistryException; + throws TransportException; String send(String request,URI endpointURI) - throws RegistryException; + throws TransportException; } Added: webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/TransportException.java URL: http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/TransportException.java?rev=811951&view=auto ============================================================================== --- webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/TransportException.java (added) +++ webservices/scout/trunk/src/main/java/org/apache/ws/scout/transport/TransportException.java Sun Sep 6 23:21:23 2009 @@ -0,0 +1,7 @@ +package org.apache.ws.scout.transport; + +public class TransportException extends Exception { + public TransportException(Exception e) { + super(e); + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: scout-dev-unsubscr...@ws.apache.org For additional commands, e-mail: scout-dev-h...@ws.apache.org