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

ant  -DMODULE_PATH=$ETL_PFAD -DBASE_DIR=. -DWEBAPP=$WEBAPP -DMODULE=etl all

So erzeugen Sie dann ein SuperX-Paket:
ant  -DMODULE_PATH=$ETL_PFAD -DWEBAPP_DIR=$WEBAPP -DMODULE=etl dist

ETL-JAR erzeugen:

ant -DWEBAPP=$WEBAPP distEtl
ant -DWEBAPP=$WEBAPP cleanBuildPath
-->
	<dirname file="${ant.file.superx}" property="superxBuildBaseDir" />
	<property name="distDir" location="${superxBuildBaseDir}/superx/WEB-INF/lib" />

	<property environment="env" />
	<!-- set global properties for this build -->
	<property name="BASE_DIR" value="." />
	<property name="SUPERX_DIR" value="${WEBAPP}"/>
	<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="build_cobertura" value="${superxBuildBaseDir}/cobertura_build_classes" />
	<property name="test-target" value="${superxBuildBaseDir}/cobertura_build_tests"/>
	<property name="superx-lib" value="${WEBAPP}/WEB-INF/lib" />
	<property name="build-results" value="${superxBuildBaseDir}/results" />
	<property name="build_cobertura_report" value="${superxBuildBaseDir}/coveragereport" />
	<property name="src-java" value="${SRC_DIR}"/>
	<property name="test-resource" location="resource"/>


	<property name="version" value="0.1" />
    	<property name="docm_version" value="1.0" />
	<property name="etl_version" value="0.4b" />



	
	<dirname file="${ant.file}" property="moduleCreateBaseDir" />
	<property name="BASE_DIR" value="${moduleCreateBaseDir}/../.." />
	<property name="WEBAPP" value="${MODULE_PATH}/../../../webserver/tomcat/webapps/superx" />
<path id="classpath">
 <!--WEB-INF/lib-->
    <fileset dir="${WEBAPP}/WEB-INF">
    	<include name="lib/**/*.jar" />
    	<include name="classes" />
    </fileset>
    		<fileset dir="${LIB_EXT_SUPERX_DIR}">
			<include name="**/*.jar" />
		</fileset>

</path>
	<condition property="isWindoze">
		<os family="windows" />
	</condition>

	<condition property="isUnix">
		<os family="unix" />
	</condition>
	<taskdef name="groovy"
             classname="org.codehaus.groovy.ant.Groovy"
             classpathref="classpath"/>
	<target name="initTimestamp">
		<tstamp>
			<format property="SX_TIMESTAMP" pattern="dd.MM.yyyy HH:mm" />
		</tstamp>
	</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" />
<antcall target="generate_etl_jobs" />

       </target>
	<target name="module_copy_source" description="Gruppe: 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>
		<copy todir="${WEBAPP}/edit/${MODULE}" overwrite="true">
			<fileset dir="${BASE_DIR}/superx/edit/${MODULE}" />
		</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="${WEBAPP}" />
			<property name="WEBAPP" value="${WEBAPP}" />
			<property name="SUPERX_BASE" value="${WEBAPP}/WEB-INF" />
			<fileset dir="${MODULE_PATH}/../../conf" includes="module_scripts_create_ant.xml" />
		</subant>
		<chmod dir="${MODULE_PATH}/rohdaten" perm="ugo+x" includes="**/*.x" />

	</target>
	<target name="generate_etl_jobs" description="generiert die ETL Scripte für Sonderladeroutinen" >
	<echo message="Start etl-job users_and_groups für Modul ${MODULE} in Pfad ${MODULE_PATH}" />
		<xslt in="${MODULE_PATH}/conf/${MODULE}.xml" style="${MODULE_PATH}/schluesseltabellen/etl_transfer.xsl" 
		out="${MODULE_PATH}/schluesseltabellen/etl_step_users_and_groups.sql" force="true">
			<outputproperty name="method" value="text" />
			<param name="job" expression="users_and_groups" />
		</xslt>
		<echo message="Datei erzeugt: ${MODULE_PATH}/schluesseltabellen/etl_step_users_and_groups.sql" />
		
		<xslt in="${MODULE_PATH}/conf/${MODULE}.xml" style="${MODULE_PATH}/schluesseltabellen/etl_transfer.xsl" 
		out="${MODULE_PATH}/schluesseltabellen/etl_step_sichten.sql" force="true">
			<outputproperty name="method" value="text" />
			<param name="job" expression="sichten" />
		</xslt>
		<echo message="Datei erzeugt: ${MODULE_PATH}/schluesseltabellen/etl_step_sichten.sql" />
		
		<xslt in="${MODULE_PATH}/conf/${MODULE}.xml" style="${MODULE_PATH}/schluesseltabellen/etl_transfer.xsl" 
		out="${MODULE_PATH}/schluesseltabellen/etl_step_sx_captions.sql" force="true">
			<outputproperty name="method" value="text" />
			<param name="job" expression="sx_captions" />
		</xslt>
		<echo message="Datei erzeugt: ${MODULE_PATH}/schluesseltabellen/etl_step_sx_captions.sql" />
	</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="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="distEtl" depends="compileSuperx" description="Erzeugt die superx-etl.jar. ">
		<delete>
			<fileset dir="${distDir}" includes="superx-etl*.jar" />
		</delete>
		<jar destfile="${distDir}/superx-etl.jar" basedir="${BUILD_PATH}" includes="de/superx/elt/** 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="${etl_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>

</project>