<?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="ide/xml.schema.model" default="build" basedir=".">
    <import file="../../nbbuild/templates/projectized.xml"/>
    <target name="do-unit-test-build" depends="projectized.do-unit-test-build">
        <macrodef name="package-zip-from-resources">
            <attribute name="zipbasename"/>
            <attribute name="prefix" default=""/>
            <sequential>
                <zip destfile="${build.test.unit.classes.dir}/org/netbeans/modules/xml/schema/model/resources/@{zipbasename}.zip">
                    <zipfileset dir="${build.test.unit.dir}/data/org/netbeans/modules/xml/schema/model/resources/@{zipbasename}" prefix="@{prefix}" includes="**"/>
                </zip>
            </sequential>
        </macrodef>
        
        <package-zip-from-resources zipbasename="resolve1" prefix="resolve1/" />
        <package-zip-from-resources zipbasename="resolve2" prefix="resolve2/" />
        <package-zip-from-resources zipbasename="resolve3" prefix="resolve3/" />
        <package-zip-from-resources zipbasename="resolve4" prefix="resolve4/" />
        <package-zip-from-resources zipbasename="resolve5" prefix="resolve5/" />
        <package-zip-from-resources zipbasename="resolve6" prefix="resolve6/" />
        <package-zip-from-resources zipbasename="resolve7" prefix="resolve7/" />
        <package-zip-from-resources zipbasename="resolve8" prefix="resolve8/" />
        <package-zip-from-resources zipbasename="resolve9" prefix="resolve9/" />
        <package-zip-from-resources zipbasename="resolve10" prefix="resolve10/"/>
        <package-zip-from-resources zipbasename="resolve11" prefix="resolve11/" />
        <package-zip-from-resources zipbasename="resolve12" prefix="resolve12/" />
        <package-zip-from-resources zipbasename="resolve13" prefix="resolve13/" />
        <package-zip-from-resources zipbasename="resolve14" prefix="resolve14/" />
        <package-zip-from-resources zipbasename="resolve15" prefix="resolve15/" />
        <package-zip-from-resources zipbasename="cyclic_dependencies" prefix="cyclic_dependencies/" />
        <package-zip-from-resources zipbasename="performance1" prefix="" />
        <package-zip-from-resources zipbasename="performance2" prefix="" />
    </target>
</project>
