Since we always need the newest xerces endorsed now, copy it over to $IDP_HOME$.
[java-idp.git] / build.xml
1 <!-- Main build configutaion for Shibboleth java components - Walter Hoehn 06/04/2002 -->
2
3 <project name="Shibboleth" default="install" basedir=".">
4
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/" />
24
25         <property name="year" value="2002-2005"/>
26         <property name="copyright" value="Copyright &#169; ${year} UCAID. All Rights Reserved."/>
27
28
29         <!-- antcontrib tasks -->
30         <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${buildlibs}/ant-contrib.jar"/>
31
32         <!-- Import the tasks for building custom extensions -->
33         <import file="${custom}/extension-build.xml"/>
34
35         <!-- Construct the CLASSPATH -->
36         <path id="build.path">
37                 <pathelement path="${classpath}" />
38                 <pathelement location="${build}" />
39                 <fileset dir="${custom}">
40                         <include name="**/*.jar" />
41                 </fileset>
42                 <fileset dir="${endorsed}">
43                         <include name="**/*.jar" />
44                 </fileset>
45                 <fileset dir="${libdir}">
46                         <include name="**/*.jar" />
47                 </fileset>
48                 <fileset dir="${buildlibs}">
49                         <include name="**/*.jar" />
50                 </fileset>
51         </path>
52
53
54         <!-- Prepare directory structure for project build-->
55         <target name="init">
56                 <mkdir dir="${build}" />
57                 <mkdir dir="${dist}" />
58                 <mkdir dir="${custom.libs}"/>
59                 <mkdir dir="${custom.webapges}"/>
60
61                 <if>
62                         <not> <available file="build.properties" /> </not>
63                         <then>
64                                 <copy file="conf/default.build.properties" tofile="build.properties" />
65                         </then>
66                 </if>
67
68                 <property file="build.properties" />
69         </target>
70
71
72         <!-- This target should be run before checking code into the repository -->
73         <target name="pre-checkin" depends="compile, test-all, clean-all" />
74
75
76         <!-- Compile classes and move them to ${build} -->
77         <target name="compile" depends="init"
78                 description="Compile source files">
79                 <!-- Compile the shib code into the build path -->
80                 <javac srcdir="${src}" destdir="${build}" includes="**/*.java" debug="on" source="1.4">
81                         <classpath refid="build.path" />
82                 </javac>
83                 <!-- Copy xml schemas to the build path -->
84                 <copy todir="${build}/schemas">
85                         <fileset dir="${src}/schemas"/>
86                 </copy>
87
88                 <!-- Build extensions -->
89                 <antcall target="ext-invoke">
90                         <param name="exts.dir" value="${custom}"/>
91             <param name="ext.build.function" value="ext-build"/>      
92                 </antcall>
93         </target>
94
95
96         <!-- Generate API docs -->
97         <target name="javadocs">
98                 <mkdir dir="${docs}" />
99                 <mkdir dir="${javadocs}" />
100                 <javadoc packagenames='edu.internet2.middleware.*'
101                         sourcepath='${src}' destdir='${javadocs}'
102                         author='true' version='true'
103                         windowtitle='Shibboleth Java API' doctitle='Shibboleth Java API'
104                         bottom='${copyright}'>
105                         <classpath refid="build.path" />
106                 </javadoc>
107         </target>
108
109
110         <!-- Build command-line utilities -->
111         <target name="build-util" depends="compile">
112                 <jar jarfile="${distlibs}/shib-util.jar" basedir="${build}" />
113         </target>
114
115         <!-- Cleanup after the build, test, and distribution processes -->
116         <target name="clean" depends="clean-all" />
117
118     <target name="clean-all" depends="clean-build, clean-dist, clean-test, clean-javadocs, clean-util"/>
119         
120     <target name="clean-build">
121                 <delete dir="${build}" />
122                 <delete dir="${custom.libs}"/>
123                 <delete dir="${custom.webapges}"/>
124             <antcall target="ext-invoke">
125                 <param name="exts.dir" value="${custom}"/>
126             <param name="ext.build.function" value="ext-clean-build"/>   
127             </antcall>
128         </target>
129         
130     <target name="clean-test">
131                 <delete>
132                         <fileset dir="${root}">
133                                 <include name="**/TEST*.txt" />
134                         </fileset>
135                 </delete>
136         </target>
137         
138     <target name="clean-dist">
139                 <delete dir="${dist}" />
140         <antcall target="ext-invoke">
141             <param name="exts.dir" value="${custom}"/>
142             <param name="ext.build.function" value="ext-clean-dist"/>   
143         </antcall>   
144         </target>
145         
146     <target name="clean-javadocs">
147                 <delete dir="${javadocs}" />
148         <antcall target="ext-invoke">
149             <param name="exts.dir" value="${custom}"/>
150             <param name="ext.build.function" value="ext-clean-javadocs"/>   
151         </antcall>
152         </target>
153         
154     <target name="clean-util">
155                 <delete>
156                         <fileset dir="${buildlibs}">
157                                 <include name="shib-util.jar" />
158                         </fileset>
159                 </delete>
160         </target>
161
162         <!-- Add to the classpath for unit tests -->
163         <path id="test.path">
164                 <path refid="build.path"/>
165                 <pathelement location="${tests}"/>
166         </path>
167
168         <!-- Compile classes needed for unit testing -->
169         <target name="compile-tests" depends="compile">
170                 <javac srcdir="${tests}" destdir="${build}" includes="**/*.java" debug="on" source="1.4">
171                         <classpath refid="build.path" />
172                 </javac>
173         </target>
174
175         <!-- Run automated tests on compiled code -->
176         <target name="test-all" depends="test-IdP, test-SP" />
177
178         <target name="test-IdP" depends="compile-tests">
179                 <junit printsummary="no" fork="yes" haltonfailure="yes" haltonerror="yes" dir="${root}">
180                         <jvmarg value="-Djava.endorsed.dirs=${endorsed}" />
181                         <classpath>
182                             <fileset dir="${custom.libs}">
183                                 <include name="*.jar"/>
184                             </fileset>
185                             <filelist refid="test.path"/>
186                         </classpath>
187                         <formatter type="plain" />
188                         <test name="edu.internet2.middleware.shibboleth.aa.arp.ArpTests" />
189                         <test name="edu.internet2.middleware.shibboleth.aa.attrresolv.ResolverTests" />
190                         <test name="edu.internet2.middleware.shibboleth.common.CredentialsTests" />
191                         <test name="edu.internet2.middleware.shibboleth.common.provider.NameMapperTests" />
192                         <test name="edu.internet2.middleware.shibboleth.common.TrustTests" />
193                         <test name="edu.internet2.middleware.shibboleth.idp.provider.DNHostNameExtractionTests" />
194                         <test name="edu.internet2.middleware.shibboleth.metadata.MetadataTests" />
195                 </junit>
196         </target>
197
198         <target name="test-SP" depends="compile-tests">
199                 <junit printsummary="no" fork="yes" haltonfailure="yes" haltonerror="yes" dir="${root}">
200                         <jvmarg value="-Djava.endorsed.dirs=${endorsed}" />
201                     <classpath>
202                                 <fileset dir="${custom.libs}">
203                                         <include name="*.jar"/>
204                                 </fileset>
205                                 <filelist refid="test.path"/>
206                         </classpath>
207                         <formatter type="plain" />
208                         <test name="edu.internet2.middleware.shibboleth.aap.AAPTests" />
209                 </junit>
210         </target>
211
212
213         <!-- Tomcat Management -->
214         <target name="setupTomcatTasks" depends="init">
215                 <path id="tomcat.classpath">
216                         <fileset dir="${tomcat.home}/server/lib" includes="catalina-ant.jar"/>
217                 </path>
218
219                 <taskdef name="tomcatStart" classname="org.apache.catalina.ant.StartTask" classpathref="tomcat.classpath"/>
220                 <taskdef name="tomcatStop" classname="org.apache.catalina.ant.StopTask" classpathref="tomcat.classpath"/>
221                 <taskdef name="tomcatDeploy" classname="org.apache.catalina.ant.DeployTask" classpathref="tomcat.classpath"/>
222                 <taskdef name="tomcatUndeploy" classname="org.apache.catalina.ant.UndeployTask" classpathref="tomcat.classpath"/>
223         </target>
224
225         <target name="tomcat.start" depends="setupTomcatTasks" description="Start a deployed webapp using Tomcat manager">
226                 <tomcatStart url="${tomcat.url}" username="${tomcat.username}" password="${tomcat.password}" path="/${idp.webapp.name}"/>
227         </target>
228
229         <target name="tomcat.stop" depends="setupTomcatTasks" description="Stop a deployed webapp using Tomcat manager">
230                 <tomcatStop url="${tomcat.url}" username="${tomcat.username}" password="${tomcat.password}" path="/${idp.webapp.name}"/>
231         </target>
232
233         <target name="tomcat.deploy" depends="setupTomcatTasks" description="Upload and deploy using Tomcat manager">
234                 <tomcatDeploy url="${tomcat.url}" username="${tomcat.username}" password="${tomcat.password}" path="/${idp.webapp.name}"
235                         war="file:${basedir}/${dist}/${idp.webapp.name}.war"/>
236         </target>
237
238         <target name="tomcat.undeploy" depends="setupTomcatTasks" description="Undeploy using Tomcat manager">
239                 <tomcatUndeploy url="${tomcat.url}" username="${tomcat.username}" password="${tomcat.password}" path="/${idp.webapp.name}"/>
240         </target>
241
242
243         <!-- Automated key generation for crypto handles -->
244         <target name="genSecret" depends="compile">
245                 <taskdef name="genSecret" classname="edu.internet2.middleware.shibboleth.utils.HandleRepositorySecretGenerator" classpathref="build.path"/>
246                 <genSecret keyStorePath="${appconfig}/handle.jks" keyStorePassword="shibhs" keyStoreKeyAlias="handleKey" keyStoreKeyPassword="shibhs" />
247         </target>
248
249
250         <!-- Generate salt for use with targetted id -->
251         <target name="genSalt" depends="compile">
252                 <taskdef name="genSalt" classname="edu.internet2.middleware.shibboleth.utils.HandleRepositorySecretGenerator" classpathref="build.path"/>
253                 <genSalt keyStorePath="${appconfig}/persistent.jks" keyStorePassword="shibhs" keyStoreKeyAlias="handleKey" keyStoreKeyPassword="shibhs" />
254         </target>
255
256         <target name="exampleCertificates">
257                 <!--
258                 This target provides an example of the generation of
259                 self-signed Certificates for the IdP and SP. You may
260                 change the cn= and use it to generate new identities
261                 when you want to replace "example.org" with your real
262                 organization dns. However,the generated key and 
263                 certificate also have to be defined to the Credentials
264                 of the IdP and SP config files and added to the Metadata.
265                 -->
266                 <genkey alias="tomcat" storepass="exampleorg"
267                         keystore="${tomcat.home}/conf/idp-example.jks"
268                         keyalg="RSA" validity="365"
269                         dname="cn=idp.example.org, o=example.org, c=US"
270                         />
271                 <genkey alias="tomcat" storepass="exampleorg"
272                         keystore="${tomcat.home}/conf/sp-example.jks"
273                         keyalg="RSA" validity="365"
274                         dname="cn=sp.example.org, o=example.org, c=US"
275                         />
276         </target>
277
278
279         <!-- Package Shibboleth -->
280         <target name="package-idp" depends="compile, install.url" description="Creates the IdP war file and moves it to ${dist}">
281                 <!-- copy values to deployment descriptor -->
282                 <copy file="${configroot}/${idp.deployment.descriptor}" tofile="${configroot}/idp.xml" overwrite="true" />
283                 <replace file="${configroot}/idp.xml" token="$IDP_HOME$" value="${idp.home.url}" />
284      
285         <!-- package extensions -->
286         <antcall target="ext-invoke">
287             <param name="exts.dir" value="${custom}"/>
288             <param name="ext.build.function" value="ext-package"/>
289             <param name="ext.filesystem.home" value="${idp.home}"/>
290             <param name="ext.home.token" value="$IDP_HOME$"/>
291         </antcall>
292
293                 <!-- create the war -->
294                 <war warfile="${dist}/${idp.webapp.name}.war" webxml="${configroot}/idp.xml" basedir="${approot}" update="no" duplicate="preserve">
295                         <!-- Grab any custom extension libraries -->
296                         <lib dir="${custom.libs}"/>
297
298                         <!-- Grab any web material from custom extensions -->
299                         <fileset dir="${custom.webapges}"/>
300                 </war>
301
302                 <!-- clean up generated descriptor -->
303                 <delete file="${configroot}/idp.xml"/>
304         </target>
305
306         <target name="package-wayf" depends="compile" description="Creates the WAYF war and moves it to ${dist}">
307                 <war warfile="${dist}/${distnameWayf}.war" webxml="${configroot}/wayf.xml" basedir="${approot}" update="no" />
308         </target>
309
310         <target name="package-sp" depends="compile, install.url" description="Creates the Java SP war and moves it to ${dist}">
311                 <!-- copy values to deployment descriptor -->
312                 <copy file="${configroot}/${sp.deployment.descriptor}" tofile="${configroot}/sp.xml" overwrite="true" />
313                 <replace file="${configroot}/sp.xml" token="$SP_HOME$" value="${sp.home.url}" />
314
315         <!-- package extensions -->
316         <antcall target="ext-invoke">
317             <param name="exts.dir" value="${custom}"/>
318             <param name="ext.build.function" value="ext-package"/>
319             <param name="ext.filesystem.home" value="${sp.home}"/>
320             <param name="ext.home.token" value="$SP_HOME$"/>
321         </antcall>
322         
323                 <!-- create the war -->
324                 <war warfile="${dist}/${sp.webapp.name}.war" webxml="${configroot}/sp.xml" basedir="${approot}" update="no">
325                         <!-- Grab any custom extension libraries -->
326                         <lib dir="${custom.libs}"/>
327
328                         <!-- Grab any web material from custom extensions -->
329                         <fileset dir="${custom.webapges}"/>
330                 </war>
331
332                 <!-- clean up generated descriptor -->
333                 <delete file="${configroot}/sp.xml"/>
334         </target>
335
336
337         <!-- Install Shibboleth -->
338         <target name="install.init">
339                 <taskdef name="xinput" classname="edu.internet2.middleware.shibboleth.utils.ant.XInput" classpath="${build}" />
340                 <typedef name="xoption" classname="edu.internet2.middleware.shibboleth.utils.ant.XInputOption" classpath="${build}" />
341         </target>
342
343         <target name="install.url">
344                 <taskdef name="urlconvert" classname="edu.internet2.middleware.shibboleth.utils.ant.URLConvert" classpath="${build}"/>
345                 <urlconvert path="${idp.home}" addProperty="idp.home.url"/>
346                 <urlconvert path="${sp.home}" addProperty="sp.home.url"/>
347         </target>
348
349         <target name="install" depends="init, install.init" description="Install Shibboleth">
350                 <if>
351                         <xinput type="confirm" defaultvalue="y">Do you want to install the Shibboleth Identity Provider?</xinput>
352                         <then>
353                                 <input message="What name do you want to use for the Identity Provider web application? [default: ${idp.webapp.name}]" 
354                                         addproperty="idp.webapp.name.input" defaultValue="${idp.webapp.name}" />
355                                 <var name="idp.webapp.name" value="${idp.webapp.name.input}" />
356
357                                 <antcall target="install.idp" />
358                         </then>
359                 </if>
360         </target>
361
362         <target name="install.idp" depends="init, install.init">
363                 <xinput message="Deploying the java web application.  Do you want to install it directly onto the filesystem or use the tomcat manager application?" 
364                         addproperty="idp.install-type.input" type="menu" casesensitive="no" defaultValue="${idp.install-type}">
365                         <xoption value="filesystem.prompt">filesystem</xoption>
366                         <xoption>manager</xoption>
367                 </xinput>
368                 <var name="idp.install-type" value="${idp.install-type.input}" />
369
370                 <antcall target="install.idp.${idp.install-type}" />
371         </target>
372
373         <!-- Prompt user for filesystem installation options and save them to build.properties -->
374         <target name="install.idp.filesystem.prompt" depends="init, install.init">
375                 <input message="Select a home directory for the Shibboleth Identity Provider [default: ${idp.home}]"
376                         addproperty="idp.home.input" defaultvalue="${idp.home}" />
377                 <var name="idp.home" value="${idp.home.input}" />
378                 <input message="Enter tomcat home directory [default: ${tomcat.home}]"
379                         addproperty="tomcat.home.input" defaultvalue="${tomcat.home}" />
380                 <var name="tomcat.home" value="${tomcat.home.input}" />
381
382                 <if>
383                         <available file="${idp.home}/etc" />
384                         <then>
385                                 <echo>--------------------------------------------------------------------------------------</echo>
386                                 <echo>---</echo>
387                                 <echo>---   NOTE:  Existing Identiity Provider configuration at ${idp.home}/etc ${line.separator}---   will not be overwritten.</echo>
388                                 <echo>---</echo>
389                                 <echo>--------------------------------------------------------------------------------------</echo>
390                                 <property name="copy-idp-conf" value="n" />
391                         </then>
392                         <else>
393                                 <property name="copy-idp-conf" value="y" />
394                         </else>
395                 </if>
396
397                 <antcall target="install.idp.filesystem" />
398                 <antcall target="savePropertyFile" />
399         </target>
400
401         <!-- Install Shibboleth IdP to filesystem using the properties in build.properties -->
402         <target name="install.idp.filesystem" depends="init, install.init, build-util, install.url, package-idp" 
403                 description="Install Shibboleth IdP to filesystem using the properties in build.properties">
404
405                 <!-- Move IdP war to Tomcat deployment directory -->
406                 <copy file="${dist}/${idp.webapp.name}.war" tofile="${tomcat.home}/webapps/${idp.webapp.name}.war" />
407
408                 <!-- copy IdP jars and utilities -->
409                 <copy todir="${idp.home}/lib">
410                         <fileset dir="lib" includesfile="conf/idp-lib.include" />
411                 </copy>
412
413                 <copy todir="${idp.home}/endorsed">
414                         <fileset dir="endorsed" />
415                 </copy>
416
417                 <copy todir="${idp.home}/bin">
418                         <fileset dir="bin"/>
419                 </copy>
420                 <chmod dir="${idp.home}/bin" perm="ug+rx" includes="**/*"/>
421
422                 <mkdir dir="${idp.home}/logs" />
423
424                 <!-- copy IdP configuration -->
425                 <if>
426                         <or>
427                                 <equals arg1="${copy-idp-conf}" arg2="y" />
428                                 <not> <available file="${idp.home}/etc" /> </not>
429                         </or>
430                         <then>
431                                 <delete dir="${idp.home}/etc" />
432                                 <antcall target="install.idp.filesystem.config" />
433                         </then>
434                 </if>
435
436         <antcall target="ext-invoke">
437             <param name="exts.dir" value="${custom}"/>
438             <param name="ext.build.function" value="ext-install-filesystem"/>
439             <param name="ext.filesystem.home" value="${idp.home}"/>
440             <param name="ext.home.token" value="$IDP_HOME$"/>
441         </antcall>   
442         </target>
443
444         <!-- Install Shibboleth SP to filesystem using the properties in build.properties -->
445         <target name="install.sp.filesystem" depends="init, install.init, build-util, install.url, package-sp" 
446                 description="Install Shibboleth SP to filesystem using the properties in build.properties">
447
448                 <!-- Move SP war to Tomcat deployment directory -->
449                 <copy file="${dist}/${sp.webapp.name}.war" tofile="${tomcat.home}/webapps/${sp.webapp.name}.war" />
450
451                 <!-- copy sp jars and utilities -->
452                 <copy todir="${sp.home}/lib">
453                         <fileset dir="lib" includesfile="conf/idp-lib.include" />
454                 </copy>
455
456                 <copy todir="${sp.home}/bin">
457                         <fileset dir="bin"/>
458                 </copy>
459                 <chmod dir="${sp.home}/bin" perm="ug+rx" includes="**/*"/>
460
461                 <mkdir dir="${sp.home}/logs" />
462
463                 <!-- copy sp configuration -->
464                 <if>
465                         <or>
466                                 <equals arg1="${copy-sp-conf}" arg2="y" />
467                                 <not> <available file="${sp.home}/etc" /> </not>
468                         </or>
469                         <then>
470                                 <delete dir="${sp.home}/etc" />
471                                 <antcall target="install.sp.filesystem.config" />
472                         </then>
473                 </if>
474
475         <antcall target="ext-invoke">
476             <param name="exts.dir" value="${custom}"/>
477             <param name="ext.build.function" value="${ext-install-filesystem}"/>
478             <param name="ext.filesystem.home" value="${sp.home}"/>
479             <param name="ext.home.token" value="$SP_HOME$"/>
480         </antcall>      
481         </target>
482
483
484         <!-- copy shibboleth configuration to $IDP_HOME/etc, overwriting any existing configuration -->
485         <target name="install.idp.filesystem.config" depends="init, install.init, install.url">
486                 <mkdir dir="${idp.home}/etc" />
487                 <copy todir="${idp.home}/etc" overwrite="true">
488                         <fileset dir="${src}/conf" includesfile="conf/idp-conf.include"/>
489                 </copy>
490                 <move file="${idp.home}/etc/dist.idp.xml" tofile="${idp.home}/etc/idp.xml" overwrite="true" />
491                 <replace file="${idp.home}/etc/idp.xml" token="$IDP_HOME$" value="${idp.home.url}" />
492                 <replace file="${idp.home}/etc/idp.xml" token="$IDP_WEBAPP_NAME$" value="${idp.webapp.name}" />
493         </target>
494
495         <!-- copy SP configuration to $SP_HOME$/etc, overwriting any existing configuration -->
496         <target name="install.sp.filesystem.config" depends="init, install.init">
497                 <mkdir dir="${sp.home}/etc" />
498                 <copy todir="${sp.home}/etc" overwrite="true">
499                         <fileset dir="${src}/conf" includesfile="conf/sp-conf.include"/>
500                 </copy>
501                 <move file="${sp.home}/etc/dist.sp.xml" tofile="${sp.home}/etc/sp.xml" overwrite="true" />
502                 <replace file="${sp.home}/etc/sp.xml" token="$SP_HOME$" value="${sp.home.url}" />
503         </target>
504
505         <!-- install Shibboleth-IdP war using tomcat's manager app -->
506         <target name="install.idp.manager" depends="init, install.init">
507                 <antcall target="setupTomcatTasks" />
508
509                 <input message="Enter local tomcat directory [default: ${tomcat.home}]" addproperty="tomcat.home.input" defaultValue="${tomcat.home}" />
510                 <var name="tomcat.home" value="${tomcat.home.input}" />
511
512                 <input message="Enter tomcat url [default: ${tomcat.url}]" addproperty="tomcat.url.input" defaultValue="${tomcat.url}" />
513                 <var name="tomcat.url" value="${tomcat.url.input}" />
514
515                 <input message="Enter tomcat username [default: ${tomcat.username}]" addproperty="tomcat.username.input" defaultValue="${tomcat.username}" />
516                 <var name="tomcat.username" value="${tomcat.username.input}" />
517
518                 <input message="Enter tomcat password [default: ${tomcat.password}]" addproperty="tomcat.password.input" defaultValue="${tomcat.password}" />
519                 <var name="tomcat.password" value="${tomcat.password.input}" />
520
521         <antcall target="package-idp" />
522                 <antcall target="tomcat.deploy" />
523                 <antcall target="savePropertyFile" />
524         </target>
525
526         <!-- save configuration to build.properties -->
527         <target name="savePropertyFile">
528                 <propertyfile file="build.properties">
529                         <entry key="idp.home" value="${idp.home}" />
530                         <entry key="sp.home" value="${sp.home}" />
531                         <entry key="idp.webapp.name" value="${idp.webapp.name}" />
532                         <entry key="sp.webapp.name" value="${sp.webapp.name}" />
533                         <entry key="idp.install-type" value="${idp.install-type}" />
534                         <entry key="tomcat.home" value="${tomcat.home}" />
535                         <entry key="tomcat.url" value="${tomcat.url}" />
536                         <entry key="tomcat.username" value="${tomcat.username}" />
537                         <entry key="tomcat.password" value="${tomcat.password}" />
538                 </propertyfile>
539         </target>
540 </project>