<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright 2002-2004 The Apache Software Foundation

  Licensed 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 default="java:jar">

  <!-- define the classpath used to run examples -->
  <goal name="create-classpath" prereqs="java:compile,test:compile">
        <path id="test.classpath">
            <pathelement path="${maven.build.dest}"/>
            <pathelement path="target/classes"/>
            <pathelement path="target/test-classes"/>
            <path refid="maven.dependency.classpath"/>
        </path>
  </goal>

    <!-- demos -->
    <goal name="demo" prereqs="create-classpath"
        description="Runs an SQL demo">

      <!-- Values used for testing -->
      <property name="databaseUrl"             value="jdbc:hsqldb:target/hsql"/>
      <property name="databaseDriver"          value="org.hsqldb.jdbcDriver"/>
      <property name="databaseUser"            value="sa"/>
      <property name="databaseTable"           value="SYSTEM_TABLES"/>

        <echo message="Running examples and outputting results to target directory"/>

    <java classname="org.apache.commons.jelly.Jelly" fork="yes">
      <classpath refid="test.classpath"/>
      <sysproperty key="databaseUrl" value="${databaseUrl}"/>
      <sysproperty key="databaseDriver" value="${databaseDriver}"/>
      <sysproperty key="databaseUser" value="${databaseUser}"/>
      <sysproperty key="databaseTable" value="${databaseTable}"/>
      <arg value="src/test/org/apache/commons/jelly/tags/sql/example3.jelly"/>
    </java>

  </goal>

</project>
