rpms/netbeans-resolver/devel netbeans-resolver-6.7.1-nb.patch, NONE, 1.1 netbeans-resolver-6.7.1-resolver.patch, NONE, 1.1 .cvsignore, 1.2, 1.3 import.log, 1.1, 1.2 netbeans-resolver.spec, 1.3, 1.4 sources, 1.2, 1.3 netbeans-resolver-6.1.patch, 1.1, NONE

Victor G. Vasilyev victorv at fedoraproject.org
Tue Aug 11 22:30:23 UTC 2009


Author: victorv

Update of /cvs/pkgs/rpms/netbeans-resolver/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32198/devel

Modified Files:
	.cvsignore import.log netbeans-resolver.spec sources 
Added Files:
	netbeans-resolver-6.7.1-nb.patch 
	netbeans-resolver-6.7.1-resolver.patch 
Removed Files:
	netbeans-resolver-6.1.patch 
Log Message:
Patching for the NetBeans 6.7.1


netbeans-resolver-6.7.1-nb.patch:
 NbCatalogManager.java        |  840 +++++++++++++++++++++++++++++++++++++++++++
 tools/NbCatalogResolver.java |  316 ++++++++++++++++
 2 files changed, 1156 insertions(+)

--- NEW FILE netbeans-resolver-6.7.1-nb.patch ---
Index: libxml-commons-resolver1.1-java-1.2/src/org/apache/xml/resolver/NbCatalogManager.java
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ libxml-commons-resolver1.1-java-1.2/src/org/apache/xml/resolver/NbCatalogManager.java	2009-01-30 23:02:32.000000000 +0100
@@ -0,0 +1,840 @@
+// 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> </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> </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() {
+    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) {
+    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();
+  }
+}
Index: libxml-commons-resolver1.1-java-1.2/src/org/apache/xml/resolver/tools/NbCatalogResolver.java
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ libxml-commons-resolver1.1-java-1.2/src/org/apache/xml/resolver/tools/NbCatalogResolver.java	2009-01-30 23:02:49.000000000 +0100
@@ -0,0 +1,316 @@
+// 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() {
+    initializeCatalogs(false);
+  }
+
+  /** Constructor */
+  public NbCatalogResolver(boolean privateCatalog) {
+    initializeCatalogs(privateCatalog);
+  }
+
+  /** Constructor */
+  public NbCatalogResolver(NbCatalogManager manager) {
+    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;
+      }
+    }
+  }
+}

netbeans-resolver-6.7.1-resolver.patch:
 resolver.xml                                           |    2 -
 src/org/apache/xml/resolver/Catalog.java               |   18 ++++++++++++
 src/org/apache/xml/resolver/CatalogManager.java        |   13 ++++++---
 src/org/apache/xml/resolver/tools/CatalogResolver.java |   24 -----------------
 4 files changed, 28 insertions(+), 29 deletions(-)

--- NEW FILE netbeans-resolver-6.7.1-resolver.patch ---
diff -Nur xml-commons-resolver-1.2/resolver.xml xml-commons-resolver-1.2.new/resolver.xml
--- xml-commons-resolver-1.2/resolver.xml	2006-11-20 15:23:08.000000000 +0300
+++ xml-commons-resolver-1.2.new/resolver.xml	2009-08-12 01:21:03.000000000 +0400
@@ -88,7 +88,7 @@
 
    <echo message="Compiling..." />
 
-   <javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="true" optimize="true" deprecation="true" verbose="false">
+   <javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="true" optimize="true" deprecation="true" verbose="false"  source="1.4" >
      <!-- <classpath> not needed since Ant already supplies these Sep-03 -sc -->
      <include name="${resolver.subdir}/*.java"/>
      <include name="${resolver.subdir}/helpers/*.java"/>
diff -Nur xml-commons-resolver-1.2/src/org/apache/xml/resolver/Catalog.java xml-commons-resolver-1.2.new/src/org/apache/xml/resolver/Catalog.java
--- xml-commons-resolver-1.2/src/org/apache/xml/resolver/Catalog.java	2006-11-20 15:23:08.000000000 +0300
+++ xml-commons-resolver-1.2.new/src/org/apache/xml/resolver/Catalog.java	2009-08-12 01:44:32.000000000 +0400
@@ -27,6 +27,7 @@
 import java.io.DataInputStream;
 
 import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Hashtable;
 import java.util.Vector;
 
@@ -1167,6 +1168,23 @@
   }
 
 
