vgritsenko    02/03/29 12:32:01

  Modified:    src/java/org/apache/cocoon/components/language/generator
                        ProgramGeneratorImpl.java
               src/java/org/apache/cocoon/components/language/programming
                        AbstractProgrammingLanguage.java
                        CompiledProgrammingLanguage.java
                        ProgrammingLanguage.java
               src/java/org/apache/cocoon/components/language/programming/java
                        AbstractJavaCompiler.java
               src/java/org/apache/cocoon/components/language/programming/javascript
                        JavascriptLanguage.java
  Log:
  separate load and preload steps
  
  Revision  Changes    Path
  1.14      +2 -2      
xml-cocoon2/src/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java
  
  Index: ProgramGeneratorImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/generator/ProgramGeneratorImpl.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ProgramGeneratorImpl.java 7 Mar 2002 16:49:03 -0000       1.13
  +++ ProgramGeneratorImpl.java 29 Mar 2002 20:32:01 -0000      1.14
  @@ -85,7 +85,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vadim Gritsenko</a>
  - * @version CVS $Id: ProgramGeneratorImpl.java,v 1.13 2002/03/07 16:49:03 
vgritsenko Exp $
  + * @version CVS $Id: ProgramGeneratorImpl.java,v 1.14 2002/03/29 20:32:01 
vgritsenko Exp $
    */
   public class ProgramGeneratorImpl extends AbstractLoggable
       implements ProgramGenerator, Contextualizable, Composable, Parameterizable,
  @@ -242,7 +242,7 @@
                       programmingLanguage =
                               
