<?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="enterprise/websvc.restkit">
    <description>Builds, tests, and runs the project org.netbeans.modules.websvc.restkit</description>
    <import file="../../nbbuild/templates/projectized.xml"/>

    <target name="all-rest">
        <ant dir="../websvc.restlib"/>
        <ant dir="../websvc.restapi"/>
        <ant dir="../websvc.rest"/>
        <ant dir="../websvc.rest.samples"/>
        <antcall target="netbeans"/>
    </target>

    <target name="all-plugin-nbms">
        <ant dir="../websvc.restapi" target="nbm"/>
        <ant dir="../websvc.restlib" target="nbm"/>
        <ant dir="../websvc.rest" target="nbm"/>
        <ant dir="../websvc.rest.samples" target="nbm"/>
        <antcall target="nbm"/>
        <copy todir="nbms" flatten="true">
            <fileset dir="..">
                <include name="**/*.nbm"/>
            </fileset>
        </copy>
        <antcall target="clean-plugin-jars"/>
    </target>
    
    <target name="clean-rest">
        <ant dir="../websvc.restlib" target="clean"/>
        <ant dir="../websvc.restapi" target="clean"/>
        <ant dir="../websvc.rest" target="clean"/>
        <ant dir="../websvc.rest.samples" target="clean"/>
        <antcall target="clean"/>
        <delete dir="nbms"/>
    </target>
    
    <target name="clean-plugin-jars">
        <ant dir="../websvc.restapi" target="clean"/>
        <ant dir="../websvc.restlib" target="clean"/>
        <ant dir="../websvc.rest" target="clean"/>
        <ant dir="../websvc.rest.samples" target="clean"/>
        <antcall target="clean"/>
    </target>
    
</project>
