Blob Blame History Raw
From 00e7220d86517677f7e6b5bd2e8412da5ca8bb9f Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Thu, 26 Nov 2009 13:24:49 +0100
Subject: [PATCH] Support formatting with Xalan

---
 common/build_common.xml |  107 ++++++++++++++++++++++++----------------------
 1 files changed, 56 insertions(+), 51 deletions(-)

diff --git a/common/build_common.xml b/common/build_common.xml
index 905cf49..7575449 100644
--- a/common/build_common.xml
+++ b/common/build_common.xml
@@ -18,6 +18,7 @@
 <property name="images" value="&common;/images"/>
 <property name="crimson" value="/usr/share/java/xerces-j2.jar"/>
 <property name="saxon" value="/usr/share/java/saxon.jar:${crimson}"/>
+<property name="xalan-j2" value="/usr/share/java/xalan-j2.jar:/usr/share/java/xalan-j2-serializer.jar"/>
 <property name="encoding" value="iso-8859-1"/>
 <property name="standardargs" value=""/>
 
@@ -31,8 +32,53 @@
   </patternset>
 </fileset>
 
+<!-- configure saxon xslt processor to use (default) -->
+<target name="use-saxon" unless="xalan">
+  <property name="standardargs" value="-param use.extensions 1"/>
+  <macrodef name="xslt-transform">
+     <attribute name="out" default=""/>
+     <attribute name="in"/>
+     <attribute name="xsl"/>
+     <attribute name="args" default=""/>
+     <sequential>
+       <property name="outarg." value=""/>
+       <condition property="outarg.@{out}" value="-o @{out}">
+         <not><equals arg1="@{out}" arg2=""/></not>
+       </condition>
+       <java classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
+         <arg line="${standardargs} ${outarg.@{out}} @{in} @{xsl} @{args}"/>
+         <classpath>
+           <pathelement path="${saxon}"/>
+         </classpath>
+       </java>
+     </sequential>
+  </macrodef>
+</target>
+
+<!-- configure xalan-j2 xslt processor to use -->
+<target name="use-xalan" if="xalan">
+  <macrodef name="xslt-transform">
+     <attribute name="out" default="" />
+     <attribute name="in"/>
+     <attribute name="xsl"/>
+     <attribute name="args" default=""/>
+     <sequential>
+       <property name="outarg." value=""/>
+       <condition property="outarg.@{out}" value="-out @{out}">
+         <not><equals arg1="@{out}" arg2=""/></not>
+       </condition>
+       <java classname="org.apache.xalan.xslt.Process" fork="yes" failonerror="yes">
+         <arg line="${standardargs} -in @{in} ${outarg.@{out}} -xsl @{xsl} @{args} -param base.dir ${user.dir}/dist/html/"/>
+         <classpath>
+           <pathelement path="${xalan-j2}"/>
+         </classpath>
+       </java>
+     </sequential>
+  </macrodef>
+</target>
+
 <!-- administrative targets -->
-<target name="init">
+<target name="init" depends="use-saxon,use-xalan">
   <condition property="python" value="python">
     <os family="unix"/>
   </condition>
@@ -140,22 +186,11 @@
     <param name="target" value="${html}"/>
   </antcall>
 
-  <java classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
-    <arg line="${standardargs} -o ${html}/index.html ${xml}/index.xml ${xsl}/index.xsl"/>
-    <classpath>
-      <pathelement path="${saxon}"/>
-    </classpath>
-  </java>
-
+  <xslt-transform out="${html}/index.html" in="${xml}/index.xml" xsl="${xsl}/index.xsl"/>
 </target>
 
 <target name="rss" depends="prepare">
-  <java classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
-    <arg line="${standardargs} -o ${html}/history.xml ${xml}/${project}.xml ${xsl}/rss.xsl"/>
-    <classpath>
-      <pathelement path="${saxon}"/>
-    </classpath>
-  </java>
+  <xslt-transform out="${html}/history.xml" in="${xml}/${project}.xml" xsl="${xsl}/rss.xsl"/>
 </target>
 
 <target name="html" depends="prepare,validatebook">
