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