<?xml version="1.0" encoding="UTF-8"?>
<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->
<project name="MinimalComponent" basedir="." default="all">

  <target name="init">
        <!--
         In this target you have to change all parts, so that the properties
         fit to your odk installation and to your service
         -->
         <property name="ODKPATH" value="D:/cvs/api/odk"/>
         <property name="OUTPUTPATH" value="D:/cvs/api/odk/WINexample.out"/>
         <property name="PACKAGE_NAME" value="org.OpenOffice."/>
         <property name="JAR_FILE_NAME" value="MinimalComponent"/>
         <property name="INTERFACE_NAME" value="MinimalComponent"/>
         <property name="RDB_NAME" value="MinimalComponent.rdb"/>
   </target>
   <target depends="init" name="unoidl">

       <exec dir="${ODKPATH}/WINexample.out/misc/" executable="${ODKPATH}/windows/bin/idlc.exe" timeout="600">
             <arg line="-I. -I${ODKPATH}/idl ${ODKPATH}/examples/java/MinimalComponent/${INTERFACE_NAME}.idl"/>
       </exec>

       <exec dir="." executable="${ODKPATH}/windows/bin/regmerge.exe" timeout="600">
             <arg line="./${RDB_NAME} /UCR ./${INTERFACE_NAME}.urd"/>
       </exec>

       <exec dir="." executable="${ODKPATH}/windows/bin/regmerge.exe" timeout="600">
             <arg line="./${RDB_NAME} / ${ODKPATH}/windows/bin/applicat.rdb"/>
       </exec>

       <exec dir="." executable="${ODKPATH}/windows/bin/javamaker.exe" timeout="600">
             <arg line="-BUCR -O${OUTPUTPATH}/class/${INTERFACE_NAME} -nD ./${RDB_NAME}"/>
<!--
             <arg line="-BUCR -T${PACKAGE_NAME}${INTERFACE_NAME} -O${OUTPUTPATH}/class/${INTERFACE_NAME} -nD ./${INTERFACE_NAME}.urd"/>
 -->
       </exec>

   </target>

   <target depends="init,unoidl" name="compile">
       <mkdir dir="classes"/>
       <javac debug="on" destdir="./classes" srcdir="." >
               <classpath>
                   <fileset dir="${ODKPATH}/classes/">
                           <include name="**/*.jar"/>
                   </fileset>
                   <pathelement location="./classes"/>
               </classpath>
         </javac>
    </target>

     <target depends="compile,init" name="jar">
        <jar basedir="./classes" compress="true" jarfile="${JAR_FILE_NAME}.jar" manifest="Manifest">
        </jar>
     </target>

    <target depends="compile,init,jar" name="all">
        <!-- WRITEME -->
    </target>
</project>
