klute 2005/05/16 14:39:22
Modified: . ant.dtd build.xml
src/java/org/apache/poi/dev RecordGenerator.java
src/records/styles record.xsl
src/scratchpad/src/org/apache/poi/generator
FieldIterator.java
Log:
- Improved the build process' with respect to its dependencies on JUnit,
JDepend and an XSLT processor.
- Included DDF in the generated javadoc API documentation.
- Excluded the obsolete HDF from the generated javadoc API documentation.
- Included the CLASSPATH environment variable in the javadoc classpath so
that references to third-party packages can be resolved.
- Removed all explicit references to Xalan and changed the HSSF record
generator to use any XSLT processor. However, that stuff seems to be very much
out of date: The XSL stylesheet won't compile even after an obvious fix. Thus
my modifications are untested but that stuff won't work anyway. I doubt it is
important.
- Did some beautifications on the build.xml file.
Revision Changes Path
1.3 +11 -43 jakarta-poi/ant.dtd
Index: ant.dtd
===================================================================
RCS file: /home/cvs/jakarta-poi/ant.dtd,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ant.dtd 31 Dec 2004 13:05:18 -0000 1.2
+++ ant.dtd 16 May 2005 21:39:21 -0000 1.3
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!ENTITY % boolean "(true|false|on|off|yes|no)">
-<!ENTITY % tasks "propertyfile | ccmkdir | importtypelib | vsscheckin | sql
| cvspass | p4reopen | csc | dirname | wlrun | p4label | p4revert |
replaceregexp | get | jjtree | sleep | jarlib-display | dependset | zip | patch
| jspc | style | test | tstamp | unwar | vsshistory | icontract | cvschangelog
| p4submit | ccmcheckin | p4change | bzip2 | sync | p4delete | vssadd | javadoc
| p4integrate | translate | signjar | cclock | chown | vajload |
jarlib-available | rexec | WsdlToDotnet | buildnumber | jpcovmerge | ejbjar |
war | stlist | rename | sequential | serverdeploy | property | subant | move |
ildasm | copydir | cccheckin | ccunlock | wljspc | fixcrlf | telnet | sosget |
pathconvert | record | p4sync | exec | ccmklabel | p4edit | manifest | maudit |
antlr | netrexxc | ftp | jpcovreport | execon | ccmcheckout | ant | xmlvalidate
| xslt | p4resolve | iplanet-ejbc | ccmcheckintask | gzip | native2ascii |
ccrmtype | starteam | ear | input | presetdef | rmic | checksum | mail |
loadfile | vsscheckout | stylebook | soscheckin | mimemail | stlabel | gunzip |
concat | cab | touch | parallel | splash | antcall | ccmkbl | cccheckout |
typedef | p4have | filter | xmlproperty | import | jdepend | copy | jsharpc |
symlink | antstructure | script | ccmcreatetask | rpm | delete | replace |
mmetrics | attrib | waitfor | untar | loadproperties | available |
echoproperties | junit | stcheckin | chgrp | vajexport | stcheckout | bunzip2 |
whichresource | copyfile | p4labelsync | vsscreate | macrodef | unjar | ejbc |
vbc | wsdltodotnet | mkdir | cvs | condition | tempfile | junitreport |
ccmkattr | taskdef | echo | ccupdate | java | vsslabel | renameext | basename |
javadoc2 | tar | vsscp | vajimport | p4fstat | setproxy | p4counter | wlstop |
ilasm | soscheckout | apply | ccuncheckout | jarlib-resolve | jlink |
cvstagdiff | javacc | chmod | pvcs | jarlib-manifest | jar | ccmklbtype | sound
| scriptdef | defaultexcludes | mparse | blgenclient | uptodate | jjdoc |
genkey | javah | ccmkelem | ccmreconfigure | fail | unzip | javac | p4add |
jpcoverage | soslabel | depend | vssget | deltree | ddcreator">
+<!ENTITY % tasks "propertyfile | ccmkdir | importtypelib | vsscheckin | sql
| cvspass | p4reopen | csc | dirname | wlrun | p4label | p4revert |
replaceregexp | get | jjtree | sleep | jarlib-display | dependset | zip | patch
| jspc | style | test | tstamp | unwar | vsshistory | icontract | cvschangelog
| p4submit | ccmcheckin | p4change | bzip2 | sync | p4delete | vssadd | javadoc
| p4integrate | translate | signjar | cclock | chown | vajload |
jarlib-available | rexec | WsdlToDotnet | buildnumber | jpcovmerge | ejbjar |
war | stlist | rename | sequential | serverdeploy | property | subant | move |
ildasm | copydir | cccheckin | ccunlock | wljspc | fixcrlf | telnet | sosget |
pathconvert | record | p4sync | exec | ccmklabel | p4edit | manifest | maudit |
antlr | netrexxc | ftp | jpcovreport | execon | ccmcheckout | ant | xmlvalidate
| xslt | p4resolve | iplanet-ejbc | ccmcheckintask | gzip | native2ascii |
ccrmtype | starteam | ear | input | presetdef | rmic | checksum | mail |
loadfile | vsscheckout | stylebook | soscheckin | mimemail | stlabel | gunzip |
concat | cab | touch | parallel | splash | antcall | ccmkbl | cccheckout |
typedef | p4have | filter | xmlproperty | import | copy | jsharpc | symlink |
antstructure | script | ccmcreatetask | rpm | delete | replace | mmetrics |
attrib | waitfor | untar | loadproperties | available | echoproperties | junit
| stcheckin | chgrp | vajexport | stcheckout | bunzip2 | whichresource |
copyfile | p4labelsync | vsscreate | macrodef | ejbc | unjar | vbc |
wsdltodotnet | mkdir | cvs | condition | tempfile | junitreport | ccmkattr |
taskdef | echo | ccupdate | java | vsslabel | renameext | basename | javadoc2 |
tar | vsscp | vajimport | p4fstat | setproxy | p4counter | wlstop | ilasm |
soscheckout | apply | ccuncheckout | jarlib-resolve | jlink | cvstagdiff |
javacc | chmod | pvcs | jarlib-manifest | jar | ccmklbtype | sound | scriptdef
| defaultexcludes | mparse | blgenclient | uptodate | jjdoc | genkey | javah |
ccmkelem | ccmreconfigure | fail | unzip | javac | p4add | jpcoverage |
soslabel | depend | vssget | deltree | ddcreator">
<!ENTITY % types "patternset | assertions | propertyset | filterset |
libfileset | mergemapper | identitymapper | filterreader | unpackagemapper |
scriptfilter | concatfilter | extension | fileset | dirset | globmapper |
filelist | filterchain | path | compositemapper | classfileset | regexpmapper |
selector | xmlcatalog | flattenmapper | description | chainedmapper |
packagemapper | mapper | zipfileset | substitution | extensionSet | redirector
| regexp">
<!ELEMENT project (target | %tasks; | %types;)*>
@@ -3556,38 +3556,6 @@
file CDATA #IMPLIED
description CDATA #IMPLIED>
-<!ELEMENT jdepend (exclude | classpath | sourcespath | classespath)*>
-<!ATTLIST jdepend
- id ID #IMPLIED
- haltonerror %boolean; #IMPLIED
- fork %boolean; #IMPLIED
- classpath CDATA #IMPLIED
- jvm CDATA #IMPLIED
- dir CDATA #IMPLIED
- outputfile CDATA #IMPLIED
- includeruntime %boolean; #IMPLIED
- timeout CDATA #IMPLIED
- classpathref IDREF #IMPLIED
- taskname CDATA #IMPLIED
- format (xml | text) #IMPLIED
- description CDATA #IMPLIED>
-
-<!ELEMENT sourcespath (fileset | dirset | extdirs | existing | filelist |
pathelement | path)*>
-<!ATTLIST sourcespath
- id ID #IMPLIED
- location CDATA #IMPLIED
- refid IDREF #IMPLIED
- description CDATA #IMPLIED
- path CDATA #IMPLIED>
-
-<!ELEMENT classespath (fileset | dirset | extdirs | existing | filelist |
pathelement | path)*>
-<!ATTLIST classespath
- id ID #IMPLIED
- location CDATA #IMPLIED
- refid IDREF #IMPLIED
- description CDATA #IMPLIED
- path CDATA #IMPLIED>
-
<!ELEMENT copy (filterchain | fileset | filterset | mapper)*>
<!ATTLIST copy
id ID #IMPLIED
@@ -4139,16 +4107,6 @@
optional %boolean; #IMPLIED
description CDATA #IMPLIED>
-<!ELEMENT unjar (fileset | patternset)*>
-<!ATTLIST unjar
- id ID #IMPLIED
- taskname CDATA #IMPLIED
- dest CDATA #IMPLIED
- overwrite %boolean; #IMPLIED
- description CDATA #IMPLIED
- encoding CDATA #IMPLIED
- src CDATA #IMPLIED>
-
<!ELEMENT ejbc (patternset | exclude | include | custom | present | none |
not | type | modified | or | contains | depend | different | size | majority |
containsregexp | filename | selector | includesfile | date | excludesfile |
depth | and)*>
<!ATTLIST ejbc
id ID #IMPLIED
@@ -4168,6 +4126,16 @@
descriptors CDATA #IMPLIED
includes CDATA #IMPLIED>
+<!ELEMENT unjar (fileset | patternset)*>
+<!ATTLIST unjar
+ id ID #IMPLIED
+ taskname CDATA #IMPLIED
+ dest CDATA #IMPLIED
+ overwrite %boolean; #IMPLIED
+ description CDATA #IMPLIED
+ encoding CDATA #IMPLIED
+ src CDATA #IMPLIED>
+
<!ELEMENT vbc (patternset | exclude | include | custom | present | none |
resource | define | not | type | modified | reference | src | or | contains |
depend | different | size | majority | containsregexp | filename | selector |
includesfile | date | excludesfile | depth | and)*>
<!ATTLIST vbc
id ID #IMPLIED
1.70 +295 -231 jakarta-poi/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-poi/build.xml,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- build.xml 3 May 2005 13:27:50 -0000 1.69
+++ build.xml 16 May 2005 21:39:21 -0000 1.70
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2004 The Apache Software Foundation. All rights reserved.
-->
+<!-- Copyright 2005 The Apache Software Foundation. A�ll rights reserved. -->
<!DOCTYPE project PUBLIC "-//Ant//Project 1.5//EN" "ant.dtd">
<!--
@@ -252,56 +252,65 @@
compile-contrib, compile-examples"
description="Compiles the POI main classes, scratchpad, contrib, and
examples"/>
- <target name="compile-main" depends="init">
- <copy todir="${main.output.dir}">
- <fileset dir="${main.resource1.dir}"/>
- </copy>
- <javac srcdir="${main.src}" destdir="${main.output.dir}" debug="on"
fork="yes" includeAntRuntime="no" failonerror="true">
- <classpath refid="main.classpath"/>
- </javac>
- <javac srcdir="${main.src.test}" destdir="${main.output.test.dir}"
debug="on" fork="yes" includeAntRuntime="no" failonerror="true">
- <classpath>
- <path refid="main.classpath"/>
- <pathelement location="${main.output.dir}"/>
- <pathelement location="${junit.jar1.dir}"/>
- </classpath>
- </javac>
- </target>
+ <target name="compile-main" depends="fail-unless-xslt-is-available">
+ <copy todir="${main.output.dir}">
+ <fileset dir="${main.resource1.dir}"/>
+ </copy>
+ <javac srcdir="${main.src}" destdir="${main.output.dir}" debug="on"
+ fork="yes" includeAntRuntime="no" failonerror="true">
+ <classpath refid="main.classpath"/>
+ </javac>
+ <javac srcdir="${main.src.test}" destdir="${main.output.test.dir}"
+ debug="on" fork="yes" includeAntRuntime="no" failonerror="true">
+ <classpath>
+ <path refid="main.classpath"/>
+ <pathelement location="${main.output.dir}"/>
+ <pathelement location="${junit.jar1.dir}"/>
+ </classpath>
+ </javac>
+ </target>
- <target name="compile-scratchpad" depends="init">
- <javac srcdir="${scratchpad.src}" destdir="${scratchpad.output.dir}"
debug="on" fork="yes" includeAntRuntime="no" failonerror="true">
- <classpath refid="scratchpad.classpath"/>
- </javac>
- <javac srcdir="${scratchpad.src.test}"
destdir="${scratchpad.output.test.dir}" debug="on" fork="yes"
includeAntRuntime="no" failonerror="true">
- <classpath>
- <path refid="scratchpad.classpath"/>
- <pathelement location="${scratchpad.output.dir}"/>
- <pathelement location="${junit.jar1.dir}"/>
- </classpath>
- </javac>
- </target>
+ <target name="compile-scratchpad" depends="init">
+ <javac srcdir="${scratchpad.src}" destdir="${scratchpad.output.dir}"
+ debug="on" fork="yes" includeAntRuntime="no" failonerror="true">
+ <classpath refid="scratchpad.classpath"/>
+ </javac>
+ <javac srcdir="${scratchpad.src.test}"
+ destdir="${scratchpad.output.test.dir}" debug="on" fork="yes"
+ includeAntRuntime="no" failonerror="true">
+ <classpath>
+ <path refid="scratchpad.classpath"/>
+ <pathelement location="${scratchpad.output.dir}"/>
+ <pathelement location="${junit.jar1.dir}"/>
+ </classpath>
+ </javac>
+ </target>
- <target name="compile-contrib" depends="init">
- <javac srcdir="${contrib.src}" destdir="${contrib.output.dir}"
debug="on" fork="yes" includeAntRuntime="no" failonerror="true">
- <classpath refid="contrib.classpath"/>
- </javac>
- <javac srcdir="${contrib.src.test}"
destdir="${contrib.output.test.dir}" debug="on" fork="yes"
includeAntRuntime="no" failonerror="true">
- <classpath>
- <path refid="contrib.classpath"/>
- <pathelement location="${contrib.output.dir}"/>
- <pathelement location="${junit.jar1.dir}"/>
- </classpath>
- </javac>
- </target>
+ <target name="compile-contrib" depends="init">
+ <javac srcdir="${contrib.src}" destdir="${contrib.output.dir}"
+ debug="on" fork="yes" includeAntRuntime="no" failonerror="true">
+ <classpath refid="contrib.classpath"/>
+ </javac>
+ <javac srcdir="${contrib.src.test}"
+ destdir="${contrib.output.test.dir}" debug="on" fork="yes"
+ includeAntRuntime="no" failonerror="true">
+ <classpath>
+ <path refid="contrib.classpath"/>
+ <pathelement location="${contrib.output.dir}"/>
+ <pathelement location="${junit.jar1.dir}"/>
+ </classpath>
+ </javac>
+ </target>
<target name="compile-examples" depends="init">
- <javac srcdir="${examples.src}" destdir="${examples.output.dir}"
debug="on">
+ <javac srcdir="${examples.src}" destdir="${examples.output.dir}"
+ debug="on">
<classpath refid="examples.classpath"/>
</javac>
</target>
- <target name="test" depends="test-main,test-scratchpad,test-contrib"
- description="Tests main, contrib and scratchpad"/>
+ <target name="test" depends="test-main,test-scratchpad,test-contrib"
+ description="Tests main, contrib and scratchpad"/>
<target name="-test-main-check">
<uptodate property="main.test.notRequired"
targetfile="${main.testokfile}">
@@ -317,69 +326,77 @@
<pathelement location="${junit.jar1.dir}"/>
</path>
- <target
- name="test-main"
- depends="compile-main, -test-main-check, is-available-junit"
- unless="main.test.notRequired">
- <junit printsummary="no" showoutput="true" fork="no"
- haltonfailure="${halt.on.test.failure}"
failureproperty="main.test.failed">
- <classpath refid="test.classpath"/>
- <sysproperty key="HSSF.testdata.path"
file="${main.src.test}/org/apache/poi/hssf/data"/>
- <sysproperty key="HPSF.testdata.path"
file="${main.src.test}/org/apache/poi/hpsf/data"/>
- <sysproperty key="java.awt.headless" value="true"/>
- <formatter type="plain"/>
- <formatter type="xml"/>
- <batchtest todir="${main.reports.test}">
- <fileset dir="${main.src.test}">
- <include name="**/Test*.java"/>
- <exclude name="**/AllTests.java"/>
- <exclude name="**/TestEmptyDocument.java"/>
- <exclude name="**/TestUnfixedBugs.java"/>
- </fileset>
- </batchtest>
- </junit>
- <delete file="${main.testokfile}"/>
- <antcall target="-test-main-write-testfile"/>
- </target>
+ <target name="test-main" unless="main.test.notRequired"
+ depends="compile-main, -test-main-check, fail-unless-junit-is-available">
+ <junit fork="no" printsummary="no"
haltonfailure="${halt.on.test.failure}"
+ failureproperty="main.test.failed" showoutput="true">
+ <classpath refid="test.classpath"/>
+ <sysproperty key="HSSF.testdata.path"
+ file="${main.src.test}/org/apache/poi/hssf/data"/>
+ <sysproperty key="HPSF.testdata.path"
+ file="${main.src.test}/org/apache/poi/hpsf/data"/>
+ <sysproperty key="java.awt.headless" value="true"/>
+ <formatter type="plain"/>
+ <formatter type="xml"/>
+ <batchtest todir="${main.reports.test}">
+ <fileset dir="${main.src.test}">
+ <include name="**/Test*.java"/>
+ <exclude name="**/AllTests.java"/>
+ <exclude name="**/TestEmptyDocument.java"/>
+ <exclude name="**/TestUnfixedBugs.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ <delete file="${main.testokfile}"/>
+ <antcall target="-test-main-write-testfile"/>
+ </target>
+
+ <target name="test-fail" depends="compile-main,
+ fail-unless-junit-is-available"
+ description="run tests that are known to fail">
+ <junit printsummary="yes" showoutput="true" filtertrace="no"
+ haltonfailure="false">
+ <classpath refid="test.classpath"/>
+ <classpath>
+ <path refid="scratchpad.classpath"/>
+ <pathelement location="${main.output.dir}"/>
+ <pathelement location="${scratchpad.output.dir}"/>
+ <pathelement location="${scratchpad.output.test.dir}"/>
+ <pathelement location="${junit.jar1.dir}"/>
+ </classpath>
+ <sysproperty key="HSSF.testdata.path"
+ file="${main.src.test}/org/apache/poi/hssf/data"/>
+ <sysproperty key="HPSF.testdata.path"
+ file="${main.src.test}/org/apache/poi/hpsf/data"/>
+ <sysproperty key="HWPF.testdata.path"
+ file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
+ <sysproperty key="java.awt.headless" value="true"/>
+ <formatter type="plain" usefile="no"/>
+ <batchtest todir="${main.reports.test}">
+ <fileset dir="${main.src.test}">
+ <include name="**/TestEmptyDocument.java"/>
+ <include name="**/TestUnfixedBugs.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
- <target name="test-fail" depends = "compile-main, is-available-junit"
description="run tests that are known to fail">
- <junit printsummary="yes" showoutput="true" filtertrace="no"
haltonfailure="false" >
- <classpath refid="test.classpath"/>
- <classpath>
- <path refid="scratchpad.classpath"/>
- <pathelement location="${main.output.dir}"/>
- <pathelement location="${scratchpad.output.dir}"/>
- <pathelement location="${scratchpad.output.test.dir}"/>
- <pathelement location="${junit.jar1.dir}"/>
- </classpath>
- <sysproperty key="HSSF.testdata.path"
file="${main.src.test}/org/apache/poi/hssf/data"/>
- <sysproperty key="HPSF.testdata.path"
file="${main.src.test}/org/apache/poi/hpsf/data"/>
- <sysproperty key="HWPF.testdata.path"
file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
- <sysproperty key="java.awt.headless" value="true"/>
- <formatter type="plain" usefile="no"/>
- <batchtest todir="${main.reports.test}">
- <fileset dir="${main.src.test}">
- <include name="**/TestEmptyDocument.java"/>
- <include name="**/TestUnfixedBugs.java"/>
- </fileset>
- </batchtest>
- </junit>
- </target>
<target name="single-test" depends="-test-property-check,compile-main"
description="Runs a single test case specified with -Dtestcase=classname">
<junit printsummary="yes" showoutput="true" filtertrace="no"
haltonfailure="false" >
<classpath refid="test.classpath"/>
- <classpath>
- <path refid="scratchpad.classpath"/>
- <pathelement location="${main.output.dir}"/>
- <pathelement
location="${scratchpad.output.dir}"/>
- <pathelement
location="${scratchpad.output.test.dir}"/>
- <pathelement location="${junit.jar1.dir}"/>
- </classpath>
+ <classpath>
+ <path refid="scratchpad.classpath"/>
+ <pathelement location="${main.output.dir}"/>
+ <pathelement
location="${scratchpad.output.dir}"/>
+ <pathelement
location="${scratchpad.output.test.dir}"/>
+ <pathelement location="${junit.jar1.dir}"/>
+ </classpath>
<sysproperty key="HSSF.testdata.path"
file="${main.src.test}/org/apache/poi/hssf/data"/>
<sysproperty key="HPSF.testdata.path"
file="${main.src.test}/org/apache/poi/hpsf/data"/>
<sysproperty key="HWPF.testdata.path"
file="${scratchpad.src.test}/org/apache/poi/hwpf/data"/>
- <sysproperty key="java.awt.headless" value="true"/>
+ <sysproperty key="java.awt.headless" value="true"/>
<formatter type="plain" usefile="no"/>
<formatter type="xml"/>
<test name="${testcase}"/>
@@ -547,7 +564,8 @@
<!-- Generates a log of the latest changes in the CVS repository. -->
- <target name="cvschangelog" unless="disconnected"
depends="is-available-xslt"
+ <target name="cvschangelog" unless="disconnected"
+ depends="fail-unless-xslt-is-available"
description="Generates a CVS change log report">
<antcall target="cvs-rsh-warning"/>
<cvschangelog destfile="${changelog.file}" daysinpast="30"/>
@@ -573,9 +591,9 @@
<!-- Creates reports and API documentation -->
<target name="reports" unless="reports.notRequired"
depends="-check-reports,
- is-available-xslt, is-available-junit, is-available-jdepend,
- test-ignore-failures, junitreport, jdepend, cvschangelog, javadocs,
- clover.html"
+ fail-unless-xslt-is-available, fail-unless-junit-is-available,
+ fail-unless-jdepend-is-available, test-ignore-failures, junitreport,
+ jdepend, cvschangelog, javadocs, clover.html"
description="Creates various reports and the API documentation">
</target>
@@ -591,7 +609,8 @@
<!-- Produces a report of the JUnit test results -->
- <target name="junitreport" depends="is-available-xslt,
test-ignore-failures"
+ <target name="junitreport"
+ depends="fail-unless-xslt-is-available, test-ignore-failures"
description="Produces a report of the JUnit test results">
<junitreport todir="${junit.report.dir}">
<fileset dir="${main.reports.test}">
@@ -610,21 +629,18 @@
<!-- Generates the API documentation. -->
- <target name="javadocs" depends="init"
+ <target name="javadocs" depends="init, warn-unless-junit-is-available,
+ warn-unless-xslt-is-available"
description="Generates the API documentation">
- <javadoc
- destdir="${apidocs.report.dir}"
- author="true"
- version="true"
- use="true"
- verbose="false"
- windowtitle="POI API Documentation">
+ <javadoc verbose="false" author="true" destdir="${apidocs.report.dir}"
+ windowtitle="POI API Documentation" use="true" version="true">
<packageset dir="${main.src}" defaultexcludes="yes">
<include name="org/apache/poi/**"/>
</packageset>
<packageset dir="${scratchpad.src}" defaultexcludes="yes">
<include name="org/apache/poi/**"/>
+ <exclude name="org/apache/poi/hdf/**"/>
</packageset>
<packageset dir="${contrib.src}" defaultexcludes="yes">
<include name="org/apache/poi/**"/>
@@ -633,11 +649,12 @@
<include name="org/apache/poi/**"/>
</packageset>
- <classpath>
+ <classpath id="javadoc.classpath">
<path refid="main.classpath"/>
<path refid="scratchpad.classpath"/>
<path refid="contrib.classpath"/>
<path refid="examples.classpath"/>
+ <path path="${env.CLASSPATH}"/>
</classpath>
<doctitle><![CDATA[<h1>POI API Documentation</h1>]]></doctitle>
@@ -645,13 +662,30 @@
<![CDATA[<i>Copyright ${tstamp.year} The Apache Software Foundation
or
its licensors, as applicable.</i>]]>
</bottom>
- <group title="HDF" packages="org.apache.poi.hdf*"/>
- <group title="HPSF" packages="org.apache.poi.hpsf*"/>
- <group title="HSSF" packages="org.apache.poi.hssf*"/>
- <group title="HWPF" packages="org.apache.poi.hwpf*"/>
- <group title="POIFS" packages="org.apache.poi.poifs*"/>
- <group title="Record Generator" packages="org.apache.poi.record*"/>
- <group title="Utils" packages="org.apache.poi.util*"/>
+ <group>
+ <title>DDF - Dreadful Drawing Format</title>
+ <package name="org.apache.poi.ddf*"/>
+ </group>
+ <group>
+ <title>HPSF - Horrible Property Set Format</title>
+ <package name="org.apache.poi.hpsf*"/>
+ </group>
+ <group>
+ <title>HSSF - Horrible Spreadsheet Format</title>
+ <package name="org.apache.poi.hssf*"/>
+ </group>
+ <group>
+ <title>HWPF - Horrible Word Processor Format</title>
+ <package name="org.apache.poi.hwpf*"/>
+ </group>
+ <group>
+ <title>POIFS - POI File System</title>
+ <package name="org.apache.poi.poifs*"/>
+ </group>
+ <group>
+ <title>Utilities</title>
+ <package name="org.apache.poi.util*"/>
+ </group>
<group>
<title>Examples</title>
<package name="org.apache.poi.hpsf.examples*"/>
@@ -660,53 +694,48 @@
</javadoc>
<antcall target="clover.html"/>
-
</target>
- <!-- ================================== -->
- <!-- Generate records -->
- <!-- ================================== -->
-
- <target name="generate-records" depends="init"
- description="Generates HSSF records">
- <java classname="org.apache.poi.dev.RecordGenerator" fork="yes">
- <arg location="src/records/definitions"/>
- <arg location="src/records/styles"/>
- <arg location="src/java"/>
- <arg location="src/testcases"/>
- <classpath>
- <path refid="scratchpad.classpath">
- </path>
- <pathelement location="${main.output.dir}"/>
- <pathelement location="${scratchpad.output.dir}"/>
- </classpath>
- </java>
-
- </target>
-
- <!-- ================================== -->
- <!-- Generate types -->
- <!-- ================================== -->
-
- <target name="generate-types" depends="init"
- description="Generates word types">
-
- <java classname="org.apache.poi.dev.RecordGenerator" fork="yes">
- <arg location="src/types/definitions"/>
- <arg location="src/types/styles"/>
- <arg location="src/scratchpad/src"/>
- <arg location="src/scratchpad/testcases"/>
- <classpath>
- <path refid="scratchpad.classpath">
- </path>
- <pathelement location="${main.output.dir}"/>
- <pathelement location="${scratchpad.output.dir}"/>
- </classpath>
- </java>
+ <!-- ================================== -->
+ <!-- Generate records -->
+ <!-- ================================== -->
+
+ <target name="generate-records" depends="init"
+ description="Generates HSSF records">
+ <java classname="org.apache.poi.dev.RecordGenerator" fork="yes">
+ <arg file="src/records/definitions"/>
+ <arg file="src/records/styles"/>
+ <arg file="src/java"/>
+ <arg file="src/testcases"/>
+ <classpath>
+ <path refid="scratchpad.classpath"/>
+ <pathelement location="${main.output.dir}"/>
+ <pathelement location="${scratchpad.output.dir}"/>
+ </classpath>
+ </java>
+ </target>
- </target>
+ <!-- ================================== -->
+ <!-- Generate types -->
+ <!-- ================================== -->
+
+ <target name="generate-types" depends="init"
+ description="Generates word types">
+ <java classname="org.apache.poi.dev.RecordGenerator" fork="yes">
+ <arg file="src/types/definitions"/>
+ <arg file="src/types/styles"/>
+ <arg file="src/scratchpad/src"/>
+ <arg file="src/scratchpad/testcases"/>
+ <classpath>
+ <path refid="scratchpad.classpath">
+ </path>
+ <pathelement location="${main.output.dir}"/>
+ <pathelement location="${scratchpad.output.dir}"/>
+ </classpath>
+ </java>
+ </target>
@@ -758,60 +787,62 @@
</jar>
</target>
- <target name="dist" depends="compile,site,jar" description="Creates the
entire distribution into build/dist">
+ <target name="dist" depends="fail-unless-tools-are-available, compile,
site, jar"
+ description="Creates the entire distribution into build/dist">
- <zip
destfile="${dist.dir}/${jar.name}-bin-${version.id}-${DSTAMP}.zip">
- <zipfileset dir="${build.site}" prefix="docs"/>
- <zipfileset
file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar"/>
- <zipfileset
file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar"/>
- <zipfileset
file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar"/>
- <zipfileset dir="legal" prefix="legal"/>
- </zip>
-
- <zip
destfile="${dist.dir}/${jar.name}-src-${version.id}-${DSTAMP}.zip">
- <zipfileset dir="${build.site}" prefix="docs"/>
- <zipfileset dir=".">
- <exclude name="build/**"/>
- <exclude name="scripts/**"/>
- <exclude name="*.ipr"/>
- <exclude name="*.iml"/>
- <exclude name="*.iws"/>
- </zipfileset>
- </zip>
-
- <tar
destfile="${dist.dir}/${jar.name}-bin-${version.id}-${DSTAMP}.tar.gz"
compression="gzip">
- <tarfileset dir="${build.site}" prefix="docs"/>
- <tarfileset
file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar"/>
- <tarfileset
file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar"/>
- <tarfileset
file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar"/>
- <tarfileset dir="legal" prefix="legal"/>
- </tar>
-
- <tar
destfile="${dist.dir}/${jar.name}-src-${version.id}-${DSTAMP}.tar.gz"
compression="gzip">
- <tarfileset dir="${build.site}" prefix="docs"/>
- <tarfileset dir=".">
- <exclude name="build/**"/>
- <exclude name="scripts/**"/>
- <exclude name="*.ipr"/>
- <exclude name="*.iml"/>
- <exclude name="*.iws"/>
- </tarfileset>
- </tar>
-
- <echo>Distribution located in build/dist</echo>
-
- </target>
+ <zip destfile="${dist.dir}/${jar.name}-bin-${version.id}-${DSTAMP}.zip">
+ <zipfileset dir="${build.site}" prefix="docs"/>
+ <zipfileset
file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar"/>
+ <zipfileset
file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar"/>
+ <zipfileset
file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar"/>
+ <zipfileset dir="legal" prefix="legal"/>
+ </zip>
+
+ <zip destfile="${dist.dir}/${jar.name}-src-${version.id}-${DSTAMP}.zip">
+ <zipfileset dir="${build.site}" prefix="docs"/>
+ <zipfileset dir=".">
+ <exclude name="build/**"/>
+ <exclude name="scripts/**"/>
+ <exclude name="*.ipr"/>
+ <exclude name="*.iml"/>
+ <exclude name="*.iws"/>
+ </zipfileset>
+ </zip>
+
+ <tar
destfile="${dist.dir}/${jar.name}-bin-${version.id}-${DSTAMP}.tar.gz"
+ compression="gzip">
+ <tarfileset dir="${build.site}" prefix="docs"/>
+ <tarfileset
file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar"/>
+ <tarfileset
file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar"/>
+ <tarfileset
file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar"/>
+ <tarfileset dir="legal" prefix="legal"/>
+ </tar>
+
+ <tar
destfile="${dist.dir}/${jar.name}-src-${version.id}-${DSTAMP}.tar.gz"
+ compression="gzip">
+ <tarfileset dir="${build.site}" prefix="docs"/>
+ <tarfileset dir=".">
+ <exclude name="build/**"/>
+ <exclude name="scripts/**"/>
+ <exclude name="*.ipr"/>
+ <exclude name="*.iml"/>
+ <exclude name="*.iws"/>
+ </tarfileset>
+ </tar>
+
+ <echo>Distribution located in build/dist</echo>
+ </target>
+
+ <target name="clean-compile" depends="clean, compile"/>
- <target name="clean-compile" depends="clean,compile"/>
+ <target name="clean-dist" depends="clean, dist"
+ description="Cleans the build directory then creates a distribution"/>
- <target name="clean-dist" depends="clean,dist"
- description="Cleans the build directory then creates a distribution"/>
+ <target name="gump" depends="test, jar"/>
- <target name="gump" depends="test,jar"/>
-
- <!-- Generates the ANT document type definition (DTD) -->
+ <!-- Generates the Ant document type definition (DTD) -->
<target name="dtd"
description="Generates the Ant document type definition (DTD)">
<antstructure output="ant.dtd"/>
@@ -819,17 +850,16 @@
- <!-- Still experimental targets: -->
<!-- Abort the build if JUnit is missing. -->
- <target name="is-available-junit" depends="init">
+ <target name="fail-unless-junit-is-available" depends="init">
<condition property="isAvailable.junit">
<available classname="junit.framework.TestCase"/>
</condition>
- <antcall target="check-junit"/>
+ <antcall target="fail-junit"/>
</target>
- <target name="check-junit" unless="isAvailable.junit">
+ <target name="fail-junit" unless="isAvailable.junit">
<echo>
JUnit is not available. You must download JUnit from
<http://www.junit.org/> and include the JAR file in your
@@ -838,17 +868,34 @@
<fail message="JUnit is not available."/>
</target>
+ <!-- Warn if JUnit is missing. -->
+ <target name="warn-unless-junit-is-available" depends="init">
+ <condition property="isAvailable.junit">
+ <available classname="junit.framework.TestCase"/>
+ </condition>
+ <antcall target="warn-junit"/>
+ </target>
+
+ <target name="warn-junit" unless="isAvailable.junit">
+ <echo>
+ WARNING: Since JUnit is not available you might encounter failures
+ subsequently. In order to avoid this you should download JUnit from
+ <http://www.junit.org/> and include the JAR file in your
+ classpath.
+ </echo>
+ </target>
+
<!-- Abort the build if JDepend is missing. -->
- <target name="is-available-jdepend" depends="init">
+ <target name="fail-unless-jdepend-is-available" depends="init">
<condition property="isAvailable.jdepend">
<available classname="jdepend.framework.JDepend"/>
</condition>
- <antcall target="check-jdepend"/>
+ <antcall target="fail-jdepend"/>
</target>
- <target name="check-jdepend" unless="isAvailable.jdepend">
+ <target name="fail-jdepend" unless="isAvailable.jdepend">
<echo>
JDepend is not available. You must download JDepend from
<http://www.clarkware.com/software/JDepend.html> and include the
@@ -859,34 +906,51 @@
- <!-- Abort the build if the Xalan XSLT processor is missing. The
- "junitreport" task seems to explicitly require Xalan instead of being
- able to cope with any XSLT processor. -->
- <target name="is-available-xslt" depends="init">
+ <!-- Abort the build if an XSLT processor is missing. -->
+ <target name="fail-unless-xslt-is-available" depends="init">
<condition property="isAvailable.xslt">
- <and>
- <available
- classname="javax.xml.transform.TransformerFactory"/>
- <available
- classname="org.apache.xalan.processor.TransformerFactoryImpl"/>
- </and>
+ <available classname="javax.xml.transform.TransformerFactory"/>
</condition>
- <antcall target="check-xslt"/>
+ <antcall target="fail-xslt"/>
</target>
- <target name="check-xslt" unless="isAvailable.xslt">
+ <target name="fail-xslt" unless="isAvailable.xslt">
<echo>
- The Xalan XSLT processor is not available. You must download Xalan from
+ An XSLT processor is missing. You must download e.g. Xalan from
<http://xml.apache.org/xalan-j/> and include the JAR file in your
classpath.
</echo>
- <fail message="The Xalan XSLT processor is not available."/>
+ <fail message="An XSLT processor is not available."/>
+ </target>
+
+ <!-- Warn if an XSLT processor is missing. -->
+ <target name="warn-unless-xslt-is-available" depends="init">
+ <condition property="isAvailable.xslt">
+ <available classname="javax.xml.transform.TransformerFactory"/>
+ </condition>
+ <antcall target="warn-xslt"/>
+ </target>
+
+ <target name="warn-xslt" unless="isAvailable.xslt">
+ <echo>
+ WARNING: Since an XSLT processor is not available you might encounter
+ failures subsequently. In order to avoid this you should download
+ e.g. Xalan from <http://xml.apache.org/xalan-j/> and include the
+ JAR file in your classpath.
+ </echo>
</target>
+ <!-- Aborts the build if any of the required tools are missing. -->
+ <target name="fail-unless-tools-are-available"
+ depends="fail-unless-junit-is-available, fail-unless-junit-is-available,
+ fail-unless-jdepend-is-available"/>
+
+
+
<!-- Runs jdepend to produce a report about package dependencies -->
- <target name="jdepend" depends="is-available-jdepend"
+ <target name="jdepend" depends="fail-unless-jdepend-is-available"
description="Runs jdepend to produce a report about package
dependencies">
<jdepend outputfile="${jdepend.report.dir}/jdepend.xml" format="xml">
<classespath>
1.9 +53 -13
jakarta-poi/src/java/org/apache/poi/dev/RecordGenerator.java
Index: RecordGenerator.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/dev/RecordGenerator.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- RecordGenerator.java 9 Apr 2004 13:05:16 -0000 1.8
+++ RecordGenerator.java 16 May 2005 21:39:21 -0000 1.9
@@ -17,12 +17,24 @@
package org.apache.poi.dev;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.Reader;
+import java.util.Properties;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
-import java.io.File;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Result;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
/**
* Description of the Class
@@ -79,11 +91,7 @@
File destinationPathFile = new File(destinationPath);
destinationPathFile.mkdirs();
String destinationFilepath = destinationPath + "/" +
recordName + suffix + ".java";
- String args[] = new String[]{"-in", file.getAbsolutePath(),
"-xsl", recordStyleDir + "/" + extendstg.toLowerCase() + ".xsl",
- "-out", destinationFilepath,
- "-TEXT"};
-
- org.apache.xalan.xslt.Process.main(args);
+ transform(file, new File(destinationFilepath), new
File(recordStyleDir + "/" + extendstg.toLowerCase() + ".xsl"));
System.out.println("Generated " + suffix + ": " +
destinationFilepath);
// Generate test (if not already generated)
@@ -93,11 +101,7 @@
destinationFilepath = destinationPath + "/Test" + recordName
+ suffix + ".java";
if (new File(destinationFilepath).exists() == false) {
String temp = (recordStyleDir + "/" +
extendstg.toLowerCase() + "_test.xsl");
- args = new String[]{"-in", file.getAbsolutePath(),
"-xsl",
- temp,
- "-out", destinationFilepath,
- "-TEXT"};
- org.apache.xalan.xslt.Process.main(args);
+ transform(file, new File(destinationFilepath), new
File(temp));
System.out.println("Generated test: " +
destinationFilepath);
} else {
System.out.println("Skipped test generation: " +
destinationFilepath);
@@ -105,4 +109,40 @@
}
}
}
+
+
+
+ /**
+ * <p>Executes an XSL transformation. This process transforms an XML
input
+ * file into a text output file controlled by an XSLT specification.</p>
+ *
+ * @param in the XML input file
+ * @param out the text output file
+ * @param xslt the XSLT specification, i.e. an XSL style sheet
+ * @throws FileNotFoundException
+ * @throws TransformerException
+ */
+ private static void transform(final File in, final File out, final File
xslt)
+ throws FileNotFoundException, TransformerException
+ {
+ final Reader r = new FileReader(xslt);
+ final StreamSource ss = new StreamSource(r);
+ final TransformerFactory tf = TransformerFactory.newInstance();
+ final Transformer t;
+ try
+ {
+ t = tf.newTransformer(ss);
+ }
+ catch (TransformerException ex)
+ {
+ System.err.println("Error compiling XSL style sheet " + xslt);
+ throw ex;
+ }
+ final Properties p = new Properties();
+ p.setProperty(OutputKeys.METHOD, "text");
+ t.setOutputProperties(p);
+ final Result result = new StreamResult(out);
+ t.transform(new StreamSource(in), result);
+ }
+
}
1.11 +6 -6 jakarta-poi/src/records/styles/record.xsl
Index: record.xsl
===================================================================
RCS file: /home/cvs/jakarta-poi/src/records/styles/record.xsl,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- record.xsl 9 Apr 2004 13:05:29 -0000 1.10
+++ record.xsl 16 May 2005 21:39:21 -0000 1.11
@@ -115,9 +115,9 @@
<xsl:text> int pos = 0;
</xsl:text>
- <xsl:variable name="fieldIterator" select="field:new()"/>
+ <xsl:variable name="fieldIterator1" select="field:new()"/>
<xsl:for-each select="//fields/field">
- <xsl:text> </xsl:text><xsl:value-of
select="field:fillDecoder2($fieldIterator,position(),@name,@size,@type)"/>;
+ <xsl:text> </xsl:text><xsl:value-of
select="field:fillDecoder2($fieldIterator1,position(),@name,@size,@type)"/>;
</xsl:for-each>
}
@@ -137,9 +137,9 @@
LittleEndian.putShort(data, 0 + offset, sid);
LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() -
4));
-<xsl:variable name="fieldIterator" select="field:new()"/>
+<xsl:variable name="fieldIterator2" select="field:new()"/>
<xsl:for-each select="//fields/field"><xsl:text>
- </xsl:text><xsl:value-of
select="field:serialiseEncoder($fieldIterator,position(),@name,@size,@type)"/>
+ </xsl:text><xsl:value-of
select="field:serialiseEncoder($fieldIterator2,position(),@name,@size,@type)"/>
</xsl:for-each>
return getRecordSize();
@@ -150,10 +150,10 @@
*/
public int getRecordSize()
{
-<xsl:variable name="fieldIterator" select="field:new()"/>
+<xsl:variable name="fieldIterator3" select="field:new()"/>
<xsl:text> return 4 </xsl:text>
<xsl:for-each select="//fields/field">
- <xsl:value-of
select="field:calcSize($fieldIterator,position(),@name,@size,@type)"/>
+ <xsl:value-of
select="field:calcSize($fieldIterator3,position(),@name,@size,@type)"/>
</xsl:for-each>;
}
1.15 +0 -6
jakarta-poi/src/scratchpad/src/org/apache/poi/generator/FieldIterator.java
Index: FieldIterator.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/scratchpad/src/org/apache/poi/generator/FieldIterator.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- FieldIterator.java 13 Feb 2005 17:35:53 -0000 1.14
+++ FieldIterator.java 16 May 2005 21:39:22 -0000 1.15
@@ -32,12 +32,6 @@
{
}
- public void init(org.apache.xalan.extensions.XSLProcessorContext context,
- org.apache.xalan.templates.ElemExtensionCall extElem)
- {
- offset = 0;
- }
-
/**
* This utility function returns a fill method entry for a given field
*
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
Mailing List: http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/