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]