@@ -168,13 +203,7 @@
     <param name="ext" value="png"/>
   </antcall>
 
-  <java classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
-<!--    <arg line="${standardargs} -ds ${xml}/${project}.xml ${xsl}/html.xsl"/>-->
-    <arg line="${standardargs} ${xml}/${project}.xml ${xsl}/html.xsl"/>
-    <classpath>
-      <pathelement path="${saxon}"/>
-    </classpath>
-  </java>
+  <xslt-transform in="${xml}/${project}.xml" xsl="${xsl}/html.xsl"/>
 
   <antcall target="postprocess">
     <param name="target" value="${html}"/>
@@ -201,12 +230,7 @@
     <param name="ext" value="png"/>
   </antcall>
 
-  <java classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
-    <arg line="${standardargs} -o ${htmlflat}/${project}${lang}.html ${xml}/${project}.xml ${xsl}/htmlsingle.xsl"/>
-    <classpath>
-      <pathelement path="${saxon}"/>
-    </classpath>
-  </java>
+  <xslt-transform out="${htmlflat}/${project}${lang}.html" in="${xml}/${project}.xml" xsl="${xsl}/htmlsingle.xsl"/>
 
   <antcall target="postprocess">
     <param name="target" value="${htmlflat}"/>
@@ -220,12 +244,7 @@
 </target>
 
 <target name="word" if="illegalmonopoly" depends="prepare,validatebook">
-  <java classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
-    <arg line="${standardargs} -o ${word}/${project}.html ${xml}/${project}.xml ${xsl}/word2000.xsl"/>
-    <classpath>
-      <pathelement path="${saxon}"/>
-    </classpath>
-  </java>
+  <xslt-transform out="${word}/${project}.html" in="${xml}/${project}.xml" xsl="${xsl}/word2000.xsl"/>
 
   <antcall target="postprocess">
     <param name="target" value="${word}"/>
@@ -247,12 +266,7 @@
     <param name="ext" value="png"/>
   </antcall>
 
-  <java classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
-    <arg line="${standardargs} -o ${pdf}/${project}.html ${xml}/${project}.xml ${xsl}/pdf.xsl"/>
-    <classpath>
-      <pathelement path="${saxon}"/>
-    </classpath>
-  </java>
+  <xslt-transform out="${pdf}/${project}.html" in="${xml}/${project}.xml" xsl="${xsl}/pdf.xsl"/>
 
   <antcall target="postprocess">
     <param name="target" value="${pdf}"/>
@@ -275,12 +289,7 @@
 </target>
 
 <target name="text" depends="prepare,validatebook">
-  <java classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
-    <arg line="${standardargs} -o ${text}/${project}.html ${xml}/${project}.xml ${xsl}/text.xsl"/>
-    <classpath>
-      <pathelement path="${saxon}"/>
-    </classpath>
-  </java>
+  <xslt-transform out="${text}/${project}.html" in="${xml}/${project}.xml" xsl="${xsl}/text.xsl"/>
 
   <antcall target="postprocess">
     <param name="target" value="${text}"/>
@@ -305,12 +314,8 @@
   </antcall>
 
     
-  <java dir="${htmlhelp}" classname="com.icl.saxon.StyleSheet" fork="yes" failonerror="yes">
-    <arg line="${standardargs} -o ${project}.html ${htmlhelppathtoroot}/${xml}/${project}.xml ${htmlhelppathtoroot}/${xsl}/htmlhelp.xsl htmlhelp.encoding=${encoding}"/>
-    <classpath>
-      <pathelement path="${saxon}"/>
-    </classpath>
-  </java>
+  <xslt-transform out="${project}.html" in="${htmlhelppathtoroot/${xml}/${project}.xml"
+    xsl="${htmlhelppathtoroot}/${xsl}/htmlhelp.xsl" args="htmlhelp.encoding=${encoding}"/>
 
   <antcall target="colorize">
     <param name="target" value="${htmlhelp}"/>
-- 
1.6.5.2