You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by ri...@locus.apache.org on 2000/05/07 02:44:06 UTC

cvs commit: xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java XSPJavaProcessor.java

ricardo     00/05/06 17:44:06

  Modified:    src/org/apache/cocoon/processor/xsp/language/java
                        XSPJavaProcessor.java
  Log:
  Added support for encodings (Pavel Karassev <pa...@soft.tlt.ru>)
  
  Revision  Changes    Path
  1.9       +46 -13    xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java/XSPJavaProcessor.java
  
  Index: XSPJavaProcessor.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/processor/xsp/language/java/XSPJavaProcessor.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- XSPJavaProcessor.java	2000/04/27 17:57:43	1.8
  +++ XSPJavaProcessor.java	2000/05/07 00:44:05	1.9
  @@ -1,4 +1,4 @@
  -/*-- $Id: XSPJavaProcessor.java,v 1.8 2000/04/27 17:57:43 stefano Exp $ --
  +/*-- $Id: XSPJavaProcessor.java,v 1.9 2000/05/07 00:44:05 ricardo Exp $ --
   
    ============================================================================
                      The Apache Software License, Version 1.1
  @@ -62,11 +62,12 @@
   
   /**
    * @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
  - * @version $Revision: 1.8 $ $Date: 2000/04/27 17:57:43 $
  + * @version $Revision: 1.9 $ $Date: 2000/05/07 00:44:05 $
    */
   public class XSPJavaProcessor implements XSPLanguageProcessor {
     // Create class loader
     protected File repository;
  +  protected String encoding;
     protected XSPClassLoader classLoader;
   
     protected boolean format;
  @@ -83,6 +84,10 @@
       return "class";
     }
   
  +  public void setEncoding(String encoding) {
  +    this.encoding = encoding;
  +  }
  +
     public void setRepository(File repository) throws Exception {
       this.repository = repository;
       this.classLoader = new XSPClassLoader(this.repository);
  @@ -104,17 +109,31 @@
       String repositoryName = this.repository.getCanonicalPath();
       String fullFilename = repositoryName + File.separator + filename;
   
  -    String[] compilerArgs = {
  -      "-classpath",
  -        repositoryName +
  -        File.pathSeparator +
  -        System.getProperty("java.class.path"),
  -      "-O",
  -      // "-deprecation",
  -      // "-verbose",
  -      fullFilename
  -    };
  +    String[] compilerArgs = null;
   
  +    if (this.encoding == null) {
  +      compilerArgs = new String[] {
  +        "-classpath",
  +          repositoryName +
  +          File.pathSeparator +
  +          System.getProperty("java.class.path"),
  +        "-O",
  +        // "-deprecation",
  +        // "-verbose",
  +        fullFilename
  +      };
  +    } else {
  +      compilerArgs = new String[] {
  +        "-classpath",
  +          repositoryName +
  +          File.pathSeparator +
  +          System.getProperty("java.class.path"),
  +        "-O",
  +	"-encoding", this.encoding,
  +        fullFilename
  +      };
  +    }
  +
       ByteArrayOutputStream err = new ByteArrayOutputStream();
       
       // FIXME: we should make this reflection based and also allow other
  @@ -122,8 +141,10 @@
       // Tomcat code for this :) (SM)
       
       Main compiler = new Main(err, "javac");
  +
  +    boolean compilationResult = compiler.compile(compilerArgs);
   
  -    if (!compiler.compile(compilerArgs)) {
  +    if (!compilationResult) {
         // Massage message
         int pos = fullFilename.length() + 1;
         StringBuffer buffer = new StringBuffer();
  @@ -141,6 +162,18 @@
           buffer.toString()
         );
       }
  +/* 
  + int pos = fullFilename.length() + 1;
  + StringBuffer buffer = new StringBuffer();
  + String[] errorLines = XSPUtil.split(err.toString(), "\r\n");
  + for (int i = 0; i < errorLines.length; i++) {
  +   if (errorLines[i].startsWith(fullFilename)) {
  +     errorLines[i] = errorLines[i].substring(pos);
  +   }
  +   buffer.append(errorLines[i] + "\n");
  + }
  + System.err.println(buffer.toString());
  +*/
     }
   
     public XSPPage load(String filename) throws Exception {