aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pepping <spepping@apache.org>2005-08-23 19:13:28 +0000
committerSimon Pepping <spepping@apache.org>2005-08-23 19:13:28 +0000
commit9baeaf4db1d4a019ee85ba0384c923823c4589af (patch)
tree44bea7c32dff70b33d97e3936bdd83e82d7331ea
parent2da2a980e2230bdd9f00f1b220b40337d718de98 (diff)
downloadxmlgraphics-fop-9baeaf4db1d4a019ee85ba0384c923823c4589af.tar.gz
xmlgraphics-fop-9baeaf4db1d4a019ee85ba0384c923823c4589af.zip
Reintroduce they user's hyphenation patterns into the build process.
Fix a bug in the jar-hyphenation target. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@239447 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--build.xml14
-rw-r--r--src/java/org/apache/fop/tools/anttasks/SerializeHyphPattern.java56
2 files changed, 44 insertions, 26 deletions
diff --git a/build.xml b/build.xml
index 8ff595cc7..6e6363bad 100644
--- a/build.xml
+++ b/build.xml
@@ -171,6 +171,7 @@ list of possible build targets.
<property name="xdocs.dir" value="${src.dir}/documentation/content/xdocs"/>
<property name="fo.examples.dir" value="${basedir}/examples/fo/basic"/>
<property name="lib.dir" value="${basedir}/lib"/>
+ <property name="user.hyph.dir" value="${basedir}/hyph"/>
<property name="build.dir" value="${basedir}/build"/>
<property name="build.gensrc.dir" value="${build.dir}/gensrc"/>
@@ -385,9 +386,14 @@ list of possible build targets.
</path>
<taskdef name="serHyph" classname="org.apache.fop.tools.anttasks.SerializeHyphPattern" classpathref="hyph-classpath"/>
<mkdir dir="${build.dir}/hyph"/>
- <serHyph includes="*.xml"
- sourceDir="${src.hyph.dir}"
- targetDir="${build.dir}/hyph"/>
+ <serHyph targetDir="${build.dir}/hyph">
+ <fileset dir="${user.hyph.dir}">
+ <include name="*.xml"/>
+ </fileset>
+ <fileset dir="${src.hyph.dir}">
+ <include name="*.xml"/>
+ </fileset>
+ </serHyph>
</target>
<target name="uptodate-jar-hyphenation" depends="compile-hyphenation">
@@ -400,7 +406,7 @@ list of possible build targets.
<tstamp>
<format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
</tstamp>
- <jar jarfile="${build.dir}/fop-hyph.jar" basedir="${build.dir}/hyph">
+ <jar jarfile="${build.dir}/fop-hyph.jar" basedir="${build.dir}" includes="hyph/*.hyp">
<manifest>
<attribute name="Implementation-Title" value="${Name}"/>
<attribute name="Implementation-Version" value="${version}"/>
diff --git a/src/java/org/apache/fop/tools/anttasks/SerializeHyphPattern.java b/src/java/org/apache/fop/tools/anttasks/SerializeHyphPattern.java
index 8c55da558..e99c0f7c9 100644
--- a/src/java/org/apache/fop/tools/anttasks/SerializeHyphPattern.java
+++ b/src/java/org/apache/fop/tools/anttasks/SerializeHyphPattern.java
@@ -22,10 +22,12 @@ package org.apache.fop.tools.anttasks;
import java.io.File;
import java.io.IOException;
import java.io.ObjectOutputStream;
+import java.util.List;
// Ant
-import org.apache.tools.ant.taskdefs.MatchingTask;
+import org.apache.tools.ant.Task;
import org.apache.tools.ant.DirectoryScanner;
+import org.apache.tools.ant.types.FileSet;
// FOP
import org.apache.fop.hyphenation.HyphenationTree;
@@ -36,34 +38,42 @@ import org.apache.fop.hyphenation.HyphenationException;
*/
-public class SerializeHyphPattern extends MatchingTask {
- private File sourceDir, targetDir;
+public class SerializeHyphPattern extends Task {
+ private List filesets = new java.util.ArrayList();
+ private File targetDir;
private boolean errorDump = false;
/**
* @see org.apache.tools.ant.Task#execute()
*/
public void execute() throws org.apache.tools.ant.BuildException {
- DirectoryScanner ds = this.getDirectoryScanner(sourceDir);
- String[] files = ds.getIncludedFiles();
- for (int i = 0; i < files.length; i++) {
- processFile(files[i].substring(0, files[i].length() - 4));
+ // deal with the filesets
+ for (int i = 0; i < getFilesets().size(); i++) {
+ FileSet fs = (FileSet) getFilesets().get(i);
+ DirectoryScanner ds = fs.getDirectoryScanner(getProject());
+ File basedir = ds.getBasedir();
+ String[] files = ds.getIncludedFiles();
+ for (int j = 0; j < files.length; j++) {
+ processFile(basedir, files[j].substring(0, files[j].length() - 4));
+ }
}
} // end execute
/**
- * Sets the source directory.
- * @param sourceDir source directory
+ * Adds a set of pattern files (nested fileset attribute).
+ * @param set a fileset
*/
- public void setSourceDir(String sourceDir) {
- File dir = new File(sourceDir);
- if (!dir.exists()) {
- System.err.println("Fatal Error: source directory " + sourceDir
- + " for hyphenation files doesn't exist.");
- System.exit(1);
- }
- this.sourceDir = dir;
+ public void addFileset(FileSet set) {
+ filesets.add(set);
+ }
+
+ /**
+ * Returns the current list of filesets.
+ * @return the filesets
+ */
+ public List getFilesets() {
+ return this.filesets;
}
/**
@@ -88,8 +98,8 @@ public class SerializeHyphPattern extends MatchingTask {
* checks whether input or output files exists or the latter is older than input file
* and start build if necessary
*/
- private void processFile(String filename) {
- File infile = new File(sourceDir, filename + ".xml");
+ private void processFile(File basedir, String filename) {
+ File infile = new File(basedir, filename + ".xml");
File outfile = new File(targetDir, filename + ".hyp");
//long outfileLastModified = outfile.lastModified();
boolean startProcess = true;
@@ -154,9 +164,11 @@ public class SerializeHyphPattern extends MatchingTask {
* //quick access for debugging
* public static void main (String args[]) {
* SerializeHyphPattern ser = new SerializeHyphPattern();
- * ser.setIncludes("*.xml");
- * ser.setSourceDir("\\xml-fop\\hyph\\");
- * ser.setTargetDir("\\xml-fop\\hyph\\");
+ * FileSet set = new FileSet();
+ * set.setDir(new File("src/hyph"));
+ * set.setIncludes("*.xml");
+ * ser.addFileset(set);
+ * ser.setTargetDir("build/hyph");
* ser.execute();
* }
*/