You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/07/13 12:36:20 UTC

cvs commit: xml-xalan/java/samples/CompiledServlet CompileServlet.java

morten      01/07/13 03:36:19

  Modified:    java/samples/CompiledApplet TransformApplet.java
               java/samples/CompiledBrazil TransformHandler.java
               java/samples/CompiledServlet CompileServlet.java
  Added:       java/samples/CompiledJAXP Compile.java Transform.java
  Log:
  Added another directory for examples on how to compile and store translets
  using our new TrAX design/implementation.
  PR:		n/a
  Obtained from:	n/a
  Submitted by:	morten@xml.apache.org
  Reviewed by:	morten@xml.apache.org
  
  Revision  Changes    Path
  1.2       +6 -4      xml-xalan/java/samples/CompiledApplet/TransformApplet.java
  
  Index: TransformApplet.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/samples/CompiledApplet/TransformApplet.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TransformApplet.java	2001/05/17 15:36:29	1.1
  +++ TransformApplet.java	2001/07/13 10:35:44	1.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransformApplet.java,v 1.1 2001/05/17 15:36:29 morten Exp $
  + * @(#)$Id: TransformApplet.java,v 1.2 2001/07/13 10:35:44 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -161,8 +161,8 @@
   	    reader.setContentHandler(_dom.getBuilder());
   
   	    // Create a DTD monitor and pass it to the XMLReader object
  -	    final DTDMonitor dtdMonitor = new DTDMonitor();
  -	    dtdMonitor.handleDTD(reader);
  +	    _dtdMonitor = new DTDMonitor();
  +	    _dtdMonitor.handleDTD(reader);
   
   	    // Parse the input document
   	    reader.parse(url);
  @@ -217,6 +217,7 @@
   		// Set size of key/id indices
   		translet.setIndexSize(_dom.getSize());
   		// If there are any elements with ID attributes, build an index
  +
   		_dtdMonitor.buildIdIndex(_dom, 0, translet);
   		// Pass unparsed entities to translet
   		translet.setUnparsedEntityURIs(_dtdMonitor.
  @@ -227,10 +228,11 @@
   		final long done = System.currentTimeMillis() - start;
   		out.println("<!-- transformed by XSLTC in "+done+"msecs -->");
   	    }
  -			
   	    // Now close up the sink, and return the HTML output in the
   	    // StringWrite object as a string.
   	    out.close();
  +	    System.err.println("Transformation complete!");
  +	    System.err.println(sout.toString());
   	    return sout.toString();
   	}
   	catch (RuntimeException e) {
  
  
  
  1.2       +1 -3      xml-xalan/java/samples/CompiledBrazil/TransformHandler.java
  
  Index: TransformHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/samples/CompiledBrazil/TransformHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TransformHandler.java	2001/05/17 15:36:35	1.1
  +++ TransformHandler.java	2001/07/13 10:35:54	1.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransformHandler.java,v 1.1 2001/05/17 15:36:35 morten Exp $
  + * @(#)$Id: TransformHandler.java,v 1.2 2001/07/13 10:35:54 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -58,8 +58,6 @@
    * @author Morten Jorgensen
    *
    */
  -
  -package org.apache.xalan.xsltc.demo.brazil;
   
   import java.io.*;
   import java.util.NoSuchElementException;
  
  
  
  1.1                  xml-xalan/java/samples/CompiledJAXP/Compile.java
  
  Index: Compile.java
  ===================================================================
  import java.io.File;
  import java.io.FileOutputStream;
  import java.io.ObjectOutputStream;
  
  import javax.xml.transform.stream.StreamSource;
  import javax.xml.transform.stream.StreamResult;
  import javax.xml.transform.Templates;
  import javax.xml.transform.Transformer;
  import javax.xml.transform.TransformerFactory;
  
  import org.apache.xalan.xsltc.trax.TransformerFactoryImpl;
  
  public class Compile {
  
      public static void main(String[] args){
          Compile app = new Compile();
          app.run(args[0]);
      }
  
      /**
       * Compiles an XSL stylesheet into a translet, wraps the translet
       * inside a Templates object and dumps it to a file.
       */
      public void run(String xsl) {
          try {
  	    // Get an input stream for the XSL stylesheet
  	    StreamSource stylesheet = new StreamSource(xsl);
  
  	    // The TransformerFactory will compile the stylesheet and
  	    // put the translet classes inside the Templates object
  	    TransformerFactory factory = TransformerFactory.newInstance();
  	    Templates templates = factory.newTemplates(stylesheet);
  
  	    // Send the Templates object to a '.translet' file
  	    dumpTemplate(getBaseName(xsl)+".translet", templates);
          }
  	catch (Exception e) {
              System.err.println("Exception: " + e); 
  	    e.printStackTrace();
          }
          System.exit(0);
      }
  
      /**
       * Returns the base-name of a file/url
       */
      private String getBaseName(String filename) {
  	int start = filename.lastIndexOf(File.separatorChar);
  	int stop  = filename.lastIndexOf('.');
  	if (stop <= start) stop = filename.length() - 1;
  	return filename.substring(start+1, stop);
      }
  
      /**
       * Writes a Templates object to a file
       */
      private void dumpTemplate(String file, Templates templates) {
  	try {
  	    FileOutputStream ostream = new FileOutputStream(file);
  	    ObjectOutputStream p = new ObjectOutputStream(ostream);
  	    p.writeObject(templates);
  	    p.flush();
  	    ostream.close();
  	}
  	catch (Exception e) {
  	    System.err.println(e);
  	    e.printStackTrace();
  	    System.err.println("Could not write file "+file);
  	}
      }
  
      private void usage() {
          System.err.println("Usage: compile <xsl_file>");
          System.exit(1);
      }
  
  }
  
  
  
  1.1                  xml-xalan/java/samples/CompiledJAXP/Transform.java
  
  Index: Transform.java
  ===================================================================
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.ObjectInputStream;
  
  import javax.xml.transform.stream.StreamSource;
  import javax.xml.transform.stream.StreamResult;
  import javax.xml.transform.Templates;
  import javax.xml.transform.Transformer;
  import javax.xml.transform.TransformerFactory;
  
  import org.apache.xalan.xsltc.trax.TransformerFactoryImpl;
  
  public class Transform {
  
      public static void main(String[] args){
          Transform app = new Transform();
          app.run(args);
      }
  
      /**
       * Reads a Templates object from a file, the Templates object creates
       * a translet and wraps it in a Transformer. The translet performs the
       * transformation on behalf of the Transformer.transform() method.
       */
      public void run(String[] args){
          String xml = args[0];
          String translet = args[1];
  
          try {
  	    StreamSource document = new StreamSource(xml);
  	    StreamResult result = new StreamResult(System.out);
  	    Templates templates = readTemplates(translet);
  	    Transformer transformer = templates.newTransformer();
              transformer.transform(document, result);
          }
  	catch (Exception e) {
              System.err.println("Exception: " + e); 
  	    e.printStackTrace();
          }
          System.exit(0);
      }
  
      /**
       * Reads a Templates object from a file
       */
      private Templates readTemplates(String file) {
  	try {
  	    FileInputStream ostream = new FileInputStream(file);
  	    ObjectInputStream p = new ObjectInputStream(ostream);
  	    Templates templates = (Templates)p.readObject();
  	    ostream.close();
  	    return(templates);
  	}
  	catch (Exception e) {
  	    System.err.println(e);
  	    e.printStackTrace();
  	    System.err.println("Could not write file "+file);
  	    return null;
  	}
      }
  
      /**
       * Returns the base-name of a file/url
       */
      private String getBaseName(String filename) {
  	int start = filename.lastIndexOf(File.separatorChar);
  	int stop  = filename.lastIndexOf('.');
  	if (stop <= start) stop = filename.length() - 1;
  	return filename.substring(start+1, stop);
      }
  
      public void usage() {
          System.err.println("Usage: run <xml_file> <xsl_file>");
          System.exit(1);
      }
  
  }
  
  
  
  1.2       +2 -2      xml-xalan/java/samples/CompiledServlet/CompileServlet.java
  
  Index: CompileServlet.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/samples/CompiledServlet/CompileServlet.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CompileServlet.java	2001/05/17 15:36:39	1.1
  +++ CompileServlet.java	2001/07/13 10:36:08	1.2
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: CompileServlet.java,v 1.1 2001/05/17 15:36:39 morten Exp $
  + * @(#)$Id: CompileServlet.java,v 1.2 2001/07/13 10:36:08 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -74,7 +74,7 @@
   import org.apache.xalan.xsltc.compiler.util.*;
   import org.apache.xalan.xsltc.util.getopt.*;
   
  -public class Compile extends HttpServlet {
  +public class CompileServlet extends HttpServlet {
   
       /**
        * Main servlet entry point. The servlet reads a stylesheet from the
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org