ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ste...@apache.org
Subject cvs commit: jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/optional JspcTest.java
Date Fri, 31 Jan 2003 07:10:28 GMT
stevel      2003/01/30 23:10:28

  Modified:    src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers
                        JasperC.java JspCompilerAdapterFactory.java
               src/main/org/apache/tools/ant/taskdefs/optional/jsp
                        JspC.java JspNameMangler.java
               src/etc/testcases/taskdefs/optional jspc.xml
               src/testcases/org/apache/tools/ant/taskdefs/optional
                        JspcTest.java
  Log:
  jasper4.1 name mangling support via new name mangler, a new compiler in the factory (jasper41),
and various new tests.
  
  Revision  Changes    Path
  1.14      +12 -18    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java
  
  Index: JasperC.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JasperC.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JasperC.java	13 Jan 2003 15:52:12 -0000	1.13
  +++ JasperC.java	31 Jan 2003 07:10:27 -0000	1.14
  @@ -73,6 +73,17 @@
    * @since ant1.5
    */
   public class JasperC extends DefaultJspCompilerAdapter {
  +
  +
  +    /**
  +     * what produces java classes from .jsp files
  +     */
  +    JspMangler mangler;
  +
  +    public JasperC(JspMangler mangler) {
  +        this.mangler = mangler;
  +    }
  +
       /**
        * our execute method
        */
  @@ -80,28 +91,11 @@
           throws BuildException {
           getJspc().log("Using jasper compiler", Project.MSG_VERBOSE);
           CommandlineJava cmd = setupJasperCommand();
  -        /*
  -        Path classpath=cmd.createClasspath(getProject());
  -        if (getJspc().getClasspath() != null) {
  -            classpath=getJspc().getClasspath();
  -        } else {
  -            classpath.concatSystemClasspath();
  -        }
  -        ExecuteJava exec=new ExecuteJava();
  -        exec.execute(getProject());
  -        if ((err = executeJava()) != 0) {
  -            if (failOnError) {
  -                throw new BuildException("Java returned: " + err, location);
  -            } else {
  -                log("Java Result: " + err, Project.MSG_ERR);
  -            }
  -        */
   
   
           try {
               // Create an instance of the compiler, redirecting output to
               // the project log
  -            // REVISIT. ugly. 
               Java java = (Java) (getProject().createTask("java"));
               if (getJspc().getClasspath() != null) {
                   getProject().log("using user supplied classpath: "+getJspc().getClasspath(),
  @@ -175,6 +169,6 @@
        */
   
       public JspMangler createMangler() {
  -        return new JspNameMangler();
  +        return mangler;
       }
   }
  
  
  
  1.5       +10 -4     jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JspCompilerAdapterFactory.java
  
  Index: JspCompilerAdapterFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/compilers/JspCompilerAdapterFactory.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JspCompilerAdapterFactory.java	24 Jan 2003 14:18:23 -0000	1.4
  +++ JspCompilerAdapterFactory.java	31 Jan 2003 07:10:27 -0000	1.5
  @@ -56,6 +56,8 @@
   import org.apache.tools.ant.AntClassLoader;
   import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.Task;
  +import org.apache.tools.ant.taskdefs.optional.jsp.JspNameMangler;
  +import org.apache.tools.ant.taskdefs.optional.jsp.Jasper41Mangler;
   
   
   /**
  @@ -63,6 +65,7 @@
    *
    * @author <a href="mailto:jayglanville@home.com">J D Glanville</a>
    * @author Matthew Watson <a href="mailto:mattw@i3sp.com">mattw@i3sp.com</a>
  + * @author Steve Loughran
    */
   public class JspCompilerAdapterFactory {
   
  @@ -112,11 +115,14 @@
       public static JspCompilerAdapter getCompiler(String compilerType, Task task,
                                                    AntClassLoader loader)
           throws BuildException {
  -        /* If I've done things right, this should be the extent of the
  -         * conditional statements required.
  -         */
  +
           if (compilerType.equalsIgnoreCase("jasper")) {
  -            return new JasperC();
  +            //tomcat4.0 gets the old mangler
  +            return new JasperC(new JspNameMangler());
  +        }
  +        if (compilerType.equalsIgnoreCase("jasper41")) {
  +            //tomcat4.1 gets the new one
  +            return new JasperC(new Jasper41Mangler());
           }
           return resolveClassName(compilerType, loader);
       }
  
  
  
  1.28      +14 -17    jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java
  
  Index: JspC.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspC.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- JspC.java	24 Jan 2003 14:34:49 -0000	1.27
  +++ JspC.java	31 Jan 2003 07:10:27 -0000	1.28
  @@ -106,7 +106,6 @@
    * @since 1.5
    */
   public class JspC extends MatchingTask {
  -    /* ------------------------------------------------------------ */
       private Path classpath;
       private Path compilerClasspath;
       private Path src;
  @@ -155,11 +154,11 @@
   
       private static final String FAIL_MSG
           = "Compile failed, messages should have been provided.";
  -    /* ------------------------------------------------------------ */
  +
       /**
  -     * Path for source JSP files.
  +     * Set the path for source JSP files.
        */
  -    public void setSrcdir(Path srcDir) {
  +    public void setSrcDir(Path srcDir) {
           if (src == null) {
               src = srcDir;
           } else {
  @@ -169,7 +168,7 @@
       public Path getSrcDir(){
           return src;
       }
  -    /* ------------------------------------------------------------ */
  +
       /**
        * Set the destination directory into which the JSP source
        * files should be compiled.
  @@ -180,7 +179,6 @@
       public File getDestdir(){
           return destDir;
       }
  -    /* ------------------------------------------------------------ */
   
       /**
        * Set the name of the package the compiled jsp files should be in.
  @@ -193,7 +191,6 @@
           return packageName;
       }
   
  -    /* ------------------------------------------------------------ */
       /**
        * Set the verbose level of the compiler
        */
  @@ -204,7 +201,6 @@
           return verbose;
       }
   
  -    /* ------------------------------------------------------------ */
       /**
        * Whether or not the build should halt if compilation fails.
        * Defaults to <code>true</code>.
  @@ -218,15 +214,15 @@
       public boolean getFailonerror() {
           return failOnError;
       }
  -    /* ------------------------------------------------------------ */
  +
       public String getIeplugin() {
           return iepluginid;
       }
       /**
        * Java Plugin CLASSID for Internet Explorer
        */
  -    public void setIeplugin(String iepluginid_) {
  -        iepluginid = iepluginid_;
  +    public void setIeplugin(String iepluginid) {
  +        this.iepluginid = iepluginid;
       }
   
       /**
  @@ -237,12 +233,13 @@
       public boolean isMapped() {
           return mapped;
       }
  +
       /**
        * If true, generate separate write() calls for each HTML line
        * in the JSP.
        */
  -    public void setMapped(boolean mapped_) {
  -        mapped = mapped_;
  +    public void setMapped(boolean mapped) {
  +        this.mapped = mapped;
       }
   
       /**
  @@ -426,12 +423,12 @@
           // make sure that we've got a srcdir
           if (src == null) {
               throw new BuildException("srcdir attribute must be set!",
  -                                     location);
  -        }
  +                                     getLocation());
  +        } 
           String [] list = src.list();
           if (list.length == 0) {
               throw new BuildException("srcdir attribute must be set!",
  -                                     location);
  +                    getLocation());
           }
   
   
  @@ -449,7 +446,7 @@
           resetFileLists();
           int filecount = 0;
           for (int i = 0; i < list.length; i++) {
  -            File srcDir = (File) getProject().resolveFile(list[i]);
  +            File srcDir = getProject().resolveFile(list[i]);
               if (!srcDir.exists()) {
                   throw new BuildException("srcdir \"" + srcDir.getPath() +
                                            "\" does not exist!", getLocation());
  
  
  
  1.8       +3 -3      jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspNameMangler.java
  
  Index: JspNameMangler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/jsp/JspNameMangler.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JspNameMangler.java	15 Apr 2002 14:56:33 -0000	1.7
  +++ JspNameMangler.java	31 Jan 2003 07:10:27 -0000	1.8
  @@ -55,7 +55,7 @@
   import java.io.File;
   
   /**
  - * This is a class derived from the Jasper code 
  + * This is a class derived from the Jasper code
    * (org.apache.jasper.compiler.CommandLineCompiler) to map from a JSP filename
    * to a valid Java classname.
    *
  @@ -159,7 +159,7 @@
        * definition of the char escaping algorithm
        *
        * @param ch char to mangle
  -     * @return mangled string; 5 digit hex value 
  +     * @return mangled string; 5 digit hex value
        */
       private static final String mangleChar(char ch) {
   
  @@ -183,7 +183,7 @@
       /**
        * taking in the substring representing the path relative to the source dir
        * return a new string representing the destination path
  -     * @todo
  +     * not supported, as jasper in tomcat4.0 doesnt either
        */
       public String mapPath(String path) {
           return null;
  
  
  
  1.5       +9 -0      jakarta-ant/src/etc/testcases/taskdefs/optional/jspc.xml
  
  Index: jspc.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/etc/testcases/taskdefs/optional/jspc.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jspc.xml	10 Aug 2002 05:18:16 -0000	1.4
  +++ jspc.xml	31 Jan 2003 07:10:28 -0000	1.5
  @@ -9,6 +9,7 @@
           <property name="jsp.dir" location="jsp"/>
           <property name="jsp.output.dir" location="${jsp.dir}/java"/>
           <property name="jsp.verbosity" value="3"/>
  +        <property name="jsp.compiler" value="jasper41"/>
           <mkdir dir="${jsp.output.dir}"/>
       </target>
       
  @@ -23,6 +24,7 @@
           <jspc
              destdir="${jsp.output.dir}"
              srcdir="${jsp.dir}"
  +           compiler="${jsp.compiler}"
              verbose="${jsp.verbosity}">
               <include
                  name="missing_tld.jsp"/>
  @@ -30,6 +32,7 @@
      </target>
   
      <!-- this should compile to simple.java -->
  +    <!-- also, stick to the default compiler here to ensure it still works-->
      <target name="testSimple" depends="init">
           <jspc
              destdir="${jsp.output.dir}"
  @@ -46,6 +49,7 @@
              destdir="${jsp.output.dir}"
              uriroot="${jsp.dir}"
              srcdir="${jsp.dir}"
  +           compiler="${jsp.compiler}"
              verbose="${jsp.verbosity}">
               <include
                   name="uriroot.jsp"/>
  @@ -58,6 +62,7 @@
           destdir="${jsp.output.dir}"
           uriroot="${jsp.dir}"
           srcdir="${jsp.dir}"
  +        compiler="${jsp.compiler}"
           verbose="${jsp.verbosity}">
             <include name="xml.jsp"/>
         </jspc>
  @@ -68,6 +73,7 @@
           <jspc
              destdir="${jsp.output.dir}"
              srcdir="${jsp.dir}"
  +           compiler="${jsp.compiler}"
              verbose="${jsp.verbosity}">
               <include
                  name="default.jsp"/>
  @@ -79,6 +85,7 @@
           <jspc
              destdir="${jsp.output.dir}"
              srcdir="${jsp.dir}"
  +           compiler="${jsp.compiler}"
              verbose="${jsp.verbosity}">
               <include
                  name="1nvalid-classname.jsp"/>
  @@ -90,6 +97,7 @@
           <jspc
              destdir="${jsp.output.dir}"
              srcdir="${jsp.dir}"
  +           compiler="${jsp.compiler}"
              verbose="${jsp.verbosity}">
               <include
                  name="wrong_type.txt"/>
  @@ -100,6 +108,7 @@
      <target name="testWebapp" depends="init">
           <jspc
              destdir="${jsp.output.dir}"
  +           compiler="${jsp.compiler}"
              verbose="${jsp.verbosity}">
               <webapp basedir="${jsp.dir}" />
           </jspc>
  
  
  
  1.4       +64 -1     jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/optional/JspcTest.java
  
  Index: JspcTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/testcases/org/apache/tools/ant/taskdefs/optional/JspcTest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JspcTest.java	30 Dec 2002 06:11:14 -0000	1.3
  +++ JspcTest.java	31 Jan 2003 07:10:28 -0000	1.4
  @@ -57,6 +57,12 @@
   import java.util.Properties;
   
   import org.apache.tools.ant.BuildFileTest;
  +import org.apache.tools.ant.taskdefs.optional.jsp.JspMangler;
  +import org.apache.tools.ant.taskdefs.optional.jsp.Jasper41Mangler;
  +import org.apache.tools.ant.taskdefs.optional.jsp.JspC;
  +import org.apache.tools.ant.taskdefs.optional.jsp.JspNameMangler;
  +import org.apache.tools.ant.taskdefs.optional.jsp.compilers.JspCompilerAdapterFactory;
  +import org.apache.tools.ant.taskdefs.optional.jsp.compilers.JspCompilerAdapter;
   
   /**
    * Tests the Jspc task.
  @@ -163,8 +169,23 @@
       }
   
   
  +    /**
  +     * A unit test for JUnit
  +     */
  +    public void testNotAJspFile()  throws Exception {
  +        executeTarget("testNotAJspFile");
  +    }
   
       /**
  +     * webapp test is currently broken, because it picks up
  +     * on the missing_tld file, and bails. 
  +     */
  +/*
  +    public void testWebapp()  throws Exception {
  +        executeTarget("testWebapp");
  +    }
  +*/
  +    /**
        * run a target then verify the named file gets created
        *
        * @param target Description of Parameter
  @@ -191,7 +212,6 @@
           assertTrue("file " + filename + " is empty", file.length() > 0);
       }
   
  -
       /**
        * Gets the OutputFile attribute of the JspcTest object
        *
  @@ -201,5 +221,48 @@
       protected File getOutputFile(String subpath) {
           return new File(outDir, subpath);
       }
  +
  +    /**
  +     * verify that we select the appropriate mangler
  +     */
  +    public void testJasperNameManglerSelection() {
  +        JspCompilerAdapter adapter=
  +                JspCompilerAdapterFactory.getCompiler("jasper", null,null);
  +        JspMangler mangler=adapter.createMangler();
  +        assertTrue(mangler instanceof JspNameMangler);
  +        adapter= JspCompilerAdapterFactory.getCompiler("jasper41", null, null);
  +        mangler = adapter.createMangler();
  +        assertTrue(mangler instanceof Jasper41Mangler);
  +    }
  +
  +    public void testJasper41() {
  +        JspMangler mangler = new Jasper41Mangler();
  +        //java keywords are not special
  +        assertMapped(mangler, "for.jsp", "for_jsp");
  +        //underscores go in front of invalid start chars
  +        assertMapped(mangler, "0.jsp", "_0_jsp");
  +        //underscores at the front get an underscore too
  +        assertMapped(mangler, "_.jsp", "___jsp");
  +        //non java char at start => underscore then the the _hex value
  +        assertMapped(mangler, "-.jsp", "__0002d_jsp");
  +        //and paths are stripped
  +        char s = File.separatorChar;
  +        assertMapped(mangler, "" + s + s + "somewhere" + s + "file" + s + "index.jsp",
"index_jsp");
  +    }
  +
  +    /**
  +     * assert our mapping rules
  +     * @param mangler
  +     * @param filename
  +     * @param classname
  +     */
  +    protected void assertMapped(JspMangler mangler, String filename, String classname)
{
  +        String mappedname = mangler.mapJspToJavaName(new File(filename));
  +        assertTrue(filename+" should have mapped to "+classname
  +                    +" but instead mapped to "+mappedname,
  +                    classname.equals(mappedname));
  +    }
  +
  +
   }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ant-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: ant-dev-help@jakarta.apache.org


Mime
View raw message