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

<project name="camel-example-spring-xquery" default="run" basedir=".">

  <import file="../common_build.xml"/>

  <fail unless="env.SPRING_HOME" message="You must download Spring Framework and set your SPRING_HOME to run this demo."/>
  <fail unless="env.ACTIVEMQ_HOME" message="You must download ActiveMQ and set your ACTIVEMQ_HOME to run this demo."/>
  <fail unless="env.SAXON_HOME" message="You must download Saxon and set your SAXON_HOME to run this demo."/>
  
  <property name="project.name" value="camel-example-spring-xquery"/>

  <property name="saxon.home" value="${env.SAXON_HOME}"/>

  <path id="sample.build.classpath">
    <pathelement location="src/main/resources"/>
    <fileset dir="${camel.lib}">
      <include name="**/camel-saxon-*.jar"/>
      <include name="**/camel-jms-*.jar"/>
    </fileset>
    <fileset dir="${saxon.home}">
      <include name="**/saxon*.jar"/>
    </fileset>
    <path refid="camel.spring.classpath"/>
    <path refid="spring.classpath"/>
    <path refid="activemq.classpath"/>
  </path>

  <target name="run" depends="build" description="Compile and run the sample">
    <camelrun>
      <arguments>
        <arg value="-duration"/>
        <arg value="2s"/>
        <arg value="-o"/>
        <arg value="${cameldoc.dir}"/>
      </arguments>
    </camelrun>
  </target>

</project>
