<?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

      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="antstructure-test" basedir="." default="test1">

  <target name="test1">
    <antstructure/>
  </target>

  <target name="testCustomPrinter">
    <typedef name="myprinter"
             classname="org.apache.tools.ant.taskdefs.AntStructureTest$MyPrinter">
      <classpath>
        <pathelement path="${tests-classpath.value}"/>
      </classpath>
    </typedef>
    <antstructure output="foo.dtd">
      <myprinter/>
    </antstructure>
  </target>

  <target name="tearDown">
    <delete file="foo.dtd" quiet="true"/>
  </target>

</project>
