<?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="JAX-B Jars" default="createJaxbJars" basedir=".">
    <description>
        A script to invoke xjc. Requires following properties:
            xsd.file : absolute location of schema file
            packageName : package name for generated JAXB classes
            jaxb.base : work directory for generating sources and classes into
            jaxb.jar : jaxb jar path relative to jaxb.base
            jaxb.src.jar : jaxb source jar path relative to jaxb.base
            user.build.properties.file : NetBeans build.properties file under userdir
    </description>
    
    <target name="xjc-jar" depends="-run-xjc, -create-jars"/>
    
    <target name="-init-user">
        <property file="${user.build.properties.file}"/>
        <condition property="isMacOs">
            <os family="mac"/>
        </condition>
        <condition property="jdk.home" value="${java.home}/" else="${java.home}/../">
            <istrue value="${isMacOs}"/>
        </condition>
        <condition property="platform.home" value="${platforms.JDK_1.5.home}" else="${jdk.home}">
            <isset property="platforms.JDK_1.5.home"/>
        </condition>
        <property name="platform.javac" value="${platform.home}/bin/javac"/>
    </target>
    
    <target name="-init-xjc" depends="-init-user">
        <mkdir dir="${jaxb.base}/build"/>
        <mkdir dir="${jaxb.base}/src"/>
        <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
            <classpath path="${platform.home}/lib/tools.jar:${netbeans.dest.dir}/${nb.cluster.ide.dir}/modules/ext/jaxb/jaxb-xjc.jar:${libs.jaxb.classpath}"/>
        </taskdef>
    </target>
    
    <target name="-run-xjc" depends="-init-user, -init-xjc">
        <xjc schema="${xsd.file}"
            target="2.1"
            package="${packageName}"
            destdir="${jaxb.base}/src">
        </xjc>
        
        <delete dir="${jaxb.base}/build"/>
        <mkdir dir="${jaxb.base}/build"/>
        <javac srcdir="${jaxb.base}/src" 
               destdir="${jaxb.base}/build" 
               classpath="${platform.home}/lib/tools.jar:${libs.jaxb.classpath}" 
               executable="${platform.javac}"
               debug="on" source="1.5" fork="true">               
        </javac>
    </target>
    
    <target name="-create-jars" depends="-run-xjc">
        <jar jarfile="${jaxb.base}/${jaxb.src.jar}">
            <fileset dir="${jaxb.base}/src"/>
        </jar>
        
        <jar jarfile="${jaxb.base}/${jaxb.jar}"
             basedir="${jaxb.base}/build">
            <metainf dir="${jaxb.base}/.." includes="*.xsd"/>
        </jar>
        
        <delete failonerror="false" dir="${jaxb.base}/build"/>
        <delete failonerror="false" dir="${jaxb.base}/src"/>
    </target>
    
</project>
