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 di...@apache.org on 2001/10/24 20:20:40 UTC

cvs commit: xml-axis/java/test/wsdl Wsdl2javaAntTask.java Wsdl2javaTestSuite.java Wsdl2javaTestSuite.list Wsdl2javaTestSuite.xml

dims        01/10/24 11:20:40

  Modified:    java     build.xml
               java/test build_functional_tests.xml
  Added:       java/test/wsdl Wsdl2javaAntTask.java Wsdl2javaTestSuite.java
                        Wsdl2javaTestSuite.list Wsdl2javaTestSuite.xml
  Removed:     java/src/org/apache/axis/wsdl/test Wsdl2javaAntTask.java
                        Wsdl2javaTestSuite.java Wsdl2javaTestSuite.list
                        Wsdl2javaTestSuite.xml
  Log:
  Move src/org/apache/axis/wsdl/test to test/wsdl
  
  Revision  Changes    Path
  1.68      +2 -4      xml-axis/java/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/build.xml,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- build.xml	2001/10/24 14:41:33	1.67
  +++ build.xml	2001/10/24 18:20:39	1.68
  @@ -169,10 +169,8 @@
             toDir="${build.dest}/org/apache/axis/client"/>
       <copy file="${src.dir}/log4j.properties"
             toDir="${build.dest}"/>
  -
  -    <copy file="${src.dir}/org/apache/axis/wsdl/test/Wsdl2javaTestSuite.list"
  -
  -          toDir="${build.dest}/org/apache/axis/wsdl/test"/>
  +    <copy file="${test.dir}/wsdl/Wsdl2javaTestSuite.list"
  +          toDir="${build.dest}/test/wsdl"/>
       <jar jarfile="${build.lib}/${name}.jar" basedir="${build.dest}" >
         <include name="org/**" />
         <include name="javax/**"/>
  
  
  
  1.15      +1 -1      xml-axis/java/test/build_functional_tests.xml
  
  Index: build_functional_tests.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/build_functional_tests.xml,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- build_functional_tests.xml	2001/10/24 14:41:33	1.14
  +++ build_functional_tests.xml	2001/10/24 18:20:39	1.15
  @@ -111,7 +111,7 @@
     <!-- Generate code using Wsdl2java utility                               -->
     <!-- =================================================================== -->
     <target name="wsdl-setup" if="junit.present">
  -    <ant antfile="src/org/apache/axis/wsdl/test/Wsdl2javaTestSuite.xml">
  +    <ant antfile="test/wsdl/Wsdl2javaTestSuite.xml">
       </ant>
       <copy todir="${build.dir}/work/test" overwrite="yes">
         <fileset dir="${test.dir}">
  
  
  
  1.1                  xml-axis/java/test/wsdl/Wsdl2javaAntTask.java
  
  Index: Wsdl2javaAntTask.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 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 acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Ant", 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 names without prior written
   *    permission of the Apache Group.
   *
   * 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 test.wsdl;
  
  import org.apache.axis.wsdl.Emitter; 
  import org.apache.tools.ant.BuildException;
  import org.apache.tools.ant.Task;
  import org.apache.tools.ant.taskdefs.CallTarget;
  import org.apache.tools.ant.Project;
  
  import java.io.BufferedInputStream;
  import java.io.IOException;
  import java.net.HttpURLConnection;
  import java.net.MalformedURLException;
  import java.net.Socket;
  import java.net.URL;
  
  /**
   * Simple Ant task for running Wsdl2java utility. 
   *
   * @author Davanum Srinivas (dims@yahoo.com)
   */
  public class Wsdl2javaAntTask extends Task
  {
      private boolean verbose = true;
      private boolean skeleton = true ;
      private boolean messageContext = false;
      private boolean testCase = false;
      private boolean noImports = true;
      private String javaPackageName = "";
      private String output = "." ;
      private String deployScope = "";
      private String url = "";
  
      // The method executing the task
      public void execute() throws BuildException {
          try {
              log("Running Wsdl2javaAntTask with parameters:", Project.MSG_VERBOSE);
              log("\tverbose:" + verbose, Project.MSG_VERBOSE);
              log("\tskeleton:" + skeleton, Project.MSG_VERBOSE);
              log("\tmessageContext:" + messageContext, Project.MSG_VERBOSE);
              log("\ttestCase:" + testCase, Project.MSG_VERBOSE);
              log("\tnoImports:" + noImports, Project.MSG_VERBOSE);
              log("\tpackage:" + javaPackageName, Project.MSG_VERBOSE);
              log("\toutput:" + output, Project.MSG_VERBOSE);
              log("\tdeployScope:" + deployScope, Project.MSG_VERBOSE);
              log("\tURL:" + url, Project.MSG_VERBOSE);
              
              // Instantiate the emitter
              Emitter emitter = new Emitter();
              if ("application".equalsIgnoreCase(deployScope)) {
                  emitter.setScope(Emitter.APPLICATION_SCOPE);
              }
              else if ("request".equalsIgnoreCase(deployScope)) {
                  emitter.setScope(Emitter.REQUEST_SCOPE);
              }
              else if ("session".equalsIgnoreCase(deployScope)) {
                  emitter.setScope(Emitter.SESSION_SCOPE);
              }
              else {
                  log("Unrecognized scope:  " + deployScope + ".  Ignoring it.", Project.MSG_VERBOSE);
              }
              if (javaPackageName == null || javaPackageName.length()<=0)
                  emitter.generatePackageName(true);
              else
                  emitter.setPackageName(javaPackageName);
              emitter.generateTestCase(testCase);
              emitter.generateImports(!noImports);
              emitter.setOutputDir(output);
              emitter.generateMessageContext(messageContext);
              emitter.generateSkeleton(skeleton);
              emitter.verbose(verbose);
              emitter.emit(url);
          } catch (Throwable t) {
              throw new BuildException("Error while running " + getClass().getName(), t); 
          }
      }
  
      // The setter for the "verbose" attribute
      public void setVerbose(String parameter) {
          this.verbose = Project.toBoolean(parameter);
      }
  
      // The setter for the "skeleton" attribute
      public void setSkeleton(String parameter) {
          this.skeleton = Project.toBoolean(parameter);
      }
  
      // The setter for the "messagecontext" attribute
      public void setMessageContext(String parameter) {
          this.messageContext = Project.toBoolean(parameter);
      }
  
      // The setter for the "testcase" attribute
      public void setTestCase(String parameter) {
          this.testCase = Project.toBoolean(parameter);
      }
  
      // The setter for the "noimports" attribute
      public void setNoImports(String parameter) {
          this.noImports = Project.toBoolean(parameter);
      }
  
      // The setter for the "package" attribute
      public void setPackage(String parameter) {
          this.javaPackageName = parameter;
      }
  
      // The setter for the "output" attribute
      public void setOutput(String parameter) {
          this.output = parameter;
      }
  
      // The setter for the "deployscope" attribute
      public void setDeployScope(String parameter) {
          this.deployScope = parameter;
      }
      
      // The setter for the "url" attribute
      public void setURL(String parameter) {
          this.url = parameter;
      }
  }
  
  
  
  
  
  1.1                  xml-axis/java/test/wsdl/Wsdl2javaTestSuite.java
  
  Index: Wsdl2javaTestSuite.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 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 test.wsdl;
  
  import junit.framework.AssertionFailedError;
  import junit.framework.TestResult;
  import junit.framework.TestSuite;
  import org.apache.axis.client.AdminClient;
  import org.apache.axis.transport.http.SimpleAxisServer;
  import org.apache.axis.utils.AxisClassLoader;
  import org.apache.axis.utils.Options;
  import org.apache.axis.wsdl.Emitter;
  import org.apache.axis.wsdl.Utils;
  import org.apache.tools.ant.Location;
  import org.apache.tools.ant.Project;
  import org.apache.tools.ant.Target;
  import org.apache.tools.ant.taskdefs.Delete;
  import org.apache.tools.ant.taskdefs.Javac;
  import org.apache.tools.ant.types.Path;
  import org.apache.tools.ant.DefaultLogger;
  import org.apache.tools.ant.BuildLogger;
  
  import java.io.BufferedInputStream;
  import java.io.BufferedOutputStream;
  import java.io.BufferedReader;
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.FileOutputStream;
  import java.io.InputStreamReader;
  import java.net.ServerSocket;
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.List;
  
  /**
   * Set up the test suite for the tests.
   *
   * @author <a href="bloritsch@apache.org">Berin Loritsch</a>
   */
  public class Wsdl2javaTestSuite extends TestSuite {
      private static final String COMPILE_TASK="compile";
      private static final String CLEAN_TASK="clean";
      private static final String WORK_DIR="./build/work/";
      private static Project testSuiteProject = null;
      private static List classNames = null;
      private static List fileNames = null;
      private static final AxisClassLoader loader = AxisClassLoader.getClassLoader();
  
      /**
       * Instantiate a new TestSuite with all the tasks necessary to collect, compile,
       * and prepare the tests.
       */
      public Wsdl2javaTestSuite() {
          super();
          this.setupTasks();
          this.prepareTests();
      }
  
      /**
       * Standard JUnit invocation.  This is not the standard entry point.
       */
      public Wsdl2javaTestSuite(String name) {
          super(name);
  
          this.setupTasks();
          this.prepareTests();
      } //public Wsdl2javaTestSuite(String Name_)
  
      /**
       * Setup the Ant Tasks to handle the compilation and cleanup of the test environment.
       * We programatically create a project instead of using an XML file.  The project is
       * a singleton, so we only perform this once.
       */
      private void setupTasks() {
          if (Wsdl2javaTestSuite.testSuiteProject == null) {
              File workDir = new File(Wsdl2javaTestSuite.WORK_DIR);
              workDir.mkdirs();
  
              /* Create the project.  We name it "Wsdl2javaTestSuite", and set the base
               * directory to the current directory.  This means if it is called from the
               * main ant task, it will find everything correctly.  We also set the
               * default target name to COMPILE_TASK.
               */
              testSuiteProject = new Project();
              testSuiteProject.init();
              testSuiteProject.setName("Wsdl2javaTestSuite");
              testSuiteProject.addReference("Wsdl2javaTestSuite", testSuiteProject);
              testSuiteProject.setBasedir("./");
              testSuiteProject.setDefaultTarget(Wsdl2javaTestSuite.COMPILE_TASK);
              
              /* Setup the logger */
              BuildLogger logger = new DefaultLogger();
              testSuiteProject.addBuildListener(logger);
              logger.setMessageOutputLevel(Project.MSG_INFO);
              logger.setOutputPrintStream(System.out);
              logger.setErrorPrintStream(System.err);
  
              /* Set up the default task (the compile task).  We add the "javac" target,
               * and all the options for it.
               */
              Target defaultTarget = new Target();
              defaultTarget.setName(Wsdl2javaTestSuite.COMPILE_TASK);
              testSuiteProject.addTarget(Wsdl2javaTestSuite.COMPILE_TASK, defaultTarget);
  
              Javac compile = (Javac) testSuiteProject.createTask("javac");
              compile.setLocation(new Location("Wsdl2javaTestSuite"));
              compile.setOwningTarget(defaultTarget);
              defaultTarget.addTask(compile);
              compile.init();
  
              compile.setDebug(true);
              Path root = new Path(testSuiteProject);
              root.setPath(Wsdl2javaTestSuite.WORK_DIR);
              compile.setSrcdir(root);
              compile.setDestdir(workDir);
  
              /* Set up the CLEAN_TASK.  It has the "delete" task, and will clean up all
               * the working files.
               */
              Target cleanup = new Target();
              cleanup.setName(Wsdl2javaTestSuite.CLEAN_TASK);
              testSuiteProject.addTarget(Wsdl2javaTestSuite.CLEAN_TASK, cleanup);
              Delete delete = (Delete) testSuiteProject.createTask("delete");
              delete.setLocation(new Location("Wsdl2javaTestSuite"));
              delete.setOwningTarget(cleanup);
              cleanup.addTask(delete);
              delete.init();
  
              delete.setDir(workDir);
          }
      }
  
      /**
       * Prepare the tests we will generate and run.  Here we gather all the WSDL files we will generate classes from.
       * Next, we run them through Wsdl2java with a standard set of options.  Then we run the COMPILE_TASK
       * from the previously created Ant Project.  Lastly, we iterate over all the generated classes, add
       * them to the ClassLoader, and add the ones that end in "TestCase" to the list of tests we will run.
       */
      private void prepareTests() {
          if (null ==  Wsdl2javaTestSuite.classNames) {
              Wsdl2javaTestSuite.classNames = new ArrayList();
              Wsdl2javaTestSuite.fileNames = new ArrayList();
              // The file is the same as this class name, but with the ".list" extension.
              BufferedReader reader = new BufferedReader(new InputStreamReader(this.getClass().getClassLoader()
                      .getResourceAsStream(this.getClass().getName().replace('.', '/') + ".list")));
  
              try {
                  // Each line is a new WSDL file.
                  String curLine = reader.readLine();
                  int testNum = 0;
                  while (curLine != null) {
                      curLine = curLine.trim();
                      // Skip empty lines or ones that start with #
                      if ( "".equals(curLine) || curLine.charAt(0)=='#') {
                          curLine = reader.readLine();
                          continue;
                      }
                      // Run Wsdl2java on the WSDL file.
                      // The test number is used to keep each WSDL file in a different package.
                      this.prepareTest(curLine, testNum);
  
                      // Setup Tests
                      Iterator names = ((List) Wsdl2javaTestSuite.classNames.get(testNum)).iterator();
                      while (names.hasNext()) {
                          String className = (String) names.next();
  
                          // Register all generated classes with the classloader.
                          if ( !loader.isClassRegistered(className) ) {
                              String classFile = Wsdl2javaTestSuite.WORK_DIR;
                              classFile += className.replace('.', File.separatorChar) + ".class";
                              loader.registerClass(className, classFile);
                          }
  
                          // Add all "TestCase" classes to the list of tests we run
                          if (className.endsWith("TestCase")) {
                              try {
                                  this.addTestSuite(loader.loadClass(className));
                              } catch (Exception e) {
                                  System.err.println("Could not set up test '" + className + "' due to an error");
                                  e.printStackTrace(System.err);
                                  throw new AssertionFailedError(e.getMessage());
                              }
                          }
                      }
                      curLine = reader.readLine();
                      testNum++;
                  }
              } catch (Exception e) {
                  e.printStackTrace(System.err);
                  throw new AssertionFailedError(e.getMessage());
              }
          }
      }
  
      /**
       * Generate the classes using Wsdl2java.  Currently we use Emitter directly, but as Emitter gets redesigned, we will
       * have to make an acceptible wrapper class.  We generate the package name to be "org.apache.axisttest" with the
       * testNum appended to it.  We also enablt skeleton generation and testcase generation.  We also turn on verbosity.
       */
      protected void prepareTest(String fileName, int testNum) throws Exception {
          Emitter wsdl2java = new Emitter();
          String packageName = "";
          packageName = fileName;
          if(packageName.indexOf(":/")!=-1){
              packageName = packageName.substring(packageName.indexOf(":/")+2);
          }
          packageName = packageName.substring(0, packageName.lastIndexOf('/'));
          packageName = packageName.replace('/', '.');
          wsdl2java.setPackageName(Utils.makePackageName(packageName));
          wsdl2java.generatePackageName(true);
          wsdl2java.setOutputDir(Wsdl2javaTestSuite.WORK_DIR);
          wsdl2java.generateSkeleton(true);
          wsdl2java.generateTestCase(true);
  
          /* Copy concrete implementation files to the work directory.
           */
          File implDir = new File(fileName.substring(0, fileName.lastIndexOf('/')));
          if (implDir.isDirectory()) {
              File[] files = implDir.listFiles();
              for (int i = 0; i < files.length; i++) {
                  if (files[i].getName().endsWith("Impl.java") || files[i].getName().endsWith("TestCase.java")) {
                      File subDir = new File(Wsdl2javaTestSuite.WORK_DIR, implDir.toString());
                      subDir.mkdirs();
                      File newFile = new File(subDir, files[i].getName());
                      BufferedInputStream is = new BufferedInputStream(new FileInputStream(files[i]));
                      BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(newFile));
                      byte[] buffer = new byte[1024];
                      int length = -1;
                      while ((length = is.read(buffer)) != -1) {
                          os.write(buffer, 0, length);
                      }
                      os.flush();
                      is.close();
                      os.close();
                  }
              }
          }
  
          wsdl2java.emit(fileName);
  
          Wsdl2javaTestSuite.classNames.add(testNum, wsdl2java.getGeneratedClassNames());
          Wsdl2javaTestSuite.fileNames.add(testNum, wsdl2java.getGeneratedFileNames());
  
          this.testSuiteProject.executeTarget(Wsdl2javaTestSuite.COMPILE_TASK);
      } //protected void prepareTest()
  
      private void cleanTest() {
          Iterator i = Wsdl2javaTestSuite.classNames.iterator();
          while (i.hasNext()) {
              ((List) i.next()).clear();
          }
          Wsdl2javaTestSuite.classNames.clear();
          Wsdl2javaTestSuite.classNames = null;
  
          i = Wsdl2javaTestSuite.fileNames.iterator();
          while (i.hasNext()) {
              ((List) i.next()).clear();
          }
          Wsdl2javaTestSuite.fileNames.clear();
          Wsdl2javaTestSuite.fileNames = null;
          testSuiteProject.executeTarget(Wsdl2javaTestSuite.CLEAN_TASK);
      }
  
      /**
       * Convenience method to run the test case from the command-line.
       */
      public static void main(String[] args) {
          junit.swingui.TestRunner.main(new String[] {"-noloading", Wsdl2javaTestSuite.class.getName()});
      } //public static void main(String[] args)
  
      /**
       * Override JUnit's <code>run(TestResult)</code> method.  Basically all we are doing is wrapping it
       * with code to start the SimpleAxisServer, deploy all the generated services, undeploy all the
       * generated services, stop the SimpleAxisServer, and clean up the test environment.
       */
      public void run(TestResult result) {
          // Get the SimpleAxisServer running--using the default port.
          SimpleAxisServer server = new SimpleAxisServer();
  
          try {
              Options opts = new Options(new String[]{});
              int port = opts.getPort();
              System.out.println("Starting test http server at port " + port);
              ServerSocket ss = new ServerSocket(port);
              server.setServerSocket(ss);
              Thread serverThread = new Thread(server);
              serverThread.setDaemon(true);
              serverThread.setContextClassLoader(loader);
              serverThread.start();
  
              // Find all the "deploy.xml" files and run them through the AdminClient.
              Iterator testIterator = Wsdl2javaTestSuite.fileNames.iterator();
              while (testIterator.hasNext()) {
                  String deploy = null;
  
                  Iterator files = ((List) testIterator.next()).iterator();
                  while (files.hasNext()) {
                      String fileName = (String) files.next();
                      if (fileName.endsWith(File.separator + "deploy.xml")) {
                          deploy = fileName;
                      }
                  }
                  
                  if(deploy != null){
                      // Perform actual deployment
                      String[] args = new String[] { Wsdl2javaTestSuite.WORK_DIR + deploy };
                      AdminClient.main(args);
                  }
              }
  
              //AdminClient.main(new String[] {"list"});
  
              // Run the tests
              super.run(result);
  
              // Find all the "undeploy.xml" files and run them through the AdminClient.
              testIterator = Wsdl2javaTestSuite.fileNames.iterator();
              while (testIterator.hasNext()) {
                  String undeploy = null;
  
                  Iterator files = ((List) testIterator.next()).iterator();
                  while (files.hasNext()) {
                      String fileName = (String) files.next();
                      if (fileName.endsWith(File.separator + "undeploy.xml")) {
                          undeploy = fileName;
                      }
                  }
                  if(undeploy != null) {
                      // Perform actual undeployment
                      String[] args = new String[] { Wsdl2javaTestSuite.WORK_DIR + undeploy };
                      AdminClient.main(args);
                  }
              }
  
              //AdminClient.main(new String[] {"list"});
  
              // Clean up the test environment
              //this.cleanTest(); // commented out while debugging.
  
              // Stop the SimpleAxisServer
              System.out.println("Stopping test http server.");
              server.stop();
          } catch (Exception e) {
              throw new AssertionFailedError("The test suite failed with the following exception: " + e.getMessage());
          }
      }
  
      /**
       * Static method for JUnit to treat this like a TestSuite.
       */
      public static final TestSuite suite() {
          return new Wsdl2javaTestSuite();
      }
  } //public class Wsdl2javaTestSuite extends TestCase
  
  
  
  1.1                  xml-axis/java/test/wsdl/Wsdl2javaTestSuite.list
  
  Index: Wsdl2javaTestSuite.list
  ===================================================================
  samples/addr/AddressBook.wsdl
  test/inout/inout.wsdl
  http://www.whitemesa.com/interop/InteropTest.wsdl
  #http://www.whitemesa.com/interop/InteropTestB.wsdl
  #http://www.whitemesa.com/interop/InteropTestC.wsdl
  #http://www.whitemesa.net/wsdl/std/echoheadersvc.wsdl
  
  
  1.1                  xml-axis/java/test/wsdl/Wsdl2javaTestSuite.xml
  
  Index: Wsdl2javaTestSuite.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <project name="Wsdl2javaTestSuite" default="main">
    <taskdef name="wsdl2java" classname="test.wsdl.Wsdl2javaAntTask"/>
  
    <target name="main">
      <wsdl2java url="samples/addr/AddressBook.wsdl" 
                 deployscope="session"
                 package="samples.addr" 
                 output="build/work" 
                 testcase="no">
      </wsdl2java>
      <wsdl2java url="test/inout/inout.wsdl" 
                 package="test.inout" 
                 output="build/work" 
                 testcase="no">
      </wsdl2java>
      <wsdl2java url="http://www.whitemesa.com/interop/InteropTest.wsdl" 
                 package="org.soapinterop" 
                 output="build/work" 
                 testcase="no">
      </wsdl2java>
      <wsdl2java url="http://www.whitemesa.com/interop/InteropTestB.wsdl" 
                 package="org.soapinteropB" 
                 output="build/work" 
                 testcase="no">
      </wsdl2java>
      <!--
      <wsdl2java url="http://www.whitemesa.net/wsdl/std/InteropTestC.wsdl"
                 package="org.soapinterop.echoheadersvc" 
                 output="build/work" 
                 testcase="no">
      </wsdl2java>
      <wsdl2java url="http://www.whitemesa.net/wsdl/std/echoheadersvc.wsdl"
                 package="org.soapinterop.echoheadersvc" 
                 output="build/work" 
                 testcase="no">
      </wsdl2java>
      -->
    </target>
  </project>