<?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="dev-helper" default="web">

    <target name="web">
        <copy verbose="true" todir="apache-tomee/target/apache-tomee-webprofile-7.0.0-SNAPSHOT/webapps/tomee">
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.js"/>
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.css"/>
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.html"/>
        </copy>
    </target>

    <target name="rs">
        <copy verbose="true" todir="apache-tomee/target/apache-tomee-jaxrs-7.0.0-SNAPSHOT/webapps/tomee">
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.js"/>
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.css"/>
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.html"/>
        </copy>
    </target>

    <target name="plus">
        <copy verbose="true" todir="apache-tomee/target/apache-tomee-plus-7.0.0-SNAPSHOT/webapps/tomee">
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.js"/>
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.css"/>
            <fileset dir="tomee-webapp/src/main/webapp" includes="**/*.html"/>
        </copy>
    </target>

</project>

