<?xml version="1.0"  encoding="UTF-8"?>
<project name="ModuleCreation" default="help" basedir=".">
<!--Aufruf mit

VIZ-JAR erzeugen:

ant -DWEBAPP=$WEBAPP distRpta
ant -DWEBAPP=$WEBAPP cleanBuildPath

-->
	<dirname file="${ant.file}" property="moduleCreateBaseDir" />
	<dirname file="${ant.file.superx}" property="superxBuildBaseDir" />
	<property name="distDir" location="${superxBuildBaseDir}/superx/WEB-INF/lib" />
	<property name="BASE_DIR" value="." />
	<property name="WEBAPP" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
	<property name="BUILD_PATH" value="${WEBAPP}/WEB-INF/classes"/>
	<property name="SRC_DIR" value="${BASE_DIR}/src" />
	<property name="SRC_DIR_TEST" value="${BASE_DIR}/test-src"/>
	<property name="LIB_SUPERX_DIR" value="${WEBAPP}/WEB-INF/lib"/>
	<property name="LIB_WEBAPP_DIR" value="${WEBAPP}"/>
	<property name="LIB_EXT_SUPERX_DIR" value="${WEBAPP}/WEB-INF/lib_ext"/>

	<property name="superx-classes" value="${WEBAPP}/WEB-INF/classes" />
	<property name="src-java" value="${SRC_DIR}"/>
	<property name="rpta_version" value="0.2" />
<path id="classpath">
 <!--WEB-INF/lib-->
    <fileset dir="${WEBAPP}/WEB-INF">
    	<include name="lib/**/*.jar" />
    	<include name="classes" />
    </fileset>
</path>
	<condition property="isWindoze">
		<os family="windows" />
	</condition>

	<condition property="isUnix">
		<os family="unix" />
	</condition>
	<target name="init">
		     <tstamp>
		      <format property="SX_TIMESTAMP" pattern="dd.MM.yyyy HH:mm:ss" />
		      </tstamp>
	</target>
<target name="help" description="Bedienung">
	<echo message="Aufruf: " />
	<echo message="ant  -DMODULE_PATH=$RPTA_PFAD -DBASE_DIR=. -DWEBAPP=$WEBAPP -DMODULE=rpta all" />
<echo message="So erzeugen Sie dann ein SuperX-Paket:" />
<echo message="ant  -DMODULE_PATH=$RPTA_PFAD -DWEBAPP_DIR=$WEBAPP -DMODULE=rpta dist" />

</target>
	
	<target name="all" description="Gruppe: Kopiere Modul Sourcen in den WEB-INF-Verzeichnisbaum">
