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/21 03:42:49 UTC
cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/javascript CompiledJavascriptLanguage.java JavascriptLanguage.java JavascriptProgram.java
vgritsenko 02/02/20 18:42:49
Modified: src/java/org/apache/cocoon/components/language/markup/xsp/javascript
xsp.xsl
src/java/org/apache/cocoon/components/language/programming/javascript
CompiledJavascriptLanguage.java
JavascriptLanguage.java JavascriptProgram.java
Log:
Implement dependency checking for Javascript XSP pages
Revision Changes Path
1.3 +15 -13 xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/javascript/xsp.xsl
Index: xsp.xsl
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/javascript/xsp.xsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xsp.xsl 11 Feb 2002 04:45:40 -0000 1.2
+++ xsp.xsl 21 Feb 2002 02:42:49 -0000 1.3
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<!-- $Id: xsp.xsl,v 1.2 2002/02/11 04:45:40 vgritsenko Exp $-->
+<!-- $Id: xsp.xsl,v 1.3 2002/02/21 02:42:49 vgritsenko Exp $-->
<!--
*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
@@ -12,11 +12,12 @@
-->
<!--
+ * XSP Core logicsheet for the JavaScript language
+ *
* @author <a href="mailto:vgritsenko@apache.org>Vadim Gritsenko</a>
- * @version CVS $Revision: 1.2 $ $Date: 2002/02/11 04:45:40 $
+ * @version CVS $Revision: 1.3 $ $Date: 2002/02/21 02:42:49 $
-->
-<!-- XSP Core logicsheet for the JavaScript language -->
<xsl:stylesheet version="1.0"
xmlns:xsp="http://apache.org/xsp"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
@@ -38,21 +39,22 @@
xmlns:XSLTExtension="org.apache.cocoon.components.language.markup.xsp.java.XSLTExtension"/>
<xsl:template match="/">
- <code xml:space="preserve">// $Cocoon extends: org.apache.cocoon.components.language.markup.xsp.JSGenerator$
+ <code>
+ <xsl:text>// $Cocoon extends: org.apache.cocoon.components.language.markup.xsp.JSGenerator$
+</xsl:text>
+ <xsl:for-each select="//xsp:dependency">
+ <xsl:text>// $Cocoon depends: </xsl:text>
+ <xsl:value-of select="translate(., '\','/')"/>
+ <xsl:text>$
+</xsl:text>
+ </xsl:for-each>
+
<xsl:apply-templates select="xsp:page"/>
</code>
</xsl:template>
- <xsl:template match="xsp:page">
+ <xsl:template match="xsp:page" xml:space="preserve">
// Generated by XSP. Edit at your own risk, :-)
-
- function getDependencies() {
- <xsl:text>return "</xsl:text>
- <xsl:for-each select="//xsp:dependency">
- <xsl:value-of select="translate(., '\','/')"/><xsl:text>;</xsl:text>
- </xsl:for-each>
- <xsl:text>";</xsl:text>
- }
/* Built-in beans not available for use */
// page - "this" in Java
1.2 +2 -2 xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/javascript/CompiledJavascriptLanguage.java
Index: CompiledJavascriptLanguage.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/javascript/CompiledJavascriptLanguage.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CompiledJavascriptLanguage.java 9 Feb 2002 03:32:05 -0000 1.1
+++ CompiledJavascriptLanguage.java 21 Feb 2002 02:42:49 -0000 1.2
@@ -66,7 +66,7 @@
* The compiled Javascript (Rhino) programming language processor
*
* @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a>
- * @version CVS $Id: CompiledJavascriptLanguage.java,v 1.1 2002/02/09 03:32:05 vgritsenko Exp $
+ * @version CVS $Id: CompiledJavascriptLanguage.java,v 1.2 2002/02/21 02:42:49 vgritsenko Exp $
*/
public class CompiledJavascriptLanguage extends JavaLanguage {
@@ -82,7 +82,7 @@
/**
* Compile a source file yielding a loadable class file.
*
- * @param filename The object program base file name
+ * @param name 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
1.7 +31 -16 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- JavascriptLanguage.java 10 Feb 2002 05:08:24 -0000 1.6
+++ JavascriptLanguage.java 21 Feb 2002 02:42:49 -0000 1.7
@@ -67,6 +67,7 @@
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.util.ArrayList;
/**
* The interpreted Javascript programming language.
@@ -77,7 +78,7 @@
* The class specified will be used as a Java wrapper interpreting javascript program.
*
* @author <a href="mailto:vgritsenko@apache.org">Vadim Gritsenko</a>
- * @version CVS $Id: JavascriptLanguage.java,v 1.6 2002/02/10 05:08:24 vgritsenko Exp $
+ * @version CVS $Id: JavascriptLanguage.java,v 1.7 2002/02/21 02:42:49 vgritsenko Exp $
*/
public class JavascriptLanguage extends AbstractProgrammingLanguage implements ProgrammingLanguage {
@@ -99,30 +100,24 @@
}
Class clazz = null;
+ ArrayList dependecies = new ArrayList();
+
String className = null;
BufferedReader r = null;
try {
r = new BufferedReader(new FileReader(sourceFile));
- className = r.readLine();
- if (className != null) {
- int i = className.indexOf("$Cocoon extends: ");
- if (i != -1) {
- int j = className.indexOf("$", i + 1);
- if (j != -1) {
- className = className.substring(i + "$Cocoon extends: ".length(), j);
- } else {
- className = null;
- }
- } else {
- className = null;
- }
- }
+ className = getMeta(r.readLine(), "extends");
if (className == null) {
throw new LanguageException("Can't load program - Signature is not found: "
+ IOUtils.getFullFilename(sourceFile));
}
clazz = ClassUtils.loadClass(className);
+
+ String line;
+ while((line = getMeta(r.readLine(), "depends")) != null) {
+ dependecies.add(line);
+ }
} catch (IOException e) {
throw new LanguageException("Can't load program - Signature is not found: "
+ IOUtils.getFullFilename(sourceFile));
@@ -136,7 +131,27 @@
}
}
- return new JavascriptProgram(sourceFile, clazz);
+ return new JavascriptProgram(sourceFile, clazz, dependecies);
+ }
+
+ private String getMeta(String line, String meta) {
+ if (line == null) {
+ return null;
+ }
+
+ meta = "$Cocoon " + meta + ": ";
+ int i = line.indexOf(meta);
+ if (i != -1) {
+ int j = line.indexOf("$", i + 1);
+ if (j != -1) {
+ line = line.substring(i + meta.length(), j);
+ } else {
+ line = null;
+ }
+ } else {
+ line = null;
+ }
+ return line;
}
protected void doUnload(Object program, String filename, File baseDir)
1.2 +12 -2 xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java
Index: JavascriptProgram.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/programming/javascript/JavascriptProgram.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JavascriptProgram.java 9 Feb 2002 03:32:05 -0000 1.1
+++ JavascriptProgram.java 21 Feb 2002 02:42:49 -0000 1.2
@@ -68,6 +68,8 @@
import org.apache.cocoon.components.language.programming.Program;
import java.io.File;
+import java.util.Collection;
+import java.util.Iterator;
public class JavascriptProgram implements Program {
@@ -75,14 +77,22 @@
protected Class clazz;
protected DefaultConfiguration config;
- public JavascriptProgram(File file, Class clazz) {
+ public JavascriptProgram(File file, Class clazz, Collection dependecies) {
+ DefaultConfiguration child;
+
this.file = file;
this.clazz = clazz;
config = new DefaultConfiguration("", "GeneratorSelector");
- DefaultConfiguration child = new DefaultConfiguration("file", "");
+ child = new DefaultConfiguration("file", "");
child.setValue(file.toString());
config.addChild(child);
+
+ for (Iterator i = dependecies.iterator(); i.hasNext(); ) {
+ child = new DefaultConfiguration("dependency", "");
+ child.setValue(i.next().toString());
+ config.addChild(child);
+ }
}
public String getName() {
----------------------------------------------------------------------
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