[pkg-java] r7607 - in trunk/libxml-commons-resolver1.1-java/debian: . patches

twerner at alioth.debian.org twerner at alioth.debian.org
Tue Dec 9 18:10:01 UTC 2008


Author: twerner
Date: 2008-12-09 18:10:00 +0000 (Tue, 09 Dec 2008)
New Revision: 7607

Added:
   trunk/libxml-commons-resolver1.1-java/debian/patches/nb-extra.diff
Modified:
   trunk/libxml-commons-resolver1.1-java/debian/changelog
   trunk/libxml-commons-resolver1.1-java/debian/control
   trunk/libxml-commons-resolver1.1-java/debian/copyright
   trunk/libxml-commons-resolver1.1-java/debian/patches/series
Log:
* Add another patch for netbeans from Yulia Novozhilova.
  (Closes: 508200)
* Add myself to Uploaders.
* Bump up Standards-Version: 3.8.0.
* Fix the license (Apache-2.0) in debian/copyright. (Closes: #508211)

Modified: trunk/libxml-commons-resolver1.1-java/debian/changelog
===================================================================
--- trunk/libxml-commons-resolver1.1-java/debian/changelog	2008-12-08 21:12:06 UTC (rev 7606)
+++ trunk/libxml-commons-resolver1.1-java/debian/changelog	2008-12-09 18:10:00 UTC (rev 7607)
@@ -1,3 +1,13 @@
+libxml-commons-resolver1.1-java (1.2-3) unstable; urgency=low
+
+  * Add another patch for netbeans from Yulia Novozhilova.
+    (Closes: 508200)
+  * Add myself to Uploaders.
+  * Bump up Standards-Version: 3.8.0.
+  * Fix the license (Apache-2.0) in debian/copyright. (Closes: #508211)
+
+ -- Torsten Werner <twerner at debian.org>  Tue, 09 Dec 2008 18:54:52 +0100
+
 libxml-commons-resolver1.1-java (1.2-2.1) unstable; urgency=low
 
   * Non-maintainer upload.

Modified: trunk/libxml-commons-resolver1.1-java/debian/control
===================================================================
--- trunk/libxml-commons-resolver1.1-java/debian/control	2008-12-08 21:12:06 UTC (rev 7606)
+++ trunk/libxml-commons-resolver1.1-java/debian/control	2008-12-09 18:10:00 UTC (rev 7607)
@@ -2,9 +2,9 @@
 Section: libs
 Priority: optional
 Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
-Uploaders: Stefan Gybas <sgybas at debian.org>, Arnaud Vandyck <avdyk at debian.org>, Michael Koch <konqueror at gmx.de>
+Uploaders: Stefan Gybas <sgybas at debian.org>, Arnaud Vandyck <avdyk at debian.org>, Michael Koch <konqueror at gmx.de>, Torsten Werner <twerner at debian.org>
 Build-Depends: debhelper (>= 4.2.0), cdbs (>= 0.4.8), default-jdk-builddep, ant, libjaxp1.3-java, quilt
-Standards-Version: 3.7.3
+Standards-Version: 3.8.0
 Vcs-Svn: svn://svn.debian.org/svn/pkg-java/trunk/libxml-commons-resolver1.1-java
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-java/trunk/libxml-commons-resolver1.1-java
 Homepage: http://xml.apache.org/commons/

Modified: trunk/libxml-commons-resolver1.1-java/debian/copyright
===================================================================
--- trunk/libxml-commons-resolver1.1-java/debian/copyright	2008-12-08 21:12:06 UTC (rev 7606)
+++ trunk/libxml-commons-resolver1.1-java/debian/copyright	2008-12-09 18:10:00 UTC (rev 7607)
@@ -1,58 +1,22 @@
 This package was debianized by Stefan Gybas <sgybas at debian.org> on 18-Feb-2004.
-The source was downloaded from http://www.apache.de/dist/xml/commons/
+The source was downloaded from http://www.apache.org/dist/xml/commons/
 
-Copyright:
+Copyright: 2006 The Apache Software Foundation.
 
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001-2003 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 "Apache" 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 at 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/>.
- */
+License:
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+The full text of the license can be found in
+`/usr/share/common-licenses/Apache-2.0'.
+

Added: trunk/libxml-commons-resolver1.1-java/debian/patches/nb-extra.diff
===================================================================
--- trunk/libxml-commons-resolver1.1-java/debian/patches/nb-extra.diff	                        (rev 0)
+++ trunk/libxml-commons-resolver1.1-java/debian/patches/nb-extra.diff	2008-12-09 18:10:00 UTC (rev 7607)
@@ -0,0 +1,1169 @@
+diff -Nur -x '*.orig' -x '*~' libxml-commons-resolver1.1-java-1.2/src/org/apache/xml/resolver/NbCatalogManager.java libxml-commons-resolver1.1-java-1.2.new/src/org/apache/xml/resolver/NbCatalogManager.java
+--- libxml-commons-resolver1.1-java-1.2/src/org/apache/xml/resolver/NbCatalogManager.java	1970-01-01 03:00:00.000000000 +0300
++++ libxml-commons-resolver1.1-java-1.2.new/src/org/apache/xml/resolver/NbCatalogManager.java	2008-12-09 00:20:12.000000000 +0300
+@@ -0,0 +1,842 @@
++// CatalogManager.java - Access CatalogManager.properties
++
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one or more
++ * contributor license agreements.  See the NOTICE file distributed with
++ * this work for additional information regarding copyright ownership.
++ * The ASF licenses this file to You under the Apache License, Version 2.0
++ * (the "License"); you may not use this file except in compliance with
++ * the License.  You may obtain a copy of the License at
++ * 
++ *      http://www.apache.org/licenses/LICENSE-2.0
++ * 
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.xml.resolver;
++
++import java.io.InputStream;
++
++import java.net.URL;
++import java.net.MalformedURLException;
++
++import java.util.MissingResourceException;
++import java.util.PropertyResourceBundle;
++import java.util.ResourceBundle;
++import java.util.StringTokenizer;
++import java.util.Vector;
++
++import org.apache.xml.resolver.helpers.Debug;
++import org.apache.xml.resolver.helpers.BootstrapResolver;
++import org.apache.xml.resolver.Catalog;
++
++/**
++ * CatalogManager provides an interface to the catalog properties.
++ *
++ * <p>Properties can come from two places: from system properties or
++ * from a <i>CatalogManager.properties</i> file. This class provides a transparent
++ * interface to both, with system properties preferred over property file values.</p>
++ *
++ * <p>The following table summarizes the properties:</p>
++ *
++ * <table border="1">
++ * <thead>
++ * <tr>
++ * <td>System Property</td>
++ * <td>CatalogManager.properties<br/>Property</td>
++ * <td>Description</td>
++ * </tr>
++ * </thead>
++ * <tbody>
++ * <tr>
++ * <td>xml.catalog.ignoreMissing</td>
++ * <td>&#160;</td>
++ * <td>If true, a missing <i>CatalogManager.properties</i> file or missing properties
++ * within that file will not generate warning messages. See also the
++ * <i>ignoreMissingProperties</i> method.</td>
++ * </tr>
++ *
++ * <tr>
++ * <td>xml.catalog.files</td>
++ * <td>catalogs</td>
++ * <td>The <emph>semicolon-delimited</emph> list of catalog files.</td>
++ * </tr>
++ *
++ * <tr>
++ * <td>&#160;</td>
++ * <td>relative-catalogs</td>
++ * <td>If false, relative catalog URIs are made absolute with respect to the base URI of
++ * the <i>CatalogManager.properties</i> file. This setting only applies to catalog
++ * URIs obtained from the <i>catalogs</i> property <emph>in the</emph>
++ * <i>CatalogManager.properties</i> file</td>
++ * </tr>
++ *
++ * <tr>
++ * <td>xml.catalog.verbosity</td>
++ * <td>verbosity</td>
++ * <td>If non-zero, the Catalog classes will print informative and debugging messages.
++ * The higher the number, the more messages.</td>
++ * </tr>
++ *
++ * <tr>
++ * <td>xml.catalog.prefer</td>
++ * <td>prefer</td>
++ * <td>Which identifier is preferred, "public" or "system"?</td>
++ * </tr>
++ *
++ * <tr>
++ * <td>xml.catalog.staticCatalog</td>
++ * <td>static-catalog</td>
++ * <td>Should a single catalog be constructed for all parsing, or should a different
++ * catalog be created for each parser?</td>
++ * </tr>
++ *
++ * <tr>
++ * <td>xml.catalog.allowPI</td>
++ * <td>allow-oasis-xml-catalog-pi</td>
++ * <td>If the source document contains "oasis-xml-catalog" processing instructions,
++ * should they be used?</td>
++ * </tr>
++ *
++ * <tr>
++ * <td>xml.catalog.className</td>
++ * <td>catalog-class-name</td>
++ * <td>If you're using the convenience classes
++ * <tt>org.apache.xml.resolver.tools.*</tt>), this setting
++ * allows you to specify an alternate class name to use for the underlying
++ * catalog.</td>
++ * </tr>
++ * </tbody>
++ * </table>
++ *
++ * @see Catalog
++ *
++ * @author Norman Walsh
++ * <a href="mailto:Norman.Walsh at Sun.COM">Norman.Walsh at Sun.COM</a>
++ *
++ * @version 1.0
++ */
++
++public class NbCatalogManager extends CatalogManager {
++  private static String pFiles         = "xml.catalog.files";
++  private static String pVerbosity     = "xml.catalog.verbosity";
++  private static String pPrefer        = "xml.catalog.prefer";
++  private static String pStatic        = "xml.catalog.staticCatalog";
++  private static String pAllowPI       = "xml.catalog.allowPI";
++  private static String pClassname     = "xml.catalog.className";
++  private static String pIgnoreMissing = "xml.catalog.ignoreMissing";
++
++  /** A static CatalogManager instance for sharing */
++  private static NbCatalogManager staticManager = new NbCatalogManager();
++
++  /** The bootstrap resolver to use when loading XML Catalogs. */
++  private BootstrapResolver bResolver = new BootstrapResolver();
++
++  /** Flag to ignore missing property files and/or properties */
++  private boolean ignoreMissingProperties
++    = (System.getProperty(pIgnoreMissing) != null
++       || System.getProperty(pFiles) != null);
++
++  /** Holds the resources after they are loaded from the file. */
++  private ResourceBundle resources;
++
++  /** The name of the CatalogManager properties file. */
++  private String propertyFile = "CatalogManager.properties";
++
++  /** The location of the propertyFile */
++  private URL propertyFileURI = null;
++
++  /** Default catalog files list. */
++  private String defaultCatalogFiles = "./xcatalog";
++
++  /** Current catalog files list. */
++  private String catalogFiles = null;
++
++  /** Did the catalogFiles come from the properties file? */
++  private boolean fromPropertiesFile = false;
++
++  /** Default verbosity level if there is no property setting for it. */
++  private int defaultVerbosity = 1;
++
++  /** Current verbosity level. */
++  private Integer verbosity = null;
++
++  /** Default preference setting. */
++  private boolean defaultPreferPublic = true;
++
++  /** Current preference setting. */
++  private Boolean preferPublic = null;
++
++  /** Default setting of the static catalog flag. */
++  private boolean defaultUseStaticCatalog = true;
++
++  /** Current setting of the static catalog flag. */
++  private Boolean useStaticCatalog = null;
++
++  /** The static catalog used by this manager. */
++  private static Catalog staticCatalog = null;
++
++  /** Default setting of the oasisXMLCatalogPI flag. */
++  private boolean defaultOasisXMLCatalogPI = true;
++
++  /** Current setting of the oasisXMLCatalogPI flag. */
++  private Boolean oasisXMLCatalogPI = null;
++
++  /** Default setting of the relativeCatalogs flag. */
++  private boolean defaultRelativeCatalogs = true;
++
++  /** Current setting of the relativeCatalogs flag. */
++  private Boolean relativeCatalogs = null;
++
++  /** Current catalog class name. */
++  private String catalogClassName = null;
++
++  /** The manager's debug object. Used for printing debugging messages.
++   *
++   * <p>This field is public so that objects that have access to this
++   * CatalogManager can use this debug object.</p>
++   */
++  public Debug debug = null;
++
++  /** Constructor. */
++  public NbCatalogManager() {
++      System.out.println("## patched CatalogManager.constructor1");
++    debug = new Debug();
++    // Note that we don't setDebug() here; we do that lazily. Either the
++    // user will set it explicitly, or we'll do it automagically if they
++    // read from the propertyFile for some other reason. That way, there's
++    // no attempt to read from the file before the caller has had a chance
++    // to avoid it.
++  }
++
++  /**
++   * Constructor that specifies an explicit property file.
++   * @param propertyFile path to poperty file (e.g. com/resources/CatalogManager).
++   * <code>null</code> means that no property file is consulted at all.
++   */
++  public NbCatalogManager(String propertyFile) {
++      System.out.println("## patched CatalogManager.constructor2");
++    this.propertyFile = propertyFile;
++
++    debug = new Debug();
++    // Note that we don't setDebug() here; we do that lazily. Either the
++    // user will set it explicitly, or we'll do it automagically if they
++    // read from the propertyFile for some other reason. That way, there's
++    // no attempt to read from the file before the caller has had a chance
++    // to avoid it.
++  }
++
++  /** Set the bootstrap resolver.*/
++  public void setBootstrapResolver(BootstrapResolver resolver) {
++    bResolver = resolver;
++  }
++
++  /** Get the bootstrap resolver.*/
++  public BootstrapResolver getBootstrapResolver() {
++    return bResolver;
++  }
++
++  /**
++   * Load the properties from the propertyFile and build the
++   * resources from it.
++   */
++  private synchronized void readProperties() {
++      if (propertyFile == null) return;
++    try {
++      propertyFileURI = NbCatalogManager.class.getResource("/"+propertyFile);
++      InputStream in =
++	NbCatalogManager.class.getResourceAsStream("/"+propertyFile);
++      if (in==null) {
++	if (!ignoreMissingProperties) {
++        debug.message(2, "Cannot find "+propertyFile);
++	  // there's no reason to give this warning more than once
++	  ignoreMissingProperties = true;
++	}
++	return;
++      }
++      resources = new PropertyResourceBundle(in);
++    } catch (MissingResourceException mre) {
++      if (!ignoreMissingProperties) {
++	System.err.println("Cannot read "+propertyFile);
++      }
++    } catch (java.io.IOException e) {
++      if (!ignoreMissingProperties) {
++	System.err.println("Failure trying to read "+propertyFile);
++      }
++    }
++
++    // This is a bit of a hack. After we've successfully read the properties,
++    // use them to set the default debug level, if the user hasn't already set
++    // the default debug level.
++    if (verbosity == null) {
++      try {
++	String verbStr = resources.getString("verbosity");
++	int verb = Integer.parseInt(verbStr.trim());
++	debug.setDebug(verb);
++	verbosity = new Integer(verb);
++      } catch (Exception e) {
++	// nop
++      }
++    }
++  }
++
++  /**
++   * Allow access to the static CatalogManager
++   */
++  public static CatalogManager getStaticManager() {
++    return staticManager;
++  }
++
++  /**
++   * How are missing properties handled?
++   *
++   * <p>If true, missing or unreadable property files will
++   * not be reported. Otherwise, a message will be sent to System.err.
++   * </p>
++   */
++  public boolean getIgnoreMissingProperties() {
++    return ignoreMissingProperties;
++  }
++
++  /**
++   * How should missing properties be handled?
++   *
++   * <p>If ignore is true, missing or unreadable property files will
++   * not be reported. Otherwise, a message will be sent to System.err.
++   * </p>
++   */
++  public void setIgnoreMissingProperties(boolean ignore) {
++    ignoreMissingProperties = ignore;
++  }
++
++  /**
++   * How are missing properties handled?
++   *
++   * <p>If ignore is true, missing or unreadable property files will
++   * not be reported. Otherwise, a message will be sent to System.err.
++   * </p>
++   *
++   * @deprecated No longer static; use get/set methods.
++   */
++  public void ignoreMissingProperties(boolean ignore) {
++    setIgnoreMissingProperties(ignore);
++  }
++
++  /**
++   * Obtain the verbosity setting from the properties.
++   *
++   * @return The verbosity level from the propertyFile or the
++   * defaultVerbosity.
++   */
++  private int queryVerbosity () {
++    String defaultVerbStr = Integer.toString(defaultVerbosity);
++
++    String verbStr = System.getProperty(pVerbosity);
++
++    if (verbStr == null) {
++      if (resources==null) readProperties();
++      if (resources != null) {
++	try {
++	  verbStr = resources.getString("verbosity");
++	} catch (MissingResourceException e) {
++	  verbStr = defaultVerbStr;
++	}
++      } else {
++	verbStr = defaultVerbStr;
++      }
++    }
++
++    int verb = defaultVerbosity;
++
++    try {
++      verb = Integer.parseInt(verbStr.trim());
++    } catch (Exception e) {
++      System.err.println("Cannot parse verbosity: \"" + verbStr + "\"");
++    }
++
++    // This is a bit of a hack. After we've successfully got the verbosity,
++    // we have to use it to set the default debug level,
++    // if the user hasn't already set the default debug level.
++    if (verbosity == null) {
++      debug.setDebug(verb);
++      verbosity = new Integer(verb);
++    }
++
++    return verb;
++  }
++
++  /**
++   * What is the current verbosity?
++   */
++  public int getVerbosity() {
++    if (verbosity == null) {
++      verbosity = new Integer(queryVerbosity());
++    }
++
++    return verbosity.intValue();
++  }
++
++  /**
++   * Set the current verbosity.
++   */
++  public void setVerbosity (int verbosity) {
++    this.verbosity = new Integer(verbosity);
++    debug.setDebug(verbosity);
++  }
++
++  /**
++   * What is the current verbosity?
++   *
++   * @deprecated No longer static; use get/set methods.
++   */
++  public int verbosity () {
++    return getVerbosity();
++  }
++
++  /**
++   * Obtain the relativeCatalogs setting from the properties.
++   *
++   * @return The relativeCatalogs setting from the propertyFile or the
++   * defaultRelativeCatalogs.
++   */
++  private boolean queryRelativeCatalogs () {
++    if (resources==null) readProperties();
++
++    if (resources==null) return defaultRelativeCatalogs;
++
++    try {
++      String allow = resources.getString("relative-catalogs");
++      return (allow.equalsIgnoreCase("true")
++	      || allow.equalsIgnoreCase("yes")
++	      || allow.equalsIgnoreCase("1"));
++    } catch (MissingResourceException e) {
++      return defaultRelativeCatalogs;
++    }
++  }
++
++  /**
++   * Get the relativeCatalogs setting.
++   *
++   * <p>This property is used when the catalogFiles property is
++   * interrogated. If true, then relative catalog entry file names
++   * are returned. If false, relative catalog entry file names are
++   * made absolute with respect to the properties file before returning
++   * them.</p>
++   *
++   * <p>This property <emph>only applies</emph> when the catalog files
++   * come from a properties file. If they come from a system property or
++   * the default list, they are never considered relative. (What would
++   * they be relative to?)</p>
++   *
++   * <p>In the properties, a value of 'yes', 'true', or '1' is considered
++   * true, anything else is false.</p>
++   *
++   * @return The relativeCatalogs setting from the propertyFile or the
++   * defaultRelativeCatalogs.
++   */
++  public boolean getRelativeCatalogs () {
++    if (relativeCatalogs == null) {
++      relativeCatalogs = new Boolean(queryRelativeCatalogs());
++    }
++
++    return relativeCatalogs.booleanValue();
++  }
++
++  /**
++   * Set the relativeCatalogs setting.
++   *
++   * @see #getRelativeCatalogs()
++   */
++  public void setRelativeCatalogs (boolean relative) {
++    relativeCatalogs = new Boolean(relative);
++  }
++
++  /**
++   * Get the relativeCatalogs setting.
++   *
++   * @deprecated No longer static; use get/set methods.
++   */
++  public boolean relativeCatalogs () {
++    return getRelativeCatalogs();
++  }
++
++  /**
++   * Obtain the list of catalog files from the properties.
++   *
++   * @return A semicolon delimited list of catlog file URIs
++   */
++  private String queryCatalogFiles () {
++    String catalogList = System.getProperty(pFiles);
++    fromPropertiesFile = false;
++
++    if (catalogList == null) {
++      if (resources == null) readProperties();
++      if (resources != null) {
++	try {
++	  catalogList = resources.getString("catalogs");
++	  fromPropertiesFile = true;
++	} catch (MissingResourceException e) {
++	  System.err.println(propertyFile + ": catalogs not found.");
++	  catalogList = null;
++	}
++      }
++    }
++
++    if (catalogList == null) {
++      catalogList = defaultCatalogFiles;
++    }
++
++    return catalogList;
++  }
++
++  /**
++   * Return the current list of catalog files.
++   *
++   * @return A vector of the catalog file names or null if no catalogs
++   * are available in the properties.
++   */
++  public Vector getCatalogFiles() {
++    if (catalogFiles == null) {
++      catalogFiles = queryCatalogFiles();
++    }
++
++    StringTokenizer files = new StringTokenizer(catalogFiles, ";");
++    Vector catalogs = new Vector();
++    while (files.hasMoreTokens()) {
++      String catalogFile = files.nextToken();
++      URL absURI = null;
++
++      if (fromPropertiesFile && !relativeCatalogs()) {
++	try {
++	  absURI = new URL(propertyFileURI, catalogFile);
++	  catalogFile = absURI.toString();
++	} catch (MalformedURLException mue) {
++	  absURI = null;
++	}
++      }
++
++      catalogs.add(catalogFile);
++    }
++
++    return catalogs;
++  }
++
++  /**
++   * Set the list of catalog files.
++   */
++  public void setCatalogFiles(String fileList) {
++    catalogFiles = fileList;
++    fromPropertiesFile = false;
++  }
++
++  /**
++   * Return the current list of catalog files.
++   *
++   * @return A vector of the catalog file names or null if no catalogs
++   * are available in the properties.
++   *
++   * @deprecated No longer static; use get/set methods.
++   */
++  public Vector catalogFiles() {
++    return getCatalogFiles();
++  }
++
++  /**
++   * Obtain the preferPublic setting from the properties.
++   *
++   * <p>In the properties, a value of 'public' is true,
++   * anything else is false.</p>
++   *
++   * @return True if prefer is public or the
++   * defaultPreferSetting.
++   */
++  private boolean queryPreferPublic () {
++    String prefer = System.getProperty(pPrefer);
++
++    if (prefer == null) {
++      if (resources==null) readProperties();
++      if (resources==null) return defaultPreferPublic;
++      try {
++	prefer = resources.getString("prefer");
++      } catch (MissingResourceException e) {
++	return defaultPreferPublic;
++      }
++    }
++
++    if (prefer == null) {
++      return defaultPreferPublic;
++    }
++
++    return (prefer.equalsIgnoreCase("public"));
++  }
++
++  /**
++   * Return the current prefer public setting.
++   *
++   * @return True if public identifiers are preferred.
++   */
++  public boolean getPreferPublic () {
++    if (preferPublic == null) {
++      preferPublic = new Boolean(queryPreferPublic());
++    }
++    return preferPublic.booleanValue();
++  }
++
++  /**
++   * Set the prefer public setting.
++   */
++  public void setPreferPublic (boolean preferPublic) {
++    this.preferPublic = new Boolean(preferPublic);
++  }
++
++  /**
++   * Return the current prefer public setting.
++   *
++   * @return True if public identifiers are preferred.
++   *
++   * @deprecated No longer static; use get/set methods.
++   */
++  public boolean preferPublic () {
++    return getPreferPublic();
++  }
++
++  /**
++   * Obtain the static-catalog setting from the properties.
++   *
++   * <p>In the properties, a value of 'yes', 'true', or '1' is considered
++   * true, anything else is false.</p>
++   *
++   * @return The static-catalog setting from the propertyFile or the
++   * defaultUseStaticCatalog.
++   */
++  private boolean queryUseStaticCatalog () {
++    String staticCatalog = System.getProperty(pStatic);
++
++    if (staticCatalog == null) {
++      if (resources==null) readProperties();
++      if (resources==null) return defaultUseStaticCatalog;
++      try {
++	staticCatalog = resources.getString("static-catalog");
++      } catch (MissingResourceException e) {
++	return defaultUseStaticCatalog;
++      }
++    }
++
++    if (staticCatalog == null) {
++      return defaultUseStaticCatalog;
++    }
++
++    return (staticCatalog.equalsIgnoreCase("true")
++	    || staticCatalog.equalsIgnoreCase("yes")
++	    || staticCatalog.equalsIgnoreCase("1"));
++  }
++
++  /**
++   * Get the current use static catalog setting.
++   */
++  public boolean getUseStaticCatalog() {
++    if (useStaticCatalog == null) {
++      useStaticCatalog = new Boolean(queryUseStaticCatalog());
++    }
++
++    return useStaticCatalog.booleanValue();
++  }
++
++  /**
++   * Set the use static catalog setting.
++   */
++  public void setUseStaticCatalog(boolean useStatic) {
++    useStaticCatalog = new Boolean(useStatic);
++  }
++
++  /**
++   * Get the current use static catalog setting.
++   *
++   * @deprecated No longer static; use get/set methods.
++   */
++  public boolean staticCatalog() {
++    return getUseStaticCatalog();
++  }
++
++  /**
++   * Get a new catalog instance.
++   *
++   * This method always returns a new instance of the underlying catalog class.
++   */
++  public Catalog getPrivateCatalog() {
++    Catalog catalog = staticCatalog;
++
++    if (useStaticCatalog == null) {
++      useStaticCatalog = new Boolean(getUseStaticCatalog());
++    }
++
++    if (catalog == null || !useStaticCatalog.booleanValue()) {
++
++      try {
++	String catalogClassName = getCatalogClassName();
++
++	if (catalogClassName == null) {
++	  catalog = new Catalog();
++	} else {
++	  try {
++	    catalog = (Catalog) Class.forName(catalogClassName).newInstance();
++	  } catch (ClassNotFoundException cnfe) {
++	    debug.message(1,"Catalog class named '"
++			  + catalogClassName
++			  + "' could not be found. Using default.");
++	    catalog = new Catalog();
++	  } catch (ClassCastException cnfe) {
++	    debug.message(1,"Class named '"
++			  + catalogClassName
++			  + "' is not a Catalog. Using default.");
++	    catalog = new Catalog();
++	  }
++	}
++
++	catalog.setCatalogManager(this);
++	catalog.setupReaders();
++	catalog.loadSystemCatalogs();
++      } catch (Exception ex) {
++	ex.printStackTrace();
++      }
++
++      if (useStaticCatalog.booleanValue()) {
++	staticCatalog = catalog;
++      }
++    }
++
++    return catalog;
++  }
++
++  /**
++   * Get a catalog instance.
++   *
++   * If this manager uses static catalogs, the same static catalog will
++   * always be returned. Otherwise a new catalog will be returned.
++   */
++  public Catalog getCatalog() {
++    Catalog catalog = staticCatalog;
++
++    if (useStaticCatalog == null) {
++      useStaticCatalog = new Boolean(getUseStaticCatalog());
++    }
++
++    if (catalog == null || !useStaticCatalog.booleanValue()) {
++      catalog = getPrivateCatalog();
++      if (useStaticCatalog.booleanValue()) {
++	staticCatalog = catalog;
++      }
++    }
++
++    return catalog;
++  }
++
++  /**
++   * <p>Obtain the oasisXMLCatalogPI setting from the properties.</p>
++   *
++   * <p>In the properties, a value of 'yes', 'true', or '1' is considered
++   * true, anything else is false.</p>
++   *
++   * @return The oasisXMLCatalogPI setting from the propertyFile or the
++   * defaultOasisXMLCatalogPI.
++   */
++  public boolean queryAllowOasisXMLCatalogPI () {
++    String allow = System.getProperty(pAllowPI);
++
++    if (allow == null) {
++      if (resources==null) readProperties();
++      if (resources==null) return defaultOasisXMLCatalogPI;
++      try {
++	allow = resources.getString("allow-oasis-xml-catalog-pi");
++      } catch (MissingResourceException e) {
++	return defaultOasisXMLCatalogPI;
++      }
++    }
++
++    if (allow == null) {
++      return defaultOasisXMLCatalogPI;
++    }
++
++    return (allow.equalsIgnoreCase("true")
++	    || allow.equalsIgnoreCase("yes")
++	    || allow.equalsIgnoreCase("1"));
++  }
++
++  /**
++   * Get the current XML Catalog PI setting.
++   */
++  public boolean getAllowOasisXMLCatalogPI () {
++    if (oasisXMLCatalogPI == null) {
++      oasisXMLCatalogPI = new Boolean(queryAllowOasisXMLCatalogPI());
++    }
++
++    return oasisXMLCatalogPI.booleanValue();
++  }
++
++  /**
++   * Set the XML Catalog PI setting
++   */
++  public void setAllowOasisXMLCatalogPI(boolean allowPI) {
++    oasisXMLCatalogPI = new Boolean(allowPI);
++  }
++
++  /**
++   * Get the current XML Catalog PI setting.
++   *
++   * @deprecated No longer static; use get/set methods.
++   */
++  public boolean allowOasisXMLCatalogPI() {
++    return getAllowOasisXMLCatalogPI();
++  }
++
++  /**
++   * Obtain the Catalog class name setting from the properties.
++   *
++   */
++  public String queryCatalogClassName () {
++    String className = System.getProperty(pClassname);
++
++    if (className == null) {
++      if (resources==null) readProperties();
++      if (resources==null) return null;
++      try {
++	return resources.getString("catalog-class-name");
++      } catch (MissingResourceException e) {
++	return null;
++      }
++    }
++
++    return className;
++  }
++
++  /**
++   * Get the current Catalog class name.
++   */
++  public String getCatalogClassName() {
++    if (catalogClassName == null) {
++      catalogClassName = queryCatalogClassName();
++    }
++
++    return catalogClassName;
++  }
++
++  /**
++   * Set the Catalog class name.
++   */
++  public void setCatalogClassName(String className) {
++    catalogClassName = className;
++  }
++
++  /**
++   * Get the current Catalog class name.
++   *
++   * @deprecated No longer static; use get/set methods.
++   */
++  public String catalogClassName() {
++    return getCatalogClassName();
++  }
++}
+diff -Nur -x '*.orig' -x '*~' libxml-commons-resolver1.1-java-1.2/src/org/apache/xml/resolver/tools/NbCatalogResolver.java libxml-commons-resolver1.1-java-1.2.new/src/org/apache/xml/resolver/tools/NbCatalogResolver.java
+--- libxml-commons-resolver1.1-java-1.2/src/org/apache/xml/resolver/tools/NbCatalogResolver.java	1970-01-01 03:00:00.000000000 +0300
++++ libxml-commons-resolver1.1-java-1.2.new/src/org/apache/xml/resolver/tools/NbCatalogResolver.java	2008-12-09 00:20:12.000000000 +0300
+@@ -0,0 +1,319 @@
++// CatalogResolver.java - A SAX EntityResolver/JAXP URI Resolver
++
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one or more
++ * contributor license agreements.  See the NOTICE file distributed with
++ * this work for additional information regarding copyright ownership.
++ * The ASF licenses this file to You under the Apache License, Version 2.0
++ * (the "License"); you may not use this file except in compliance with
++ * the License.  You may obtain a copy of the License at
++ * 
++ *      http://www.apache.org/licenses/LICENSE-2.0
++ * 
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++
++package org.apache.xml.resolver.tools;
++
++import java.io.IOException;
++import java.io.InputStream;
++import java.net.URL;
++import java.net.MalformedURLException;
++
++import org.xml.sax.SAXException;
++import org.xml.sax.XMLReader;
++import org.xml.sax.InputSource;
++import org.xml.sax.EntityResolver;
++
++import javax.xml.transform.sax.SAXSource;
++import javax.xml.transform.Source;
++import javax.xml.transform.URIResolver;
++import javax.xml.transform.TransformerException;
++import javax.xml.parsers.ParserConfigurationException;
++import javax.xml.parsers.SAXParserFactory;
++
++import org.apache.xml.resolver.Catalog;
++import org.apache.xml.resolver.CatalogManager;
++import org.apache.xml.resolver.NbCatalogManager;
++import org.apache.xml.resolver.helpers.FileURL;
++
++/**
++ * A SAX EntityResolver/JAXP URIResolver that uses catalogs.
++ *
++ * <p>This class implements both a SAX EntityResolver and a JAXP URIResolver.
++ * </p>
++ *
++ * <p>This resolver understands OASIS TR9401 catalogs, XCatalogs, and the
++ * current working draft of the OASIS Entity Resolution Technical
++ * Committee specification.</p>
++ *
++ * @see Catalog
++ * @see org.xml.sax.EntityResolver
++ * @see javax.xml.transform.URIResolver
++ *
++ * @author Norman Walsh
++ * <a href="mailto:Norman.Walsh at Sun.COM">Norman.Walsh at Sun.COM</a>
++ *
++ * @version 1.0
++ */
++public class NbCatalogResolver implements EntityResolver, URIResolver {
++  /** Make the parser Namespace aware? */
++  public boolean namespaceAware = true;
++
++  /** Make the parser validating? */
++  public boolean validating = false;
++
++  /** The underlying catalog */
++  private Catalog catalog = null;
++
++  /** The catalog manager */
++  private CatalogManager catalogManager = NbCatalogManager.getStaticManager();
++
++  /** Constructor */
++  public NbCatalogResolver() {
++      System.out.println("## patched NbCatalogResolver.constructor1");
++    initializeCatalogs(false);
++  }
++
++  /** Constructor */
++  public NbCatalogResolver(boolean privateCatalog) {
++      System.out.println("## patched NbCatalogResolver.constructor2");
++    initializeCatalogs(privateCatalog);
++  }
++
++  /** Constructor */
++  public NbCatalogResolver(NbCatalogManager manager) {
++      System.out.println("## patched NbCatalogResolver.constructor3");
++    catalogManager = manager;
++    initializeCatalogs(!catalogManager.getUseStaticCatalog());
++  }
++
++  /** Initialize catalog */
++  private void initializeCatalogs(boolean privateCatalog) {
++    catalog = catalogManager.getCatalog();
++  }
++
++  /** Return the underlying catalog */
++  public Catalog getCatalog() {
++    return catalog;
++  }
++
++  /**
++   * Implements the guts of the <code>resolveEntity</code> method
++   * for the SAX interface.
++   *
++   * <p>Presented with an optional public identifier and a system
++   * identifier, this function attempts to locate a mapping in the
++   * catalogs.</p>
++   *
++   * <p>If such a mapping is found, it is returned.  If no mapping is
++   * found, null is returned.</p>
++   *
++   * @param publicId  The public identifier for the entity in question.
++   * This may be null.
++   *
++   * @param systemId  The system identifier for the entity in question.
++   * XML requires a system identifier on all external entities, so this
++   * value is always specified.
++   *
++   * @return The resolved identifier (a URI reference).
++   */
++  public String getResolvedEntity (String publicId, String systemId) {
++    String resolved = null;
++
++    if (catalog == null) {
++      catalogManager.debug.message(1, "Catalog resolution attempted with null catalog; ignored");
++      return null;
++    }
++
++    if (systemId != null) {
++      try {
++	resolved = catalog.resolveSystem(systemId);
++      } catch (MalformedURLException me) {
++	catalogManager.debug.message(1, "Malformed URL exception trying to resolve",
++		      publicId);
++	resolved = null;
++      } catch (IOException ie) {
++	catalogManager.debug.message(1, "I/O exception trying to resolve", publicId);
++	resolved = null;
++      }
++    }
++
++    if (resolved == null) {
++      if (publicId != null) {
++	try {
++	  resolved = catalog.resolvePublic(publicId, systemId);
++	} catch (MalformedURLException me) {
++	  catalogManager.debug.message(1, "Malformed URL exception trying to resolve",
++			publicId);
++	} catch (IOException ie) {
++	  catalogManager.debug.message(1, "I/O exception trying to resolve", publicId);
++	}
++      }
++
++      if (resolved != null) {
++	catalogManager.debug.message(2, "Resolved public", publicId, resolved);
++      }
++    } else {
++      catalogManager.debug.message(2, "Resolved system", systemId, resolved);
++    }
++
++    return resolved;
++  }
++
++  /**
++   * Implements the <code>resolveEntity</code> method
++   * for the SAX interface.
++   *
++   * <p>Presented with an optional public identifier and a system
++   * identifier, this function attempts to locate a mapping in the
++   * catalogs.</p>
++   *
++   * <p>If such a mapping is found, the resolver attempts to open
++   * the mapped value as an InputSource and return it. Exceptions are
++   * ignored and null is returned if the mapped value cannot be opened
++   * as an input source.</p>
++   *
++   * <p>If no mapping is found (or an error occurs attempting to open
++   * the mapped value as an input source), null is returned and the system
++   * will use the specified system identifier as if no entityResolver
++   * was specified.</p>
++   *
++   * @param publicId  The public identifier for the entity in question.
++   * This may be null.
++   *
++   * @param systemId  The system identifier for the entity in question.
++   * XML requires a system identifier on all external entities, so this
++   * value is always specified.
++   *
++   * @return An InputSource for the mapped identifier, or null.
++   */
++  public InputSource resolveEntity (String publicId, String systemId) {
++    String resolved = getResolvedEntity(publicId, systemId);
++
++    if (resolved != null) {
++      InputSource iSource = new InputSource(resolved);
++      iSource.setPublicId(publicId);
++      return iSource;
++    }
++
++    return null;
++  }
++  /** JAXP URIResolver API */
++  public Source resolve(String href, String base)
++    throws TransformerException {
++
++    String uri = href;
++    String fragment = null;
++    int hashPos = href.indexOf("#");
++    if (hashPos >= 0) {
++      uri = href.substring(0, hashPos);
++      fragment = href.substring(hashPos+1);
++    }
++
++    String result = null;
++
++    try {
++      result = catalog.resolveURI(href);
++    } catch (Exception e) {
++      // nop;
++    }
++
++    if (result == null) {
++      try {
++	URL url = null;
++
++	if (base==null) {
++	  url = new URL(uri);
++	  result = url.toString();
++	} else {
++	  URL baseURL = new URL(base);
++	  url = (href.length()==0 ? baseURL : new URL(baseURL, uri));
++	  result = url.toString();
++	}
++      } catch (java.net.MalformedURLException mue) {
++	// try to make an absolute URI from the current base
++	String absBase = makeAbsolute(base);
++	if (!absBase.equals(base)) {
++	  // don't bother if the absBase isn't different!
++	  return resolve(href, absBase);
++	} else {
++	  throw new TransformerException("Malformed URL "
++					 + href + "(base " + base + ")",
++					 mue);
++	}
++      }
++    }
++
++    catalogManager.debug.message(2, "Resolved URI", href, result);
++
++    SAXSource source = new SAXSource();
++    source.setInputSource(new InputSource(result));
++    setEntityResolver(source);
++    return source;
++  }
++
++  /**
++   * <p>Establish an entityResolver for newly resolved URIs.</p>
++   *
++   * <p>This is called from the URIResolver to set an EntityResolver
++   * on the SAX parser to be used for new XML documents that are
++   * encountered as a result of the document() function, xsl:import,
++   * or xsl:include.  This is done because the XSLT processor calls
++   * out to the SAXParserFactory itself to create a new SAXParser to
++   * parse the new document.  The new parser does not automatically
++   * inherit the EntityResolver of the original (although arguably
++   * it should).  See below:</p>
++   *
++   * <tt>"If an application wants to set the ErrorHandler or
++   * EntityResolver for an XMLReader used during a transformation,
++   * it should use a URIResolver to return the SAXSource which
++   * provides (with getXMLReader) a reference to the XMLReader"</tt>
++   *
++   * <p>...quoted from page 118 of the Java API for XML
++   * Processing 1.1 specification</p>
++   *
++   */
++  private void setEntityResolver(SAXSource source) throws TransformerException {
++    XMLReader reader = source.getXMLReader();
++    if (reader == null) {
++      SAXParserFactory spFactory = SAXParserFactory.newInstance();
++      spFactory.setNamespaceAware(true);
++      try {
++	reader = spFactory.newSAXParser().getXMLReader();
++      }
++      catch (ParserConfigurationException ex) {
++	throw new TransformerException(ex);
++      }
++      catch (SAXException ex) {
++	throw new TransformerException(ex);
++      }
++    }
++    reader.setEntityResolver(this);
++    source.setXMLReader(reader);
++  }
++
++  /** Attempt to construct an absolute URI */
++  private String makeAbsolute(String uri) {
++    if (uri == null) {
++      uri = "";
++    }
++
++    try {
++      URL url = new URL(uri);
++      return url.toString();
++    } catch (MalformedURLException mue) {
++      try {
++	URL fileURL = FileURL.makeURL(uri);
++	return fileURL.toString();
++      } catch (MalformedURLException mue2) {
++	// bail
++	return uri;
++      }
++    }
++  }
++}

Modified: trunk/libxml-commons-resolver1.1-java/debian/patches/series
===================================================================
--- trunk/libxml-commons-resolver1.1-java/debian/patches/series	2008-12-08 21:12:06 UTC (rev 7606)
+++ trunk/libxml-commons-resolver1.1-java/debian/patches/series	2008-12-09 18:10:00 UTC (rev 7607)
@@ -1 +1,2 @@
 nb-new-api.diff
+nb-extra.diff




More information about the pkg-java-commits mailing list