Package: libxml-commons-resolver1.1-java
Version: 1.2-2
Severity: wishlist
Tags: patch

Hi,
resolver.jar is a third party library being used in netbeans.
But it needs to be patched to cater to NetBeans needs.
There are three ways:
1) vote for a new API on [EMAIL PROTECTED]
2) create forked package for patched resolver
3) request the original libxml-commons-resolver1.1-jaqva package to add
our patch

Results:
1) a letter on [EMAIL PROTECTED] was sent.
The answer was:
------
Since the 1.2 release there hasn't been any discussion on future
development or any changes made to the resolver codebase. There
currently are no plans for a 1.3. If one were happen it needs content
and volunteers to do the development and release managment.
-------
Based on this, it seems to be not the fastest way.

2) I've created a forked resolver. It is on mentors.debian.net now. But
I'm afraid it can be rejected because of duplication of code.

3) this bug is a result

So is it possible to add my patch into existing package?

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-1-686 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libxml-commons-resolver1.1-java depends on:
ii  default-jre [java2-runtime]   1.5-30     Standard Java or Java
compatible R
ii  java-gcj-compat [java2-runtim 1.0.78-1   Java runtime environment
using GIJ
ii  openjdk-6-jre [java2-runtime] 6b10dfsg-2 OpenJDK Java runtime

libxml-commons-resolver1.1-java recommends no packages.

Versions of packages libxml-commons-resolver1.1-java suggests:
pn  libxml-commons-resolver1.1-ja <none>     (no description available)

-- no debconf information
diff -Nur -x '*.orig' -x '*~' libnb-resolver-java-1.2/resolver.xml libnb-resolver-java-1.2.new/resolver.xml
--- libnb-resolver-java-1.2/resolver.xml	2006-11-20 23:23:07.000000000 +0300
+++ libnb-resolver-java-1.2.new/resolver.xml	2008-07-08 16:12:49.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 -x '*.orig' -x '*~' libnb-resolver-java-1.2/src/org/apache/xml/resolver/Catalog.java libnb-resolver-java-1.2.new/src/org/apache/xml/resolver/Catalog.java
--- libnb-resolver-java-1.2/src/org/apache/xml/resolver/Catalog.java	2006-11-20 23:23:06.000000000 +0300
+++ libnb-resolver-java-1.2.new/src/org/apache/xml/resolver/Catalog.java	2008-07-08 14:28:31.000000000 +0400
@@ -29,7 +29,7 @@
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Vector;
-
+import java.util.Iterator;
 import java.net.URL;
 import java.net.MalformedURLException;
 
@@ -1167,6 +1167,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 -x '*.orig' -x '*~' libnb-resolver-java-1.2/src/org/apache/xml/resolver/CatalogManager.java libnb-resolver-java-1.2.new/src/org/apache/xml/resolver/CatalogManager.java
--- libnb-resolver-java-1.2/src/org/apache/xml/resolver/CatalogManager.java	2006-11-20 23:23:06.000000000 +0300
+++ libnb-resolver-java-1.2.new/src/org/apache/xml/resolver/CatalogManager.java	2008-07-08 16:06:47.000000000 +0400
@@ -1,3 +1,4 @@
+
 // CatalogManager.java - Access CatalogManager.properties
 
 /*
@@ -212,7 +213,11 @@
     // to avoid it.
   }
 
-  /** Constructor that specifies an explicit property file. */
+  /** 
+   * Constructor that specifies an explicit property file. 
+   * @param propertyFile path to property 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,13 +244,14 @@
    * resources from it.
    */
   private synchronized void readProperties() {
+    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);
+	  debug.message(2,"Cannot find "+propertyFile);
 	  // there's no reason to give this warning more than once
 	  ignoreMissingProperties = true;
 	}
diff -Nur -x '*.orig' -x '*~' libnb-resolver-java-1.2/src/org/apache/xml/resolver/tools/CatalogResolver.java libnb-resolver-java-1.2.new/src/org/apache/xml/resolver/tools/CatalogResolver.java
--- libnb-resolver-java-1.2/src/org/apache/xml/resolver/tools/CatalogResolver.java	2006-11-20 23:23:06.000000000 +0300
+++ libnb-resolver-java-1.2.new/src/org/apache/xml/resolver/tools/CatalogResolver.java	2008-07-08 16:09:14.000000000 +0400
@@ -192,33 +192,8 @@
     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;

Reply via email to