<?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="Test Garbage Under Packages" basedir="." default="all" >
    <taskdef name="parseprojectxml" classname="org.netbeans.nbbuild.ParseProjectXml" classpath="${nbantext.jar}"/>

    <target name="all" >
        <parseprojectxml
            projectfile="${project.file}"
            publicpackagesproperty="pub.pac"
            codenamebaseproperty="check.code.name.base"
        />
        <fail unless="check.code.name.base"/>

        <condition property="ok" >
            <contains string="${pub.pac}" substring="${expected.public.packages}" />
        </condition>
        <echo message="Public Packages  : ${pub.pac}" />
        <echo message="Expected Packages: ${expected.public.packages}" />
        <echo message="Status           : ${ok}" />
        <fail message="Public Packages: ${pub.pac} but they should contain ${expected.public.packages}" unless="ok" />
    </target>
    
    <target name="withjavadoc" >
        <parseprojectxml 
            projectfile="${project.file}"
            publicpackagesproperty="pub.pac"
            javadocpackagesproperty="javadoc.pac"
        />
    </target>
</project>