<antcall target="module_copy_source" />
<antcall target="call_module_scripts_create_ant" />
<antcall target="module_copy_webapp_files" />
       </target>
       
              	<target name="initTimestamp">
		<tstamp>
			<format property="SX_TIMESTAMP" pattern="dd.MM.yyyy HH:mm" />
		</tstamp>
	</target>

	
	<target name="module_copy_source" description="Kopiere Modul Sourcen in den WEB-INF-Verzeichnisbaum">
		<echo message="Start module_copy_sources für Modul ${MODULE} in Pfad ${MODULE_PATH}" />
		<copy todir="${MODULE_PATH}" overwrite="true">
			<fileset dir="${BASE_DIR}/src-modules/module/${MODULE}" />
		</copy>
	</target>
	<target name="module_copy_webapp_files" description="Kopiere webapp-Dateien in den WEBAPP-Verzeichnisbaum">
		<echo message="Start module_copy_webapp_files für Modul ${MODULE} in Pfad ${MODULE_PATH}" />
		<copy todir="${WEBAPP}" overwrite="true">
			<fileset dir="${BASE_DIR}/superx" />
		</copy>
	</target>
	<target name="call_module_scripts_create_ant" description="Call to module_scripts_create_ant">
		<subant target="all">
			<!--<property name="basedir" value="${MODULE_PATH}/../../conf/" />-->
			<property name="MODULE" value="${MODULE}" />
			<property name="DATABASE" value="POSTGRES" />
			<property name="WEBAPP_EXT_MODULE" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
			<property name="WEBAPP" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
			<property name="SUPERX_BASE" value="${WEBAPP}/WEB-INF" />
			<fileset dir="${MODULE_PATH}/../../conf" includes="module_scripts_create_ant.xml" />
		</subant>
	</target>
	<target name="dist" description="Create Download package">
		<subant target="erzeuge_paket">
			<!--<property name="basedir" value="${MODULE_PATH}/../../conf/" />-->
			<property name="MODULE" value="${MODULE}" />
			<property name="PFAD" value="/home/superx/fertige_module" />
			<property name="DATABASE" value="POSTGRES" />
			<property name="ENCODING" value="utf8" />
			<property name="PLATFORM" value="superx" />
			
			<property name="WEBAPP_EXT_MODULE" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
			<property name="WEBAPP" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
			<property name="SUPERX_BASE" value="${WEBAPP}/WEB-INF" />
			<fileset dir="${MODULE_PATH}/../../conf" includes="build.xml" />
		</subant>
	</target>
	
			<target name="distRpta" depends="compileSuperx" description="Erzeugt die superx-etl.jar. ">
		<delete>
			<fileset dir="${distDir}" includes="superx-rpta*.jar" />
		</delete>
		<jar destfile="${distDir}/superx-rpta.jar" basedir="${BUILD_PATH}" includes="de/superx/rpta/** de/superx/sxrest/**" excludes="freemarker/**/* com/**/* javax/**/* **/*.java">
		<manifest>
      <!-- Who is building this jar? -->
      <attribute name="Built-By" value="superx"/>
      <!-- Information about the program itself -->
      <attribute name="Implementation-Date" value="${SX_TIMESTAMP}"/>
      <attribute name="Implementation-Title" value="SuperX"/>
      <attribute name="Implementation-Version" value="${version}"/>
      </manifest>
		</jar>
	</target>
		<target name="compileSuperx" depends="cleanBuildPath" description="Compile all classes for superx.">
        <filter token="sxtimestamp" value="${SX_TIMESTAMP}" />
        <filter token="version" value="${rpta_version}" />
        <!-- MB 13.8.2009 auch mitkompilieren <echo message="de/memtext/db/Servlet* weggelassen"/>-->
        <copy todir="${BUILD_PATH}" filtering="true">
            <fileset dir="${SRC_DIR}">
                <include name="**/*.java" />
                <include name="**/*.properties" />
                <include name="**/*.gif" />
                <include name="**/*.xml" />
                <include name="edustore/*" />
                <include name="saiku-datasources/*" />
                <include name="saiku-repository/*" />
                <exclude name="de/superx/docmanagement/*"/>
            </fileset>
        </copy>
        <!--<echo message="cp:${FULL_CLASSPATH}"/>-->
        
        <javac source="1.8" target="1.8"
                srcdir="${BUILD_PATH}" excludes="**/*Test*.java,test/**/*"
                destdir="${BUILD_PATH}"
                listfiles="false" encoding="UTF-8" debug="yes">
            <classpath refid="classpath" />
        </javac>
	</target>
		<target name="cleanBuildPath" depends="initTimestamp" description="Löscht alle *.class-Dateien in WEB-INF/classes">
		<delete failonerror="false" includeemptydirs="true">
			<fileset dir="${BUILD_PATH}" includes="**/*.class,**/*.java" excludes="*.properties" />
		</delete>
	</target>
	
	<target name="xml2jrxml_tabelle_a4_quer" description="Target: aus einer XML-Datei (SuperX-Bericht XML-Export) eine JRXML-Datei"
	depends="init">
	<!-- Aufruf: 
	ant -DXML=stud_zeitreihe.xml -DWEBAPP=$WEBAPP -DTARGET_NAME=tmp xml2jrxml_tabelle_a4_quer 
	-->	
	<java classname="net.sf.saxon.Transform" fork="yes" failonerror="true"
	dir="./superx/WEB-INF/reports">
			<sysproperty key="DEBUG" value="true" />
			<arg value="-o:${moduleCreateBaseDir}/test/tabelle_a4_quer/${TARGET_NAME}.jrxml" />
			<arg value="-xsl:${moduleCreateBaseDir}/superx/xml/tabelle_jrxml_a4_quer.xsl" />
			<arg value="-s:${moduleCreateBaseDir}/test/tabelle_a4_quer/${XML}" />
			<classpath refid="classpath" />
		</java>
		<echo message="Datei erzeugt: ./test/tabelle_a4_quer/${TARGET_NAME}.jrxml (${SX_TIMESTAMP})" />


	</target>
	<target name="jrxml2pdf_tabelle_a4_quer" description="Target: aus einer XML-Datei (SuperX-Bericht XML-Export) + JRXML-Datei einen PDF Export erzeugen"
	depends="init,xml2jrxml_tabelle_a4_quer">
	<!-- Aufruf: 
	ant -DXML=stud_zeitreihe.xml -DWEBAPP=$WEBAPP -DTARGET_NAME=tmp jrxml2pdf_tabelle_a4_quer 
	-->	
	<java classname="de.superx.bin.SxJasper" fork="yes" failonerror="true"
	dir="./superx/WEB-INF/reports">
			<arg value="-logger:${WEBAPP}/WEB-INF/conf/edustore/db/conf/logging.properties" />
			<arg value="-db_properties:${WEBAPP}/WEB-INF/db.properties" />
			<arg value="-OUT:${moduleCreateBaseDir}/test/tabelle_a4_quer/${TARGET_NAME}.pdf" />
			<arg value="-JRXML:${moduleCreateBaseDir}/test/tabelle_a4_quer/${TARGET_NAME}.jrxml" />
			<arg value="-XML:${moduleCreateBaseDir}/test/tabelle_a4_quer/${XML}" />
			<classpath refid="classpath" />
		</java>
			<delete includeemptydirs="true">
            <fileset dir="./test/tabelle_a4_quer/" includes="**/*.jrprint,**/*.groovy"/>
         </delete>

		<echo message="Datei erzeugt: ./test/tabelle_a4_quer/${TARGET_NAME}.pdf (${SX_TIMESTAMP})" />


	</target>
	<target name="xml2jrxml_booklet_ohne_cover" description="Target: aus einer XML-Datei (SuperX-Bericht XML-Export) eine JRXML-Datei"
	depends="init">
	<!-- Aufruf: 
	ant -DXML=benutzerrahmen.xml -DWEBAPP=$WEBAPP -DTARGET_NAME=tmp xml2jrxml_booklet_ohne_cover 
	-->	
	<java classname="net.sf.saxon.Transform" fork="yes" failonerror="true"
	dir="./superx/WEB-INF/reports">
			<sysproperty key="DEBUG" value="true" />
			<arg value="-o:${moduleCreateBaseDir}/test/booklet_ohne_cover/${TARGET_NAME}.jrxml" />
			<arg value="-xsl:${moduleCreateBaseDir}/superx/xml/tabelle_jrxml_book_without_cover.xsl" />
			<arg value="-s:${moduleCreateBaseDir}/test/booklet_ohne_cover/${XML}" />
			<classpath refid="classpath" />
		</java>
		<echo message="Datei erzeugt: ./test/booklet_ohne_cover/${TARGET_NAME}.jrxml (${SX_TIMESTAMP})" />


	</target>
	<target name="jrxml2pdf_booklet_ohne_cover" description="Target: aus einer XML-Datei (SuperX-Bericht XML-Export) + JRXML-Datei einen PDF Export erzeugen"
	depends="init,xml2jrxml_booklet_ohne_cover">
	<!-- Aufruf: 
	ant -DXML=benutzerrahmen.xml -DWEBAPP=$WEBAPP -DTARGET_NAME=tmp jrxml2pdf_booklet_ohne_cover 
	-->	
	<taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask"> 
			<classpath refid="classpath"/>
		</taskdef>
		<jrc 
				srcdir="${moduleCreateBaseDir}/test/booklet_ohne_cover"
				destdir="${moduleCreateBaseDir}/test/booklet_ohne_cover"
				tempdir="${moduleCreateBaseDir}/test/booklet_ohne_cover"
				keepjava="true"
				xmlvalidation="true">
			<classpath refid="classpath"/>
			<include name="**/*.jrxml"/>
		</jrc>
	<java classname="de.superx.bin.SxJasper" fork="yes" failonerror="true"
	dir="./superx/WEB-INF/reports">
			<arg value="-logger:${WEBAPP}/WEB-INF/conf/edustore/db/conf/logging.properties" />
			<arg value="-db_properties:${WEBAPP}/WEB-INF/db.properties" />
			<arg value="-OUT:${moduleCreateBaseDir}/test/booklet_ohne_cover/${TARGET_NAME}.pdf" />
			<arg value="-JRXML:${moduleCreateBaseDir}/test/booklet_ohne_cover/${TARGET_NAME}.jrxml" />
			<arg value="-XML:${moduleCreateBaseDir}/test/booklet_ohne_cover/${XML}" />
			<arg value="-IGNORE_PAGINATION:false" />
			
			<classpath refid="classpath" />
		</java>
	<delete includeemptydirs="true">
            <fileset dir="./test/booklet_ohne_cover/" includes="**/*.jrprint,**/*.groovy"/>
         </delete>
		<echo message="Datei erzeugt: ./test/booklet_ohne_cover/${TARGET_NAME}.pdf (${SX_TIMESTAMP})" />


	</target>
	<target name="test" description="Execute test cases">
	<!-- Ausführen mit 
	ant -DWEBAPP=$WEBAPP test
	-->
		<antcall target="jrxml2pdf_tabelle_a4_quer">
			<param name="XML" value="stud_zeitreihe.xml" />
			<param name="TARGET_NAME" value="tmp" />
			<param name="WEBAPP" value="${WEBAPP}" />
		</antcall>
		<antcall target="jrxml2pdf_booklet_ohne_cover">
			<param name="XML" value="benutzerrahmen.xml" />
			<param name="TARGET_NAME" value="tmp" />
			<param name="WEBAPP" value="${WEBAPP}" />
		</antcall>
	</target>
</project>