Javaで何かを構築しようとするのではなく、標準のSubversionクライアントによって生成されたXML出力に基づいて、XLSTを使用してANTForm構成ファイルを生成してみませんか。
svn list --xml http://svn.apache.org/repos/asf/ant/ivy/core/tags > releases.xml
次のreleases.xmlファイルを生成します(わかりやすくするために編集しました)。
<?xml version="1.0"?>
<lists>
<list path="http://svn.apache.org/repos/asf/ant/ivy/core/tags">
<entry ..>
<name>1.4.1</name>
..
</entry>
<entry ..>
<name>2.0.0</name>
..
</entry>
</list>
</lists>
例
例は2つのファイルで構成されています
次のように実行します。
ant -f genGUI.xml
genGUI.xml
<project name="genGUI" default="run">
<property name="repo.url" value="http://svn.apache.org/repos/asf/ant/ivy/core/tags"/>
<property name="build.dir" location="build"/>
<property name="xsl.file" location="genGUI.xsl"/>
<property name="data.file" location="${build.dir}/data.xml"/>
<property name="run.file" location="${build.dir}/run.xml"/>
<target name="init">
<mkdir dir="${build.dir}"/>
</target>
<target name="get-data" depends="init">
<exec executable="svn" failonerror="true" output="${data.file}">
<arg line="list --xml ${repo.url}"/>
</exec>
</target>
<target name="generate" depends="get-data">
<xslt style="${xsl.file}" in="${data.file}" out="${run.file}"/>
</target>
<target name="run" depends="generate">
<ant antfile="${run.file}"/>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
</project>
genGUI.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:variable name="antform-home">${env.ANTFORM_HOME}</xsl:variable>
<xsl:template match="/">
<project name="genForm" default="menu">
<property environment="env"/>
<path id="runtime.cp">
<pathelement location="{$antform-home}/lib/antform.jar"/>
</path>
<target name="menu">
<taskdef name="antmenu" classname="com.sardak.antform.AntMenu" classpathref="runtime.cp"/>
<antmenu image="{$antform-home}/doc/images/logo-small.jpg" title="My simple form" stylesheet="{$antform-home}/style.test">
<label>Form is generated from subversion</label>
<xsl:apply-templates select="lists/list/entry"/>
</antmenu>
</target>
</project>
</xsl:template>
<xsl:template match="entry">
<button label="{name}" target="{name}"/>
</xsl:template>
</xsl:stylesheet>