<?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 basedir="." default="build" name="ide/derby">
    <import file="../../nbbuild/templates/projectized.xml"/>

    <target name="-check-derbysampledb" depends="basic-init">
        <condition property="derbysampledb.exists">
            <available file="${build.dir}/derbysampledb.zip" />
        </condition>
    </target>

    <target name="-generate-derbysampledb" depends="-check-derbysampledb" unless="derbysampledb.exists">
        <delete dir="${build.dir}/sampledb" />
        <mkdir dir="${build.dir}/sampledb" />        
        <java fork="yes" classname="org.apache.derby.tools.ij">
            <arg value="etc/sample.sql"/>
            <sysproperty key="derby.system.home" value="${build.dir}/sampledb" />
            <classpath>
                <pathelement location="external/derby-10.14.2.0.jar"/>
                <pathelement location="external/derbytools-10.14.2.0.jar"/>
            </classpath>
        </java>
        <zip basedir="${build.dir}/sampledb/sample"
            includes="**"
            file="${build.dir}/derbysampledb.zip">
            
        </zip>
    </target>

    <target name="build-init" depends="projectized.build-init,-generate-derbysampledb">
    </target>
</project>
