<?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.
-->

<!-- ====================================================================== -->
<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above.        -->
<!-- ====================================================================== -->

<project basedir="." default="default">

  <target name="default" >
      <echo message="Used via maven to run python tests."/>
  </target>

  <dirname property="broker.dir" file="${ant.file.python-test}"/>

  <property name="pythondir" value="${broker.dir}/../../python"/>

  <target name="run-tests" unless="skip-python-tests">

	<echo message="Starting Broker with command"/>

	<java classname="org.apache.qpid.server.RunBrokerWithCommand"
			fork="true"
			dir="${pythondir}"
			failonerror="true"
			>
		<arg value="${command}"/>
        <arg value="-p"/>
        <arg value="2000"/>
        <arg value="-m"/>
        <arg value="2001"/>

        <classpath refid="maven.test.classpath"/>
		<sysproperty key="QPID_HOME" value="${broker.dir}"/>
		<sysproperty key="QPID_WORK" value="${broker.dir}${file.separator}target"/>
	</java>

	</target>
</project>
