<?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="java/api.debugger.jpda">
    <import file="../../nbbuild/templates/projectized.xml"/>

    <target name="build-init" depends="projectized.build-init">
        <mkdir dir="${jpda.classes.dir}"/>
        <copy todir="${jpda.classes.dir}">
            <resources>
                <javaresource name="com/sun/jdi/AbsentInformationException.class"/>
                <javaresource name="com/sun/jdi/Bootstrap.class"/>
                <javaresource name="com/sun/jdi/StackFrame.class"/>
                <javaresource name="com/sun/jdi/ObjectReference.class"/>
                <javaresource name="com/sun/jdi/ThreadReference.class"/>
                <javaresource name="com/sun/jdi/ReferenceType.class"/>
                <javaresource name="com/sun/jdi/ClassType.class"/>
                <javaresource name="com/sun/jdi/Value.class"/>
                <javaresource name="com/sun/jdi/Locatable.class"/>
                <javaresource name="com/sun/jdi/Mirror.class"/>
                <javaresource name="com/sun/jdi/VirtualMachine.class"/>
                <javaresource name="com/sun/jdi/VirtualMachineManager.class"/>
                <javaresource name="com/sun/jdi/connect/AttachingConnector.class"/>
                <javaresource name="com/sun/jdi/connect/Connector.class"/>
                <javaresource name="com/sun/jdi/connect/Connector$Argument.class"/>
                <javaresource name="com/sun/jdi/connect/Connector$IntegerArgument.class"/>
                <javaresource name="com/sun/jdi/connect/IllegalConnectorArgumentsException.class"/>
                <javaresource name="com/sun/jdi/connect/LaunchingConnector.class"/>
                <javaresource name="com/sun/jdi/connect/ListeningConnector.class"/>
                <javaresource name="com/sun/jdi/connect/Transport.class"/>
                <javaresource name="com/sun/jdi/connect/VMStartException.class"/>
                <javaresource name="com/sun/jdi/request/EventRequest.class"/>
                <javaresource name="com/sun/jdi/request/StepRequest.class"/>
                <javaresource name="com/sun/jdi/event/Event.class"/>
            </resources>
        </copy>
    </target>
</project>
