commit-classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commit-cp] classpath ChangeLog gnu/xml/stream/SAXParser.ja...


From: Chris Burdess
Subject: [commit-cp] classpath ChangeLog gnu/xml/stream/SAXParser.ja...
Date: Wed, 07 Jun 2006 08:04:50 +0000

CVSROOT:        /cvsroot/classpath
Module name:    classpath
Changes by:     Chris Burdess <dog>     06/06/07 08:04:49

Modified files:
        .              : ChangeLog 
        gnu/xml/stream : SAXParser.java XMLParser.java 
        gnu/xml/transform: TransformerImpl.java 

Log message:
        2006-06-07  Chris Burdess  <address@hidden>
        
                * gnu/xml/stream/SAXParser.java,
                  gnu/xml/stream/XMLParser.java: Add command line options for 
setting
                  parsing parameters (for simpler debugging).
                * gnu/xml/transform/TransformerImpl.java: Try to ensure that 
I/O error
                  closing output stream is propagated to application.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.7690&r2=1.7691
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/SAXParser.java?cvsroot=classpath&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/XMLParser.java?cvsroot=classpath&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/transform/TransformerImpl.java?cvsroot=classpath&r1=1.14&r2=1.15

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/classpath/classpath/ChangeLog,v
retrieving revision 1.7690
retrieving revision 1.7691
diff -u -b -r1.7690 -r1.7691
--- ChangeLog   6 Jun 2006 22:39:49 -0000       1.7690
+++ ChangeLog   7 Jun 2006 08:04:48 -0000       1.7691
@@ -1,3 +1,11 @@
+2006-06-07  Chris Burdess  <address@hidden>
+
+       * gnu/xml/stream/SAXParser.java,
+         gnu/xml/stream/XMLParser.java: Add command line options for setting
+         parsing parameters (for simpler debugging).
+       * gnu/xml/transform/TransformerImpl.java: Try to ensure that I/O error
+         closing output stream is propagated to application.
+
 2006-06-06  Mark Wielaard  <address@hidden>
 
        * include/jni.h (JDK1_1InitArgs): Mark pointer-to-function types

