xml-commons-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From n..@apache.org
Subject cvs commit: xml-commons/java/tests/resolver/src DynamicTest.java ExtendedTest.java JarTest.java StaticTest.java TestParser.java
Date Wed, 13 Nov 2002 20:31:23 GMT
ndw         2002/11/13 12:31:22

  Added:       java/tests/resolver build.xml test2.xml test3.xml
               java/tests/resolver/catalogs extended.xml jarcatalog.xml
               java/tests/resolver/dtds test2.dtd
               java/tests/resolver/src DynamicTest.java ExtendedTest.java
                        JarTest.java StaticTest.java TestParser.java
  Log:
  New tests
  
  Revision  Changes    Path
  1.1                  xml-commons/java/tests/resolver/build.xml
  
  Index: build.xml
  ===================================================================
  <?xml version="1.0"?>
  <!--
  Build file for resolver tests. No dependencies.
  @author Norman.Walsh@Sun.COM
  -->
  <project name="xml-commons-resolver-tests" default="all" >
    <!-- Location of where to put our build output -->
    <property name="tmp.dir" value="."/>
  
    <!-- Build directories -->
    <property name="build.dir" value="${tmp.dir}/build"/>
    <property name="build.classes.dir" value="${build.dir}/classes"/>
  
    <!-- Source constants and directories -->
    <property name="src.dir" value="src" />
    <property name="resolver.jar.location" value="../../build" />
    <property name="resolver.jar.name" value="resolver.jar" />
    <property name="resolver.jar" value="${resolver.jar.location}/${resolver.jar.name}"
