<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<project xmlns="http://www.netbeans.org/ns/project/1">
    <type>org.netbeans.modules.ant.freeform</type>
    <configuration>
        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
            <name>appMgtTestApp</name>
        </general-data>
        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/2">
            <!-- Do not use Project Properties customizer when editing this file manually. -->
            <name>appMgtTestApp</name>
            <properties/>
            <folders>
                <source-folder>
                    <label>appmgt</label>
                    <location>.</location>
                    <encoding>UTF-8</encoding>
                </source-folder>
                <source-folder>
                    <label>appmgt</label>
                    <type>doc_root</type>
                    <location>.</location>
                </source-folder>
                <source-folder>
                    <label>appmgt</label>
                    <type>web_inf</type>
                    <location>.</location>
                </source-folder>
                <source-folder>
                    <label>appmgt</label>
                    <type>java</type>
                    <location>.</location>
                    <encoding>UTF-8</encoding>
                </source-folder>
                <build-folder>
                    <location>../../build</location>
                </build-folder>
            </folders>
            <ide-actions>
                <action name="build">
                    <target>compile</target>
                </action>
                <action name="clean">
                    <target>clean</target>
                </action>
                <action name="run">
                    <target>temprun</target>
                </action>
                <action name="test">
                    <target>declare-test</target>
                </action>
                <action name="redeploy">
                    <target>deploy.asadmin</target>
                </action>
                <action name="rebuild">
                    <target>clean</target>
                    <target>compile</target>
                </action>
            </ide-actions>
            <export>
                <type>folder</type>
                <location>../../build</location>
                <build-target>compile</build-target>
            </export>
            <view>
                <items>
                    <source-folder style="tree">
                        <label>Web Pages</label>
                        <location>.</location>
                    </source-folder>
                    <source-folder style="tree">
                        <label>WEB-INF Content</label>
                        <location>.</location>
                    </source-folder>
                    <source-folder style="packages">
                        <label>appmgt</label>
                        <location>.</location>
                    </source-folder>
                    <source-file>
                        <location>build.xml</location>
                    </source-file>
                </items>
                <context-menu>
                    <ide-action name="build"/>
                    <ide-action name="rebuild"/>
                    <ide-action name="clean"/>
                    <ide-action name="run"/>
                    <ide-action name="redeploy"/>
                    <ide-action name="test"/>
                </context-menu>
            </view>
            <subprojects/>
        </general-data>
        <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1">
            <compilation-unit>
                <package-root>.</package-root>
                <classpath mode="compile">../../build</classpath>
                <built-to>../../build</built-to>
                <source-level>1.5</source-level>
            </compilation-unit>
        </java-data>
        <web-data xmlns="http://www.netbeans.org/ns/freeform-project-web/2">
            <web-module>
                <doc-root>.</doc-root>
                <classpath/>
                <context-path>/war/appmgt</context-path>
                <j2ee-spec-level>1.5</j2ee-spec-level>
                <web-inf>.</web-inf>
            </web-module>
        </web-data>
    </configuration>
</project>