Index: gnu/xml/stream/SAXParser.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/xml/stream/SAXParser.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- gnu/xml/stream/SAXParser.java       4 Mar 2006 20:45:32 -0000       1.20
+++ gnu/xml/stream/SAXParser.java       7 Jun 2006 08:04:49 -0000       1.21
@@ -976,10 +976,56 @@
   public static void main(String[] args)
     throws Exception
   {
-    SAXParser parser = new SAXParser();
-    InputSource input = new InputSource(args[0]);
-    parser.parse(input, new org.xml.sax.helpers.DefaultHandler());
-    
+    boolean validating = false;
+    boolean namespaceAware = false;
+    boolean xIncludeAware = false;
+    boolean expectCallbackClass = false;
+    String callbackClass = null;
+    int pos = 0;
+    while (pos < args.length && (args[pos].startsWith("-") || 
expectCallbackClass))
+      {
+        if ("-x".equals(args[pos]))
+          xIncludeAware = true;
+        else if ("-v".equals(args[pos]))
+          validating = true;
+        else if ("-n".equals(args[pos]))
+          namespaceAware = true;
+        else if ("-c".equals(args[pos]))
+          expectCallbackClass = true;
+        else if (expectCallbackClass)
+          {
+            callbackClass = args[pos];
+            expectCallbackClass = false;
+          }
+        pos++;
+      }
+    if (pos >= args.length || expectCallbackClass)
+      {
+        System.out.println("Syntax: SAXParser [-n] [-v] [-x] [-c <class>] 
<file> [<file2> [...]]");
+        System.out.println("\t-n: use namespace aware mode");
+        System.out.println("\t-v: use validating parser");
+        System.out.println("\t-x: use XInclude aware mode");
+        System.out.println("\t-c <class>: use specified class as callback 
handler (must have a no-arg public constructor)");
+        System.exit(2);
+      }
+    while (pos < args.length)
+      {
+        ContentHandler handler = null;
+        if (callbackClass != null)
+          {
+            Class t = Class.forName(callbackClass);
+            handler = (ContentHandler) t.newInstance();
+          }
+        else
+          handler = new org.xml.sax.helpers.DefaultHandler();
+        SAXParser parser = new SAXParser(validating, namespaceAware,
+                                         xIncludeAware);
+        InputSource input = new InputSource(args[pos]);
+        XMLReader reader = parser.getXMLReader();
+        reader.setContentHandler(handler);
+        reader.parse(input);
+        pos++;
+      }
   }
   
 }

Index: gnu/xml/stream/XMLParser.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/xml/stream/XMLParser.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- gnu/xml/stream/XMLParser.java       20 Mar 2006 19:54:35 -0000      1.28
+++ gnu/xml/stream/XMLParser.java       7 Jun 2006 08:04:49 -0000       1.29
@@ -4250,13 +4250,34 @@
   public static void main(String[] args)
     throws Exception
   {
+    boolean validating = false;
+    boolean namespaceAware = false;
     boolean xIncludeAware = false;
-    if (args.length > 1 && "-x".equals(args[1]))
+    int pos = 0;
+    while (pos < args.length && args[pos].startsWith("-"))
+      {
+        if ("-x".equals(args[pos]))
       xIncludeAware = true;
-    XMLParser p = new XMLParser(new java.io.FileInputStream(args[0]),
-                                absolutize(null, args[0]),
-                                true, // validating
-                                true, // namespaceAware
+        else if ("-v".equals(args[pos]))
+          validating = true;
+        else if ("-n".equals(args[pos]))
+          namespaceAware = true;
+        pos++;
+      }
+    if (pos >= args.length)
+      {
+        System.out.println("Syntax: XMLParser [-n] [-v] [-x] <file> [<file2> 
[...]]");
+        System.out.println("\t-n: use namespace aware mode");
+        System.out.println("\t-v: use validating parser");
+        System.out.println("\t-x: use XInclude aware mode");
+        System.exit(2);
+      }
+    while (pos < args.length)
+      {
+        XMLParser p = new XMLParser(new java.io.FileInputStream(args[pos]),
+                                    absolutize(null, args[pos]),
+                                    validating, // validating
+                                    namespaceAware, // namespaceAware
                                 true, // coalescing,
                                 true, // replaceERefs
                                 true, // externalEntities
@@ -4268,7 +4289,7 @@
                                 null);
     XMLStreamReader reader = p;
     if (xIncludeAware)
-      reader = new XIncludeFilter(p, args[0], true, true, true);
+          reader = new XIncludeFilter(p, args[pos], true, true, true);
     try
       {
         int event;
@@ -4277,60 +4298,71 @@
           {
             event = reader.next();
             Location loc = reader.getLocation();
-            System.out.print(loc.getLineNumber()+":"+loc.getColumnNumber()+" 
");
+                System.out.print(loc.getLineNumber() + ":" + 
+                                 loc.getColumnNumber() + " ");
             switch (event)
               {
               case XMLStreamConstants.START_DOCUMENT:
-                System.out.println("START_DOCUMENT 
version="+reader.getVersion()+
-                                   " encoding="+reader.getEncoding());
+                    System.out.println("START_DOCUMENT version=" +
+                                       reader.getVersion() +
+                                       " encoding=" +
+                                       reader.getEncoding());
                 break;
               case XMLStreamConstants.END_DOCUMENT:
                 System.out.println("END_DOCUMENT");
                 break;
               case XMLStreamConstants.START_ELEMENT:
-                System.out.println("START_ELEMENT "+reader.getName());
+                    System.out.println("START_ELEMENT " +
+                                       reader.getName());
                 int l = reader.getNamespaceCount();
                 for (int i = 0; i < l; i++)
-                  System.out.println("\tnamespace 
"+reader.getNamespacePrefix(i)+
-                                     "='"+reader.getNamespaceURI(i)+"'");
+                      System.out.println("\tnamespace " +
+                                         reader.getNamespacePrefix(i) + "='" +
+                                         reader.getNamespaceURI(i)+"'");
                 l = reader.getAttributeCount();
                 for (int i = 0; i < l; i++)
-                  System.out.println("\tattribute "+reader.getAttributeName(i)+
-                                     "='"+reader.getAttributeValue(i)+"'");
+                      System.out.println("\tattribute " +
+                                         reader.getAttributeName(i) + "='" +
+                                         reader.getAttributeValue(i) + "'");
                 break;
               case XMLStreamConstants.END_ELEMENT:
-                System.out.println("END_ELEMENT "+reader.getName());
+                    System.out.println("END_ELEMENT " + reader.getName());
                 break;
               case XMLStreamConstants.CHARACTERS:
-                System.out.println("CHARACTERS 
'"+encodeText(reader.getText())+"'");
+                    System.out.println("CHARACTERS '" +
+                                       encodeText(reader.getText()) + "'");
                 break;
               case XMLStreamConstants.CDATA:
-                System.out.println("CDATA '"+encodeText(reader.getText())+"'");
+                    System.out.println("CDATA '" +
+                                       encodeText(reader.getText()) + "'");
                 break;
               case XMLStreamConstants.SPACE:
-                System.out.println("SPACE '"+encodeText(reader.getText())+"'");
+                    System.out.println("SPACE '" +
+                                       encodeText(reader.getText()) + "'");
                 break;
               case XMLStreamConstants.DTD:
-                System.out.println("DTD "+reader.getText());
+                    System.out.println("DTD " + reader.getText());
                 break;
               case XMLStreamConstants.ENTITY_REFERENCE:
-                System.out.println("ENTITY_REFERENCE "+reader.getText());
+                    System.out.println("ENTITY_REFERENCE " + reader.getText());
                 break;
               case XMLStreamConstants.COMMENT:
-                System.out.println("COMMENT 
'"+encodeText(reader.getText())+"'");
+                    System.out.println("COMMENT '" +
+                                       encodeText(reader.getText()) + "'");
                 break;
               case XMLStreamConstants.PROCESSING_INSTRUCTION:
-                System.out.println("PROCESSING_INSTRUCTION 
"+reader.getPITarget()+
-                                   " "+reader.getPIData());
+                    System.out.println("PROCESSING_INSTRUCTION " +
+                                       reader.getPITarget() + " " +
+                                       reader.getPIData());
                 break;
               case START_ENTITY:
-                System.out.println("START_ENTITY "+reader.getText());
+                    System.out.println("START_ENTITY " + reader.getText());
                 break;
               case END_ENTITY:
-                System.out.println("END_ENTITY "+reader.getText());
+                    System.out.println("END_ENTITY " + reader.getText());
                 break;
               default:
-                System.out.println("Unknown event: "+event);
+                    System.out.println("Unknown event: " + event);
               }
           }
       }
@@ -4342,6 +4374,8 @@
                            " of "+l.getSystemId());
         throw e;
       }
+        pos++;
+      }
   }
 
   /**

Index: gnu/xml/transform/TransformerImpl.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/xml/transform/TransformerImpl.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- gnu/xml/transform/TransformerImpl.java      6 Jun 2006 13:21:21 -0000       
1.14
+++ gnu/xml/transform/TransformerImpl.java      7 Jun 2006 08:04:49 -0000       
1.15
@@ -576,6 +576,19 @@
           }
         catch (IOException e)
           {
+            if (errorListener != null)
+              {
+                try
+                  {
+                    errorListener.error(new TransformerException(e));
+                  }
+                catch (TransformerException e2)
+                  {
+                    e2.printStackTrace(System.err);
+                  }
+              }
+            else
+              e.printStackTrace(System.err);
           }
       }
   }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]