<?xml version="1.0"?>
<!--
  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

      https://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">

  <path id="testclasses">
    <pathelement path="${java.class.path}"/>
  </path>

  <target name="antlib.file">
    <typedef file="test.antlib.xml"
             classpathref="testclasses"/>
    <mytask/>
  </target>

  <target name="antlib.resource">
    <typedef resource="taskdefs/test.antlib.xml">
      <classpath>
        <!-- To load the task classes: -->
        <path refid="testclasses"/>
        <!-- For test.antlib.xml: -->
        <pathelement location=".."/>
        <!-- For test2.antlib.xml: -->
        <pathelement location="${build.tests.value}/org/apache/tools/ant/taskdefs/test2-antlib.jar"/>
      </classpath>
    </typedef>
    <mytask/>
    <echo>-and-then-</echo>
    <mytask2/>
  </target>

  <target name="ns.current">
    <typedef file="antlib.current-test.xml" uri="abc"/>
    <x:useecho2 xmlns:x="abc"/>
    <x:preset.echo xmlns:x="abc" name="p"/>
    <x:p xmlns:x="abc">Hello from x:p</x:p>
  </target>

  <target name="antlib_uri" >
    <typedef uri="antlib:org.example.tasks" onerror="failall"/>
  </target>

  <target name="antlib_uri_auto" xmlns:ex="antlib:org.example.tasks">
    <ex:simple>
      <echo message="inside simple"/>
    </ex:simple>
  </target>

  <target name="antlib_uri_auto2" xmlns:ex="antlib://org/example/tasks/antlib2.xml">
    <ex:simple>
      <echo message="inside simple"/>
    </ex:simple>
  </target>
  
</project>
