Author: markt
Date: Tue Jun 12 19:07:43 2007
New Revision: 546706

URL: http://svn.apache.org/viewvc?view=rev&rev=546706
Log:
Add generation of html versions of source files for the examples webapp.

Added:
    tomcat/tc6.0.x/trunk/java/org/apache/tomcat/buildutil/
    tomcat/tc6.0.x/trunk/java/org/apache/tomcat/buildutil/Txt2Html.java   (with 
props)
Modified:
    tomcat/tc6.0.x/trunk/build.xml

Modified: tomcat/tc6.0.x/trunk/build.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/build.xml?view=diff&rev=546706&r1=546705&r2=546706
==============================================================================
--- tomcat/tc6.0.x/trunk/build.xml (original)
+++ tomcat/tc6.0.x/trunk/build.xml Tue Jun 12 19:07:43 2007
@@ -506,6 +506,84 @@
              excludes="**/CVS/**,**/.svn/**">
     </javac>
 
+       <!-- Add sources for examples -->
+       <taskdef    name="txt2html"
+                  classname="org.apache.tomcat.buildutil.Txt2Html"
+           classpath="${tomcat.classes}" />
+    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/simpletag">
+      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples">
+        <include name="BookBean.java"/>
+      </fileset>
+      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/simpletag">
+        <include name="FindBookSimpleTag.java"/>
+        <include name="RepeatSimpleTag.java"/>
+        <include name="HelloWorldSimpleTag.java"/>
+      </fileset>
+      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/el">
+        <include name="Functions.java"/>
+      </fileset>
+    </txt2html>
+
+    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/jspattribute">
+      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples">
+        <include name="FooBean.java"/>
+      </fileset>
+      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/simpletag">
+        <include name="ShuffleSimpleTag.java"/>
+        <include name="TileSimpleTag.java"/>
+        <include name="HelloWorldSimpleTag.java"/>
+      </fileset>
+    </txt2html>
+
+    <txt2html todir="${tomcat.build}/webapps/examples/jsp/cal">
+      <fileset dir="webapps/examples/WEB-INF/classes/cal">
+        <include name="Entries.java"/>
+        <include name="Entry.java"/>
+        <include name="JspCalendar.java"/>
+        <include name="TableBean.java"/>
+      </fileset>
+    </txt2html>
+
+    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsptoserv">
+      <fileset dir="webapps/examples/WEB-INF/classes">
+        <include name="servletToJsp.java"/>
+      </fileset>
+    </txt2html>
+
+    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/el">
+      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/el">
+        <include name="Functions.java"/>
+      </fileset>
+    </txt2html>
+
+    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/misc">
+      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/simpletag">
+        <include name="EchoAttributesTag.java"/>
+      </fileset>
+    </txt2html>
+
+    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/tagfiles">
+      <fileset dir="webapps/examples/WEB-INF/tags">
+        <include name="**/*.tag" />
+      </fileset>
+    </txt2html>
+
+    <txt2html todir="${tomcat.build}/webapps/examples">
+      <fileset dir="webapps/examples">
+        <include name="**/*.jsp" />
+        <include name="**/*.jspx" />
+        <include name="**/*.jspf" />
+        <exclude name="error/errorpge.jsp"/>
+        <exclude name="forward/one.jsp"/>
+        <exclude name="include/foo.jsp"/>
+        <exclude name="jsptoserv/hello.jsp"/>
+        <exclude name="security/protected/error.jsp"/>
+        <exclude name="security/protected/index.jsp"/>
+        <exclude name="security/protected/login.jsp"/>
+        <exclude name="source.jsp"/>
+      </fileset>
+    </txt2html>
+
        <copy file="${tomcat-dbcp.jar}" todir="${tomcat.build}/lib" />
     <copy file="${jasper-jdt.jar}" todir="${tomcat.build}/lib" />
 

