<?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" basedir="." default="invalid">
  <path id="testclasses">
    <pathelement path="${java.class.path}"/>
  </path>

  <target name="taskadapter">
    <typedef name="myexec"
             classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyExec"
             classpathref="testclasses"
             adapter="org.apache.tools.ant.TaskAdapter"/>
    <myexec/>
  </target>

  <target name="runadapter">
    <typedef
      name="myrunnable"
      classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyRunnable"
      classpathref="testclasses"
      adapter="org.apache.tools.ant.taskdefs.TypeAdapterTest$RunnableAdapter"/>
    <myrunnable/>
  </target>

  <target name="runadaptererror">
    <typedef
      name="myrunnable"
      classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyExec"
      classpathref="testclasses"
      adapter="org.apache.tools.ant.taskdefs.TypeAdapterTest$RunnableAdapter"/>
    <myrunnable/>
  </target>

  <target name="delay">
    <typedef
      name="mytask"
      classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyTask"
      classpathref="testclasses"
      onerror="ignore"/>
    <mytask/>
  </target>

  <target name="onerror.report">
    <typedef
      name="mytask"
      classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyTaskNotPresent"
      classpathref="testclasses"
      onerror="report"/>
  </target>

  <target name="onerror.ignore">
    <typedef
      name="mytask"
      classname="org.apache.tools.ant.taskdefs.TypeAdapterTest$MyTaskNotPresent"
      classpathref="testclasses"
      onerror="ignore"/>
  </target>

</project>

