<?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 common build file" default="build.classes">

  <property environment="env"/>
  <property name="build.dir" location="${basedir}/target"/>
  <property name="build.classes.dir" location="${build.dir}/classes"/>
  <property name="build.test.classes.dir" location="${build.dir}/test-classes"/>
  <property name="cameldoc.dir" location="${build.dir}/site/cameldoc"/> 
  
  <property name="build.src.dir" location="${basedir}/src/main/java"/>
  <property name="build.test.dir" location="${basedir}/src/test/java"/>
  <property name="build.resources.dir" location="${basedir}/src/main/resources"/>

  <property name="camel.lib" location="../../lib"/>

  <property name="activemq.home" value="${env.ACTIVEMQ_HOME}"/>
  <property name="hibernate.core.home" value="${env.HIBERNATE_CORE_HOME}"/>
  <property name="hibernate.entitymanager.home" value="${env.HIBERNATE_EM_HOME}"/>
  <property name="hsqldb.home" value="${env.HSQLDB_HOME}"/>
  <property name="aspectj.home" value="${env.ASPECTJ_HOME}"/>
  <property name="spring.home" value="${env.SPRING_HOME}"/>

  <condition property="build.src">
    <available file="${build.src.dir}"/>
  </condition> 

  <condition property="build.test">
    <and>
      <available file="${build.test.dir}"/>
      <available classname="junit.framework.TestCase"/>
    </and>
  </condition> 

  <mkdir dir="${build.dir}"/>

  <!-- Define some classpaths used by the different samples. -->
  
  <path id="activemq.classpath">
    <fileset dir="${activemq.home}/lib">
      <include name="**/geronimo-j2ee-management_*_spec-*.jar"/>
      <include name="**/geronimo-jms_*_spec-*.jar"/>
      <include name="**/activemq-core-*.jar"/>
      <include name="**/backport-util-concurrent-*.jar"/>
      <include name="**/optional/xbean-*.jar"/>
    </fileset>
  </path>

  <path id="hibernate.classpath">
    <fileset dir="${hibernate.core.home}">
      <include name="**/hibernate*.jar"/>
      <include name="**/antlr-*.jar"/>
      <include name="**/asm*.jar"/>
      <include name="**/cglib-*.jar"/>
      <include name="**/dom4j-*.jar"/>
      <include name="**/javassist*.jar"/>
      <include name="**/jta.jar"/>
    </fileset>
    <fileset dir="${hibernate.entitymanager.home}">
      <include name="**/hibernate-*.jar"/>
      <include name="**/jboss-archive-browsing*.jar"/>
      <include name="**/*persistence.jar"/>
    </fileset>
    <fileset dir="${hsqldb.home}">
      <include name="**/hsqldb.jar"/>
    </fileset>
  </path>

  <path id="aspectj.classpath">
    <fileset dir="${aspectj.home}/lib">
      <include name="**/aspectj*.jar"/>
    </fileset>
  </path>

  <path id="spring.classpath">
    <fileset dir="${spring.home}/dist">
      <include name="spring.jar"/>
    </fileset>
  </path>

  <path id="log4j.classpath">
    <fileset dir="${camel.lib}">
      <include name="**/log4j-*.jar"/>
    </fileset>
  </path>

  <path id="camel.core.classpath">
    <fileset dir="${camel.lib}">
      <include name="**/camel-core-*.jar"/>
      <include name="**/commons-logging-*.jar"/>
      <include name="**/jaxb-api-*.jar"/>
      <include name="**/spring-*.jar"/>
      <exclude name="**/*-tests.jar"/>
    </fileset>
  </path>
  
  <path id="camel.spring.classpath">
    <path refid="camel.core.classpath"/>
    <fileset dir="${camel.lib}">
      <include name="**/camel-spring-*.jar"/>
      <include name="**/activation-*.jar"/>
      <include name="**/jaxb-impl-*.jar"/>
      <include name="**/stax-api-*.jar"/>
      <exclude name="**/*-tests.jar"/>
    </fileset>
  </path>

  <target name="build.classes" if="build.src">
    <mkdir dir="${build.classes.dir}"/>

    <javac destdir="${build.classes.dir}" debug="true">
      <src path="${build.src.dir}"/>
      <src path="${build.dir}"/>
      <classpath>
        <path refid="sample.build.classpath"/>
      </classpath>
    </javac>
    
    <copy todir="${build.classes.dir}">
      <fileset dir="${build.resources.dir}" includes="**/*"/>
    </copy>
  </target>

  <target name="build.test" if="build.test">
    <mkdir dir="${build.test.classes.dir}"/>

    <javac destdir="${build.test.classes.dir}" debug="true">
      <src path="${build.test.dir}"/>
      <classpath>
        <path refid="sample.build.classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="build" depends="build.classes,build.test"/>
    
  <macrodef name="camelrun">
    <attribute name="mainClass" default="org.apache.camel.spring.Main"/>
    <element name="arguments" optional="true"/>
    <sequential>
      <path id="sample.run.classpath">
        <pathelement location="${build.classes.dir}"/>
        <path refid="sample.build.classpath"/>
        <path refid="log4j.classpath"/>
      </path>
      <!--
      <property name="sampleclasspath" refid="sample.run.classpath"/>
      <echo message="running with classpath: ${sampleclasspath}"/>
      -->

      <java classname="@{mainClass}"
        fork="true" 
        failonerror="true">
        <classpath refid="sample.run.classpath"/>
        <arguments/> 
        <sysproperty key="java.util.logging.config.file" value="${build.classes.dir}/logging.properties"/>
      </java>
  
      <condition property="has.cameldoc">
        <available file="${cameldoc.dir}"/>
      </condition>
    </sequential>
  </macrodef>
  
  <condition property="shell.suffix" value=".exe">
    <os family="windows"/>
  </condition>
  <property name="shell.suffix" value=""/>
  
  <!-- This macro assumes the dot executable is on your path. -->
  <macrodef name="cameldot">
    <attribute name="dotFileDir" default="${cameldoc.dir}"/>
    <attribute name="outputType" default="svg"/>
    <sequential>
      <apply executable="dot${shell.suffix}">
        <arg value="-T@{outputType}"/>
        <arg value="-O"/>
        <fileset dir="@{dotFileDir}">
          <patternset>
            <include name="**/*.dot"/>
          </patternset>
        </fileset>
      </apply>
    </sequential>
  </macrodef>
  
  <target name="camel.dot" depends="run" if="has.cameldoc" 
    description="Output visualization">
    <cameldot outputType="svg"/>
    <!--
    <cameldot outputType="cmapx"/>
    -->
  </target>
  
  <target name="clean">
    <delete dir="${build.test.classes.dir}"/>
    <delete dir="${build.classes.dir}"/>
    <delete dir="${build.dir}"/>
  </target>
  
</project>
