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 ru...@apache.org on 2001/04/29 19:25:00 UTC

cvs commit: xml-axis/java/src/org/apache/axis/encoding Deserializer.java SOAPEncoding.java SOAPTypeMappingRegistry.java TypeMappingRegistry.java

rubys       01/04/29 10:25:00

  Added:       java/src/org/apache/axis/deployment DeploymentManager.java
                        DeploymentRegistry.java
                        SimpleDeploymentManager.java
               java/src/org/apache/axis/deployment/v2dd
                        DeploymentDescriptor.java
               java/src/org/apache/axis/deployment/wsdd WSDDChain.java
                        WSDDConstants.java WSDDDeployableItem.java
                        WSDDDeployment.java WSDDDocument.java
                        WSDDElement.java WSDDException.java
                        WSDDFaultFlow.java WSDDFlow.java
                        WSDDGlobalConfiguration.java WSDDHandler.java
                        WSDDOperation.java WSDDParameter.java
                        WSDDProvider.java WSDDRequestFlow.java
                        WSDDResponseFlow.java WSDDService.java
                        WSDDTransport.java WSDDTypeMapping.java
               java/src/org/apache/axis/deployment/wsdd/providers
                        WSDDBsfProvider.java WSDDComProvider.java
                        WSDDJavaProvider.java
               java/src/org/apache/axis/encoding Deserializer.java
                        SOAPEncoding.java SOAPTypeMappingRegistry.java
                        TypeMappingRegistry.java
  Log:
  Merge/commit James Snell's encoding and wsdd implementations.
  
  Minor syntax errors were corrected in the process.
  
  Neither the encoding nor wsdd code are yet integrated into runtime, only
  into the compilations.
  
  Revision  Changes    Path
  1.1                  xml-axis/java/src/org/apache/axis/deployment/DeploymentManager.java
  
  Index: DeploymentManager.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.deployment.wsdd.*;   // Axis Deployment Descriptor
  import org.apache.axis.deployment.v2dd.*;   // SOAP v2.x Deployment Descriptor
  
  /**
   * The DeploymentManager interface is used to deploy or remove
   * handlers, chains, transports, services and type mappings.
   * 
   * The interface is designed to work with Axis WSDD Documents
   * as well as SOAP 2.x Deployment Descriptors for backwards 
   * compatibility.
   * 
   * @author James Snell
   */
  public interface DeploymentManager { 
      
      /** Deploy an Axis WSDD Document */
      public void deploy(WSDDDocument wsdd) throws Exception;
      /** Deploy a SOAP 2.x Deployment Descriptor Document */
      public void deploy(DeploymentDescriptor dd) throws Exception;
      /** Remove the named handler */
      public void removeHandler(String name);
      /** Remove the named chain */
      public void removeChain(String name);
      /** Remove the named transport */
      public void removeTransport(String name);
      /** Remove the named service */
      public void removeService(String name);
      /** Remove the named encoding style type mapping registry
       * (individual type mappings can be removed through the
       * TypeMappingRegistry interface itself */
      public void removeTypeMappingRegistry(String encodingStyle);
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/DeploymentRegistry.java
  
  Index: DeploymentRegistry.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 java.io.IOException;
  import java.io.OutputStream;
  import java.io.InputStream;
  import java.io.ObjectOutputStream;
  import java.io.FileOutputStream;
  import java.io.ObjectInputStream;
  import java.io.FileInputStream;
  import java.io.Serializable;
  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.utils.QName;
  
  /**
   * The DeploymentRegistry abstract class takes the place of the 
   * org.apache.axis.registry.HandlerRegistry and extends the 
   * functionality to cover all Axis deployable items. 
   * 
   * @author James Snell
   */
  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;
      
      /**
       * Save the registry to the given filepath
       */
      public void save(String filename) throws IOException {
          this.save(filename, this);
      }
      
      /**
       * Save the registry to the given outputstream
       */
      public void save(OutputStream out) throws IOException {
          this.save(out, this);
      }
      
      /**
       * Save the given registry to the given filepath
       */
      public static void save(String filename, DeploymentRegistry registry) throws IOException {
          FileOutputStream fos = new FileOutputStream(filename);
          save(fos, registry);
      }
      
      /**
       * save the given registry to the given output stream
       */
      public static void save(OutputStream out, DeploymentRegistry registry) throws IOException {
          ObjectOutputStream oos = new ObjectOutputStream(out);
          oos.writeObject(registry);
          oos.close();
          out.close();
      }
      
      /**
       * load a registry from the given filepath
       */
      public static DeploymentRegistry load(String filename) throws IOException {
          FileInputStream fis = new FileInputStream(filename);
          return load(fis);
      }
      
      /**
       * load a registry from the given inputstream
       */
      public static DeploymentRegistry load(InputStream in) throws IOException {
          ObjectInputStream ois = new ObjectInputStream(in);
          try {
              DeploymentRegistry registry = (DeploymentRegistry)ois.readObject();
              return registry;
          } catch (java.lang.ClassNotFoundException cnfe) {
              throw new IOException(cnfe.toString());
          } finally {
              ois.close();
              in.close();
          }
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/SimpleDeploymentManager.java
  
  Index: SimpleDeploymentManager.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 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.encoding.SOAPTypeMappingRegistry;
  
  /**
   * This is a simple implementation of the DeploymentManager
   * and DeploymentRegistry interfaces.
   * 
   * @author James Snell
   */
  public class SimpleDeploymentManager extends DeploymentRegistry implements DeploymentManager { 
     
      Hashtable handlers;
      Hashtable chains;
      Hashtable transports;
      Hashtable services;
      Hashtable mappings;
      
      public SimpleDeploymentManager() {
          handlers = new Hashtable();
          chains = new Hashtable();
          transports = new Hashtable();
          services = new Hashtable();
          mappings = new Hashtable();
          mappings.put(Constants.URI_SOAP_ENC, new SOAPTypeMappingRegistry());
      }
      
      /**
       * Deploy a SOAP v2.x deployment descriptor
       */
      public void deploy(DeploymentDescriptor dd) throws Exception {
          // this will eventually support SOAP v2.x deployment descriptors
      }
      
      /**
       * 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();
              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
       */
      public Handler getHandler(String name) throws Exception {
          WSDDHandler h = (WSDDHandler)handlers.get(name); 
          return h.newInstance(this);
      }
      
      /**
       * return the named chain
       */
      public Chain getChain(String name) throws Exception {
          WSDDChain c = (WSDDChain)chains.get(name);
          return (Chain)c.newInstance(this);
      }
      
      /**
       * return the named transport
       */
      public TargetedChain getTransport(String name) throws Exception {
          WSDDTransport t = (WSDDTransport)transports.get(name);
          return (TargetedChain)t.newInstance(this);
      }
      
      /**
       * return the named service
       */
      public TargetedChain getService(String name) throws Exception {
          WSDDService s = (WSDDService)services.get(name);
          return (TargetedChain)s.newInstance(this);
      }
      
      /**
       * return the named mapping registry
       */
      public TypeMappingRegistry getTypeMappingRegistry(String encodingStyle) throws Exception {
          TypeMappingRegistry tmr = (TypeMappingRegistry)mappings.get(encodingStyle);
          return tmr;
      }
      
      /**
       * remove the named handler
       */
      public void removeHandler(String name) {
          handlers.remove(name);
      }
      
      /**
       * remove the named chain
       */
      public void removeChain(String name) {
          chains.remove(name);
      }
      
      /**
       * remove the named transport
       */
      public void removeTransport(String name) {
          transports.remove(name);
      }
      
      /**
       * remove the named service
       */
      public void removeService(String name) {
          services.remove(name);
      }
      
      /**
       * remove the named mapping registry
       */
      public void removeTypeMappingRegistry(String encodingStyle) {
          mappings.remove(encodingStyle);
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/v2dd/DeploymentDescriptor.java
  
  Index: DeploymentDescriptor.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;
  
  /**
   * This will be an implementation of a SOAP v2.x Deployment Descriptor 
   * object model.
   */
  public class DeploymentDescriptor
  {
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDChain.java
  
  Index: WSDDChain.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.wsdd;
  
  import org.w3c.dom.Element;
  import org.w3c.dom.NodeList;
  import org.apache.axis.Chain;
  import org.apache.axis.Handler;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  /**
   * WSDD chain element
   * 
   * @author James Snell
   */
  public class WSDDChain extends WSDDHandler { 
      
      public WSDDChain(Element e) throws WSDDException { super(e, "chain"); }
      
      
      public WSDDHandler[] getHandlers() {
          WSDDElement[] w = createArray("handler", WSDDHandler.class);
          WSDDHandler[] h = new WSDDHandler[w.length];
          System.arraycopy(w,0,h,0,w.length);
          return h;
      }
      
      
      public WSDDHandler getHandler(String name) {
          WSDDHandler[] h = getHandlers();
          for (int n = 0; n < h.length; n++) {
              if (h[n].getName().equals(name))
                  return h[n];
          }
          return null;
      }
      
      
      public String getType() {
          String type = super.getType();
          if (type.equals(""))
              type = "java:org.apache.axis.SimpleChain";
          return type;
      }
      
      /**
       * Creates a new instance of this Chain 
       */
      public Handler newInstance(DeploymentRegistry registry) throws Exception {
          Handler h = super.newInstance(registry);
          Chain c = (Chain)h;
          WSDDHandler[] handlers = getHandlers();
          for (int n = 0; n < handlers.length; n++) {
              c.addHandler(handlers[n].newInstance(registry));
          }
          return c;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDConstants.java
  
  Index: WSDDConstants.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.wsdd;
  
  public class WSDDConstants { 
      
      public final static String WSDD_NS   = "http://xml.apache.org/axis/wsdd/";
      public final static String WSDD_JAVA = "http://xml.apache.org/axis/wsdd/providers/java/";
      public final static String WSDD_COM  = "http://xml.apache.org/axis/wsdd/providers/com/";
      public final static String WSDD_BSF  = "http://xml.apache.org/axis/wsdd/providers/bsf/";
  
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployableItem.java
  
  Index: WSDDDeployableItem.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.wsdd;
  
  import java.util.Enumeration;
  import org.w3c.dom.Element;
  import org.apache.axis.Handler;
  import org.apache.axis.utils.LockableHashtable;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  /**
   * WSDD DeployableItem complexType
   * 
   * @author James Snell
   */
  public abstract class WSDDDeployableItem extends WSDDElement { 
      
      LockableHashtable parms;
      
      public WSDDDeployableItem(Element e, String n) throws WSDDException {
          super(e,n);
      }
      
      public String getName() {
          return getElement().getAttribute("name");
      }
      
      protected String getType() {
          return getElement().getAttribute("type");
      }
      
      
      /**
       * Returns the config parameters as a hashtable (lockable)
       */
      public LockableHashtable getParametersTable() {
          if (parms == null) {
              parms = new LockableHashtable();
              WSDDParameter[] ps = getParameters();
              for (int n = 0; n < ps.length; n++) {
                  WSDDParameter p = (WSDDParameter)ps[n];
                  //parms.put(p.getName(), p.getValue(), p.getLocked());
                  parms.put(p.getName(), "", p.getLocked());
              }
          }
          return parms;
      }
      
      public WSDDParameter[] getParameters() {
          WSDDElement[] e = createArray("parameter", WSDDParameter.class);
          WSDDParameter[] p = new WSDDParameter[e.length];
          System.arraycopy(e,0,p,0,e.length);
          return p;
      }
      
      public WSDDParameter getParameter(String name) {
          WSDDParameter[] e = getParameters();
          for (int n = 0; n < e.length; n++) {
              if (e[n].getName().equals(name)) 
                  return e[n];
          }
          return null;
      }
      
      abstract Handler newInstance(DeploymentRegistry registry) throws Exception;
      
      /**
       * Creates a new instance of this deployable.  if the
       * java class is not found, the registry is queried to
       * find a suitable item
       */
      Handler makeNewInstance(DeploymentRegistry registry) throws Exception {
          try {
              Class c = getTypeClass(getType());
              Handler h = (Handler)createInstance(c);
              h.setOptions(getParametersTable());
              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);
              }
              if (h != null) {
                  WSDDParameter[] parms = getParameters();
                  for (int n = 0; n < parms.length; n++) {
                      WSDDParameter parm = parms[n];
                      h.addOption(parm.getName(), parm.getValue());
                  }
                  return h;
              }
              throw e;
          } catch (Exception e) {
                throw e;
          }
      }
      
      Object createInstance(Class _class) throws Exception {
          return _class.newInstance();
      }
      
      Class getTypeClass(String type) throws ClassNotFoundException {
          type = type.substring(type.indexOf(":") + 1);
          return Class.forName(type);
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDeployment.java
  
  Index: WSDDDeployment.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.wsdd;
  
  import org.w3c.dom.Element;
  
  /**
   * WSDD deployment element
   * 
   * @author James Snell
   */
  public class WSDDDeployment extends WSDDElement { 
      
      public WSDDDeployment(Element e) throws WSDDException { super(e, "deployment"); }
      
      public String getName() {
          return getElement().getAttribute("name");
      }
      
      public WSDDGlobalConfiguration getGlobalConfiguration() {
          WSDDElement[] e = createArray("globalConfiguration", WSDDGlobalConfiguration.class);
          WSDDGlobalConfiguration[] g = new WSDDGlobalConfiguration[e.length];
          System.arraycopy(e,0,g,0,e.length);
          if (g.length == 1) return g[0];
          return null;
      }
      
      public WSDDTypeMapping[] getTypeMappings() {
          WSDDElement[] e = createArray("typeMapping", WSDDTypeMapping.class);
          WSDDTypeMapping[] t = new WSDDTypeMapping[e.length];
          System.arraycopy(e,0,t,0,e.length);
          return t;
      }
      
      public WSDDTypeMapping getTypeMapping(String name) {
          WSDDTypeMapping[] t = getTypeMappings();
          for (int n = 0; n < t.length; n++) {
              if (t[n].getName().equals(name))
                  return t[n];
          }
          return null;
      }
      
      public WSDDChain[] getChains() {
          WSDDElement[] e = createArray("chain", WSDDChain.class);
          WSDDChain[] c = new WSDDChain[e.length];
          System.arraycopy(e,0,c,0,e.length);
          return c;
      }
      
      public WSDDChain getChain(String name) {
          WSDDChain[] c = getChains();
          for (int n = 0; n < c.length; n++) {
              if (c[n].getName().equals(name))
                  return c[n];
          }
          return null;
      }
  
      public WSDDHandler[] getHandlers() {
          WSDDElement[] e = createArray("handler", WSDDHandler.class);
          WSDDHandler[] h = new WSDDHandler[e.length];
          System.arraycopy(e,0,h,0,e.length);
          return h;
      }
      
      public WSDDHandler getHandler(String name) {
          WSDDHandler[] h = getHandlers();
          for (int n = 0; n < h.length; n++) {
              if (h[n].getName().equals(name))
                  return h[n];
          } 
          return null;
      }
      
      public WSDDTransport[] getTransports() {
          WSDDElement[] e = createArray("transport", WSDDTransport.class);
          WSDDTransport[] t = new WSDDTransport[e.length];
          System.arraycopy(e,0,t,0,e.length);
          return t;
      }
      
      public WSDDTransport getTransport(String name) {
          WSDDTransport[] t = getTransports();
          for (int n = 0; n < t.length; n++) {
              if (t[n].getName().equals(name))
                  return t[n];
          } 
          return null;
      }
      
      public WSDDService[] getServices() {
          WSDDElement[] e = createArray("service", WSDDService.class);
          WSDDService[] s = new WSDDService[e.length];
          System.arraycopy(e,0,s,0,e.length);
          return s;
      }
      
      public WSDDService getService(String name) {
          WSDDService[] s = getServices();
          for (int n = 0; n < s.length; n++) {
              if (s[n].getName().equals(name))
                  return s[n];
          }
          return null;
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDDocument.java
  
  Index: WSDDDocument.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.wsdd;
  
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  /**
   * represents a WSDD Document (this is the top level object in this object model)
   */
  public class WSDDDocument { 
     
      protected Document d;
      protected WSDDDeployment dep;
      
      public WSDDDocument() {}
      public WSDDDocument(Document doc) {
          d = doc;
      }
      public WSDDDocument(Element e) {
          d = e.getOwnerDocument();
      }
      
      public Document getDocument() {
          return d;
      }
      
      public WSDDDeployment getDeployment() throws WSDDException {
          if (dep == null) {
              dep = new WSDDDeployment(d.getDocumentElement());
          }
          return dep;
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDElement.java
  
  Index: WSDDElement.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.wsdd;
  
  import java.io.Serializable;
  import org.w3c.dom.Element;
  import org.w3c.dom.NodeList;
  import java.util.Hashtable; 
  import java.util.Vector;
  
  /**
   * abstract class extended by all WSDD Element classes
   */
  public abstract class WSDDElement implements Serializable {
      
      protected Element element;
      protected Hashtable children; 
   
      public WSDDElement(Element e, String name) throws WSDDException {
          if (!e.getNamespaceURI().equals(WSDDConstants.WSDD_NS) ||
              !e.getLocalName().equals(name))
              throw new WSDDException("Invalid WSDD Element");
          element = e;
      }
      
      public Element getElement() {
          return element;
      }
      
      void addChild(Element e, WSDDElement w) {
          if (children == null) children = new Hashtable();
          children.put(e, w);
      }
      
      WSDDElement getChild(Element e) {
          if (children == null) return null;
          return (WSDDElement)children.get(e);
      }
      
      boolean hasChild(Element e) {
          if (children == null) return false;
          return children.containsKey(e);
      }
      
      /**
       * 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;
          }
      }
  
      /**
       * Used to create an array of child elements of a particular type
       */
      WSDDElement[] createArray(String n1, String n2, Class type1, Class type2) {
          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);
                          }
                      }
                  }
              }
              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; }
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDException.java
  
  Index: WSDDException.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.wsdd;
  
  public class WSDDException extends Exception {  
      public WSDDException() { super(); }
      public WSDDException(String msg) { super(msg); }
      public WSDDException(Exception e) {
          super(e.getMessage());
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDFaultFlow.java
  
  Index: WSDDFaultFlow.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.wsdd;
  
  import org.w3c.dom.Element;
  
  public class WSDDFaultFlow extends WSDDFlow { 
      
      public WSDDFaultFlow(Element e) throws WSDDException { super(e, "faultFlow"); }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDFlow.java
  
  Index: WSDDFlow.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.wsdd;
  
  import org.w3c.dom.Element;
  import org.apache.axis.Handler;
  import org.apache.axis.Chain;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  /**
   * WSDD Flow complexType
   * 
   * @author James Snell
   */
  public abstract class WSDDFlow extends WSDDDeployableItem { 
      
      public WSDDFlow(Element e, String n) throws WSDDException {super(e,n);}
      
      public WSDDHandler[] getHandlers() {
          WSDDElement[] e = createArray("handler", "chain", WSDDHandler.class, WSDDChain.class);
          WSDDHandler[] h = new WSDDHandler[e.length];
          System.arraycopy(e,0,h,0,e.length);
          return h;
      }
      
      public WSDDHandler getHandler(String name) {
          WSDDHandler[] h = getHandlers();
          for (int n = 0; n < h.length; n++) {
              if (h[n].getName().equals(name))
                  return h[n];
          } 
          return null;
      }
      
      public String getType() {
          String type = super.getType();
          if (type.equals(""))
              type = "java:org.apache.axis.SimpleChain";
          return type;
      }
     
      public Handler newInstance(DeploymentRegistry registry) throws Exception {
          Handler h = super.makeNewInstance(registry);
          Chain c = (Chain)h;
          WSDDHandler[] handlers = getHandlers();
          for (int n = 0; n < handlers.length; n++) {
              c.addHandler(handlers[n].newInstance(registry));
          }
          return c;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDGlobalConfiguration.java
  
  Index: WSDDGlobalConfiguration.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.wsdd;
  
  import org.w3c.dom.Element; 
  import org.w3c.dom.NodeList;
  import org.apache.axis.Handler;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  /**
   * Represents the global configuration of the Axis engine.
   * 
   * @author James Snell
   */
  public class WSDDGlobalConfiguration extends WSDDDeployableItem { 
      
      public WSDDGlobalConfiguration(Element e) throws WSDDException {super(e, "globalConfiguration");}
  
      public WSDDTransport[] getTransports() {
          WSDDElement[] e = createArray("transport", WSDDTransport.class);
          WSDDTransport[] t = new WSDDTransport[e.length];
          System.arraycopy(e,0,t,0,e.length);
          return t;
      }
      
      public WSDDTransport getTransport(String name) {
          WSDDTransport[] t = getTransports();
          for (int n = 0; n < t.length; n++) {
              if (t[n].getName().equals(name))
                  return t[n];
          } 
          return null;
      }
      
      public WSDDRequestFlow getRequestFlow() {
          WSDDElement[] e = createArray("requestFlow", WSDDRequestFlow.class);
          if (e.length != 0) {
              return (WSDDRequestFlow)e[0];
          }
          return null;
      }
      
      public WSDDResponseFlow getResponseFlow() {
          WSDDElement[] e = createArray("responseFlow", WSDDResponseFlow.class);
          if (e.length != 0) {
              return (WSDDResponseFlow)e[0];
          }
          return null;
      }
      
      public WSDDFaultFlow[] getFaultFlows() {
          WSDDElement[] e = createArray("faultFlow", WSDDFaultFlow.class);
          WSDDFaultFlow[] t = new WSDDFaultFlow[e.length];
          System.arraycopy(e,0,t,0,e.length);
          return t;
      }
      
      public WSDDFaultFlow getFaultFlow(String name) {
          WSDDFaultFlow[] t = getFaultFlows();
          for (int n = 0; n < t.length; n++) {
              if (t[n].getName().equals(name))
                  return t[n];
          } 
          return null;
      }    
  
      Handler newInstance(DeploymentRegistry registry) {
          return null;
      }
      
  }
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDHandler.java
  
  Index: WSDDHandler.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.wsdd;
  
  import org.w3c.dom.Element; 
  import org.apache.axis.Handler;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  public class WSDDHandler extends WSDDDeployableItem { 
      
      public WSDDHandler(Element e) throws WSDDException { super(e, "handler"); }
      public WSDDHandler(Element e, String n) throws WSDDException { super(e,n);}
      
      public String getType() {
          return super.getType();
      }
      
      public Handler newInstance(DeploymentRegistry registry) throws Exception {
          return makeNewInstance(registry);
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDOperation.java
  
  Index: WSDDOperation.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.wsdd;
  
  import org.w3c.dom.Element; 
  
  public class WSDDOperation extends WSDDElement { 
      
      public WSDDOperation(Element e) throws WSDDException { super(e, "operation"); }
      
      public String getName() {
          return getElement().getAttribute("name");
      }
      
      public String getAlias() {
          return getElement().getAttribute("alias");
      }
      
      public String getNamespaceURI() {
          return getElement().getAttribute("namespaceURI");
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDParameter.java
  
  Index: WSDDParameter.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.wsdd;
  
  import org.w3c.dom.Element;
  
  public class WSDDParameter extends WSDDElement { 
      
      public WSDDParameter(Element e) throws WSDDException { super(e, "parameter"); }
      
      public String getName() {
          return getElement().getAttribute("name");
      }
      
      public boolean getLocked() {
          return getElement().getAttribute("locked").equals("true");
      }
      
      public String getValue() {
          // either return the body value or the attribute value, 
          // in that order
          return null;
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDProvider.java
  
  Index: WSDDProvider.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.wsdd;
  
  import org.w3c.dom.Element; 
  import org.apache.axis.Handler;
  import org.apache.axis.utils.QName;
  import org.apache.axis.deployment.wsdd.providers.*;
  import java.util.Hashtable;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  /**
   * WSDD provider element
   * 
   * Represents the liason to the application being exposed
   * as a Web Service.  
   * 
   * Specific provider extension classes must be registered 
   * by namespace URI.
   * 
   * @author James Snell
   */
  public abstract class WSDDProvider extends WSDDDeployableItem { 
      
  // ** STATIC PROVIDER REGISTRY ** //
      private static Hashtable providers = new Hashtable();
      static {
          providers.put(WSDDConstants.WSDD_JAVA, WSDDJavaProvider.class);
          providers.put(WSDDConstants.WSDD_COM, WSDDComProvider.class);
          providers.put(WSDDConstants.WSDD_BSF, WSDDBsfProvider.class);
      }
      public static void registerProvider(String uri, Class _class) {
          providers.put(uri, _class);
      }
      public static Class getProviderClass(String uri) {
          return (Class)providers.get(uri);
      }
      public static boolean hasProviderClass(String uri) {
          return providers.containsKey(uri);
      }
  ////////////////////////////////////
      
      public WSDDProvider(Element e) throws WSDDException { super(e, "provider"); }
      
      public WSDDOperation[] getOperations() {
          WSDDElement[] e = createArray("operation", WSDDOperation.class);
          WSDDOperation[] t = new WSDDOperation[e.length];
          System.arraycopy(e,0,t,0,e.length);
          return t;
      }
      
      public WSDDOperation getOperation(String name) {
          WSDDOperation[] t = getOperations();
          for (int n = 0; n < t.length; n++) {
              if (t[n].getName().equals(name))
                  return t[n];
          } 
          return null;
      }
      
      public String getType() {
          return super.getType();
      }
      
      public Handler newInstance(DeploymentRegistry registry) throws Exception {
          return newProviderInstance(registry);
      }
      
      public abstract Handler newProviderInstance(DeploymentRegistry registry) throws Exception;
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDRequestFlow.java
  
  Index: WSDDRequestFlow.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.wsdd;
  
  import org.w3c.dom.Element;
  
  public class WSDDRequestFlow extends WSDDFlow { 
      
      public WSDDRequestFlow(Element e) throws WSDDException { super(e, "requestFlow"); }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDResponseFlow.java
  
  Index: WSDDResponseFlow.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.wsdd;
  
  import org.w3c.dom.Element;
  
  public class WSDDResponseFlow extends WSDDFlow { 
      
      public WSDDResponseFlow(Element e) throws WSDDException { super(e, "responseFlow"); }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java
  
  Index: WSDDService.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.wsdd;
  
  import java.net.URL;
  import org.w3c.dom.Element;
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  import org.apache.axis.Handler;
  import org.apache.axis.Chain;
  import org.apache.axis.TargetedChain;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  public class WSDDService extends WSDDDeployableItem { 
      
      public WSDDService(Element e) throws WSDDException { super(e, "service"); }
     
      public String getType() {
          String type = super.getType();
          if (type.equals(""))
              type = "java:org.apache.axis.SimpleTargetedChain";
          return type;
      }
      
      public String getDescription() {
          return getElement().getAttribute("description");
      }
      
      public WSDDTypeMapping[] getTypeMappings() {
          WSDDElement[] e = createArray("typeMapping", WSDDTypeMapping.class);
          WSDDTypeMapping[] t = new WSDDTypeMapping[e.length];
          System.arraycopy(e,0,t,0,e.length);
          return t;
      }
      
      public WSDDTypeMapping getTypeMapping(String name) {
          WSDDTypeMapping[] t = getTypeMappings();
          for (int n = 0; n < t.length; n++) {
              if (t[n].getName().equals(name))
                  return t[n];
          }
          return null;
      }
      
      public WSDDRequestFlow getRequestFlow() {
          WSDDElement[] e = createArray("requestFlow", WSDDRequestFlow.class);
          if (e.length != 0) {
              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 {
              String exuri = ex.getNamespaceURI();
              Class c = WSDDProvider.getProviderClass(exuri);
              Class[] cs = {Element.class};
              Object[] p = {e};
              return (WSDDProvider)c.getConstructor(cs).newInstance(p);
          }
      }
      
      public WSDDResponseFlow getResponseFlow() {
          WSDDElement[] e = createArray("responseFlow", WSDDResponseFlow.class);
          if (e.length != 0) {
              return (WSDDResponseFlow)e[0];
          }
          return null;
      }
      
      public WSDDFaultFlow[] getFaultFlows() {
          WSDDElement[] e = createArray("faultFlow", WSDDFaultFlow.class);
          WSDDFaultFlow[] t = new WSDDFaultFlow[e.length];
          System.arraycopy(e,0,t,0,e.length);
          return t;
      }
      
      public WSDDFaultFlow getFaultFlow(String name) {
          WSDDFaultFlow[] t = getFaultFlows();
          for (int n = 0; n < t.length; n++) {
              if (t[n].getName().equals(name))
                  return t[n];
          } 
          return null;
      }
     
      public Handler newInstance(DeploymentRegistry registry) throws Exception {
          Handler h = super.makeNewInstance(registry);
          TargetedChain c = (TargetedChain)h;
          c.setInputChain((Chain)getRequestFlow().newInstance(registry));
          c.setPivotHandler(getProvider().newInstance(registry));
          c.setOutputChain((Chain)getResponseFlow().newInstance(registry));
          return c;
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTransport.java
  
  Index: WSDDTransport.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.wsdd;
  
  import org.w3c.dom.Element; 
  import org.apache.axis.Handler;
  import org.apache.axis.Chain;
  import org.apache.axis.TargetedChain;
  import org.apache.axis.deployment.DeploymentRegistry;
  
  public class WSDDTransport extends WSDDDeployableItem { 
      
      public WSDDTransport(Element e) throws WSDDException { super(e, "transport"); }
      
      public WSDDRequestFlow getRequestFlow() {
          WSDDElement[] e = createArray("requestFlow", WSDDRequestFlow.class);
          if (e.length != 0) {
              return (WSDDRequestFlow)e[0];
          } 
          return null;
      }
      
      public WSDDResponseFlow getResponseFlow() {
          WSDDElement[] e = createArray("responseFlow", WSDDResponseFlow.class);
          if (e.length != 0) {
              return (WSDDResponseFlow)e[0];
          } 
          return null;
      }
      
      public WSDDFaultFlow[] getFaultFlows() {
          WSDDElement[] e = createArray("faultFlow", WSDDFaultFlow.class);
          WSDDFaultFlow[] t = new WSDDFaultFlow[e.length];
          System.arraycopy(e,0,t,0,e.length);
          return t;
      }
      
      public WSDDFaultFlow getFaultFlow(String name) {
          WSDDFaultFlow[] t = getFaultFlows();
          for (int n = 0; n < t.length; n++) {
              if (t[n].getName().equals(name))
                  return t[n];
          } 
          return null;
      }
     
      public String getType() {
          String type = super.getType();
          if (type.equals(""))
              type = "java:org.apache.axis.SimpleTargedChain";
          return type;
      }
      
      public Handler newInstance(DeploymentRegistry registry) throws Exception {
          return newInstance(null, registry);
      }
      
      public Handler newInstance(Handler pivot, DeploymentRegistry registry) throws Exception {
          Handler h = super.makeNewInstance(registry);
          TargetedChain c = (TargetedChain)h;
          c.setInputChain((Chain)getRequestFlow().newInstance(registry));
          c.setPivotHandler(pivot);
          c.setOutputChain((Chain)getResponseFlow().newInstance(registry));
          return c;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDTypeMapping.java
  
  Index: WSDDTypeMapping.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.wsdd;
  
  import org.w3c.dom.Element;
  import org.apache.axis.utils.QName;
  
  public class WSDDTypeMapping extends WSDDElement { 
      
      public WSDDTypeMapping(Element e) throws WSDDException {super(e, "typeMapping");}
      
      public String getName() {
          return getElement().getAttribute("name");
      }
      
      public String getRef() {
          return getElement().getAttribute("ref");
      }
      
      public String getEncodingStyle() {
          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());
      }
      
      public Class getLanguageSpecificType() throws ClassNotFoundException {
          String type = getElement().getAttribute("languageSpecificType");
          return Class.forName(type);
      }
      
      public Class getSerializer() throws ClassNotFoundException {
          String type = getElement().getAttribute("serializer");
          return Class.forName(type);
      }
      
      public Class getDeserializer() throws ClassNotFoundException {
          String type = getElement().getAttribute("deserializer");
          return Class.forName(type);
      }    
  }
  
  
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDBsfProvider.java
  
  Index: WSDDBsfProvider.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.wsdd.providers;
  
  import org.apache.axis.Handler;
  import org.apache.axis.deployment.wsdd.WSDDProvider;
  import org.apache.axis.deployment.wsdd.WSDDException;
  import org.apache.axis.deployment.DeploymentRegistry;
  import org.w3c.dom.Element; 
  
  public class WSDDBsfProvider extends WSDDProvider { 
      
      public WSDDBsfProvider(Element e) throws WSDDException { super(e); }
      
      public Handler newProviderInstance(DeploymentRegistry registry) throws Exception {
          return null;
      }
      
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDComProvider.java
  
  Index: WSDDComProvider.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.wsdd.providers;
  
  import org.apache.axis.Handler;
  import org.apache.axis.deployment.wsdd.WSDDProvider;
  import org.apache.axis.deployment.wsdd.WSDDException;
  import org.apache.axis.deployment.DeploymentRegistry;
  import org.w3c.dom.Element;
  
  public class WSDDComProvider extends WSDDProvider { 
      
      public WSDDComProvider(Element e) throws WSDDException { super(e); }    
    
      public Handler newProviderInstance(DeploymentRegistry registry) throws Exception {
          return null;
      }
     
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/deployment/wsdd/providers/WSDDJavaProvider.java
  
  Index: WSDDJavaProvider.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.wsdd.providers;
  
  import org.apache.axis.Handler;
  import org.apache.axis.deployment.wsdd.WSDDProvider;
  import org.apache.axis.deployment.wsdd.WSDDException;
  import org.apache.axis.deployment.DeploymentRegistry;
  import org.w3c.dom.Element;
  
  public class WSDDJavaProvider extends WSDDProvider { 
      
      public WSDDJavaProvider(Element e) throws WSDDException { super(e); }
      
      public Handler newProviderInstance(DeploymentRegistry registry) throws Exception {
          return null;
      }
      
  }
  
  
  
  1.3       +4 -3      xml-axis/java/src/org/apache/axis/encoding/Deserializer.java
  
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/SOAPEncoding.java
  
  Index: SOAPEncoding.java
  ===================================================================
  package org.apache.axis.encoding;
  
  import org.w3c.dom.Element;
  import org.w3c.dom.Document;
  import org.w3c.dom.Attr;
  import org.apache.axis.utils.QName;
  import org.apache.axis.utils.XMLUtils;
  import org.apache.axis.Constants;
  import java.util.Hashtable;
  
  public class SOAPEncoding implements Serializer, Deserializer { 
  
      private Hashtable typemap = new Hashtable();
      private Hashtable namemap = new Hashtable();
      
      public SOAPEncoding() {
          typemap.put(String.class,  SOAPTypeMappingRegistry.XSD_STRING);
          typemap.put(Boolean.class, SOAPTypeMappingRegistry.XSD_BOOLEAN);
          typemap.put(Double.class,  SOAPTypeMappingRegistry.XSD_DOUBLE);
          typemap.put(Float.class,   SOAPTypeMappingRegistry.XSD_FLOAT);
          typemap.put(Integer.class, SOAPTypeMappingRegistry.XSD_INT);
          typemap.put(Long.class,    SOAPTypeMappingRegistry.XSD_LONG);
          typemap.put(Short.class,   SOAPTypeMappingRegistry.XSD_SHORT);
          namemap.put(String.class,  SOAPTypeMappingRegistry.SOAP_STRING);
          namemap.put(Boolean.class, SOAPTypeMappingRegistry.SOAP_BOOLEAN);
          namemap.put(Double.class,  SOAPTypeMappingRegistry.SOAP_DOUBLE);
          namemap.put(Float.class,   SOAPTypeMappingRegistry.SOAP_FLOAT);
          namemap.put(Integer.class, SOAPTypeMappingRegistry.SOAP_INT);
          namemap.put(Long.class,    SOAPTypeMappingRegistry.SOAP_LONG);
          namemap.put(Short.class,   SOAPTypeMappingRegistry.SOAP_SHORT);
      }
      
      public Element serialize(QName qname, Object value, TypeMappingRegistry tmr, Document doc) {
          Element e;
          String name = null;
          String ns = null;
          QName xsitype = null;
          Class type = null;
          
          if (value != null) type = value.getClass();
          if (qname != null) {
              name = qname.getLocalPart();
              ns = qname.getNamespaceURI();
              xsitype = (QName)typemap.get(type);
          } else {
              if (type != null) {
                  QName q = (QName)namemap.get(type);
                  if (q != null) {
                      name = q.getLocalPart();
                      ns = q.getNamespaceURI();
                  }
              }
          }
          
          if (name != null) {
              if (ns != null) {
                  e = doc.createElementNS(ns, name);
              } else {
                  e = doc.createElement(name);
              }
              if (xsitype != null) {
                  e.setAttributeNS(Constants.URI_SCHEMA_XSI, "type", Constants.NSPREFIX_SCHEMA_XSD + ":" + xsitype.getLocalPart());
              }
              if (value != null) {
                  e.appendChild(doc.createTextNode(value.toString()));
              }
              return e;
          } 
          return null;
      }
  
      public Object deserialize(Element element, TypeMappingRegistry tmr) {
          String xsdprefix = XMLUtils.getPrefix(Constants.URI_SCHEMA_XSD, element);
          String xsitype = element.getAttributeNS(Constants.URI_SCHEMA_XSI, "type");
          QName name = new QName(element.getNamespaceURI(), element.getLocalName());
          String value = element.getFirstChild().getNodeValue();
          
          if (xsitype != null) {
              if (xsitype.startsWith(xsdprefix + ":")) {
                  String stype = xsitype.substring(xsdprefix.length() + 1);
                  QName type = new QName(Constants.URI_SCHEMA_XSD, stype);
                  if (type.getNamespaceURI().equals(SOAPTypeMappingRegistry.XSD_STRING.getNamespaceURI()) &&
                      type.getLocalPart().equals(SOAPTypeMappingRegistry.XSD_STRING.getLocalPart())) {
                      return new String(value);
                  }
                  if (type.getNamespaceURI().equals(SOAPTypeMappingRegistry.XSD_BOOLEAN.getNamespaceURI()) &&
                      type.getLocalPart().equals(SOAPTypeMappingRegistry.XSD_BOOLEAN.getLocalPart())) {
                      return new Boolean(value);
                  }
                  if (type.getNamespaceURI().equals(SOAPTypeMappingRegistry.XSD_DOUBLE.getNamespaceURI()) &&
                      type.getLocalPart().equals(SOAPTypeMappingRegistry.XSD_DOUBLE.getLocalPart())) {
                      return new Double(value);
                  }
                  if (type.getNamespaceURI().equals(SOAPTypeMappingRegistry.XSD_FLOAT.getNamespaceURI()) &&
                      type.getLocalPart().equals(SOAPTypeMappingRegistry.XSD_FLOAT.getLocalPart())) {
                      return new Float(value);
                  }
                  if (type.getNamespaceURI().equals(SOAPTypeMappingRegistry.XSD_INT.getNamespaceURI()) &&
                      type.getLocalPart().equals(SOAPTypeMappingRegistry.XSD_INT.getLocalPart())) {
                      return new Integer(value);
                  }
                  if (type.getNamespaceURI().equals(SOAPTypeMappingRegistry.XSD_LONG.getNamespaceURI()) &&
                      type.getLocalPart().equals(SOAPTypeMappingRegistry.XSD_LONG.getLocalPart())) {
                      return new Long(value);
                  }
                  if (type.getNamespaceURI().equals(SOAPTypeMappingRegistry.XSD_SHORT.getNamespaceURI()) &&
                      type.getLocalPart().equals(SOAPTypeMappingRegistry.XSD_SHORT.getLocalPart())) {
                      return new Short(value);
                  }
              }
          }
          
          if (name.getNamespaceURI().equals(SOAPTypeMappingRegistry.SOAP_STRING.getNamespaceURI()) &&
              name.getLocalPart().equals(SOAPTypeMappingRegistry.SOAP_STRING.getLocalPart())) {
              return new String(value);
          }
          if (name.getNamespaceURI().equals(SOAPTypeMappingRegistry.SOAP_BOOLEAN.getNamespaceURI()) &&
              name.getLocalPart().equals(SOAPTypeMappingRegistry.SOAP_BOOLEAN.getLocalPart())) {
              return new Boolean(value);
          }
          if (name.getNamespaceURI().equals(SOAPTypeMappingRegistry.SOAP_DOUBLE.getNamespaceURI()) &&
              name.getLocalPart().equals(SOAPTypeMappingRegistry.SOAP_DOUBLE.getLocalPart())) {
              return new Double(value);
          }
          if (name.getNamespaceURI().equals(SOAPTypeMappingRegistry.SOAP_FLOAT.getNamespaceURI()) &&
              name.getLocalPart().equals(SOAPTypeMappingRegistry.SOAP_FLOAT.getLocalPart())) {
              return new Float(value);
          }
          if (name.getNamespaceURI().equals(SOAPTypeMappingRegistry.SOAP_INT.getNamespaceURI()) &&
              name.getLocalPart().equals(SOAPTypeMappingRegistry.SOAP_INT.getLocalPart())) {
              return new Integer(value);
          }
          if (name.getNamespaceURI().equals(SOAPTypeMappingRegistry.SOAP_LONG.getNamespaceURI()) &&
              name.getLocalPart().equals(SOAPTypeMappingRegistry.SOAP_LONG.getLocalPart())) {
              return new Long(value);
          }
          if (name.getNamespaceURI().equals(SOAPTypeMappingRegistry.SOAP_SHORT.getNamespaceURI()) &&
              name.getLocalPart().equals(SOAPTypeMappingRegistry.SOAP_SHORT.getLocalPart())) {
              return new Short(value);
          }
          
          return null;
      }
  }
  
  
  
  1.1                  xml-axis/java/src/org/apache/axis/encoding/SOAPTypeMappingRegistry.java
  
  Index: SOAPTypeMappingRegistry.java
  ===================================================================
  package org.apache.axis.encoding;
  
  import org.apache.axis.Constants;
  import org.apache.axis.utils.QName;
  
  public class SOAPTypeMappingRegistry extends TypeMappingRegistry { 
      
      public static final QName XSD_STRING = new QName(Constants.URI_SCHEMA_XSD, "string");
      public static final QName XSD_BOOLEAN = new QName(Constants.URI_SCHEMA_XSD, "boolean");
      public static final QName XSD_DOUBLE = new QName(Constants.URI_SCHEMA_XSD, "double");
      public static final QName XSD_FLOAT = new QName(Constants.URI_SCHEMA_XSD, "float");
      public static final QName XSD_INT = new QName(Constants.URI_SCHEMA_XSD, "int");
      public static final QName XSD_LONG = new QName(Constants.URI_SCHEMA_XSD, "long");
      public static final QName XSD_SHORT = new QName(Constants.URI_SCHEMA_XSD, "short");
      public static final QName SOAP_STRING = new QName(Constants.URI_SOAP_ENC, "string");
      public static final QName SOAP_BOOLEAN = new QName(Constants.URI_SOAP_ENC, "boolean");
      public static final QName SOAP_DOUBLE = new QName(Constants.URI_SOAP_ENC, "double");
      public static final QName SOAP_FLOAT = new QName(Constants.URI_SOAP_ENC, "float");
      public static final QName SOAP_INT = new QName(Constants.URI_SOAP_ENC, "int");
      public static final QName SOAP_LONG = new QName(Constants.URI_SOAP_ENC, "long");
      public static final QName SOAP_SHORT = new QName(Constants.URI_SOAP_ENC, "short");
      
      public SOAPTypeMappingRegistry() {
          SOAPEncoding se = new SOAPEncoding();
          addSerializer(java.lang.String.class, se);
          addSerializer(java.lang.Boolean.class, se);
          addSerializer(java.lang.Double.class, se);
          addSerializer(java.lang.Float.class, se);
          addSerializer(java.lang.Integer.class, se);
          addSerializer(java.lang.Long.class, se);
          addSerializer(java.lang.Short.class, se);
          addDeserializer(XSD_STRING, se);    
          addDeserializer(XSD_BOOLEAN, se);
          addDeserializer(XSD_DOUBLE, se);
          addDeserializer(XSD_FLOAT, se);
          addDeserializer(XSD_INT, se);
          addDeserializer(XSD_LONG, se);
          addDeserializer(XSD_SHORT, se);
          addDeserializer(SOAP_STRING, se);
          addDeserializer(SOAP_BOOLEAN, se);
          addDeserializer(SOAP_DOUBLE, se);
          addDeserializer(SOAP_FLOAT, se);
          addDeserializer(SOAP_INT, se);
          addDeserializer(SOAP_LONG, se);
          addDeserializer(SOAP_SHORT, se);
      }
      
  }
  
  
  
  1.3       +51 -31    xml-axis/java/src/org/apache/axis/encoding/TypeMappingRegistry.java