(ProgrammingLanguage)this.languageSelector.select(programmingLanguageName);
                       programmingLanguage.setLanguageName(programmingLanguageName);
  -                    program = programmingLanguage.load(normalizedName,
  +                    program = programmingLanguage.preload(normalizedName,
                               this.workDir, markupLanguage.getEncoding());
   
                       this.cache.addGenerator(newManager, normalizedName, program);
  
  
  
  1.7       +2 -2      
xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/AbstractProgrammingLanguage.java
  
  Index: AbstractProgrammingLanguage.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/AbstractProgrammingLanguage.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AbstractProgrammingLanguage.java  22 Feb 2002 07:00:09 -0000      1.6
  +++ AbstractProgrammingLanguage.java  29 Mar 2002 20:32:01 -0000      1.7
  @@ -69,7 +69,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vadim Gritsenko</a>
  - * @version CVS $Id: AbstractProgrammingLanguage.java,v 1.6 2002/02/22 07:00:09 
cziegeler Exp $
  + * @version CVS $Id: AbstractProgrammingLanguage.java,v 1.7 2002/03/29 20:32:01 
vgritsenko Exp $
    */
   public abstract class AbstractProgrammingLanguage extends AbstractLoggable
           implements ProgrammingLanguage, Parameterizable {
  @@ -84,7 +84,7 @@
        * sitemap-specified source code formatter
        *
        * @param params The configuration parameters
  -     * @exception Exception If the language compiler cannot be loaded
  +     * @exception ParameterException If the language compiler cannot be loaded
        */
       public void parameterize(Parameters params) throws ParameterException {
           String className = params.getParameter("code-formatter", null);
  
  
  
  1.10      +22 -12    
xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/CompiledProgrammingLanguage.java
  
  Index: CompiledProgrammingLanguage.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/CompiledProgrammingLanguage.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- CompiledProgrammingLanguage.java  22 Feb 2002 07:00:09 -0000      1.9
  +++ CompiledProgrammingLanguage.java  29 Mar 2002 20:32:01 -0000      1.10
  @@ -68,7 +68,7 @@
    * A compiled programming language. This class extends 
<code>AbstractProgrammingLanguage</code> adding support for compilation
    * and object program files
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
  - * @version CVS $Id: CompiledProgrammingLanguage.java,v 1.9 2002/02/22 07:00:09 
cziegeler Exp $
  + * @version CVS $Id: CompiledProgrammingLanguage.java,v 1.10 2002/03/29 20:32:01 
vgritsenko Exp $
    */
   public abstract class CompiledProgrammingLanguage extends 
AbstractProgrammingLanguage implements Contextualizable {
   
  @@ -84,7 +84,7 @@
       /**
        * Set the configuration parameters. This method instantiates the 
sitemap-specified language compiler
        * @param params The configuration parameters
  -     * @exception Exception If the language compiler cannot be loaded
  +     * @exception ParameterException If the language compiler cannot be loaded
        */
       public void parameterize(Parameters params) throws ParameterException {
           super.parameterize(params);
  @@ -99,8 +99,8 @@
       }
   
       /**
  -     * Set the global component manager
  -     * @param manager The global component manager
  +     * Set the context
  +     * @param context The context
        */
       public void contextualize(Context context) throws ContextException {
           this.classpath = (String) context.get(Constants.CONTEXT_CLASSPATH);
  @@ -124,8 +124,7 @@
        * @param program The previously loaded object program
        * @param filename The base filename of the object program
        * @param baseDirectory The directory contaning the object program file
  -     * @return the value
  -     * @exception EXCEPTION_NAME If an error occurs
  +     * @exception LanguageException If an error occurs
        */
       protected final void doUnload(Object program, String filename, File 
baseDirectory) throws LanguageException {
           int index = filename.lastIndexOf(File.separator);
  @@ -162,8 +161,8 @@
       protected abstract void compile(String filename, File baseDirectory, String 
encoding) throws LanguageException;
   
       /**
  -     * Load an object program from a file.
  -     * This method compiled the corresponding source file if necessary.
  +     * Preload an object program from a file.
  +     * This method does not compiles the corresponding source file.
        *
        * @param filename The object program base file name
        * @param baseDirectory The directory containing the object program file
  @@ -171,17 +170,28 @@
        * @return The loaded object program
        * @exception LanguageException If an error occurs during compilation
        */
  -    public Program load(String filename, File baseDirectory, String encoding) 
throws LanguageException {
  -
  -        // Used for preload/precompile option.
  +    public Program preload(String filename, File baseDirectory, String encoding) 
throws LanguageException {
           // Don't need to test for existence of the object code as it might be 
bundled into the WAR.
           try {
               Class program = this.loadProgram(filename, baseDirectory);
               Object testInstance = program.newInstance();
               return new JavaProgram(program);
           } catch (Throwable t) {
  -            // Ignore errors if any, try to compile.
  +            throw new LanguageException("Unable to preload program " + filename, t);
           }
  +    }
  +
  +    /**
  +     * Load an object program from a file.
  +     * This method compiles the corresponding source file if necessary.
  +     *
  +     * @param filename The object program base file name
  +     * @param baseDirectory The directory containing the object program file
  +     * @param encoding The encoding expected in the source file or 
<code>null</code> if it is the platform's default encoding
  +     * @return The loaded object program
  +     * @exception LanguageException If an error occurs during compilation
  +     */
  +    public Program load(String filename, File baseDirectory, String encoding) 
throws LanguageException {
   
           // Does source file exist?
           File sourceFile = new File(baseDirectory, filename + "." + 
this.getSourceExtension());
  
  
  
  1.7       +14 -1     
xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/ProgrammingLanguage.java
  
  Index: ProgrammingLanguage.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/ProgrammingLanguage.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ProgrammingLanguage.java  22 Feb 2002 07:00:09 -0000      1.6
  +++ ProgrammingLanguage.java  29 Mar 2002 20:32:01 -0000      1.7
  @@ -61,7 +61,7 @@
    * This interface states the functionality of a programming language processor
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
  - * @version CVS $Id: ProgrammingLanguage.java,v 1.6 2002/02/22 07:00:09 cziegeler 
Exp $
  + * @version CVS $Id: ProgrammingLanguage.java,v 1.7 2002/03/29 20:32:01 vgritsenko 
Exp $
    */
   public interface ProgrammingLanguage extends Component {
   
  @@ -73,6 +73,19 @@
        * @return The canonical source file extension
        */
       String getSourceExtension();
  +
  +    /**
  +     * Preload a program from a file
  +     *
  +     * @param filename The program base file name
  +     * @param baseDirectory The directory containing the program file
  +     * @param encoding The encoding expected in the source file or
  +     * <code>null</code> if it is the platform's default encoding
  +     * @return The loaded program
  +     * @exception LanguageException If an error occurs during loading
  +     */
  +    Program preload(String filename, File baseDirectory, String encoding)
  +            throws LanguageException;
   
       /**
        * Load a program from a file
  
  
  
  1.7       +2 -2      
xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/java/AbstractJavaCompiler.java
  
  Index: AbstractJavaCompiler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/java/AbstractJavaCompiler.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AbstractJavaCompiler.java 22 Feb 2002 07:00:09 -0000      1.6
  +++ AbstractJavaCompiler.java 29 Mar 2002 20:32:01 -0000      1.7
  @@ -63,7 +63,7 @@
   /**
    * This class implements the functionality common to all Java compilers.
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
  - * @version CVS $Id: AbstractJavaCompiler.java,v 1.6 2002/02/22 07:00:09 cziegeler 
Exp $
  + * @version CVS $Id: AbstractJavaCompiler.java,v 1.7 2002/03/29 20:32:01 vgritsenko 
Exp $
    * @since 2.0
    */
   public abstract class AbstractJavaCompiler extends AbstractLoggable implements 
LanguageCompiler, Recyclable {
  @@ -171,7 +171,7 @@
       /**
        * Fill the arguments taken by the Java compiler
        *
  -     * @param argument The list of compilation arguments
  +     * @param arguments The list of compilation arguments
        * @return The prepared list of compilation arguments
        */
       protected List fillArguments(List arguments) {
  
  
  
  1.10      +5 -1      
xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/javascript/JavascriptLanguage.java
  
  Index: JavascriptLanguage.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/javascript/JavascriptLanguage.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- JavascriptLanguage.java   8 Mar 2002 04:08:53 -0000       1.9
  +++ JavascriptLanguage.java   29 Mar 2002 20:32:01 -0000      1.10
  @@ -73,9 +73,13 @@
    * The class specified will be used as a Java wrapper interpreting javascript 
program.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vadim Gritsenko</a>
  - * @version CVS $Id: JavascriptLanguage.java,v 1.9 2002/03/08 04:08:53 vgritsenko 
Exp $
  + * @version CVS $Id: JavascriptLanguage.java,v 1.10 2002/03/29 20:32:01 vgritsenko 
Exp $
    */
   public class JavascriptLanguage extends AbstractProgrammingLanguage implements 
ProgrammingLanguage {
  +
  +    public Program preload(String filename, File baseDirectory, String encoding) 
throws LanguageException {
  +        return load(filename, baseDirectory, encoding);
  +    }
   
       public Program load(String filename, File baseDirectory, String encoding) 
throws LanguageException {
           // Does source file exist?
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to