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
- Previous message: rpms/viewvc/EL-4 sources,1.7,1.8 viewvc.spec,1.12,1.13
- Next message: rpms/collectd/F-11 collectd-4.5.4-fix-condrestart.patch, NONE, 1.1 collectd-4.5.4-libvirt-reconnect.patch, NONE, 1.1 collectd.spec, 1.19, 1.20
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
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 ---
- Previous message: rpms/viewvc/EL-4 sources,1.7,1.8 viewvc.spec,1.12,1.13
- Next message: rpms/collectd/F-11 collectd-4.5.4-fix-condrestart.patch, NONE, 1.1 collectd-4.5.4-libvirt-reconnect.patch, NONE, 1.1 collectd.spec, 1.19, 1.20
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list