+   /**
+    * Return all registered public IDs.
+    */
+   public Iterator getPublicIDs() {
+       Vector v = new Vector();
+       Enumeration enum = catalogEntries.elements();
+
+       while (enum.hasMoreElements()) {
+         CatalogEntry e = (CatalogEntry) enum.nextElement();
+         if (e.getEntryType() == PUBLIC) {
+             v.add(e.getEntryArg(0));
+         }
+       }
+       return v.iterator();
+  }
+
+
   /**
    * Return the applicable DOCTYPE system identifier.
    *
diff -Nur xml-commons-resolver-1.2/src/org/apache/xml/resolver/CatalogManager.java xml-commons-resolver-1.2.new/src/org/apache/xml/resolver/CatalogManager.java
--- xml-commons-resolver-1.2/src/org/apache/xml/resolver/CatalogManager.java	2006-11-20 15:23:08.000000000 +0300
+++ xml-commons-resolver-1.2.new/src/org/apache/xml/resolver/CatalogManager.java	2009-08-12 01:50:54.000000000 +0400
@@ -212,7 +212,11 @@
     // to avoid it.
   }
 
-  /** Constructor that specifies an explicit property file. */
+  /**
+   * 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 CatalogManager(String propertyFile) {
     this.propertyFile = propertyFile;
 
@@ -239,14 +243,15 @@
    * resources from it.
    */
   private synchronized void readProperties() {
-    try {
+     if (propertyFile == null) return;
+     try {
       propertyFileURI = CatalogManager.class.getResource("/"+propertyFile);
       InputStream in =
 	CatalogManager.class.getResourceAsStream("/"+propertyFile);
       if (in==null) {
 	if (!ignoreMissingProperties) {
-	  System.err.println("Cannot find "+propertyFile);
-	  // there's no reason to give this warning more than once
+	  debug.message(2, "Cannot find "+propertyFile);
+ 	  // there's no reason to give this warning more than once
 	  ignoreMissingProperties = true;
 	}
 	return;
diff -Nur xml-commons-resolver-1.2/src/org/apache/xml/resolver/tools/CatalogResolver.java xml-commons-resolver-1.2.new/src/org/apache/xml/resolver/tools/CatalogResolver.java
--- xml-commons-resolver-1.2/src/org/apache/xml/resolver/tools/CatalogResolver.java	2006-11-20 15:23:08.000000000 +0300
+++ xml-commons-resolver-1.2.new/src/org/apache/xml/resolver/tools/CatalogResolver.java	2009-08-12 01:53:48.000000000 +0400
@@ -192,33 +192,9 @@
     String resolved = getResolvedEntity(publicId, systemId);
 
     if (resolved != null) {
-      try {
 	InputSource iSource = new InputSource(resolved);
 	iSource.setPublicId(publicId);
-
-	// Ideally this method would not attempt to open the
-	// InputStream, but there is a bug (in Xerces, at least)
-	// that causes the parser to mistakenly open the wrong
-	// system identifier if the returned InputSource does
-	// not have a byteStream.
-	//
-	// It could be argued that we still shouldn't do this here,
-	// but since the purpose of calling the entityResolver is
-	// almost certainly to open the input stream, it seems to
-	// do little harm.
-	//
-	URL url = new URL(resolved);
-	InputStream iStream = url.openStream();
-	iSource.setByteStream(iStream);
-
 	return iSource;
-      } catch (Exception e) {
-	catalogManager.debug.message(1,
-				     "Failed to create InputSource ("
-				     + e.toString()
-				     + ")", resolved);
-	return null;
-      }
     }
 
     return null;


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/netbeans-resolver/devel/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- .cvsignore	5 Sep 2008 17:24:33 -0000	1.2
+++ .cvsignore	11 Aug 2009 22:30:22 -0000	1.3
@@ -1 +1 @@
-xml-commons-resolver-1.1.zip
+xml-commons-resolver-1.2.zip


Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/netbeans-resolver/devel/import.log,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- import.log	5 Sep 2008 17:24:33 -0000	1.1
+++ import.log	11 Aug 2009 22:30:22 -0000	1.2
@@ -1 +1,2 @@
 netbeans-resolver-6_1-5_fc10:HEAD:netbeans-resolver-6.1-5.fc10.src.rpm:1220635445
+netbeans-resolver-6_7_1-1_fc12:HEAD:netbeans-resolver-6.7.1-1.fc12.src.rpm:1250030152


Index: netbeans-resolver.spec
===================================================================
RCS file: /cvs/pkgs/rpms/netbeans-resolver/devel/netbeans-resolver.spec,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- netbeans-resolver.spec	25 Jul 2009 18:02:36 -0000	1.3
+++ netbeans-resolver.spec	11 Aug 2009 22:30:23 -0000	1.4
@@ -1,9 +1,9 @@
-%define patched_resolver_ver 1.1
+%define patched_resolver_ver 1.2
 %define patched_resolver xml-commons-resolver-%{patched_resolver_ver}
 
 Name:    netbeans-resolver
-Version: 6.1
-Release: 7%{?dist}
+Version: 6.7.1
+Release: 1%{?dist}
 Summary: Resolver subproject of xml-commons patched for NetBeans
 
 Group:   Development/Libraries
@@ -13,7 +13,8 @@ URL:     http://xml.apache.org/commons/
 Source0: http://www.apache.org/dist/xml/commons/%{patched_resolver}.zip
 
 # see http://hg.netbeans._org/main/file/721f72486327/o.apache.xml.resolver/external/readme.txt
-Patch0: %{name}-%{version}.patch
+Patch0: %{name}-%{version}-nb.patch
+Patch1: %{name}-%{version}-resolver.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildArch: noarch
@@ -37,6 +38,7 @@ find . -name "*.jar" -exec rm -f {} \;
 %{__rm} -rf docs
 
 %patch0 -p1 -b .sav
+%patch1 -p1 -b .sav
 
 dos2unix -k KEYS
 dos2unix -k LICENSE.resolver.txt
@@ -60,6 +62,9 @@ dos2unix -k LICENSE.resolver.txt
 %doc LICENSE.resolver.txt KEYS
 
 %changelog
+* Wed Aug 12 2009 Victor G. Vasilyev <victor.vasilyev at sun.com> 6.7.1-1
+- Patching for the NetBeans 6.7.1
+
 * Sat Jul 25 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 6.1-7
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/netbeans-resolver/devel/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- sources	5 Sep 2008 17:24:33 -0000	1.2
+++ sources	11 Aug 2009 22:30:23 -0000	1.3
@@ -1 +1 @@
-3843a1350ee040c1f68074e6878b4fb1  xml-commons-resolver-1.1.zip
+e1016770401dc0a8207f9358878e3c84  xml-commons-resolver-1.2.zip


--- netbeans-resolver-6.1.patch DELETED ---




More information about the fedora-extras-commits mailing list