You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by jm...@apache.org on 2001/05/05 11:03:37 UTC

cvs commit: xml-axis/java/src/org/apache/axis/deployment/wsml ServiceMapping.java WSMLDeployableItem.java

jmsnell     01/05/05 02:03:37

  Modified:    java/src/org/apache/axis/deployment DeploymentRegistry.java
                        SimpleDeploymentManager.java
               java/src/org/apache/axis/deployment/v2dd
                        DeploymentDescriptor.java
               java/src/org/apache/axis/deployment/wsdd WSDDChain.java
                        WSDDDeployableItem.java WSDDDeployment.java
                        WSDDDocument.java WSDDElement.java
                        WSDDException.java WSDDFlow.java
                        WSDDGlobalConfiguration.java WSDDHandler.java
                        WSDDOperation.java WSDDParameter.java
                        WSDDService.java WSDDTransport.java
                        WSDDTypeMapping.java
  Added:       java/src/org/apache/axis/deployment DeployableItem.java
                        DeploymentDocument.java DeploymentException.java
                        readme
               java/src/org/apache/axis/deployment/v2dd V2DDConstants.java
                        V2DDDeployableItem.java V2DDElement.java
                        V2DDException.java V2DDFaultListener.java
                        V2DDMap.java V2DDMappings.java V2DDOption.java
                        V2DDProvider.java V2DDService.java
               java/src/org/apache/axis/deployment/v2dd/providers
                        V2DDComProvider.java V2DDJavaProvider.java
                        V2DDScriptProvider.java
               java/src/org/apache/axis/deployment/wsml ServiceMapping.java
                        WSMLDeployableItem.java
  Removed:     java/src/org/apache/axis/deployment DeploymentManager.java
  Log:
  Updating the Deployment Registry and WSDD Implementation
  
  Revision  Changes    Path
  1.2       +56 -13    xml-axis/java/src/org/apache/axis/deployment/DeploymentRegistry.java
  
  Index: DeploymentRegistry.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/DeploymentRegistry.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DeploymentRegistry.java	2001/04/29 17:24:58	1.1
  +++ DeploymentRegistry.java	2001/05/05 09:03:30	1.2
  @@ -66,6 +66,8 @@
   import org.apache.axis.Chain;
   import org.apache.axis.TargetedChain;
   import org.apache.axis.encoding.TypeMappingRegistry;
  +import org.apache.axis.deployment.wsdd.WSDDGlobalConfiguration;
  +import org.apache.axis.deployment.wsdd.WSDDDeployableItem;
   import org.apache.axis.utils.QName;
   
   /**
  @@ -77,19 +79,60 @@
    */
   public abstract class DeploymentRegistry implements Serializable { 
       
  -    /** retrieve an instance of the named handler */
  -    public abstract Handler       getHandler(String name) throws Exception;
  -    /** retrieve an instance of the named chain */
  -    public abstract Chain         getChain(String name) throws Exception;
  -    /** retrieve an instance of the named transport (all transports 
  -     * are modeled as TargetedChains.  The pivot handler is the 
  -     * Axis Engine instance that is being invoked */
  -    public abstract TargetedChain getTransport(String name) throws Exception;
  -    /** retrieve an instance of the named service (a service is 
  -     * modeled as a TargetedChain) */
  -    public abstract TargetedChain getService(String name) throws Exception;
  -    /** retrieve an instance of the named mapping registry */
  -    public abstract TypeMappingRegistry getTypeMappingRegistry(String encodingStyle) throws Exception;
  +    /** 
  +     * retrieve the global configuration for the axis engine 
  +     */
  +    public abstract WSDDGlobalConfiguration getGlobalConfiguration() throws DeploymentException;
  +        
  +    /** 
  +     * retrieve an instance of the named handler
  +     */
  +    public abstract Handler getDeployedItem(String name) throws DeploymentException;
  +    
  +    /** 
  +     * retrieve an instance of the named handler 
  +     */
  +    public abstract Handler getDeployedItem(QName qname) throws DeploymentException;
  +    
  +    /** 
  +     * retrieve an instance of the named mapping registry 
  +     */
  +    public abstract TypeMappingRegistry getTypeMappingRegistry(String encodingStyle) throws DeploymentException;
  +
  +    /** 
  +     * add the given type mapping
  +     */
  +    public abstract void addTypeMappingRegistry(String encodingStyle, TypeMappingRegistry tmr) throws DeploymentException;
  +    
  +    /** 
  +     * remove the given type mapping 
  +     */
  +    public abstract void removeTypeMappingRegistry(String encodingStyle) throws DeploymentException;
  +    
  +    /** 
  +     * Deploy an Axis WSDD Document 
  +     */
  +    public abstract void deploy(DeploymentDocument deployment) throws DeploymentException;
  +    
  +    /** 
  +     * deploy the given item 
  +     */
  +    public abstract void deployItem(DeployableItem item) throws DeploymentException;
  +    
  +    /** 
  +     * remove the given item 
  +     */
  +    public abstract void removeDeployedItem(String name) throws DeploymentException;
  +    
  +    /** 
  +     * remove the given item 
  +     */
  +    public abstract void removeDeployedItem(QName qname) throws DeploymentException;
  +    
  +    /** 
  +     * set the global configuration for the axis engine 
  +     */
  +    public abstract void setGlobalConfiguration(WSDDGlobalConfiguration global);
       
       /**
        * Save the registry to the given filepath
  
  
  
  1.3       +44 -104   xml-axis/java/src/org/apache/axis/deployment/SimpleDeploymentManager.java
  
  Index: SimpleDeploymentManager.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/SimpleDeploymentManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SimpleDeploymentManager.java	2001/05/03 14:31:35	1.2
  +++ SimpleDeploymentManager.java	2001/05/05 09:03:31	1.3
  @@ -56,36 +56,25 @@
   
   import java.util.Hashtable;
   import org.apache.axis.deployment.wsdd.*;
  -import org.apache.axis.deployment.v2dd.*;
  -import org.apache.axis.utils.QName;
   import org.apache.axis.Handler;
  -import org.apache.axis.Chain;
  -import org.apache.axis.TargetedChain;
  -import org.apache.axis.encoding.TypeMappingRegistry;
  -import org.apache.axis.encoding.Serializer;
  -import org.apache.axis.encoding.Deserializer;
   import org.apache.axis.Constants;
  +import org.apache.axis.utils.QName;
  +import org.apache.axis.encoding.TypeMappingRegistry;
   import org.apache.axis.encoding.SOAPTypeMappingRegistry;
   
   /**
  - * This is a simple implementation of the DeploymentManager
  - * and DeploymentRegistry interfaces.
  + * This is a simple implementation of the DeploymentRegistry class
    * 
    * @author James Snell
    */
  -public class SimpleDeploymentManager extends DeploymentRegistry implements DeploymentManager { 
  +public class SimpleDeploymentManager extends DeploymentRegistry { 
      
  -    Hashtable handlers;
  -    Hashtable chains;
  -    Hashtable transports;
  -    Hashtable services;
  +    WSDDGlobalConfiguration globalConfig;
  +    Hashtable items;
       Hashtable mappings;
       
       public SimpleDeploymentManager() {
  -        handlers = new Hashtable();
  -        chains = new Hashtable();
  -        transports = new Hashtable();
  -        services = new Hashtable();
  +        items = new Hashtable();
           mappings = new Hashtable();
           mappings.put(Constants.URI_SOAP_ENC, new SOAPTypeMappingRegistry());
       }
  @@ -93,126 +82,77 @@
       /**
        * Deploy a SOAP v2.x deployment descriptor
        */
  -    public void deploy(DeploymentDescriptor dd) throws Exception {
  -        // this will eventually support SOAP v2.x deployment descriptors
  +    public void deploy(DeploymentDocument deployment) throws DeploymentException {
  +        deployment.deploy(this);
       }
       
  -    /**
  -     * Deploy an Axis WSDD document.  This isn't a complete
  -     * implementation but it is enough to get started with.
  -     */
  -    public void deploy(WSDDDocument wsdd) throws Exception {
  -        WSDDDeployment dep = wsdd.getDeployment();
  -        WSDDHandler[] ha = dep.getHandlers();
  -        WSDDChain[] ca = dep.getChains();
  -        WSDDTransport[] ta = dep.getTransports();
  -        WSDDService[] sa = dep.getServices();
  -        WSDDTypeMapping[] tm = dep.getTypeMappings();
  -        
  -        // deploy type mappings
  -        for (int n = 0; n < tm.length; n++) {
  -            WSDDTypeMapping t = tm[n];
  -            String encodingStyle = t.getEncodingStyle();
  -            TypeMappingRegistry tmr = (TypeMappingRegistry)mappings.get(encodingStyle);
  -            if (tmr == null) tmr = new TypeMappingRegistry();
  -            Serializer s = (Serializer)t.getSerializer().newInstance();
  -            Deserializer d = (Deserializer)t.getDeserializer().newInstance();
  -            // !!! FIXME - new serializer/deserializer system!
  -            //tmr.addSerializer(t.getLanguageSpecificType(), s);
  -            //tmr.addDeserializer(t.getQName(), d);
  -        }
  -        
  -        // deploy handlers
  -        for (int n = 0; n < ha.length; n++) {
  -            WSDDHandler h = ha[n];
  -            handlers.put(h.getName(), h);
  -        }        
  -        
  -        // deploy chains
  -        for (int n = 0; n < ca.length; n++) {
  -            WSDDChain c = ca[n];
  -            chains.put(c.getName(), c);
  -        }        
  -        
  -        // deploy transports
  -        for (int n = 0; n < ta.length; n++) {
  -            WSDDTransport t = ta[n];
  -            transports.put(t.getName(), t);
  -        }        
  -        
  -        // deploy services
  -        for (int n = 0; n < sa.length; n++) {
  -            WSDDService s = sa[n];
  -            services.put(s.getName(), s);
  -        }
  -    }
  -   
       /**
  -     * return the named handler
  +     * return the global configuration
        */
  -    public Handler getHandler(String name) throws Exception {
  -        WSDDHandler h = (WSDDHandler)handlers.get(name); 
  -        return h.newInstance(this);
  +    public WSDDGlobalConfiguration getGlobalConfiguration() throws DeploymentException {
  +        return globalConfig;
       }
       
       /**
  -     * return the named chain
  +     * Set the global configuration
        */
  -    public Chain getChain(String name) throws Exception {
  -        WSDDChain c = (WSDDChain)chains.get(name);
  -        return (Chain)c.newInstance(this);
  +    public void setGlobalConfiguration(WSDDGlobalConfiguration global) {
  +        globalConfig = global;
       }
       
       /**
  -     * return the named transport
  +     * Deploy the given WSDD Deployable Item
        */
  -    public TargetedChain getTransport(String name) throws Exception {
  -        WSDDTransport t = (WSDDTransport)transports.get(name);
  -        return (TargetedChain)t.newInstance(this);
  +    public void deployItem(DeployableItem item) throws DeploymentException {
  +        items.put(item.getQName().toString(), item);
       }
  -    
  +
       /**
  -     * return the named service
  +     * Return an instance of the deployed item
        */
  -    public TargetedChain getService(String name) throws Exception {
  -        WSDDService s = (WSDDService)services.get(name);
  -        return (TargetedChain)s.newInstance(this);
  +    public Handler getDeployedItem(QName qname) throws DeploymentException {
  +        return getDeployedItem(qname.toString());
       }
       
       /**
  -     * return the named mapping registry
  +     * Return an instance of the deployed item
        */
  -    public TypeMappingRegistry getTypeMappingRegistry(String encodingStyle) throws Exception {
  -        TypeMappingRegistry tmr = (TypeMappingRegistry)mappings.get(encodingStyle);
  -        return tmr;
  +    public Handler getDeployedItem(String name) throws DeploymentException {
  +        try {
  +            DeployableItem item = (DeployableItem)items.get(name);
  +            return item.newInstance(this);
  +        } catch (Exception e) {
  +            throw new DeploymentException(e.getMessage());
  +        }
       }
       
  -    /**
  -     * remove the named handler
  +    /** 
  +     * remove the given item
        */
  -    public void removeHandler(String name) {
  -        handlers.remove(name);
  +    public void removeDeployedItem(String name) throws DeploymentException {
  +        items.remove(name);
       }
       
       /**
  -     * remove the named chain
  +     * remove the given item
        */
  -    public void removeChain(String name) {
  -        chains.remove(name);
  +    public void removeDeployedItem(QName qname) throws DeploymentException {
  +        removeDeployedItem(qname.toString());
       }
       
       /**
  -     * remove the named transport
  +     * return the named mapping registry
        */
  -    public void removeTransport(String name) {
  -        transports.remove(name);
  +    public TypeMappingRegistry getTypeMappingRegistry(String encodingStyle) throws DeploymentException {
  +        TypeMappingRegistry tmr = (TypeMappingRegistry)mappings.get(encodingStyle);
  +        return tmr;
       }
       
       /**
  -     * remove the named service
  +     * adds a new mapping registry
        */
  -    public void removeService(String name) {
  -        services.remove(name);
  +    public void addTypeMappingRegistry(String encodingStyle, TypeMappingRegistry tmr) {
  +        mappings.put(encodingStyle, tmr);
       }
       
       /**
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/DeployableItem.java
  
  Index: DeployableItem.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment;
  
  import org.apache.axis.utils.QName;
  import org.apache.axis.Handler;
  
  /**
   * Interface representing an item that is deployable into the
   * Axis Deployment Registry
   */
  public interface DeployableItem { 
      public QName getQName();
      public Handler newInstance(DeploymentRegistry registry) throws Exception;
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/DeploymentDocument.java
  
  Index: DeploymentDocument.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment;
  
  /**
   * Represents a deployment descriptor document of some sort
   */
  public abstract class DeploymentDocument { 
      
      /**
       * Deploy the contents of this document to the given registry
       */
      public abstract void deploy(DeploymentRegistry registry) throws DeploymentException;
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/DeploymentException.java
  
  Index: DeploymentException.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment;
  
  public class DeploymentException extends Exception { 
      
      public DeploymentException() {
          super();
      }
      
      public DeploymentException(String message) {
          super(message);
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/readme
  
  Index: readme
  ===================================================================
  The org.apache.axis.deployment package is still experimental
  and has not yet been completely plugged into the rest of the
  Axis code base.  
  
  To plug this code into Axis, changes need to be made to the
  AxisServer and AxisServlet classes in the areas that deal with
  locating and instantiating services for invocation.  
  
  The SimpleDeploymentManager is the default deployment registry.
  
  
  
  NOTE: This package supercedes the code provided for in the 
  org.apache.axis.registries and org.apache.axis.suppliers 
  package.  When this code is finally plugged into everything else, 
  both packages will go away.
  
  
  org.apache.axis.deployment.wsdd -
     This is an implementation of the new WSDD Schema that will
     be the primary method of deploying services and defining
     chains/flows of handlers within Axis.
  
  org.apache.axis.deployment.v2dd -
     This is an implementation the the Apache SOAP v2.x Deployment
     Descriptor.  This package allows developers to use their 
     existing SOAP deployment packages with Axis without requiring
     the deployment descriptor to be upgraded to the new WSDD
     schema.  It's not quite finished yet tough
     
  org.apache.axis.deployment.wsml -
     This will be an implementation of the Web Services Mapping
     Language schema that is used by the Microsoft SOAP Toolkit
     Version 2.  The goal is to support the migration of COM
     based services to Axis from Microsoft SOAP Toolkit Beta 2
     without forcing the developers to convert their WSML files
     to WSDD.  (WSML is the Microsoft SOAP Toolkit equivalent
     to a deployment descriptor).
  
  
  1.2       +50 -4     xml-axis/java/src/org/apache/axis/deployment/v2dd/DeploymentDescriptor.java
  
  Index: DeploymentDescriptor.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/v2dd/DeploymentDescriptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DeploymentDescriptor.java	2001/04/29 17:24:59	1.1
  +++ DeploymentDescriptor.java	2001/05/05 09:03:32	1.2
  @@ -54,10 +54,56 @@
    */
   package org.apache.axis.deployment.v2dd;
   
  +import org.w3c.dom.Document;
  +import org.w3c.dom.Element;
  +import org.apache.axis.deployment.DeploymentDocument;
  +import org.apache.axis.deployment.DeploymentRegistry;
  +import org.apache.axis.deployment.DeploymentException;
  +
   /**
  - * This will be an implementation of a SOAP v2.x Deployment Descriptor 
  - * object model.
  + * Apache SOAP v2.x Deployment Descriptor Support classes
  + * 
  + * The way this is intended to work is simple: load a v2.x 
  + * deployment descriptor, and this object model (via the
  + * V2DDDeployableItem class will convert the Service definition
  + * into something that Axis can handle. 
  + * 
  + * This will be one of the core migration pieces to move
  + * from SOAP v2.x to Axis, and is designed to allow people
  + * to make the move using their currently existing 
  + * deployment files.  
  + * 
    */
  -public class DeploymentDescriptor
  -{
  +public class DeploymentDescriptor extends DeploymentDocument { 
  +
  +    protected Document d;
  +    protected V2DDService service;
  +    
  +    public DeploymentDescriptor() {}
  +    
  +    public DeploymentDescriptor(Document d) {
  +        this.d = d;
  +    }
  +    
  +    public DeploymentDescriptor(Element e) {
  +        this.d = e.getOwnerDocument();
  +    }
  +
  +    public V2DDService getService() {
  +        if (service == null) {
  +            service = new V2DDService(d.getDocumentElement());
  +        }
  +        return service;
  +    }
  +    
  +    /**
  +     * Deploy this document to the given registry
  +     */
  +    public void deploy(DeploymentRegistry registry) throws DeploymentException {
  +        if (service == null) {
  +            throw new DeploymentException("No Service has been defined");
  +        }
  +        V2DDDeployableItem item = new V2DDDeployableItem(service);
  +        registry.deployItem(item);
  +    }
   }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDConstants.java
  
  Index: V2DDConstants.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  public class V2DDConstants { 
      
      public static final String V2DD_NS = "http://xml.apache.org/xml-soap/deployment";
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDDeployableItem.java
  
  Index: V2DDDeployableItem.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import java.io.Serializable;
  import org.apache.axis.Handler;
  import org.apache.axis.deployment.DeployableItem;
  import org.apache.axis.deployment.DeploymentRegistry;
  import org.apache.axis.utils.QName;
  
  /**
   * This is the class that actually bridges the gap between
   * SOAP 2.x and Axis.  An instance of this class is stored
   * within the registry and a new handler is created that 
   * represents the SOAP 2.x service when the newInstance
   * method is called.
   */
  public class V2DDDeployableItem implements DeployableItem, Serializable { 
  
      V2DDService service;
      QName qname;
      
      public V2DDDeployableItem(V2DDService service) {        
          this.service = service;
      }
      
      public QName getQName() {
        if (qname == null) {
              qname = new QName(null, service.getID());
          }
          return qname;
      }
  
      public Handler newInstance(DeploymentRegistry registry) {
          
          // we would create an instance of the SOAP v2.x
        // compatible handler here using the service
        // definition to configure the instance
          
        return null;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDElement.java
  
  Index: V2DDElement.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import java.io.Serializable;
  import java.util.Hashtable;
  import org.w3c.dom.Element;
  
  public class V2DDElement implements Serializable { 
      
      Hashtable elements = new Hashtable();
      
      protected Element element;
      
      public V2DDElement(Element element) {
          this.element = element;
      }
      
      public Element getElement() {
          return element;
      }
      
      void addChild(Element e, V2DDElement element) {
          elements.put(e,element);
      }
      
      V2DDElement getChild(Element e) {
          return (V2DDElement)elements.get(e);
      }
      
      boolean hasChild(Element e) {
          return elements.containsKey(e);
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDException.java
  
  Index: V2DDException.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import org.apache.axis.deployment.DeploymentException;
  
  public class V2DDException extends DeploymentException {  
      public V2DDException() { super(); }
      public V2DDException(String msg) { super(msg); }
      public V2DDException(Exception e) {
          super(e.getMessage());
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDFaultListener.java
  
  Index: V2DDFaultListener.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import org.w3c.dom.Element;
  
  public class V2DDFaultListener extends V2DDElement { 
   
      public V2DDFaultListener(Element e) {
          super(e);
      }
      
      public Class getFaultListener() throws ClassNotFoundException {
          String value = getElement().getFirstChild().getNodeValue();
          return Class.forName(value);
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDMap.java
  
  Index: V2DDMap.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import org.w3c.dom.Element;
  import org.apache.axis.utils.QName;
  
  public class V2DDMap extends V2DDElement { 
  
      QName qname;
      
      public V2DDMap(Element e) {
          super(e);
      }
      
      public String getEncodingStyle() {
          return element.getAttribute("encodingStyle");
      }
      
      public QName getQName() {
          if (qname == null) {
              qname = new QName(element.getAttribute("qname"), element);
          }
          return qname;
      }
      
      public Class getJavaType() throws ClassNotFoundException {
          String type = element.getAttribute("javaType");
          return Class.forName(type);
      }
      
      public Class getJava2XMLClass() throws ClassNotFoundException {
          String type = element.getAttribute("java2XMLClassName");
          return Class.forName(type);
      }
      
      public Class getXML2JavaClass() throws ClassNotFoundException {
          String type = element.getAttribute("xml2JavaClassName");
          return Class.forName(type);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDMappings.java
  
  Index: V2DDMappings.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import org.w3c.dom.Element;
  import org.w3c.dom.NodeList;
  
  public class V2DDMappings extends V2DDElement { 
  
      public V2DDMappings(Element e) {
          super(e);
      }
      
      public V2DDMap[] getMaps() {
          NodeList nl = element.getElementsByTagNameNS(V2DDConstants.V2DD_NS, "map");
          V2DDMap[] maps = new V2DDMap[nl.getLength()];
          for (int n = 0; n < maps.length; n++) {
              Element e = (Element)nl.item(n);
              V2DDMap map = (V2DDMap)getChild(e);
              if (map == null) {
                  map = new V2DDMap(e);
                  addChild(e, map);
              }
              maps[n] = map;
          }
          return maps;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDOption.java
  
  Index: V2DDOption.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import org.w3c.dom.Element;
  
  public class V2DDOption extends V2DDElement { 
  
      public V2DDOption(Element e) {
          super(e);
      }
      
      public String getKey() {
          return element.getAttribute("key");
      }
      
      public String getValue() {
          return element.getAttribute("value");
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDProvider.java
  
  Index: V2DDProvider.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import java.util.StringTokenizer;
  import java.util.Hashtable;
  import org.w3c.dom.Element;
  import org.w3c.dom.NodeList;
  import org.apache.axis.utils.LockableHashtable;
  import org.apache.axis.deployment.v2dd.providers.*;
  
  public class V2DDProvider extends V2DDElement { 
  
      private static Hashtable providers;
      static {
          providers = new Hashtable();   
          providers.put("java", V2DDJavaProvider.class);
          providers.put("script", V2DDScriptProvider.class);
          providers.put("com", V2DDComProvider.class);
      }
      public static V2DDProvider getProvider(String type, Element e) {
          try {
              Class _class = (Class)providers.get(type);
              if (_class == null) {
                  return new V2DDProvider(e);
              }
              Class[] argTypes = {Element.class};
              Object[] args = {e};
              return (V2DDProvider)_class.getConstructor(argTypes).newInstance(args);
          } catch (Exception ex) {
              return null;
          }
      }    
      
      LockableHashtable options;
      
      public V2DDProvider(Element e) {
          super(e);
      }
  
      public String getType() {
          return element.getAttribute("type");
      }
      
      public String getScope() {
          return element.getAttribute("scope");
      }
      
      public String[] getMethods() {
          String list = element.getAttribute("methods");
          StringTokenizer st = new StringTokenizer(list, " ");
          String[] methods = new String[st.countTokens()];
          int n = 0;
          while(st.hasMoreTokens()) {
              methods[n++] = st.nextToken();
          }
          return methods;
      }
      
      public V2DDOption[] getOptions() {
          NodeList nl = element.getElementsByTagNameNS(V2DDConstants.V2DD_NS, "option");
          V2DDOption[] opts = new V2DDOption[nl.getLength()];
          for (int n = 0; n < opts.length; n++) {
              Element e = (Element)nl.item(n);
              V2DDOption option = (V2DDOption)getChild(e);
              if (option == null) {
                  option = new V2DDOption(e);
                  addChild(e,option);
              }
              opts[n] = option;
          }
          return opts;
      }
      
      public LockableHashtable getOptionsTable() {
          if (options == null) {
              options = new LockableHashtable();
              V2DDOption[] opts = getOptions();
              for (int n = 0; n < opts.length; n++) {
                  options.put(opts[n].getKey(), opts[n].getValue(), true);
              }
          } 
          return options;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/V2DDService.java
  
  Index: V2DDService.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd;
  
  import org.w3c.dom.Element;
  import org.w3c.dom.NodeList;
  
  public class V2DDService extends V2DDElement { 
  
      public V2DDService(Element e) {
          super(e);
      }
      
      public String getID() {
          return element.getAttribute("id");
      }
      
      public String getType() {
          return element.getAttribute("type");
      }
      
      public V2DDProvider getProvider() throws V2DDException {
          NodeList nl = element.getElementsByTagNameNS(V2DDConstants.V2DD_NS, "provider");
          Element e = (Element)nl.item(0);
          if (e == null)
              throw new V2DDException("The required provider element is missing");
          V2DDProvider provider = (V2DDProvider)getChild(e);
          if (provider == null) {
              String type = null;            
              if (e.getAttribute("type").equals("script")) type = "script";
              if (e.getAttribute("type").equals("org.apache.soap.providers.com.RPCProvider")) type = "com";
              if (type == null) {
                  NodeList children = e.getElementsByTagNameNS(V2DDConstants.V2DD_NS, "java");
                  if (children.getLength() > 0) 
                      type = "java";
              }
              type = "";            
              provider = V2DDProvider.getProvider(type,e);
              addChild(e,provider);
          }
          return provider;
      }
      
      public V2DDFaultListener getFaultListener() {
          NodeList nl = element.getElementsByTagNameNS(V2DDConstants.V2DD_NS, "provider");
          Element e = (Element)nl.item(0);
          if (e == null) return null;
          V2DDFaultListener fl = (V2DDFaultListener)getChild(e);
          if (fl == null) {
              fl = new V2DDFaultListener(e);
              addChild(e,fl);
          }
          return fl;
      }
      
      public V2DDMappings getMappings() {
          NodeList nl = element.getElementsByTagNameNS(V2DDConstants.V2DD_NS, "provider");
          Element e = (Element)nl.item(0);
          if (e == null) return null;
          V2DDMappings mappings = (V2DDMappings)getChild(e);
          if (mappings == null) {
              mappings = new V2DDMappings(e);
              addChild(e,mappings);
          }
          return mappings;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/providers/V2DDComProvider.java
  
  Index: V2DDComProvider.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd.providers;
  
  import org.apache.axis.deployment.v2dd.V2DDProvider;
  import org.w3c.dom.Element;
  
  public class V2DDComProvider extends V2DDProvider { 
  
      public V2DDComProvider(Element e) {
          super(e);
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/providers/V2DDJavaProvider.java
  
  Index: V2DDJavaProvider.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd.providers;
  
  import org.apache.axis.deployment.v2dd.V2DDProvider;
  import org.w3c.dom.Element;
  
  public class V2DDJavaProvider extends V2DDProvider { 
  
      public V2DDJavaProvider(Element e) {
          super(e);
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/providers/V2DDScriptProvider.java
  
  Index: V2DDScriptProvider.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:  
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.axis.deployment.v2dd.providers;
  
  import org.apache.axis.deployment.v2dd.V2DDProvider;
  import org.w3c.dom.Element;
  
  public class V2DDScriptProvider extends V2DDProvider { 
  
      public V2DDScriptProvider(Element e) {
          super(e);
      }
      
  }
  
  
  
  1.2       +2 -1      xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDChain.java
  
  Index: WSDDChain.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDChain.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDChain.java	2001/04/29 17:24:59	1.1
  +++ WSDDChain.java	2001/05/05 09:03:33	1.2
  @@ -59,13 +59,14 @@
   import org.apache.axis.Chain;
   import org.apache.axis.Handler;
   import org.apache.axis.deployment.DeploymentRegistry;
  +import org.apache.axis.deployment.DeployableItem;
   
   /**
    * WSDD chain element
    * 
    * @author James Snell
    */
  -public class WSDDChain extends WSDDHandler { 
  +public class WSDDChain extends WSDDHandler implements DeployableItem { 
       
       public WSDDChain(Element e) throws WSDDException { super(e, "chain"); }
       
  
  
  
  1.2       +15 -14    xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployableItem.java
  
  Index: WSDDDeployableItem.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployableItem.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDDeployableItem.java	2001/04/29 17:24:59	1.1
  +++ WSDDDeployableItem.java	2001/05/05 09:03:33	1.2
  @@ -59,6 +59,7 @@
   import org.apache.axis.Handler;
   import org.apache.axis.utils.LockableHashtable;
   import org.apache.axis.deployment.DeploymentRegistry;
  +import org.apache.axis.utils.QName;
   
   /**
    * WSDD DeployableItem complexType
  @@ -68,6 +69,7 @@
   public abstract class WSDDDeployableItem extends WSDDElement { 
       
       LockableHashtable parms;
  +    QName qname;
       
       public WSDDDeployableItem(Element e, String n) throws WSDDException {
           super(e,n);
  @@ -76,6 +78,18 @@
       public String getName() {
           return getElement().getAttribute("name");
       }
  +
  +    public QName getQName() {
  +        if (qname == null) {
  +            String nsURI = element.getOwnerDocument().getDocumentElement().getAttribute("targetNamespace");
  +            if (nsURI.equals("")) {
  +                qname = new QName(null, getName());
  +            } else {
  +                qname = new QName(nsURI, getName());
  +            }
  +        }     
  +        return qname;
  +    }
       
       protected String getType() {
           return getElement().getAttribute("type");
  @@ -129,20 +143,7 @@
               return h;
           } catch (ClassNotFoundException e) {
               String type = getType();
  -            Handler h = null;
  -            if (this instanceof WSDDChain) {
  -                h = (Handler)registry.getChain(type);
  -            }
  -            if (this instanceof WSDDHandler ||
  -                this instanceof WSDDProvider) {
  -                h = (Handler)registry.getHandler(type);
  -            }
  -            if (this instanceof WSDDTransport) {
  -                h = (Handler)registry.getTransport(type);
  -            }
  -            if (this instanceof WSDDService) {
  -                h = (Handler)registry.getService(type);
  -            }
  +            Handler h = registry.getDeployedItem(type);
               if (h != null) {
                   WSDDParameter[] parms = getParameters();
                   for (int n = 0; n < parms.length; n++) {
  
  
  
  1.2       +4 -0      xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java
  
  Index: WSDDDeployment.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDDeployment.java	2001/04/29 17:24:59	1.1
  +++ WSDDDeployment.java	2001/05/05 09:03:33	1.2
  @@ -69,6 +69,10 @@
           return getElement().getAttribute("name");
       }
       
  +    public String getTargetNamespace() {
  +        return getElement().getAttribute("targetNamespace");
  +    }
  +    
       public WSDDGlobalConfiguration getGlobalConfiguration() {
           WSDDElement[] e = createArray("globalConfiguration", WSDDGlobalConfiguration.class);
           WSDDGlobalConfiguration[] g = new WSDDGlobalConfiguration[e.length];
  
  
  
  1.2       +62 -1     xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDocument.java
  
  Index: WSDDDocument.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDocument.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDDocument.java	2001/04/29 17:24:59	1.1
  +++ WSDDDocument.java	2001/05/05 09:03:33	1.2
  @@ -56,19 +56,27 @@
   
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
  +import org.apache.axis.deployment.DeploymentDocument;
  +import org.apache.axis.deployment.DeploymentRegistry;
  +import org.apache.axis.deployment.DeploymentException;
  +import org.apache.axis.encoding.TypeMappingRegistry;
  +import org.apache.axis.encoding.Serializer;
  +import org.apache.axis.encoding.DeserializerFactory;
   
   /**
    * represents a WSDD Document (this is the top level object in this object model)
    */
  -public class WSDDDocument { 
  +public class WSDDDocument extends DeploymentDocument { 
      
       protected Document d;
       protected WSDDDeployment dep;
       
       public WSDDDocument() {}
  +    
       public WSDDDocument(Document doc) {
           d = doc;
       }
  +    
       public WSDDDocument(Element e) {
           d = e.getOwnerDocument();
       }
  @@ -84,4 +92,57 @@
           return dep;
       }
       
  +    public void deploy(DeploymentRegistry registry) throws DeploymentException {
  +        WSDDGlobalConfiguration global = dep.getGlobalConfiguration();
  +        if (global != null) {
  +            registry.setGlobalConfiguration(global);
  +        }
  +        
  +        WSDDHandler[] handlers = dep.getHandlers();
  +        WSDDChain[] chains = dep.getChains();
  +        WSDDTransport[] transports = dep.getTransports();
  +        WSDDService[] services = dep.getServices();
  +        WSDDTypeMapping[] mappings = dep.getTypeMappings();
  +        
  +        for (int n = 0; n < handlers.length; n++) {
  +            registry.deployItem(handlers[n]);
  +        }
  +        for (int n = 0; n < chains.length; n++) {
  +            registry.deployItem(chains[n]);
  +        }
  +        for (int n = 0; n < transports.length; n++) {
  +            registry.deployItem(transports[n]);
  +        }
  +        for (int n = 0; n < services.length; n++) {
  +            registry.deployItem(services[n]);
  +        }
  +        
  +        for (int n = 0; n < mappings.length; n++) {
  +            WSDDTypeMapping mapping = mappings[n];
  +            TypeMappingRegistry tmr = registry.getTypeMappingRegistry(mapping.getEncodingStyle());
  +            if (tmr == null) {
  +                tmr = new TypeMappingRegistry();
  +                registry.addTypeMappingRegistry(mapping.getEncodingStyle(), tmr);
  +            }
  +
  +            Serializer ser = null;
  +            DeserializerFactory deser = null;
  +            
  +            try {
  +                ser = (Serializer)mapping.getSerializer().newInstance();
  +                deser = (DeserializerFactory)mapping.getDeserializer().newInstance();
  +            } catch (Exception e) {}
  +            
  +            try {
  +                if (ser != null)
  +                    tmr.addSerializer(mapping.getLanguageSpecificType(),
  +                                    mapping.getQName(), ser);
  +            
  +                if (deser != null)
  +                    tmr.addDeserializerFactory(mapping.getQName(), deser);
  +            } catch (Exception e) {
  +                throw new DeploymentException(e.getMessage());
  +            }
  +        }
  +    }
   }
  
  
  
  1.2       +21 -45    xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDElement.java
  
  Index: WSDDElement.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDElement.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDElement.java	2001/04/29 17:24:59	1.1
  +++ WSDDElement.java	2001/05/05 09:03:33	1.2
  @@ -55,10 +55,10 @@
   package org.apache.axis.deployment.wsdd;
   
   import java.io.Serializable;
  -import org.w3c.dom.Element;
  -import org.w3c.dom.NodeList;
   import java.util.Hashtable; 
   import java.util.Vector;
  +import org.w3c.dom.Element;
  +import org.w3c.dom.NodeList;
   
   /**
    * abstract class extended by all WSDD Element classes
  @@ -98,61 +98,37 @@
        * Used to create an array of child elements of a particular type
        */
       WSDDElement[] createArray(String name, Class type) {
  -        try {
  -            NodeList nl = element.getChildNodes();
  -            Vector v = new Vector();
  -            for (int n = 0; n < nl.getLength(); n++) {
  -                if (nl.item(n).getNodeType() == Element.ELEMENT_NODE) {
  -                    Element e = (Element)nl.item(n);
  -                    if (e.getNamespaceURI().equals(WSDDConstants.WSDD_NS) &&
  -                        e.getLocalName().equals(name)) {
  -                        if (hasChild(e)) {
  -                            v.addElement(e);
  -                        } else {
  -                            Class[] c = {Element.class};
  -                            Object[] o = {e};
  -                            WSDDElement w = (WSDDElement)type.getConstructor(c).newInstance(o);
  -                            addChild(e,w);
  -                            v.addElement(w);
  -                        }
  -                    }
  -                }
  -            }
  -            Object[] obj = v.toArray();
  -            WSDDElement[] ret = new WSDDElement[obj.length];
  -            System.arraycopy(obj,0,ret,0,obj.length);
  -            return ret;
  -        } catch (Exception e) {
  -            return null;
  -        }
  +        String[] names = {name};
  +        Class[] types = {type};
  +        return createArray(names,types);
       }
   
       /**
        * Used to create an array of child elements of a particular type
        */
  -    WSDDElement[] createArray(String n1, String n2, Class type1, Class type2) {
  +    WSDDElement[] createArray(String[] names, Class[] types) {
           try {
               NodeList nl = element.getChildNodes();
               Vector v = new Vector();
               for (int n = 0; n < nl.getLength(); n++) {
                   if (nl.item(n).getNodeType() == Element.ELEMENT_NODE) {
                       Element e = (Element)nl.item(n);
  -                    if (e.getNamespaceURI().equals(WSDDConstants.WSDD_NS) &&
  -                        (e.getLocalName().equals(n1) || e.getLocalName().equals(n2))) {
  -                        if (hasChild(e)) {
  -                            v.addElement(e);
  -                        } else {
  -                            Class[] c = {Element.class};
  -                            Object[] o = {e};
  -                            WSDDElement w = null;
  -                            if (e.getLocalName().equals(n1)) 
  -                                w = (WSDDElement)type1.getConstructor(c).newInstance(o);
  -                            if (e.getLocalName().equals(n2))
  -                                w = (WSDDElement)type2.getConstructor(c).newInstance(o);
  -                            addChild(e,w);
  -                            v.addElement(w);
  +                    if (e.getNamespaceURI().equals(WSDDConstants.WSDD_NS)) {
  +                        for (int i = 0; i < names.length; i++) {
  +                            if (e.getLocalName().equals(names[i])) {
  +                                if (hasChild(e)) {
  +                                    v.addElement(getChild(e));
  +                                } else {
  +                                    Class[] c = {Element.class};
  +                                    Object[] o = {e};
  +                                    WSDDElement w = null;
  +                                    w = (WSDDElement)types[i].getConstructor(c).newInstance(o);
  +                                    addChild(e,w);
  +                                    v.addElement(w);
  +                                }   
  +                            }
                           }
  -                    }
  +                    }                    
                   }
               }
               Object[] obj = v.toArray();
  
  
  
  1.2       +3 -1      xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDException.java
  
  Index: WSDDException.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDException.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDException.java	2001/04/29 17:24:59	1.1
  +++ WSDDException.java	2001/05/05 09:03:33	1.2
  @@ -54,7 +54,9 @@
    */
   package org.apache.axis.deployment.wsdd;
   
  -public class WSDDException extends Exception {  
  +import org.apache.axis.deployment.DeploymentException;
  +
  +public class WSDDException extends DeploymentException {  
       public WSDDException() { super(); }
       public WSDDException(String msg) { super(msg); }
       public WSDDException(Exception e) {
  
  
  
  1.2       +3 -1      xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDFlow.java
  
  Index: WSDDFlow.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDFlow.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDFlow.java	2001/04/29 17:24:59	1.1
  +++ WSDDFlow.java	2001/05/05 09:03:33	1.2
  @@ -69,7 +69,9 @@
       public WSDDFlow(Element e, String n) throws WSDDException {super(e,n);}
       
       public WSDDHandler[] getHandlers() {
  -        WSDDElement[] e = createArray("handler", "chain", WSDDHandler.class, WSDDChain.class);
  +        String[] names = {"handler", "chain"};
  +        Class[] types = {WSDDHandler.class, WSDDChain.class};
  +        WSDDElement[] e = createArray(names, types);
           WSDDHandler[] h = new WSDDHandler[e.length];
           System.arraycopy(e,0,h,0,e.length);
           return h;
  
  
  
  1.2       +28 -0     xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.java
  
  Index: WSDDGlobalConfiguration.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDGlobalConfiguration.java	2001/04/29 17:24:59	1.1
  +++ WSDDGlobalConfiguration.java	2001/05/05 09:03:33	1.2
  @@ -56,6 +56,7 @@
   
   import org.w3c.dom.Element; 
   import org.w3c.dom.NodeList;
  +import org.w3c.dom.Node;
   import org.apache.axis.Handler;
   import org.apache.axis.deployment.DeploymentRegistry;
   
  @@ -90,6 +91,33 @@
               return (WSDDRequestFlow)e[0];
           }
           return null;
  +    }
  +    
  +    public WSDDProvider getProvider() throws Exception {
  +        NodeList nl = element.getElementsByTagNameNS(WSDDConstants.WSDD_NS, "provider");
  +        Element e = (Element)nl.item(0);
  +        Node ex = null;
  +        ex = e.getFirstChild();
  +        while (ex != null) {
  +            if (ex.getNodeType() == Element.ELEMENT_NODE)
  +                if (ex.getLocalName().equals("provider")) break;
  +            ex = ex.getNextSibling();
  +        }
  +        if (ex == null) {
  +            return null;
  +        } else {
  +            if (hasChild(e)) {
  +                return (WSDDProvider)getChild(e);
  +            } else {
  +                String exuri = ex.getNamespaceURI();
  +                Class c = WSDDProvider.getProviderClass(exuri);
  +                Class[] cs = {Element.class};
  +                Object[] p = {e};
  +                WSDDElement w = (WSDDElement)c.getConstructor(cs).newInstance(p);
  +                addChild(e,w);
  +                return (WSDDProvider)w;
  +            }
  +        }
       }
       
       public WSDDResponseFlow getResponseFlow() {
  
  
  
  1.2       +2 -1      xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDHandler.java
  
  Index: WSDDHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDHandler.java	2001/04/29 17:24:59	1.1
  +++ WSDDHandler.java	2001/05/05 09:03:34	1.2
  @@ -57,8 +57,9 @@
   import org.w3c.dom.Element; 
   import org.apache.axis.Handler;
   import org.apache.axis.deployment.DeploymentRegistry;
  +import org.apache.axis.deployment.DeployableItem;
   
  -public class WSDDHandler extends WSDDDeployableItem { 
  +public class WSDDHandler extends WSDDDeployableItem implements DeployableItem { 
       
       public WSDDHandler(Element e) throws WSDDException { super(e, "handler"); }
       public WSDDHandler(Element e, String n) throws WSDDException { super(e,n);}
  
  
  
  1.2       +3 -6      xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDOperation.java
  
  Index: WSDDOperation.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDOperation.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDOperation.java	2001/04/29 17:24:59	1.1
  +++ WSDDOperation.java	2001/05/05 09:03:34	1.2
  @@ -55,6 +55,7 @@
   package org.apache.axis.deployment.wsdd;
   
   import org.w3c.dom.Element; 
  +import org.apache.axis.utils.QName;
   
   public class WSDDOperation extends WSDDElement { 
       
  @@ -64,12 +65,8 @@
           return getElement().getAttribute("name");
       }
       
  -    public String getAlias() {
  -        return getElement().getAttribute("alias");
  -    }
  -    
  -    public String getNamespaceURI() {
  -        return getElement().getAttribute("namespaceURI");
  +    public QName getQName() {
  +        return new QName(getElement().getAttribute("qName"), getElement());
       }
       
   }
  
  
  
  1.2       +5 -3      xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDParameter.java
  
  Index: WSDDParameter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDParameter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDParameter.java	2001/04/29 17:24:59	1.1
  +++ WSDDParameter.java	2001/05/05 09:03:34	1.2
  @@ -55,6 +55,7 @@
   package org.apache.axis.deployment.wsdd;
   
   import org.w3c.dom.Element;
  +import org.apache.axis.utils.XMLUtils;
   
   public class WSDDParameter extends WSDDElement { 
       
  @@ -69,9 +70,10 @@
       }
       
       public String getValue() {
  -        // either return the body value or the attribute value, 
  -        // in that order
  -        return null;
  +        Element e = getElement();
  +        String value;
  +        if (!(value = e.getAttribute("value")).equals("")) return value;
  +        return XMLUtils.getInnerXMLString(e);
       }
       
   }
  
  
  
  1.2       +23 -7     xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java
  
  Index: WSDDService.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDService.java	2001/04/29 17:24:59	1.1
  +++ WSDDService.java	2001/05/05 09:03:34	1.2
  @@ -62,8 +62,10 @@
   import org.apache.axis.Chain;
   import org.apache.axis.TargetedChain;
   import org.apache.axis.deployment.DeploymentRegistry;
  +import org.apache.axis.deployment.DeployableItem;
  +import org.apache.axis.description.ServiceDescription;
   
  -public class WSDDService extends WSDDDeployableItem { 
  +public class WSDDService extends WSDDDeployableItem implements DeployableItem { 
       
       public WSDDService(Element e) throws WSDDException { super(e, "service"); }
      
  @@ -74,10 +76,18 @@
           return type;
       }
       
  -    public String getDescription() {
  +    public String getServiceDescriptionURL() {
           return getElement().getAttribute("description");
       }
       
  +    /**
  +     * Eventually need to fill this in with the code to 
  +     * actually return the Service Description object
  +     */
  +    public ServiceDescription getServiceDescription() {
  +        return null;
  +    }
  +    
       public WSDDTypeMapping[] getTypeMappings() {
           WSDDElement[] e = createArray("typeMapping", WSDDTypeMapping.class);
           WSDDTypeMapping[] t = new WSDDTypeMapping[e.length];
  @@ -115,11 +125,17 @@
           if (ex == null) {
               return null;
           } else {
  -            String exuri = ex.getNamespaceURI();
  -            Class c = WSDDProvider.getProviderClass(exuri);
  -            Class[] cs = {Element.class};
  -            Object[] p = {e};
  -            return (WSDDProvider)c.getConstructor(cs).newInstance(p);
  +            if (hasChild(e)) {
  +                return (WSDDProvider)getChild(e);
  +            } else {
  +                String exuri = ex.getNamespaceURI();
  +                Class c = WSDDProvider.getProviderClass(exuri);
  +                Class[] cs = {Element.class};
  +                Object[] p = {e};
  +                WSDDElement w = (WSDDElement)c.getConstructor(cs).newInstance(p);
  +                addChild(e,w);
  +                return (WSDDProvider)w;
  +            }
           }
       }
       
  
  
  
  1.2       +2 -1      xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTransport.java
  
  Index: WSDDTransport.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTransport.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDTransport.java	2001/04/29 17:24:59	1.1
  +++ WSDDTransport.java	2001/05/05 09:03:34	1.2
  @@ -59,8 +59,9 @@
   import org.apache.axis.Chain;
   import org.apache.axis.TargetedChain;
   import org.apache.axis.deployment.DeploymentRegistry;
  +import org.apache.axis.deployment.DeployableItem;
   
  -public class WSDDTransport extends WSDDDeployableItem { 
  +public class WSDDTransport extends WSDDDeployableItem implements DeployableItem { 
       
       public WSDDTransport(Element e) throws WSDDException { super(e, "transport"); }
       
  
  
  
  1.2       +2 -10     xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTypeMapping.java
  
  Index: WSDDTypeMapping.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTypeMapping.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDTypeMapping.java	2001/04/29 17:24:59	1.1
  +++ WSDDTypeMapping.java	2001/05/05 09:03:34	1.2
  @@ -73,18 +73,10 @@
           return getElement().getAttribute("encodingStyle");
       }
       
  -    public String getNamespaceURI() {
  -        return getElement().getAttribute("namespaceURI");
  -    }
  -    
  -    public String getLocalPart() {
  -        return getElement().getAttribute("localPart");
  -    }
  -    
       public QName getQName() {
  -        return new QName(getNamespaceURI(), getLocalPart());
  +        return new QName(getElement().getAttribute("qName"), getElement());
       }
  -    
  +        
       public Class getLanguageSpecificType() throws ClassNotFoundException {
           String type = getElement().getAttribute("languageSpecificType");
           return Class.forName(type);
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsml/ServiceMapping.java
  
  Index: ServiceMapping.java
  ===================================================================
  package org.apache.axis.deployment.wsml;
  
  import org.apache.axis.deployment.DeploymentDocument;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  /**
   * This will eventually be an implementation of the
   * Web Service Mapping Language specification used
   * by the Microsoft SOAP Toolkit Version 2 to deploy 
   * services.
   * 
   * The goal here is to provide a means of allowing COM
   * services designed for use with the MS SOAP Toolkit 
   * Version 2 to be seamlessly migrated over to Axis.  
   * These services will be deployed using a COM dispatch 
   * Handler.
   * 
   * This is here just as a placeholder for now
   */
  public class ServiceMapping extends DeploymentDocument { 
      
      public void deploy(DeploymentRegistry registry) {
          
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsml/WSMLDeployableItem.java
  
  Index: WSMLDeployableItem.java
  ===================================================================
  package org.apache.axis.deployment.wsml;
  
  import org.apache.axis.Handler;
  import org.apache.axis.deployment.DeployableItem;
  import org.apache.axis.utils.QName;
  
  public class WSMLDeployableItem implements DeployableItem { 
          
      public QName getQName() {
          return null;
      }
  
      public Handler newInstance(org.apache.axis.deployment.DeploymentRegistry registry) {
          return null;
      }
  }