/* * 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;
/** * 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
*/ publicclass Txt2Html extends Task
{
/** The directory to contain the resulting files */ private File todir;
/** The file to be converted into HTML */ privatefinal List<FileSet> filesets = new ArrayList<>();
/** * The encoding of the source files (.java and .jsp). Once they use * UTF-8, this will need to be updated.
*/ privatestaticfinal String SOURCE_ENCODING = "ISO-8859-1";
/** * Line terminator to be used for separating lines of the generated * HTML page, to be independent from "line.separator" system property.
*/ privatestaticfinal String LINE_SEPARATOR = "\r\n";
/** * Sets the directory to contain the resulting files * * @param todir The directory
*/ publicvoid setTodir( File todir ) { this.todir = todir;
}
/** * Sets the files to be converted into HTML * * @param fs The fileset to be converted.
*/ publicvoid addFileset( FileSet fs ) {
filesets.add( fs );
}
/** * Perform the conversion * * @throws BuildException if an error occurs during execution of * this task.
*/
@Override publicvoid execute() throws BuildException
{ int count = 0;
// Step through each file and convert. for (FileSet fs : filesets) {
DirectoryScanner ds = fs.getDirectoryScanner(getProject());
File basedir = ds.getBasedir();
String[] files = ds.getIncludedFiles(); for (String file : files) {
File from = new File(basedir, file);
File to = new File(todir, file + ".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) { thrownew 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
*/ privatevoid convert( File from, File to ) throws IOException
{ // Open files: try (BufferedReader in = new BufferedReader(new InputStreamReader( new FileInputStream(from), SOURCE_ENCODING))) { try (PrintWriter out = new PrintWriter(new OutputStreamWriter( new FileOutputStream(to), "UTF-8"))) {
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.