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( "&" ); + break; + case '<': + result.append( "<" ); + 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]