<?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-jms" 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.ASPECTJ_HOME" message="You must download AspectJ and set your ASPECTJ_HOME to run this demo."/>

  <property name="project.name" value="camel-example-jms-file"/>
  
  <path id="sample.build.classpath">
    <fileset dir="${camel.lib}">
      <include name="**/camel-jms-*.jar"/>
      <exclude name="**/*-tests.jar"/>
    </fileset>
    <path refid="camel.spring.classpath"/>
    <path refid="spring.classpath"/>
    <path refid="activemq.classpath"/>
    <path refid="aspectj.classpath"/>
  </path>
  
  <target name="run" depends="build" description="Compile and run the sample CamelServer">
    <camelrun>
      <arguments>
        <arg value="-a"/>
        <arg value="META-INF/spring/camel-server.xml"/>
      </arguments>
    </camelrun>
  </target>

  <target name="run-client" depends="build" description="Compile and run the sample CamelClient">
    <camelrun mainClass="org.apache.camel.example.client.CamelClient"/>
  </target>

  <target name="run-client-remoting" depends="build" description="Compile and run the sample CamelClientRemoting">
    <camelrun mainClass="org.apache.camel.example.client.CamelClientRemoting"/>
  </target>

  <target name="run-client-endpoint" depends="build" description="Compile and run the sample CamelClientEndpoint">
    <camelrun mainClass="org.apache.camel.example.client.CamelClientEndpoint"/>
  </target>

</project>
