You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

external.xml 22 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  1. <?xml version="1.0"?>
  2. <document>
  3. <properties>
  4. <author email="bodewig@apache.org">Stefan Bodewig</author>
  5. <title>External Tools and Tasks</title>
  6. </properties>
  7. <body>
  8. <section name="External Tools and Tasks">
  9. <p>This page lists external resources for Apache Ant: tasks, IDE
  10. integration tools, loggers, you name it. If you've written
  11. something that should be included, please post all relevant
  12. information to one of the mailing lists.</p>
  13. <p>Nothing listed here is directly supported by the Ant
  14. developers, if you encounter any problems with them, please use
  15. the contact information.</p>
  16. </section>
  17. <section name="Tasks">
  18. <subsection name="AJC">
  19. <p><a href="http://aspectj.org">AspectJ</a> is an
  20. aspect-oriented extension to Java. This task compiles a
  21. source tree using the AspectJ compiler -- AJC.</p>
  22. <table>
  23. <tr>
  24. <th>Compatibility:</th>
  25. <td>Ant 1.3</td>
  26. </tr>
  27. <tr>
  28. <th>URL:</th>
  29. <td><a href="http://aspectj.org/dl">http://aspectj.org/dl</a></td>
  30. </tr>
  31. <tr>
  32. <th>Contact:</th>
  33. <td><a href="mailto:support@aspectj.org">support@aspectj.org</a></td>
  34. </tr>
  35. <tr>
  36. <th>License:</th>
  37. <td>Apache Software License</td>
  38. </tr>
  39. </table>
  40. </subsection>
  41. <subsection name="Anakia">
  42. <p>Actually, Anakia is more than just an Ant task, it is a an
  43. XML transformation tool based on JDOM, Velocity and Ant.</p>
  44. <table>
  45. <tr>
  46. <th>Compatibility:</th>
  47. <td>Ant 1.2 and later</td>
  48. </tr>
  49. <tr>
  50. <th>URL:</th>
  51. <td><a href="http://jakarta.apache.org/velocity/anakia.html">http://jakarta.apache.org/velocity/anakia.html</a></td>
  52. </tr>
  53. <tr>
  54. <th>Contact:</th>
  55. <td><a href="http://jakarta.apache.org/site/mail2.html">Velocity mailing lists</a></td>
  56. </tr>
  57. <tr>
  58. <th>License:</th>
  59. <td>Apache Software License</td>
  60. </tr>
  61. </table>
  62. </subsection>
  63. <subsection name="Checkstyle">
  64. <p>Checkstyle is a development tool to help programmers write
  65. Java code that adheres to a coding standard. Its purpose is to
  66. automate the process of checking Java code, and to spare
  67. humans of this boring (but important) task.</p>
  68. <p>Checkstyle can be run via an Ant task or a command line
  69. utility.</p>
  70. <table>
  71. <tr>
  72. <th>Compatibility:</th>
  73. <td>Ant 1.2 to 1.4.1</td>
  74. </tr>
  75. <tr>
  76. <th>URL:</th>
  77. <td><a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a></td>
  78. </tr>
  79. <tr>
  80. <th>Contact:</th>
  81. <td><a href="mailto:checkstyle@puppycrawl.com">Oliver Burn</a></td>
  82. </tr>
  83. <tr>
  84. <th>License:</th>
  85. <td>GNU General Public License</td>
  86. </tr>
  87. </table>
  88. </subsection>
  89. <subsection name="Configure">
  90. <p>Recursive build support (call ant on every package level,
  91. and only build files in that package or in that package and
  92. everything below) with seperation of source and output.</p>
  93. <p>The task generates build files in any subdirectory (except
  94. for CVS-directories) for you. Only place one build.xml file in
  95. the top and call target &apos;setup&apos; or
  96. &apos;rescan&apos;.</p>
  97. <table>
  98. <tr>
  99. <th>Compatibility:</th>
  100. <td>Ant 1.2 and 1.3</td>
  101. </tr>
  102. <tr>
  103. <th>URL:</th>
  104. <td><a href="http://www.dsdelft.nl/~lemval/ant/">http://www.dsdelft.nl/~lemval/ant/</a></td>
  105. </tr>
  106. <tr>
  107. <th>Contact:</th>
  108. <td><a href="mailto:lemval@dsdelft.nl">M.J.P. van Leeuwen</a></td>
  109. </tr>
  110. <tr>
  111. <th>License:</th>
  112. <td>License derived from Apache Software License</td>
  113. </tr>
  114. </table>
  115. </subsection>
  116. <subsection name="Doxygen task">
  117. <p>Ant task for running the Doxygen documentation system.</p>
  118. <table>
  119. <tr>
  120. <th>Compatibility:</th>
  121. <td>Ant 1.1 and later</td>
  122. </tr>
  123. <tr>
  124. <th>URL:</th>
  125. <td><a href="http://www.bgw.org/projects/java/ant/">http://www.bgw.org/projects/java/ant/</a></td>
  126. </tr>
  127. <tr>
  128. <th>Contact:</th>
  129. <td><a href="mailto:mortis@voicenet.com">Kyle R. Burton</a></td>
  130. </tr>
  131. <tr>
  132. <th>License:</th>
  133. <td>Apache Software Foundation License</td>
  134. </tr>
  135. </table>
  136. </subsection>
  137. <subsection name="GenJar">
  138. <p>Builds a JAR file based on class dependencies rather than simply the contents of a directory</p>
  139. <table>
  140. <tr>
  141. <th>Compatibility:</th>
  142. <td>Ant 1.4 alpha (built after 2001/08/04) and later</td>
  143. </tr>
  144. <tr>
  145. <th>URL:</th>
  146. <td><a href="http://www.riggshill.com/projects/genjar/">http://www.riggshill.com/projects/genjar/</a></td>
  147. </tr>
  148. <tr>
  149. <th>Contact:</th>
  150. <td><a href="mailto:jake@riggshill.com">John Kohler</a></td>
  151. </tr>
  152. <tr>
  153. <th>License:</th>
  154. <td>Apache Software Foundation License</td>
  155. </tr>
  156. </table>
  157. </subsection>
  158. <subsection name="Importscrubber">
  159. <p>Removes unnecessary import statements from a Java source code file.</p>
  160. <table>
  161. <tr>
  162. <th>Compatibility:</th>
  163. <td>Ant 1.3</td>
  164. </tr>
  165. <tr>
  166. <th>URL:</th>
  167. <td><a href="http://importscrubber.sourceforge.net/">http://importscrubber.sourceforge.net/</a></td>
  168. </tr>
  169. <tr>
  170. <th>Contact:</th>
  171. <td><a href="mailto:tomcopeland@users.sourceforge.net">Tom Copeland</a></td>
  172. </tr>
  173. <tr>
  174. <th>License:</th>
  175. <td>LGPL</td>
  176. </tr>
  177. </table>
  178. </subsection>
  179. <subsection name="Javamake">
  180. <p>A task to compile Java sources and manage class file
  181. dependencies. Functionality is equivalent to that of standard
  182. Javac and Depend tasks combined, with improved dependency
  183. checking.</p>
  184. <table>
  185. <tr>
  186. <th>Compatibility:</th>
  187. <td>Ant 1.4.1</td>
  188. </tr>
  189. <tr>
  190. <th>URL:</th>
  191. <td><a href="http://www.experimentalstuff.com/Technologies/JavaMake/index.html">http://www.experimentalstuff.com/Technologies/JavaMake/index.html</a></td>
  192. </tr>
  193. <tr>
  194. <th>Contact:</th>
  195. <td><a href="mailto:Mikhail.Dmitriev@eng.sun.com">Mikhail Dmitriev</a></td>
  196. </tr>
  197. <tr>
  198. <th>License:</th>
  199. <td>BSD-like License</td>
  200. </tr>
  201. </table>
  202. </subsection>
  203. <subsection name="J2ME Ant Tasks">
  204. <p>There are two different sets of tasks to help build <a
  205. href="http://java.sun.com/j2me/">Java 2 Platform, Micro
  206. Edition</a> (J2ME) applications.</p>
  207. <p>This set supports CLDC and the K Virtual Machine (KVM):</p>
  208. <table>
  209. <tr>
  210. <th>Compatibility:</th>
  211. <td>Ant 1.3</td>
  212. </tr>
  213. <tr>
  214. <th>URL:</th>
  215. <td><a href="http://www.dribin.org/dave/j2me_ant/">http://www.dribin.org/dave/j2me_ant/</a></td>
  216. </tr>
  217. <tr>
  218. <th>Contact:</th>
  219. <td><a href="mailto:drib@enteract.com">Dave Dribin</a></td>
  220. </tr>
  221. <tr>
  222. <th>License:</th>
  223. <td>Apache Software License</td>
  224. </tr>
  225. </table>
  226. <p>And this set works with the J2ME Wireless Toolkit and MIDP
  227. for PalmOS:</p>
  228. <table>
  229. <tr>
  230. <th>Compatibility:</th>
  231. <td>Ant 1.3</td>
  232. </tr>
  233. <tr>
  234. <th>URL:</th>
  235. <td><a href="http://www.stampysoft.com/ant/">http://www.stampysoft.com/ant/</a></td>
  236. </tr>
  237. <tr>
  238. <th>Contact:</th>
  239. <td><a href="mailto:jeckels@stampysoft.com">Josh Eckels</a></td>
  240. </tr>
  241. <tr>
  242. <th>License:</th>
  243. <td>MIT License</td>
  244. </tr>
  245. </table>
  246. </subsection>
  247. <subsection name="javarec">
  248. <p>Ant tasks that generate record classes for VisualAge for
  249. Java from Cobol copy books.</p>
  250. <table>
  251. <tr>
  252. <th>Compatibility:</th>
  253. <td>Ant 1.4</td>
  254. </tr>
  255. <tr>
  256. <th>URL:</th>
  257. <td><a href="http://glezen.org/javarec/">http://glezen.org/javarec/</a></td>
  258. </tr>
  259. <tr>
  260. <th>Contact:</th>
  261. <td><a href="mailto:pglezen@us.ibm.com">Paul Glezen</a></td>
  262. </tr>
  263. <tr>
  264. <th>License:</th>
  265. <td>Apache Software License</td>
  266. </tr>
  267. </table>
  268. </subsection>
  269. <subsection name="Styler">
  270. <p>The styler task makes useful combinations of XSLT transformations
  271. easy to specify in an Ant build file. Like the built-in Ant task
  272. style, styler can apply a single transformation to a set of XML files.
  273. But it can also:</p>
  274. <ul>
  275. <li>handle multiple transformations, in parallel or pipelined.</li>
  276. <li>enable transformations that split or merge files</li>
  277. <li>process non-XML files, especially HTML (based on JTidy)</li>
  278. <li>apply non-XSLT transformation, especially "regular
  279. fragmentations"</li>
  280. <li>use any custom XMLReader or XMLFilter class to handle new file
  281. formats and transformation techniques.</li>
  282. </ul>
  283. <table>
  284. <tr>
  285. <th>Compatibility:</th>
  286. <td>Ant 1.4</td>
  287. </tr>
  288. <tr>
  289. <th>URL:</th>
  290. <td><a href="http://www.langdale.com.au/styler/">http://www.langdale.com.au/styler/</a></td>
  291. </tr>
  292. <tr>
  293. <th>Contact:</th>
  294. <td><a href="mailto:adv@langdale.com.au">Arnold deVos</a></td>
  295. </tr>
  296. <tr>
  297. <th>License:</th>
  298. <td>LGPL</td>
  299. </tr>
  300. </table>
  301. </subsection>
  302. <subsection name="TiniAnt">
  303. <p>TiniAnt is an Ant task to support building applications for
  304. the <a href="http://www.ibutton.com/TINI/">TINI</a>.</p>
  305. <table>
  306. <tr>
  307. <th>Compatibility:</th>
  308. <td>Ant 1.2 to 1.4.1</td>
  309. </tr>
  310. <tr>
  311. <th>URL:</th>
  312. <td><a href="http://tiniant.sourceforge.net/">http://tiniant.sourceforge.net/</a></td>
  313. </tr>
  314. <tr>
  315. <th>Contact:</th>
  316. <td><a href="mailto:kelly@ad1440.net">Sean Kelly</a></td>
  317. </tr>
  318. <tr>
  319. <th>License:</th>
  320. <td>BSD-like license</td>
  321. </tr>
  322. </table>
  323. </subsection>
  324. <subsection name="Venus Application Publisher's (Vamp) Ant Task Suite">
  325. <p>Venus Application Publisher's (Vamp) Ant Task Suite allows
  326. you to sign and package your applications into relocatable Web
  327. Archives that you can drop into your web server for
  328. single-click launching using Java Web Start or into single
  329. Java Archive installers that serve up their content through a
  330. built-in, multi-threaded, ultra light-weight web server.</p>
  331. <table>
  332. <tr>
  333. <th>Compatibility:</th>
  334. <td>Ant 1.2 and 1.3</td>
  335. </tr>
  336. <tr>
  337. <th>URL:</th>
  338. <td><a href="http://www.geocities.com/vamp201/ant.html">http://www.geocities.com/vamp201/ant.html</a></td>
  339. </tr>
  340. <tr>
  341. <th>Contact:</th>
  342. <td><a href="mailto:vamp201@yahoo.com">Gerald Bauer</a></td>
  343. </tr>
  344. <tr>
  345. <th>License:</th>
  346. <td>GNU General Public License</td>
  347. </tr>
  348. </table>
  349. </subsection>
  350. <subsection name="XDoclet">
  351. <p>XDoclet is an extended Javadoc Doclet engine for use in Ant.
  352. It lets you create custom Javadoc @tags and based on those tags
  353. generates source code or other files (such as xml-ish deployment
  354. descriptors). Templates and matching tasks are provided to generate
  355. EJB and web application deployment descriptors.
  356. </p>
  357. <table>
  358. <tr>
  359. <th>Compatibility:</th>
  360. <td>Ant 1.4</td>
  361. </tr>
  362. <tr>
  363. <th>URL:</th>
  364. <td><a href="http://sourceforge.net/projects/xdoclet/">http://sourceforge.net/projects/xdoclet/</a></td>
  365. </tr>
  366. <tr>
  367. <th>License:</th>
  368. <td>BSD license</td>
  369. </tr>
  370. </table>
  371. </subsection>
  372. </section>
  373. <section name="IDE and Editor Integration">
  374. <subsection name="AntFarm">
  375. <p>A plugin that integrates Ant into the jEdit editor.</p>
  376. <table>
  377. <tr>
  378. <th>Compatibility:</th>
  379. <td>bundles Ant 1.3</td>
  380. </tr>
  381. <tr>
  382. <th>URL:</th>
  383. <td><a href="http://plugins.jedit.org/plugins/AntFarm">http://plugins.jedit.org/plugins/AntFarm</a></td>
  384. </tr>
  385. <tr>
  386. <th>Contact:</th>
  387. <td><a href="mailto:jedit-devel@lists.sourceforge.net">jEdit developers mailinglist</a></td>
  388. </tr>
  389. <tr>
  390. <th>License:</th>
  391. <td>Apache Software License</td>
  392. </tr>
  393. </table>
  394. </subsection>
  395. <subsection name="AntRunner">
  396. <p>An OpenTool that integrates Ant into the JBuilder IDE.</p>
  397. <table>
  398. <tr>
  399. <th>Compatibility:</th>
  400. <td>Ant 1.2 and 1.3</td>
  401. </tr>
  402. <tr>
  403. <th>URL:</th>
  404. <td><a href="http://www.dieter-bogdoll.de/java/AntRunner/">http://www.dieter-bogdoll.de/java/AntRunner/</a></td>
  405. </tr>
  406. <tr>
  407. <th>Contact:</th>
  408. <td><a href="mailto:bogdoll@users.sourceforge.net">Dieter Bogdoll</a></td>
  409. </tr>
  410. <tr>
  411. <th>License:</th>
  412. <td>GNU General Public License</td>
  413. </tr>
  414. </table>
  415. </subsection>
  416. <subsection name="AntWork">
  417. <p>A plugin that integrates Ant into the Jext editor.</p>
  418. <table>
  419. <tr>
  420. <th>Compatibility:</th>
  421. <td>Ant 1.2 and 1.3</td>
  422. </tr>
  423. <tr>
  424. <th>URL:</th>
  425. <td><a href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></td>
  426. </tr>
  427. <tr>
  428. <th>Contact:</th>
  429. <td><a href="mailto:KHartlage@t-online.de">Klaus Hartlage</a></td>
  430. </tr>
  431. <tr>
  432. <th>License:</th>
  433. <td>GNU General Public License</td>
  434. </tr>
  435. </table>
  436. </subsection>
  437. <subsection name="IntelliJ IDEA 2.0">
  438. <p>Java IDE with refactoring support and Ant integration.</p>
  439. <table>
  440. <tr>
  441. <th>Compatibility:</th>
  442. <td>bundles Ant 1.3</td>
  443. </tr>
  444. <tr>
  445. <th>URL:</th>
  446. <td><a href="http://www.intellij.com/idea/">http://www.intellij.com/idea/</a></td>
  447. </tr>
  448. <tr>
  449. <th>Contact:</th>
  450. <td><a href="mailto:support@intellij.com">support@intellij.com</a></td>
  451. </tr>
  452. <tr>
  453. <th>License:</th>
  454. <td>Commercial</td>
  455. </tr>
  456. </table>
  457. </subsection>
  458. <subsection name="JDE(E) 2.2.8">
  459. <p>The Java Development Environment for Emacs (JDEE) supports
  460. Apache Ant as one of three built-in ways to build your
  461. applications.</p>
  462. <table>
  463. <tr>
  464. <th>Compatibility:</th>
  465. <td>Ant 1.2 and later</td>
  466. </tr>
  467. <tr>
  468. <th>URL:</th>
  469. <td><a href="http://jde.sunsite.dk/">http://jde.sunsite.dk/</a></td>
  470. </tr>
  471. <tr>
  472. <th>Contact:</th>
  473. <td><a href="mailto:jde-subscribe@sunsite.auc.dk">JDEE Mailing list.</a></td>
  474. </tr>
  475. <tr>
  476. <th>License:</th>
  477. <td>GNU General Public License</td>
  478. </tr>
  479. </table>
  480. </subsection>
  481. <subsection name="NetBeans / Forte for Java">
  482. <p>A module that integrates Ant into the NetBeans or Forte for Java IDEs.</p>
  483. <table>
  484. <tr>
  485. <th>Compatibility:</th>
  486. <td>bundles Ant 1.4.1</td>
  487. </tr>
  488. <tr>
  489. <th>URL:</th>
  490. <td><a href="http://ant.netbeans.org/">http://ant.netbeans.org/</a></td>
  491. </tr>
  492. <tr>
  493. <th>Contact:</th>
  494. <td><a href="mailto:nbdev@netbeans.org">nbdev@netbeans.org</a></td>
  495. </tr>
  496. <tr>
  497. <th>License:</th>
  498. <td>Sun Public License</td>
  499. </tr>
  500. </table>
  501. </subsection>
  502. <subsection name="HP RadPak">
  503. <p>
  504. RadPak comes with the (free) HP Bluestone HPAS J2EE server, and is primarily
  505. a GUI tool for packaging and deploying java web and EJB applications
  506. as WAR and EAR files. The tool is ant based, and can be used with
  507. as a GUI for general ant development, providing form based entry
  508. of task attributes, and an animated display of task
  509. execution.
  510. </p>
  511. <table>
  512. <tr>
  513. <th>Compatibility:</th>
  514. <td>bundles Ant 1.3 and docs; adds a jar of extra tasks
  515. to any existing ant installation under ANT_HOME</td>
  516. </tr>
  517. <tr>
  518. <th>URL:</th>
  519. <td><a href="http://www.bluestone.com/products/hp-as/">http://www.bluestone.com/products/hp-as/</a></td>
  520. </tr>
  521. <tr>
  522. <th>License:</th>
  523. <td>Proprietary but free to download</td>
  524. </tr>
  525. </table>
  526. </subsection>
  527. </section>
  528. <section name="Other">
  529. <subsection name="AntHill">
  530. <p>Anthill is a build tool that promotes a controlled build
  531. process by ensuring that every build reflects the source
  532. repository contents and tagging the repository with a unique
  533. build number after every build. Anthill also encourages the
  534. sharing of knowledge within an organization by automatically
  535. updating a project intranet site with artifacts from the
  536. latest build.</p>
  537. <table>
  538. <tr>
  539. <th>Compatibility:</th>
  540. <td>bundles Ant 1.3, is compatible with Ant 1.3 to 1.4.1</td>
  541. </tr>
  542. <tr>
  543. <th>URL:</th>
  544. <td><a href="http://www.urbancode.com/projects/anthill/">http://www.urbancode.com/projects/anthill/</a></td>
  545. </tr>
  546. <tr>
  547. <th>Contact:</th>
  548. <td><a href ='mailto:mbz@urbancode.com'>Maciej Zawadzki</a></td>
  549. </tr>
  550. <tr>
  551. <th>License:</th>
  552. <td>Mozilla-like license</td>
  553. </tr>
  554. </table>
  555. </subsection>
  556. <subsection name="CruiseControl">
  557. <p>CruiseControl is a tool for setting up a continuous build
  558. process. CruiseControl provides an Ant wrapper and a set of
  559. tasks to automate the checkout/build/test cycle. CruiseControl
  560. also comes bundled with a servlet for viewing the status of
  561. the current build, as well as previous build results.</p>
  562. <table>
  563. <tr>
  564. <th>Compatibility:</th>
  565. <td>Ant 1.2 and higher</td>
  566. </tr>
  567. <tr>
  568. <th>URL:</th>
  569. <td><a href="http://cruisecontrol.sourceforge.net/">http://cruisecontrol.sourceforge.net/</a></td>
  570. </tr>
  571. <tr>
  572. <th>Contact:</th>
  573. <td><a href ='http://cruisecontrol.sourceforge.net/contact.html'>Project Mailing Lists and Administrators</a></td>
  574. </tr>
  575. <tr>
  576. <th>License:</th>
  577. <td>Release 1.0 has been licensed under the GNU General Public
  578. License. Starting with release 1.1 the license has been
  579. changed to a BSD-like license.</td>
  580. </tr>
  581. </table>
  582. </subsection>
  583. <subsection name="XML Publication">
  584. <p>XML Publication is a set of tools to generate Web pages
  585. from desktop documents or other structured documents using
  586. XSLT and Ant.</p>
  587. <table>
  588. <tr>
  589. <th>Compatibility:</th>
  590. <td>Ant 1.4</td>
  591. </tr>
  592. <tr>
  593. <th>URL:</th>
  594. <td><a href="http://XMLpublication.org/">http://XMLpublication.org/</a></td>
  595. </tr>
  596. <tr>
  597. <th>Contact:</th>
  598. <td><a href ="mailto:jmvanel@free.fr">Jean-Marc Vanel</a></td>
  599. </tr>
  600. <tr>
  601. <th>License:</th>
  602. <td>GNU General Public License.</td>
  603. </tr>
  604. </table>
  605. </subsection>
  606. </section>
  607. </body>
  608. </document>