Added: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/buildutil/Txt2Html.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/buildutil/Txt2Html.java?view=auto&rev=546706
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/buildutil/Txt2Html.java (added)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/buildutil/Txt2Html.java Tue Jun 
12 19:07:43 2007
@@ -0,0 +1,164 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package org.apache.tomcat.buildutil;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.DirectoryScanner;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.types.FileSet;
+
+/**
+ * Ant task to convert a given set of files from Text to HTML.
+ * Inserts an HTML header including pre tags and replaces special characters
+ * with their HTML escaped equivalents.
+ *
+ * <p>This task is currently used by the ant script to build our examples</p>
+ *
+ * @author Mark Roth
+ */
+public class Txt2Html 
+    extends Task 
+{
+    
+    /** The directory to contain the resulting files */
+    private File todir;
+    
+    /** The file to be converted into HTML */
+    private List<FileSet> filesets = new LinkedList<FileSet>();
+    
+    /**
+     * Sets the directory to contain the resulting files
+     *
+     * @param todir The directory
+     */
+    public void setTodir( File todir ) {
+        this.todir = todir;
+    }
+    
+    /**
+     * Sets the files to be converted into HTML
+     *
+     * @param fileset The fileset to be converted.
+     */
+    public void addFileset( FileSet fs ) {
+        filesets.add( fs );
+    }
+    
+    /**
+     * Perform the conversion
+     *
+     * @param BuildException Thrown if an error occurs during execution of
+     *    this task.
+     */
+    public void execute() 
+        throws BuildException 
+    {
+        int count = 0;
+        
+        // Step through each file and convert.
+        Iterator iter = filesets.iterator();
+        while( iter.hasNext() ) {
+            FileSet fs = (FileSet)iter.next();
+            DirectoryScanner ds = fs.getDirectoryScanner( project );
+            File basedir = ds.getBasedir();
+            String[] files = ds.getIncludedFiles();
+            for( int i = 0; i < files.length; i++ ) {
+                File from = new File( basedir, files[i] );
+                File to = new File( todir, files[i] + ".html" );
+                if( !to.exists() || 
+                    (from.lastModified() > to.lastModified()) ) 
+                {
+                    log( "Converting file '" + from.getAbsolutePath() + 
+                        "' to '" + to.getAbsolutePath(), Project.MSG_VERBOSE );
+                    try {
+                        convert( from, to );
+                    }
+                    catch( IOException e ) {
+                        throw new BuildException( "Could not convert '" + 
+                            from.getAbsolutePath() + "' to '" + 
+                            to.getAbsolutePath() + "'", e );
+                    }
+                    count++;
+                }
+            }
+            if( count > 0 ) {
+                log( "Converted " + count + " file" + (count > 1 ? "s" : "") + 
+                    " to " + todir.getAbsolutePath() );
+            }
+        }
+    }
+    
+    /**
+     * Perform the actual copy and conversion
+     *
+     * @param from The input file
+     * @param to The output file
+     * @throws IOException Thrown if an error occurs during the conversion
+     */
+    private void convert( File from, File to )
+        throws IOException
+    {
+        // Open files:
+        BufferedReader in = new BufferedReader( new FileReader( from ) );
+        PrintWriter out = new PrintWriter( new FileWriter( to ) );
+        
+        // Output header:
+        out.println( "<html><body><pre>" );
+        
+        // Convert, line-by-line:
+        String line;
+        while( (line = in.readLine()) != null ) {
+            StringBuffer result = new StringBuffer();
+            int len = line.length();
+            for( int i = 0; i < len; i++ ) {
+                char c = line.charAt( i );
+                switch( c ) {
+                    case '&':
+                        result.append( "&amp;" );
+                        break;
+                    case '<':
+                        result.append( "&lt;" );
+                        break;
+                    default:
+                        result.append( c );
+                }
+            }
+            out.println( result.toString() );
+        }
+        
+        // Output footer:
+        out.println( "</pre></body></html>" );
+        
+        // Close streams:
+        out.close();
+        in.close();
+    }
+    
+}
+
+

Propchange: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/buildutil/Txt2Html.java
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to