Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1848 mbrodzia 1
<project name="javadoc-task">
2
 
3
	<macrodef name="ant-javadoc">
4
 
5
		<attribute name="projectname"  default="${ant.project.name}"/>
6
		<attribute name="title"/>
7
		<attribute name="copyright"      default="Copyright &#169; ERG Transit Systems. All Rights Reserved."/>
8
		<attribute name="docdir"         default="${basedir}/build/doc"/>
9
		<attribute name="destdir"        default="@{docdir}/javadoc"/>
10
		<attribute name="zipname"        default="@{projectname}-javadoc"/>
11
		<attribute name="versioned"      default="false"/>
12
		<attribute name="packagenames"   default="*"/>
13
		<attribute name="compareVersion" default=""/>
14
 
15
		<element name        = "ant-javadoc-paths"
16
		         optional    = "yes"
17
		         implicit    = "yes"
18
		         description = "Allows caller to specify classpath and sourcepath, and any doclets."/>
19
 
20
		<sequential>
21
 
22
			<mkdir dir="@{destdir}"/>
23
 
24
			<!-- Generate standard Javadoc API documentation -->
25
			<javadoc packagenames = "@{packagenames}"
26
					 destdir      = "@{destdir}"
27
					 author       = "true"
28
					 version      = "true"
29
					 use          = "true"
30
					 windowtitle  = "@{title}"
31
					 failonerror  = "false">
32
				<ant-javadoc-paths/>
33
				<doctitle><![CDATA[<h1>@{title}</h1>]]></doctitle>
34
				<bottom><![CDATA[<font size="-1">@{copyright}</font>]]></bottom>
35
				<link offline        = "true"
36
				      href           = "http://java.sun.com/j2se/1.5.0/docs/api/"
37
				      packagelistLoc = "${env.JAVA_HOME}\docs\api"/>
38
			</javadoc>
39
 
40
			<if>
41
				<isset property="${jants.build.version}"/>
42
				<then>
43
					<property name="thisversion" value="${jants.build.version}"/>
44
				</then>
45
				<else>
46
					<echo message="JDiff running on unversioned package..." taskname="ant-javadoc"/>
47
					<property name="thisversion" value="LATEST"/>
48
				</else>
49
			</if>
50
 
51
			<!-- Generate JDiff XML file for this package -->
52
			<javadoc packagenames = "@{packagenames}"
53
					 destdir      = "@{destdir}">
54
				<doclet name = "jdiff.JDiff"
55
				        path = "${using.ant-javadoc.basedir}/jar/jdiff.jar:${using.ant-javadoc.basedir}/jar/xerces.jar">
56
				    <param name="-apidir"  value="@{destdir}"/>
57
					<param name="-apiname" value="@{projectname}-${thisversion}"/>
58
					<param name="-baseURI" value="http://www.w3.org"/>
59
				</doclet>
60
				<ant-javadoc-paths/>
61
			</javadoc>
62
 
63
			<if>
64
				<equals arg1="@{compareVersion}" arg2=""/>
65
				<then>
66
					<echo message="No comparison version provided. Skipping JDiff task..." taskname="ant-javadoc"/>
67
				</then>
68
				<else>
69
					<if>
70
						<available file="${jats.home}/@{projectname}/@{compareVersion}/doc/javadoc/@{zipname}.zip"/>
71
						<then>
72
							<!-- Find the latest released version of this project; this is what we will compare against. -->
73
							<unzip src  = "${jats.home}/@{projectname}/@{compareVersion}/doc/javadoc/@{zipname}.zip"
74
								   dest = "${basedir}/build/doc/tmp">
75
								<patternset includes="@{projectname}-@{compareVersion}.xml"/>
76
							</unzip>
77
 
78
							<if>
79
								<available file="${basedir}/build/doc/tmp/@{projectname}-@{compareVersion}.xml"/>
80
								<then>
81
									<!-- Perform actual JDiff comparison -->
82
									<javadoc private     = "yes"
83
											 sourcepath  = "${using.ant-javadoc.basedir}"
84
											 destdir     = "${basedir}/build/doc/javadoc"
85
											 sourcefiles = "${using.ant-javadoc.basedir}/jar/Null.java">
86
										<doclet name = "jdiff.JDiff"
87
												path = "${using.ant-javadoc.basedir}/jar/jdiff.jar:${using.ant-javadoc.basedir}/jar/xerces.jar">
88
											<param name="-stats"/>
89
											<param name="-oldapidir" value="${basedir}/build/doc/tmp"/>
90
											<param name="-oldapi"    value="@{projectname}-@{compareVersion}"/>
91
											<param name="-newapidir" value="@{destdir}"/>
92
											<param name="-newapi"    value="@{projectname}-${thisversion}"/>
93
											<!--    <param name="-javadocold" value="../../olddocs/"/>-->
94
											<param name="-javadocnew" value="../"/>
95
										</doclet>
96
									</javadoc>
97
								</then>
98
								<else>
99
									<echo message="Comparison version does not contain a JDiff XML file. Skipping JDiff task..."/>
100
								</else>
101
							</if>
102
						</then>
103
						<else>
104
							<echo message="No Javadoc available in @{projectname} version @{compareVersion}, or release does not exist. Skipping JDiff task..." taskname="ant-javadoc"/>
105
						</else>
106
					</if>
107
				</else>
108
			</if>
109
 
110
			<zip destfile     = "@{docdir}/@{zipname}.zip"
111
			     basedir      = "@{destdir}"
112
			     update       = "true"/>
113
 
114
		</sequential>
115
 
116
	</macrodef>
117
 
118
</project>