1 <!-- Main build configutaion for Shibboleth java components - Walter Hoehn 06/04/2002 -->
3 <project name="Shibboleth" default="install" basedir=".">
5 <!-- Set global properties for this build -->
6 <property name="distnameWayf" value="shibboleth-wayf" />
7 <property name="root" value="." />
8 <property name="src" value="${root}/src/" />
9 <property name="tests" value="${root}/tests/" />
10 <property name="approot" value="${root}/webApplication/" />
11 <property name="appconfig" value="${src}/conf/" />
12 <property name="configroot" value="${root}/webAppConfig/" />
13 <property name="build" value="${approot}/WEB-INF/classes/" />
14 <property name="libdir" value="${approot}/WEB-INF/lib/" />
15 <property name="buildlibs" value="${root}/lib/" />
16 <property name="endorsed" value="${root}/endorsed/" />
17 <property name="distlibs" value="${root}/lib/" />
18 <property name="custom" value="${root}/custom/" />
19 <property name="custom.libs" value="${custom}/lib"/>
20 <property name="custom.webapges" value="${custom}/web"/>
21 <property name="dist" value="${root}/dist/" />
22 <property name="docs" value="${root}/doc/" />
23 <property name="javadocs" value="${docs}/api/" />
25 <property name="year" value="2002-2005"/>
26 <property name="copyright" value="Copyright © ${year} UCAID. All Rights Reserved."/>
29 <!-- antcontrib tasks -->
30 <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${buildlibs}/ant-contrib.jar"/>
32 <!-- Import the tasks for building custom extensions -->
33 <import file="${custom}/extension-build.xml"/>
35 <!-- Construct the CLASSPATH -->
36 <path id="build.path">
37 <pathelement location="${build}" />
38 <fileset dir="${endorsed}">
39 <include name="**/*.jar" />
41 <fileset dir="${libdir}">
42 <include name="**/*.jar" />
44 <fileset dir="${buildlibs}">
45 <include name="**/*.jar" />
50 <!-- Prepare directory structure for project build-->
52 <mkdir dir="${build}" />
53 <mkdir dir="${dist}" />
54 <mkdir dir="${custom.libs}"/>
55 <mkdir dir="${custom.webapges}"/>
58 <not> <available file="build.properties" /> </not>
60 <copy file="conf/default.build.properties" tofile="build.properties" />
64 <property file="build.properties" />
68 <!-- This target should be run before checking code into the repository -->
69 <target name="pre-checkin" depends="compile, test-all, clean-all" />
72 <!-- Compile classes and move them to ${build} -->
73 <target name="compile" depends="init"
74 description="Compile source files">
75 <!-- Compile the shib code into the build path -->
76 <javac srcdir="${src}" destdir="${build}" includes="**/*.java" debug="on" source="1.4">
77 <classpath refid="build.path" />
79 <!-- Copy xml schemas to the build path -->
80 <copy todir="${build}/schemas">
81 <fileset dir="${src}/schemas"/>
84 <!-- Build extensions -->
85 <antcall target="ext-invoke">
86 <param name="exts.dir" value="${custom}"/>
87 <param name="ext.build.function" value="ext-build"/>
92 <!-- Generate API docs -->
93 <target name="javadocs">
94 <mkdir dir="${docs}" />
95 <mkdir dir="${javadocs}" />
96 <javadoc packagenames='edu.internet2.middleware.*'
97 sourcepath='${src}' destdir='${javadocs}'
98 author='true' version='true'
99 windowtitle='Shibboleth Java API' doctitle='Shibboleth Java API'
100 bottom='${copyright}'>
101 <classpath refid="build.path" />
106 <!-- Build command-line utilities -->
107 <target name="build-util" depends="compile">
108 <jar jarfile="${distlibs}/shib-util.jar" basedir="${build}" />
111 <!-- Cleanup after the build, test, and distribution processes -->
112 <target name="clean" depends="clean-all" />
114 <target name="clean-all" depends="clean-build, clean-dist, clean-test, clean-javadocs, clean-util"/>
116 <target name="clean-build">
117 <delete dir="${build}" />
118 <delete dir="${custom.libs}"/>
119 <delete dir="${custom.webapges}"/>
120 <antcall target="ext-invoke">
121 <param name="exts.dir" value="${custom}"/>
122 <param name="ext.build.function" value="ext-clean-build"/>
126 <target name="clean-test">
128 <fileset dir="${root}">
129 <include name="**/TEST*.txt" />
134 <target name="clean-dist">
135 <delete dir="${dist}" />
136 <antcall target="ext-invoke">
137 <param name="exts.dir" value="${custom}"/>
138 <param name="ext.build.function" value="ext-clean-dist"/>
142 <target name="clean-javadocs">
143 <delete dir="${javadocs}" />
144 <antcall target="ext-invoke">
145 <param name="exts.dir" value="${custom}"/>
146 <param name="ext.build.function" value="ext-clean-javadocs"/>
150 <target name="clean-util">
152 <fileset dir="${buildlibs}">
153 <include name="shib-util.jar" />
158 <!-- Add to the classpath for unit tests -->
159 <path id="test.path">
160 <path refid="build.path"/>
161 <pathelement location="${tests}"/>
164 <!-- Compile classes needed for unit testing -->
165 <target name="compile-tests" depends="compile">
166 <javac srcdir="${tests}" destdir="${build}" includes="**/*.java" debug="on" source="1.4">
167 <classpath refid="build.path" />
171 <!-- Run automated tests on compiled code -->
172 <target name="test-all" depends="test-IdP, test-SP" />
174 <target name="test-IdP" depends="compile-tests">
175 <junit printsummary="no" fork="yes" haltonfailure="yes" haltonerror="yes" dir="${root}">
176 <jvmarg value="-Djava.endorsed.dirs=${endorsed}" />
178 <fileset dir="${custom.libs}">
179 <include name="*.jar"/>
181 <path refid="test.path"/>
183 <formatter type="plain" />
184 <test name="edu.internet2.middleware.shibboleth.aa.arp.ArpTests" />
185 <test name="edu.internet2.middleware.shibboleth.aa.attrresolv.ResolverTests" />
186 <test name="edu.internet2.middleware.shibboleth.common.CredentialsTests" />
187 <test name="edu.internet2.middleware.shibboleth.common.provider.NameMapperTests" />
188 <test name="edu.internet2.middleware.shibboleth.common.TrustTests" />
189 <test name="edu.internet2.middleware.shibboleth.idp.provider.DNHostNameExtractionTests" />
190 <test name="edu.internet2.middleware.shibboleth.metadata.MetadataTests" />
191 <test name="edu.internet2.middleware.shibboleth.idp.SSOTest" />
192 <test name="edu.internet2.middleware.shibboleth.idp.AATest" />
196 <target name="test-SP" depends="compile-tests">
197 <junit printsummary="no" fork="yes" haltonfailure="yes" haltonerror="yes" dir="${root}">
198 <jvmarg value="-Djava.endorsed.dirs=${endorsed}" />
200 <fileset dir="${custom.libs}">
201 <include name="*.jar"/>
203 <path refid="test.path"/>
205 <formatter type="plain" />
206 <test name="edu.internet2.middleware.shibboleth.aap.AAPTests" />
211 <!-- Tomcat Management -->
212 <target name="setupTomcatTasks" depends="init">
213 <path id="tomcat.classpath">
214 <fileset dir="${tomcat.home}/server/lib" includes="catalina-ant.jar"/>
217 <taskdef name="tomcatStart" classname="org.apache.catalina.ant.StartTask" classpathref="tomcat.classpath"/>
218 <taskdef name="tomcatStop" classname="org.apache.catalina.ant.StopTask" classpathref="tomcat.classpath"/>
219 <taskdef name="tomcatDeploy" classname="org.apache.catalina.ant.DeployTask" classpathref="tomcat.classpath"/>
220 <taskdef name="tomcatUndeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="tomcat.classpath"/>
223 <target name="tomcat.start" depends="setupTomcatTasks" description="Start a deployed webapp using Tomcat manager">
224 <tomcatStart url="${tomcat.url}" username="${tomcat.username}" password="${tomcat.password}" path="/${idp.webapp.name}"/>
227 <target name="tomcat.stop" depends="setupTomcatTasks" description="Stop a deployed webapp using Tomcat manager">
228 <tomcatStop url="${tomcat.url}" username="${tomcat.username}" password="${tomcat.password}" path="/${idp.webapp.name}"/>
231 <target name="tomcat.deploy" depends="setupTomcatTasks" description="Upload and deploy using Tomcat manager">
232 <tomcatDeploy url="${tomcat.url}" username="${tomcat.username}" password="${tomcat.password}" path="/${idp.webapp.name}"
233 war="file:${basedir}/${dist}/${idp.webapp.name}.war"/>
236 <target name="tomcat.undeploy" depends="setupTomcatTasks" description="Undeploy using Tomcat manager">
237 <tomcatUndeploy url="${tomcat.url}" username="${tomcat.username}" password="${tomcat.password}" path="/${idp.webapp.name}"/>
241 <!-- Automated key generation for crypto handles -->
242 <target name="genSecret" depends="compile">
243 <taskdef name="genSecret" classname="edu.internet2.middleware.shibboleth.utils.HandleRepositorySecretGenerator" classpathref="build.path"/>
244 <genSecret keyStorePath="${appconfig}/handle.jks" keyStorePassword="shibhs" keyStoreKeyAlias="handleKey" keyStoreKeyPassword="shibhs" />
248 <!-- Generate salt for use with targetted id -->
249 <target name="genSalt" depends="compile">
250 <taskdef name="genSalt" classname="edu.internet2.middleware.shibboleth.utils.HandleRepositorySecretGenerator" classpathref="build.path"/>
251 <genSalt keyStorePath="${appconfig}/persistent.jks" keyStorePassword="shibhs" keyStoreKeyAlias="handleKey" keyStoreKeyPassword="shibhs" />
254 <target name="exampleCertificates">
256 This target provides an example of the generation of
257 self-signed Certificates for the IdP and SP. You may
258 change the cn= and use it to generate new identities
259 when you want to replace "example.org" with your real
260 organization dns. However,the generated key and
261 certificate also have to be defined to the Credentials
262 of the IdP and SP config files and added to the Metadata.
264 <genkey alias="tomcat" storepass="exampleorg"
265 keystore="${tomcat.home}/conf/idp-example.jks"
266 keyalg="RSA" validity="365"
267 dname="cn=idp.example.org, o=example.org, c=US"
269 <genkey alias="tomcat" storepass="exampleorg"
270 keystore="${tomcat.home}/conf/sp-example.jks"
271 keyalg="RSA" validity="365"
272 dname="cn=sp.example.org, o=example.org, c=US"
277 <!-- Package Shibboleth -->
278 <target name="package-idp" depends="compile, install.url" description="Creates the IdP war file and moves it to ${dist}">
279 <!-- copy values to deployment descriptor -->
280 <copy file="${configroot}/${idp.deployment.descriptor}" tofile="${configroot}/idp.xml" overwrite="true" />
281 <replace file="${configroot}/idp.xml" token="$IDP_HOME$" value="${idp.home.url}" />
283 <!-- package extensions -->
284 <antcall target="ext-invoke">
285 <param name="exts.dir" value="${custom}"/>
286 <param name="ext.build.function" value="ext-package"/>
287 <param name="ext.filesystem.home" value="${idp.home}"/>
288 <param name="ext.home.token" value="$IDP_HOME$"/>
291 <!-- create the war -->
292 <war warfile="${dist}/${idp.webapp.name}.war" webxml="${configroot}/idp.xml" basedir="${approot}" update="no" duplicate="preserve">
293 <!-- Grab any custom extension libraries -->
294 <lib dir="${custom.libs}"/>
296 <!-- Grab any web material from custom extensions -->
297 <fileset dir="${custom.webapges}"/>
300 <!-- clean up generated descriptor -->
301 <delete file="${configroot}/idp.xml"/>
304 <target name="package-wayf" depends="compile" description="Creates the WAYF war and moves it to ${dist}">
305 <copy file="${appconfig}/schemas.properties" todir="${approot}/WEB-INF/classes/conf"/>
306 <copy file="${appconfig}/wayfconfig.xml" todir="${approot}/WEB-INF/classes/conf"/>
307 <copy file="${appconfig}/log4j.properties" tofile="${build}/log4j.properties" failonerror="false"/>
309 <war warfile="${dist}/${distnameWayf}.war" webxml="${configroot}/wayf.xml" basedir="${approot}" update="no"/>
312 <target name="package-sp" depends="compile, install.url" description="Creates the Java SP war and moves it to ${dist}">
313 <!-- copy values to deployment descriptor -->
314 <copy file="${configroot}/${sp.deployment.descriptor}" tofile="${configroot}/sp.xml" overwrite="true" />
315 <replace file="${configroot}/sp.xml" token="$SP_HOME$" value="${sp.home.url}" />
317 <!-- package extensions -->
318 <antcall target="ext-invoke">
319 <param name="exts.dir" value="${custom}"/>
320 <param name="ext.build.function" value="ext-package"/>
321 <param name="ext.filesystem.home" value="${sp.home}"/>
322 <param name="ext.home.token" value="$SP_HOME$"/>
325 <!-- create the war -->
326 <war warfile="${dist}/${sp.webapp.name}.war" webxml="${configroot}/sp.xml" basedir="${approot}" update="no">
327 <!-- Grab any custom extension libraries -->
328 <lib dir="${custom.libs}"/>
330 <!-- Grab any web material from custom extensions -->
331 <fileset dir="${custom.webapges}"/>
334 <!-- clean up generated descriptor -->
335 <delete file="${configroot}/sp.xml"/>
339 <!-- Install Shibboleth -->
340 <target name="install.init">
341 <taskdef name="xinput" classname="edu.internet2.middleware.shibboleth.utils.ant.XInput" classpath="${build}" />
342 <typedef name="xoption" classname="edu.internet2.middleware.shibboleth.utils.ant.XInputOption" classpath="${build}" />
345 <target name="install.url">
346 <taskdef name="urlconvert" classname="edu.internet2.middleware.shibboleth.utils.ant.URLConvert" classpath="${build}"/>
347 <urlconvert path="${idp.home}" addProperty="idp.home.url"/>
348 <urlconvert path="${sp.home}" addProperty="sp.home.url"/>
351 <target name="install" depends="init, install.init" description="Install Shibboleth">
353 <xinput type="confirm" defaultvalue="y">Do you want to install the Shibboleth Identity Provider?</xinput>
355 <input message="What name do you want to use for the Identity Provider web application? [default: ${idp.webapp.name}]"
356 addproperty="idp.webapp.name.input" defaultValue="${idp.webapp.name}" />
357 <var name="idp.webapp.name" value="${idp.webapp.name.input}" />
359 <antcall target="install.idp" />
364 <target name="installx" depends="init, install.init" description="Interactive SP Install">
366 <xinput type="confirm" defaultvalue="y">Do you want to install the Shibboleth Service Provider?</xinput>
368 <input message="What name do you want to use for the Service Provider web application? [default: ${sp.webapp.name}]"
369 addproperty="sp.webapp.name.input" defaultValue="${sp.webapp.name}" />
370 <var name="sp.webapp.name" value="${sp.webapp.name.input}" />
372 <antcall target="install.sp" />
377 <target name="install.idp" depends="init, install.init">
378 <xinput message="Deploying the java web application. Do you want to install it directly onto the filesystem or use the tomcat manager application?"
379 addproperty="idp.install-type.input" type="menu" casesensitive="no" defaultValue="${idp.install-type}">
380 <xoption value="filesystem.prompt">filesystem</xoption>
381 <xoption>manager</xoption>
383 <var name="idp.install-type" value="${idp.install-type.input}" />
385 <antcall target="install.idp.${idp.install-type}" />
388 <target name="install.sp" depends="init, install.init">
389 <xinput message="Deploying the java web application. Do you want to install it directly onto the filesystem or use the tomcat manager application?"
390 addproperty="sp.install-type.input" type="menu" casesensitive="no" defaultValue="${sp.install-type}">
391 <xoption value="filesystem.prompt">filesystem</xoption>
392 <xoption>manager</xoption>
394 <var name="sp.install-type" value="${sp.install-type.input}" />
396 <antcall target="install.sp.${sp.install-type}" />
399 <!-- Prompt user for filesystem installation options and save them to build.properties -->
400 <target name="install.idp.filesystem.prompt" depends="init, install.init">
401 <input message="Select a home directory for the Shibboleth Identity Provider [default: ${idp.home}]"
402 addproperty="idp.home.input" defaultvalue="${idp.home}" />
403 <var name="idp.home" value="${idp.home.input}" />
404 <input message="Enter tomcat home directory [default: ${tomcat.home}]"
405 addproperty="tomcat.home.input" defaultvalue="${tomcat.home}" />
406 <var name="tomcat.home" value="${tomcat.home.input}" />
409 <available file="${idp.home}/etc" />
411 <echo>--------------------------------------------------------------------------------------</echo>
413 <echo>--- NOTE: Existing Identiity Provider configuration at ${idp.home}/etc ${line.separator}--- will not be overwritten.</echo>
415 <echo>--------------------------------------------------------------------------------------</echo>
416 <property name="copy-idp-conf" value="n" />
419 <property name="copy-idp-conf" value="y" />
423 <antcall target="install.idp.filesystem" />
424 <antcall target="savePropertyFile" />
427 <!-- Prompt user for filesystem installation options and save them to build.properties -->
428 <target name="install.sp.filesystem.prompt" depends="init, install.init">
429 <input message="Select a home directory for the Shibboleth Service Provider [default: ${sp.home}]"
430 addproperty="sp.home.input" defaultvalue="${sp.home}" />
431 <var name="sp.home" value="${sp.home.input}" />
432 <input message="Enter tomcat home directory [default: ${tomcat.home}]"
433 addproperty="tomcat.home.input" defaultvalue="${tomcat.home}" />
434 <var name="tomcat.home" value="${tomcat.home.input}" />
437 <available file="${sp.home}/etc" />
439 <echo>--------------------------------------------------------------------------------------</echo>
441 <echo>--- NOTE: Existing Service Provider configuration at ${sp.home}/etc ${line.separator}--- will not be overwritten.</echo>
443 <echo>--------------------------------------------------------------------------------------</echo>
444 <property name="copy-sp-conf" value="n" />
447 <property name="copy-sp-conf" value="y" />
451 <antcall target="install.sp.filesystem" />
452 <antcall target="savePropertyFile" />
455 <!-- Install Shibboleth IdP to filesystem using the properties in build.properties -->
456 <target name="install.idp.filesystem" depends="init, install.init, build-util, install.url, package-idp"
457 description="Install Shibboleth IdP to filesystem using the properties in build.properties">
459 <!-- Move IdP war to Tomcat deployment directory -->
460 <copy file="${dist}/${idp.webapp.name}.war" tofile="${tomcat.home}/webapps/${idp.webapp.name}.war" />
462 <!-- copy IdP jars and utilities -->
463 <copy todir="${idp.home}/lib">
464 <fileset dir="lib" includesfile="conf/idp-lib.include" />
467 <copy todir="${idp.home}/endorsed">
468 <fileset dir="endorsed" />
471 <copy todir="${idp.home}/bin">
474 <chmod dir="${idp.home}/bin" perm="ug+rx" includes="**/*"/>
476 <mkdir dir="${idp.home}/logs" />
478 <!-- Copy necessary files to IDP_HOME -->
479 <antcall target="install.idp.buildHome" />
481 <antcall target="ext-invoke">
482 <param name="exts.dir" value="${custom}"/>
483 <param name="ext.build.function" value="ext-install-filesystem"/>
484 <param name="ext.filesystem.home" value="${idp.home}"/>
485 <param name="ext.home.token" value="$IDP_HOME$"/>
490 <target name="install.idp.buildHome" depends="init, install.init">
491 <!-- copy IdP configuration -->
494 <equals arg1="${copy-idp-conf}" arg2="y" />
495 <not> <available file="${idp.home}/etc" /> </not>
498 <delete dir="${idp.home}/etc" />
499 <antcall target="install.idp.filesystem.config" />
504 <!-- Install Shibboleth SP to filesystem using the properties in build.properties -->
505 <target name="install.sp.filesystem" depends="init, install.init, build-util, install.url, package-sp"
506 description="Install Shibboleth SP to filesystem using the properties in build.properties">
508 <!-- Move SP war to Tomcat deployment directory -->
509 <copy file="${dist}/${sp.webapp.name}.war" tofile="${tomcat.home}/webapps/${sp.webapp.name}.war" />
511 <!-- Move Shib Filter jar to Tomcat shared directory -->
512 <copy file="${distlibs}/shib-filter.jar" tofile="${tomcat.home}/shared/lib/shib-filter.jar" />
514 <!-- Copy test secure application to Tomcat -->
515 <copy file="${root}/data/secure.war" tofile="${tomcat.home}/webapps/secure.war" />
517 <!-- copy sp jars and utilities -->
518 <copy todir="${sp.home}/lib">
519 <fileset dir="lib" includesfile="conf/idp-lib.include" />
522 <copy todir="${sp.home}/bin">
525 <chmod dir="${sp.home}/bin" perm="ug+rx" includes="**/*"/>
527 <mkdir dir="${sp.home}/logs" />
529 <!-- copy sp configuration -->
532 <equals arg1="${copy-sp-conf}" arg2="y" />
533 <not> <available file="${sp.home}/etc" /> </not>
536 <delete dir="${sp.home}/etc" />
537 <antcall target="install.sp.filesystem.config" />
541 <antcall target="ext-invoke">
542 <param name="exts.dir" value="${custom}"/>
543 <param name="ext.build.function" value="ext-install-filesystem"/>
544 <param name="ext.filesystem.home" value="${sp.home}"/>
545 <param name="ext.home.token" value="$SP_HOME$"/>
550 <!-- copy shibboleth configuration to $IDP_HOME/etc, overwriting any existing configuration -->
551 <target name="install.idp.filesystem.config" depends="init, install.init, install.url">
552 <mkdir dir="${idp.home}/etc" />
553 <copy todir="${idp.home}/etc" overwrite="true">
554 <fileset dir="${src}/conf" includesfile="conf/idp-conf.include"/>
556 <move file="${idp.home}/etc/dist.idp.xml" tofile="${idp.home}/etc/idp.xml" overwrite="true" />
557 <replace file="${idp.home}/etc/idp.xml" token="$IDP_HOME$" value="${idp.home.url}" />
558 <replace file="${idp.home}/etc/idp.xml" token="$IDP_WEBAPP_NAME$" value="${idp.webapp.name}" />
561 <!-- copy SP configuration to $SP_HOME$/etc, overwriting any existing configuration -->
562 <target name="install.sp.filesystem.config" depends="init, install.init">
563 <mkdir dir="${sp.home}/etc" />
564 <copy todir="${sp.home}/etc" overwrite="true">
565 <fileset dir="${src}/conf" includesfile="conf/sp-conf.include"/>
567 <move file="${sp.home}/etc/dist.sp-iqidp.xml" tofile="${sp.home}/etc/sp.xml" overwrite="true" />
568 <replace file="${sp.home}/etc/sp.xml" token="$SP_HOME$" value="${sp.home.url}" />
571 <!-- install Shibboleth-IdP war using tomcat's manager app -->
572 <target name="install.idp.manager" depends="init, install.init">
573 <antcall target="setupTomcatTasks" />
575 <input message="Enter local tomcat directory [default: ${tomcat.home}]" addproperty="tomcat.home.input" defaultValue="${tomcat.home}" />
576 <var name="tomcat.home" value="${tomcat.home.input}" />
578 <input message="Enter tomcat url [default: ${tomcat.url}]" addproperty="tomcat.url.input" defaultValue="${tomcat.url}" />
579 <var name="tomcat.url" value="${tomcat.url.input}" />
581 <input message="Enter tomcat username [default: ${tomcat.username}]" addproperty="tomcat.username.input" defaultValue="${tomcat.username}" />
582 <var name="tomcat.username" value="${tomcat.username.input}" />
584 <input message="Enter tomcat password [default: ${tomcat.password}]" addproperty="tomcat.password.input" defaultValue="${tomcat.password}" />
585 <var name="tomcat.password" value="${tomcat.password.input}" />
587 <antcall target="package-idp" />
588 <antcall target="tomcat.deploy" />
589 <antcall target="install.idp.buildHome" />
590 <antcall target="savePropertyFile" />
593 <!-- save configuration to build.properties -->
594 <target name="savePropertyFile">
595 <propertyfile file="build.properties">
596 <entry key="idp.home" value="${idp.home}" />
597 <entry key="sp.home" value="${sp.home}" />
598 <entry key="idp.webapp.name" value="${idp.webapp.name}" />
599 <entry key="sp.webapp.name" value="${sp.webapp.name}" />
600 <entry key="idp.install-type" value="${idp.install-type}" />
601 <entry key="tomcat.home" value="${tomcat.home}" />
602 <entry key="tomcat.url" value="${tomcat.url}" />
603 <entry key="tomcat.username" value="${tomcat.username}" />
604 <entry key="tomcat.password" value="${tomcat.password}" />
607 <!-- For IDE development, run this target first to delete all
608 directories generated by the install process before
609 recreating and reinstalling everything. -->
610 <target name="clean-install" depends="init"
611 description="Delete old configuration and Tomcat webapp directories.">
612 <delete dir="${idp.home}" />
613 <delete dir="${sp.home}" />
614 <delete dir="${tomcat.home}/webapps/${idp.webapp.name}" />
615 <delete dir="${tomcat.home}/webapps/${sp.webapp.name}" />