/>
  
    <property name="jaxp.jar" value="/usr/local/jaxp-1.2_01/jaxp-api.jar"/>
    <property name="xml-apis.jar" value="/usr/local/java/jakarta-ant-1.5.1/lib/xml-apis.jar"/>
    <property name="xercesImpl.jar" value="/usr/local/java/jakarta-ant-1.5.1/lib/xercesImpl.jar"/>
  
    <!-- Test results directory -->
    <property name="check.dir" value="${tmp.dir}/${project.name}/check"/>
  
    <!-- Build properties -->
    <property name="build.debug" value="on"/>
    <property name="build.deprecation" value="on"/>
    <property name="build.optimize" value="off"/>
  
    <!-- Document constants -->
    <property name="company.name" value="Apache"/>
  
    <property name="copyright.date" value="2002"/>
    <property name="copyright.message"
              value="Copyright &#169; ${copyright.date} ${company.name}. All Rights Reserved."/>
  
    <!-- Public Targets -->
    <target name="main"
            depends="all"
            description="Alias for all."/>
  
    <target name="all"
            depends="compile"
            description="This is the default target.  Compiles the program.">
    </target>
  
    <target name="compile" depends="init"
      description="Compile all classes">
  
     <echo message="Compiling..." />
  
     <javac srcdir="${src.dir}" destdir="${build.classes.dir}">
       <classpath>
         <pathelement location="${jaxp.jar}"/>
         <pathelement location="${xmlParserAPIs.jar}"/>
         <pathelement location="${xerces2.jar}"/>
         <pathelement location="${resolver.jar}"/>
         <pathelement path="${java.class.path}"/>
       </classpath>
  
       <include name="*.java"/>
     </javac>
    </target>
  
    <target name="catalogs.jar"
      description="Jar catalog files and DTDs">
      <echo message="Jarring catalogs and DTDs" />
      <copy todir="${build.classes.dir}/catalogs">
        <fileset dir="catalogs" includes="*.sub1"/>
        <fileset dir="catalogs" includes="*.sub2"/>
        <fileset dir="catalogs" includes="*.xml"/>
        <fileset dir="catalogs" includes="*.catalog"/>
      </copy>
      <copy todir="${build.classes.dir}/dtds">
        <fileset dir="dtds" includes="*.dtd"/>
        <fileset dir="dtds" includes="*.mod"/>
      </copy>
  
      <jar jarfile="${build.dir}/catalogs.jar" basedir="${build.classes.dir}" />
    </target>
  
    <target name="clean"
            description="Deletes all files that are generated by the build.">
      <delete dir="${build.dir}"/>
    </target>
  
    <!-- Internal Targets -->
    <target name="init">
      <echo message="Building tests: Buildfile: $Revision: 1.1 $"/>
      <mkdir dir="${build.classes.dir}" />
      <mkdir dir="${build.dir}/catalogs" />
      <mkdir dir="${build.dir}/dtds" />
    </target>
  
    <!-- Project specific Targets -->
    <path id="tests-class-path">
      <pathelement location="${xml-apis.jar}"/>
      <pathelement location="${xercesImpl.jar}"/>
      <pathelement location="${resolver.jar}"/>
      <pathelement location="${build.classes.dir}"/>
    </path>
  
    <target name="statictest" depends="compile">
      <java classname="StaticTest" fork="true">
        <classpath refid="tests-class-path"/>
        <arg value="-c"/>
        <arg file="catalogs/main.catalog"/>
        <arg file="test1.xml"/>
      </java>
    </target>
  
    <target name="dynamictest" depends="compile">
      <java classname="DynamicTest" fork="true">
        <classpath refid="tests-class-path"/>
        <arg value="-c"/>
        <arg file="catalogs/main.catalog"/>
        <arg file="test1.xml"/>
      </java>
    </target>
  
    <target name="extendedtest" depends="compile">
      <java classname="ExtendedTest" fork="true">
        <classpath refid="tests-class-path"/>
        <arg value="-c"/>
        <arg file="catalogs/extended.xml"/>
        <arg file="test2.xml"/>
      </java>
    </target>
  
    <target name="jartest" depends="compile,catalogs.jar">
      <java classname="JarTest" fork="true">
        <classpath refid="tests-class-path"/>
        <classpath>
          <pathelement location="${build.dir}/catalogs.jar"/>
        </classpath>
        <arg value="-c"/>
        <arg value="jar:file:${build.dir}/catalogs.jar!/catalogs/jarcatalog.xml"/>
        <arg file="test3.xml"/>
      </java>
    </target>
  </project>
  
  
  
  1.1                  xml-commons/java/tests/resolver/test2.xml
  
  Index: test2.xml
  ===================================================================
  <!DOCTYPE test PUBLIC "-//Apache//DTD Resolver Test 2//EN"
                        "http://example.com/path/is/irrelevant/test2.dtd">
  <test>
  <foo/>
  </test>
  
  
  
  1.1                  xml-commons/java/tests/resolver/test3.xml
  
  Index: test3.xml
  ===================================================================
  <!DOCTYPE test PUBLIC "-//Apache//DTD Resolver Test 3//EN"
                        "http://example.com/test3.dtd">
  <test>
  <foo/>
  </test>
  
  
  
  1.1                  xml-commons/java/tests/resolver/catalogs/extended.xml
  
  Index: extended.xml
  ===================================================================
  <?xml version='1.0'?>
  <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
           xmlns:ext="http://nwalsh.com/xcatalog/1.0"
           prefer="public">
  
    <ext:systemSuffix suffix="test2.dtd"
                      uri="../dtds/test2.dtd"/>
  
    <!-- If you don't find it here ... -->
    <nextCatalog catalog="main.catalog"/>
  
  </catalog>
  
  
  
  1.1                  xml-commons/java/tests/resolver/catalogs/jarcatalog.xml
  
  Index: jarcatalog.xml
  ===================================================================
  <?xml version='1.0'?>
  <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
           prefer="public">
  
    <system systemId="http://example.com/test3.dtd"
            uri="../dtds/test2.dtd"/> <!-- yes, test2 -->
  </catalog>
  
  
  
  1.1                  xml-commons/java/tests/resolver/dtds/test2.dtd
  
  Index: test2.dtd
  ===================================================================
  <!ELEMENT test (foo|bar)+>
  <!ELEMENT foo EMPTY>
  <!ELEMENT bar EMPTY>
  
  
  
  
  1.1                  xml-commons/java/tests/resolver/src/DynamicTest.java
  
  Index: DynamicTest.java
  ===================================================================
  // ManagerTest.java - A test of multiple Catalog Managers
  
  /*
   * 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 "Xalan" 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 and was
   * originally based on software copyright (c) 2001, International
   * Business Machines Corporation., http://www.ibm.com.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.util.Vector;
  import java.util.Date;
  import java.util.GregorianCalendar;
  import java.net.MalformedURLException;
  
  import org.xml.sax.*;
  import org.xml.sax.helpers.*;
  
  import javax.xml.parsers.*;
  
  import org.apache.xml.resolver.tools.ResolvingXMLReader;
  import org.apache.xml.resolver.Catalog;
  import org.apache.xml.resolver.CatalogManager;
  import org.apache.xml.resolver.helpers.Debug;
  import org.apache.xml.resolver.apps.XParseError;
  
  /**
   * <p>A simple command-line XML parsing application.</p>
   *
   * <p>This class tests the ability of the XML Catalog code to support
   * multiple catalog manager instances.
   * </p>
   *
   * <p>Usage: ManagerTest document.xml</p>
   *
   * <p>The process ends with error-level 1, if there errors.</p>
   *
   * @see org.apache.xml.resolver.tools.ResolvingXMLReader
   *
   * @author Norman Walsh
   * <a href="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a>
   *
   * @version 1.0
   */
  public class DynamicTest extends TestParser
  {
    /** The main entry point */
    public static void main (String[] args)
      throws FileNotFoundException, IOException {
  
      for (int i=0; i<args.length; i++) {
        if (args[i].equals("-c")) {
  	++i;
  	catalogFiles.add(args[i]);
  	continue;
        }
  
        xmlfile = args[i];
      }
  
      if (xmlfile == null) {
        System.out.println("Usage: DynamicTest [ -c catalog ] xmlfile");
        System.exit(1);
      }
  
      System.out.println("Creating my CatalogManager (debug messages)");
      CatalogManager myManager = new CatalogManager();
      myManager.setIgnoreMissingProperties(true);
      myManager.setVerbosity(2);
      System.out.println("Parsing with my CatalogManager");
      ResolvingXMLReader reader = new ResolvingXMLReader(myManager);
      parse(reader);
    }
  }
  
  
  
  1.1                  xml-commons/java/tests/resolver/src/ExtendedTest.java
  
  Index: ExtendedTest.java
  ===================================================================
  // ManagerTest.java - A test of multiple Catalog Managers
  
  /*
   * 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 "Xalan" 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 and was
   * originally based on software copyright (c) 2001, International
   * Business Machines Corporation., http://www.ibm.com.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.util.Vector;
  import java.util.Date;
  import java.util.GregorianCalendar;
  import java.net.MalformedURLException;
  
  import org.xml.sax.*;
  import org.xml.sax.helpers.*;
  
  import javax.xml.parsers.*;
  
  import org.apache.xml.resolver.tools.ResolvingXMLReader;
  import org.apache.xml.resolver.Catalog;
  import org.apache.xml.resolver.CatalogManager;
  import org.apache.xml.resolver.helpers.Debug;
  import org.apache.xml.resolver.apps.XParseError;
  
  /**
   * <p>A simple command-line XML parsing application.</p>
   *
   * <p>This class tests the ability of the XML Catalog code to support
   * multiple catalog manager instances.
   * </p>
   *
   * <p>Usage: ManagerTest document.xml</p>
   *
   * <p>The process ends with error-level 1, if there errors.</p>
   *
   * @see org.apache.xml.resolver.tools.ResolvingXMLReader
   *
   * @author Norman Walsh
   * <a href="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a>
   *
   * @version 1.0
   */
  public class ExtendedTest extends TestParser
  {
    /** The main entry point */
    public static void main (String[] args)
      throws FileNotFoundException, IOException {
  
      for (int i=0; i<args.length; i++) {
        if (args[i].equals("-c")) {
  	++i;
  	catalogFiles.add(args[i]);
  	continue;
        }
  
        xmlfile = args[i];
      }
  
      if (xmlfile == null) {
        System.out.println("Usage: ExtendedTest [ -c catalog ] xmlfile");
        System.exit(1);
      }
  
      System.out.println("Creating my CatalogManager (Resolver)");
      CatalogManager myManager = new CatalogManager();
      myManager.setUseStaticCatalog(false);
      myManager.setVerbosity(2);
      myManager.setCatalogClassName("org.apache.xml.resolver.Resolver");
      System.out.println("Parsing with my CatalogManager");
      ResolvingXMLReader reader = new ResolvingXMLReader(myManager);
      parse(reader);
    }
  }
  
  
  
  1.1                  xml-commons/java/tests/resolver/src/JarTest.java
  
  Index: JarTest.java
  ===================================================================
  // ManagerTest.java - A test of multiple Catalog Managers
  
  /*
   * 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 "Xalan" 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 and was
   * originally based on software copyright (c) 2001, International
   * Business Machines Corporation., http://www.ibm.com.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.util.Vector;
  import java.util.Date;
  import java.util.GregorianCalendar;
  import java.net.MalformedURLException;
  
  import org.xml.sax.*;
  import org.xml.sax.helpers.*;
  
  import javax.xml.parsers.*;
  
  import org.apache.xml.resolver.tools.ResolvingXMLReader;
  import org.apache.xml.resolver.Catalog;
  import org.apache.xml.resolver.CatalogManager;
  import org.apache.xml.resolver.helpers.Debug;
  import org.apache.xml.resolver.apps.XParseError;
  
  /**
   * <p>A simple command-line XML parsing application.</p>
   *
   * <p>This class tests the ability of the XML Catalog code to support
   * multiple catalog manager instances.
   * </p>
   *
   * <p>Usage: ManagerTest document.xml</p>
   *
   * <p>The process ends with error-level 1, if there errors.</p>
   *
   * @see org.apache.xml.resolver.tools.ResolvingXMLReader
   *
   * @author Norman Walsh
   * <a href="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a>
   *
   * @version 1.0
   */
  public class JarTest extends TestParser
  {
    /** The main entry point */
    public static void main (String[] args)
      throws FileNotFoundException, IOException {
  
      for (int i=0; i<args.length; i++) {
        if (args[i].equals("-c")) {
  	++i;
  	catalogFiles.add(args[i]);
  	continue;
        }
  
        xmlfile = args[i];
      }
  
      if (xmlfile == null) {
        System.out.println("Usage: JarTest [ -c catalog ] xmlfile");
        System.exit(1);
      }
  
      System.out.println("Creating my CatalogManager (jar catalog)");
      CatalogManager myManager = new CatalogManager();
      myManager.setUseStaticCatalog(false);
      myManager.setVerbosity(5);
      System.out.println("Parsing with my CatalogManager");
      ResolvingXMLReader reader = new ResolvingXMLReader(myManager);
      parse(reader);
    }
  }
  
  
  
  1.1                  xml-commons/java/tests/resolver/src/StaticTest.java
  
  Index: StaticTest.java
  ===================================================================
  // ManagerTest.java - A test of multiple Catalog Managers
  
  /*
   * 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 "Xalan" 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 and was
   * originally based on software copyright (c) 2001, International
   * Business Machines Corporation., http://www.ibm.com.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.util.Vector;
  import java.util.Date;
  import java.util.GregorianCalendar;
  import java.net.MalformedURLException;
  
  import org.xml.sax.*;
  import org.xml.sax.helpers.*;
  
  import javax.xml.parsers.*;
  
  import org.apache.xml.resolver.tools.ResolvingXMLReader;
  import org.apache.xml.resolver.Catalog;
  import org.apache.xml.resolver.CatalogManager;
  import org.apache.xml.resolver.helpers.Debug;
  import org.apache.xml.resolver.apps.XParseError;
  
  /**
   * <p>A simple command-line XML parsing application.</p>
   *
   * <p>This class tests the ability of the XML Catalog code to support
   * multiple catalog manager instances.
   * </p>
   *
   * <p>Usage: ManagerTest document.xml</p>
   *
   * <p>The process ends with error-level 1, if there errors.</p>
   *
   * @see org.apache.xml.resolver.tools.ResolvingXMLReader
   *
   * @author Norman Walsh
   * <a href="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a>
   *
   * @version 1.0
   */
  public class StaticTest extends TestParser
  {
    /** The main entry point */
    public static void main (String[] args)
      throws FileNotFoundException, IOException {
  
      for (int i=0; i<args.length; i++) {
        if (args[i].equals("-c")) {
  	++i;
  	catalogFiles.add(args[i]);
  	continue;
        }
  
        xmlfile = args[i];
      }
  
      if (xmlfile == null) {
        System.out.println("Usage: StaticTest [ -c catalog ] xmlfile");
        System.exit(1);
      }
  
      System.out.println("Parsing with default (static) CatalogManager");
      ResolvingXMLReader reader = new ResolvingXMLReader();
      parse(reader);
    }
  }
  
  
  
  1.1                  xml-commons/java/tests/resolver/src/TestParser.java
  
  Index: TestParser.java
  ===================================================================
  // ManagerTest.java - A test of multiple Catalog Managers
  
  /*
   * 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 "Xalan" 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 and was
   * originally based on software copyright (c) 2001, International
   * Business Machines Corporation., http://www.ibm.com.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.util.Vector;
  import java.util.Date;
  import java.util.GregorianCalendar;
  import java.net.MalformedURLException;
  
  import org.xml.sax.*;
  import org.xml.sax.helpers.*;
  
  import javax.xml.parsers.*;
  
  import org.apache.xml.resolver.tools.ResolvingXMLReader;
  import org.apache.xml.resolver.Catalog;
  import org.apache.xml.resolver.CatalogManager;
  import org.apache.xml.resolver.helpers.Debug;
  import org.apache.xml.resolver.apps.XParseError;
  
  /**
   * <p>A simple command-line XML parsing application.</p>
   *
   * <p>This class tests the ability of the XML Catalog code to support
   * multiple catalog manager instances.
   * </p>
   *
   * <p>Usage: ManagerTest document.xml</p>
   *
   * <p>The process ends with error-level 1, if there errors.</p>
   *
   * @see org.apache.xml.resolver.tools.ResolvingXMLReader
   *
   * @author Norman Walsh
   * <a href="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a>
   *
   * @version 1.0
   */
  public abstract class TestParser
  {
    protected static String  xmlfile    = null;
    protected static int     maxErrs    = 10;
    protected static boolean nsAware    = true;
    protected static boolean validating = true;
    protected static boolean showErrors = true;
    protected static boolean showWarnings = true;
    protected static Vector catalogFiles = new Vector();
  
    protected static void parse(ResolvingXMLReader reader)
      throws MalformedURLException, FileNotFoundException, IOException {
      try {
        reader.setFeature("http://xml.org/sax/features/namespaces", nsAware);
        reader.setFeature("http://xml.org/sax/features/validation", validating);
      } catch (SAXException e) {
        // nop;
      }
  
      Catalog catalog = reader.getCatalog();
  
      System.out.println("Parsing with " + catalog);
  
      for (int count = 0; count < catalogFiles.size(); count++) {
        String file = (String) catalogFiles.elementAt(count);
        catalog.parseCatalog(file);
      }
  
      XParseError xpe = new XParseError(showErrors, showWarnings);
      xpe.setMaxMessages(maxErrs);
      reader.setErrorHandler(xpe);
  
      String parseType = validating ? "validating" : "well-formed";
      String nsType = nsAware ? "namespace-aware" : "namespace-ignorant";
      if (maxErrs > 0) {
        System.out.println("Attempting "
  			 + parseType
  			 + ", "
  			 + nsType
  			 + " parse");
      }
  
      Date startTime = new Date();
  
      try {
        reader.parse(xmlfile);
      } catch (SAXException sx) {
        System.out.println("SAX Exception: " + sx);
      } catch (Exception e) {
        e.printStackTrace();
      }
  
      Date endTime = new Date();
  
      long millisec = endTime.getTime() - startTime.getTime();
      long secs = 0;
      long mins = 0;
      long hours = 0;
  
      if (millisec > 1000) {
        secs = millisec / 1000;
        millisec = millisec % 1000;
      }
  
      if (secs > 60) {
        mins = secs / 60;
        secs = secs % 60;
      }
  
      if (mins > 60) {
        hours = mins / 60;
        mins = mins % 60;
      }
  
      if (maxErrs > 0) {
        System.out.print("Parse ");
        if (xpe.getFatalCount() > 0) {
  	System.out.print("failed ");
        } else {
  	System.out.print("succeeded ");
  	System.out.print("(");
  	if (hours > 0) {
  	  System.out.print(hours + ":");
  	}
  	if (hours > 0 || mins > 0) {
  	  System.out.print(mins + ":");
  	}
  	System.out.print(secs + "." + millisec);
  	System.out.print(") ");
        }
        System.out.print("with ");
  
        int errCount = xpe.getErrorCount();
        int warnCount = xpe.getWarningCount();
  
        if (errCount > 0) {
  	System.out.print(errCount + " error");
  	System.out.print(errCount > 1 ? "s" : "");
  	System.out.print(" and ");
        } else {
  	System.out.print("no errors and ");
        }
  
        if (warnCount > 0) {
  	System.out.print(warnCount + " warning");
  	System.out.print(warnCount > 1 ? "s" : "");
  	System.out.print(".");
        } else {
  	System.out.print("no warnings.");
        }
  
        System.out.println("");
      }
    }
  }
  
  
  

Mime
View raw message