<?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/maven">
    <description>Builds, tests, and runs the project org.netbeans.modules.maven</description>
    <import file="../../nbbuild/templates/projectized.xml"/>
    
    <target name="nblib" depends="init">
        <mkdir dir="build/mavenclasses"/>
        <property name="maven.embedder.dir" value="${maven.dir}"/>
        <javac srcdir="mavensrc" destdir="build/mavenclasses" 
            debug="${build.compiler.debug}" 
            deprecation="${build.compiler.deprecation}" 
            release="8"
            includeantruntime="false">
            <classpath>
                <pathelement path="${mavensrc.cp}"/>
            </classpath>
        </javac>
        <copy overwrite="true" tofile="build/mavenclasses/META-INF/sisu/javax.inject.Named" file="mavensrc/org/netbeans/modules/maven/workspace/reader/javax.inject.Named"/>
        <mkdir dir="${cluster}/maven-nblib"/>
        <jar jarfile="${cluster}/maven-nblib/netbeans-cos.jar" compress="false">
            <fileset dir="build/mavenclasses" >
                <include name="org/netbeans/modules/maven/workspace/reader/**"/>
                <include name="META-INF/sisu/**"/>
            </fileset>
        </jar>
        <copy overwrite="true" tofile="build/mavenclasses/META-INF/sisu/javax.inject.Named" file="mavensrc/org/netbeans/modules/maven/event/javax.inject.Named"/>
        <!-- we use jarjar to repackage simple json, to avoid clashes with 3rd party maven plugins possibly including it in their dependencies -->
        <taskdef name="jarjar" classname="org.pantsbuild.jarjar.JarJarTask" loaderref="lib.path.loader">
            <classpath>
                <pathelement location="${libs.asm.dir}/core/asm-9.10.jar"/>
                <pathelement location="${libs.asm.dir}/core/asm-commons-9.10.jar"/>
                <pathelement location="./external/jarjar-1.7.2.jar"/>
            </classpath>
        </taskdef>
        <jarjar jarfile="${cluster}/maven-nblib/netbeans-eventspy.jar" compress="false">
            <fileset dir="build/mavenclasses" >
                <include name="org/netbeans/modules/maven/event/**"/>
                <include name="META-INF/sisu/**"/>
            </fileset>
            <zipfileset src="../../ide/libs.json_simple/external/json-simple-1.1.1.jar"/>
            <rule pattern="org.json.**" result="org.netbeans.shaded.json.@1"/>
        </jarjar>
    </target>

    <target name="netbeans-extra" depends="nblib"/>    



    <target name="do-unit-test-build" depends="projectized.do-unit-test-build">
        <macrodef name="package-artifact-from-dir">
             <attribute name="jarbasename"/>
             <attribute name="relpath"/>
             <sequential>
                 <jar destfile="${build.test.unit.dir}/data/@{relpath}/@{jarbasename}.jar">
                     <fileset dir="${build.test.unit.dir}/data/@{relpath}/@{jarbasename}.jardir" includes="**"/>
                 </jar>
             </sequential>
         </macrodef>
         
         <package-artifact-from-dir jarbasename="annotation-12.6" relpath="projects/processors/repo/grp/annotation/12.6"/>
         <package-artifact-from-dir jarbasename="test-lib-12.6" relpath="projects/processors/repo/grp/test-lib/12.6"/>
         <package-artifact-from-dir jarbasename="test-lib2-12.6" relpath="projects/processors/repo/grp/test-lib2/12.6"/>
         <package-artifact-from-dir jarbasename="test-lib3-12.6" relpath="projects/processors/repo/grp/test-lib3/12.6"/>
         <package-artifact-from-dir jarbasename="test-lib4-12.6" relpath="projects/processors/repo/grp/test-lib4/12.6"/>
         <package-artifact-from-dir jarbasename="test-processor-12.6" relpath="projects/processors/repo/grp/test-processor/12.6"/>

         <package-artifact-from-dir jarbasename="annotation-12.6" relpath="projects/dependencies/repo/grp/annotation/12.6"/>
         <package-artifact-from-dir jarbasename="test-lib-12.6" relpath="projects/dependencies/repo/grp/test-lib/12.6"/>
         <package-artifact-from-dir jarbasename="test-lib-13" relpath="projects/dependencies/repo/grp/test-lib/13"/>
         <package-artifact-from-dir jarbasename="test-lib3-12.6" relpath="projects/dependencies/repo/grp/test-lib3/12.6"/>
         <package-artifact-from-dir jarbasename="test-lib4-12.6" relpath="projects/dependencies/repo/grp/test-lib4/12.6"/>
         <package-artifact-from-dir jarbasename="test-processor-12.6" relpath="projects/dependencies/repo/grp/test-processor/12.6"/>
         
         <chmod file="${build.test.unit.dir}/data/projects/multiproject/democa/mvnw" perm="ugo+rwx"/>
    </target>

</project>
