<?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 script for running OpenBooks                         -->
<!--                                                                        -->
<!-- ====================================================================== -->
<project name="OpenBooks" default="run">
	<property file="run.properties"/>
	<property name="jpa.provider" value="openjpa" />
	<property name="load.properties" value="load.properties" />
	<property name="demo.properties" value="demo.properties" />
	
	<path id="run.classpath"
	      description="Runs on OpenBooks packaged library and database driver">
		<pathelement location="${basedir}" />
		<fileset dir="${basedir}">
			<include name="*.jar" />
		</fileset>
		<fileset dir="${openjpa.lib}">
			<include name="*.jar" />
		</fileset>
		<pathelement location="${jdbc.driver}" />
	</path>
	
	<target name="check-env" description="Checks if OpenJPA and JDBC driver exists">
		<available file="${openjpa.lib}" property="openjpa.exists"/>
		<available file="${jdbc.driver}" property="jdbc.driver.exists"/>
		<fail unless="openjpa.exists" message="The directory for OpenJPA libraries can not be located at ${openjpa.lib}. Make sure openjpa.lib property value is correectly specified in run.properties file"/>	
		<fail unless="jdbc.driver.exists" message="The JDBC Driver can not be located at ${jdbc.driver}. Make sure jdbc.driver property value is correctly specified in run.properties file"/>	
	</target>
	
	<target name="load" depends="check-env"
	        description="Popluates a OpenBooks database with initial data">
		<echo message="Popluating a OpenBooks database with ${jpa.provider} as configured in ${load.properties}" />
		<java classname="openbook.server.DataLoader" fork="true">
			<arg value="OpenBooks" />
			<arg value="${load.properties}" />
			<classpath refid="run.classpath" />
		</java>
	</target>
	
	<target name="run" depends="check-env"
		description="Runs OpenBooks Demo">
		<java classname="openbook.client.Demo" fork="true">
			<classpath refid="run.classpath" />
		</java>
	</target>
</project>	

