You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2002/02/12 17:16:07 UTC

cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/java JavaLanguage.java

vgritsenko    02/02/12 08:16:07

  Modified:    src/java/org/apache/cocoon/components/language/programming/java
                        JavaLanguage.java
  Log:
  Optimize classpath building
  
  Revision  Changes    Path
  1.8       +31 -31    xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/java/JavaLanguage.java
  
  Index: JavaLanguage.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/java/JavaLanguage.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JavaLanguage.java	9 Feb 2002 03:43:01 -0000	1.7
  +++ JavaLanguage.java	12 Feb 2002 16:16:07 -0000	1.8
  @@ -56,6 +56,7 @@
   package org.apache.cocoon.components.language.programming.java;
   
   import org.apache.avalon.framework.activity.Disposable;
  +import org.apache.avalon.framework.activity.Initializable;
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.Composable;
   import org.apache.avalon.framework.parameters.ParameterException;
  @@ -79,10 +80,10 @@
    * The Java programming language processor
    *
    * @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
  - * @version CVS $Id: JavaLanguage.java,v 1.7 2002/02/09 03:43:01 vgritsenko Exp $
  + * @version CVS $Id: JavaLanguage.java,v 1.8 2002/02/12 16:16:07 vgritsenko Exp $
    */
   public class JavaLanguage extends CompiledProgrammingLanguage
  -        implements ThreadSafe, Composable, Disposable {
  +        implements Initializable, ThreadSafe, Composable, Disposable {
   
       /** The class loader */
       private ClassLoaderManager classLoaderManager;
  @@ -90,6 +91,9 @@
       /** The component manager */
       protected ComponentManager manager = null;
   
  +    /** Classpath */
  +    private String classpath;
  +
       /**
        * Return the language's canonical source file extension.
        *
  @@ -149,6 +153,27 @@
           }
       }
   
  +    public void initialize() throws Exception {
  +
  +        // Initialize the classpath
  +        String systemBootClasspath = System.getProperty("sun.boot.class.path");
  +        String systemClasspath = System.getProperty("java.class.path");
  +        String systemExtDirs = System.getProperty("java.ext.dirs");
  +        String systemExtClasspath = null;
  +
  +        try {
  +            systemExtClasspath = expandDirs(systemExtDirs);
  +        } catch (Exception e) {
  +            getLogger().warn("Could not expand Directory:" + systemExtDirs, e);
  +        }
  +
  +        this.classpath =
  +            ((super.classpath != null) ? File.pathSeparator + super.classpath : "") +
  +            ((systemBootClasspath != null) ? File.pathSeparator + systemBootClasspath : "") +
  +            ((systemClasspath != null) ? File.pathSeparator + systemClasspath : "") +
  +            ((systemExtClasspath != null) ? File.pathSeparator + systemExtClasspath : "");
  +    }
  +
       /**
        * Actually load an object program from a class file.
        *
  @@ -161,10 +186,8 @@
               throws LanguageException {
           try {
               this.classLoaderManager.addDirectory(baseDirectory);
  -            return
  -                    this.classLoaderManager.loadClass(name.replace(File.separatorChar, '.'));
  +            return this.classLoaderManager.loadClass(name.replace(File.separatorChar, '.'));
           } catch (Exception e) {
  -            getLogger().warn("Could not load class for program '" + name + "'", e);
               throw new LanguageException("Could not load class for program '" + name + "' due to a " + e.getClass().getName() + ": " + e.getMessage());
           }
       }
  @@ -178,12 +201,10 @@
        * <code>null</code> if it is the platform's default encoding
        * @exception LanguageException If an error occurs during compilation
        */
  -    protected void compile(
  -            String name, File baseDirectory, String encoding
  -            ) throws LanguageException {
  +    protected void compile(String name, File baseDirectory, String encoding)
  +            throws LanguageException {
   
           try {
  -
               AbstractJavaCompiler compiler = (AbstractJavaCompiler) this.compilerClass.newInstance();
               // AbstractJavaCompiler is Loggable
               compiler.setLogger(getLogger());
  @@ -198,36 +219,15 @@
                       .append(".").append(this.getSourceExtension()).toString();
   
               compiler.setFile(filename_abs);
  -
               compiler.setSource(pathname);
  -
               compiler.setDestination(baseDirectory.getCanonicalPath());
  -
  -            String systemBootClasspath = System.getProperty("sun.boot.class.path");
  -            String systemClasspath = System.getProperty("java.class.path");
  -            String systemExtDirs = System.getProperty("java.ext.dirs");
  -            String systemExtClasspath = null;
  -
  -            try {
  -                systemExtClasspath = expandDirs(systemExtDirs);
  -            } catch (Exception e) {
  -                getLogger().warn("Could not expand Directory:" + systemExtDirs, e);
  -            }
  -
  -            compiler.setClasspath(
  -                    baseDirectory.getCanonicalPath() +
  -                    ((classpath != null) ? File.pathSeparator + classpath : "") +
  -                    ((systemBootClasspath != null) ? File.pathSeparator + systemBootClasspath : "") +
  -                    ((systemClasspath != null) ? File.pathSeparator + systemClasspath : "") +
  -                    ((systemExtClasspath != null) ? File.pathSeparator + systemExtClasspath : "")
  -            );
  +            compiler.setClasspath(baseDirectory.getCanonicalPath() + this.classpath);
   
               if (encoding != null) {
                   compiler.setEncoding(encoding);
               }
   
               getLogger().debug("Compiling " + filename_abs);
  -
               if (!compiler.compile()) {
                   StringBuffer message = new StringBuffer("Error compiling ");
                   message.append(filename);
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org