SuperX-Kernmodul
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

453 lines
22 KiB

<?xml version="1.0" encoding="UTF-8"?>
<project name="superx" default="compile" basedir="." >
<!-- property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/ -->
<dirname file="${ant.file.superx}" property="superxBuildBaseDir" />
<property name="distDir" location="${superxBuildBaseDir}/../dist" />
<property environment="env" />
<!-- set global properties for this build -->
<property name="BASE_DIR" value="${superxBuildBaseDir}/.." />
<property name="SUPERX_DIR" value="${BASE_DIR}/superx"/>
<property name="BUILD_PATH" value="${SUPERX_DIR}/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="${SUPERX_DIR}/WEB-INF/lib"/>
<property name="LIB_WEBAPP_DIR" value="${LIB_SUPERX_DIR}"/>
<property name="LIB_EXT_SUPERX_DIR" value="${SUPERX_DIR}/WEB-INF/lib_ext"/>
<property name="APPLET_DIR" value="${SUPERX_DIR}/applet"/>
<property name="JUNIT_LIB" value="${SUPERX_DIR}/WEB-INF/junit_lib"/>
<property name="cvs.host" value="cvs.his.de:2401" />
<property name="superx-classes" value="${SUPERX_DIR}/WEB-INF/classes" />
<property name="test-target" value="${superxBuildBaseDir}/build_tests"/>
<property name="superx-lib" value="${SUPERX_DIR}/WEB-INF/lib" />
<property name="build-results" value="${superxBuildBaseDir}/results" />
<property name="src-java" value="${SRC_DIR}"/>
<property name="test-resource" location="resource"/>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${SUPERX_DIR}/WEB-INF/lib_ext/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
<path id="classpath">
<fileset dir="${LIB_SUPERX_DIR}">
<include name="*.jar" />
</fileset>
<fileset dir="${LIB_EXT_SUPERX_DIR}">
<include name="*.jar" />
</fileset>
<pathelement path="${BUILD_PATH}" />
</path>
<taskdef name="groovy"
classname="org.codehaus.groovy.ant.Groovy"
classpathref="classpath"/>
<property name="version" value="5.3" />
<target name="cvs_checkout_eduetl_dbconv_sch">
<mkdir dir="${java.io.tmpdir}/temp_cvs" />
<cvs cvsRoot=":pserver:cvsscript@${cvs.host}/srv/cvs/qisprojects"
dest="${java.io.tmpdir}/temp_cvs">
<module name="webapps/qisserver/WEB-INF/conf/dbconv/conf/sch/sch.eduetl" />
<module name="webapps/qisserver/WEB-INF/conf/dbconv/conf/sch/unl.eduetl" />
</cvs>
</target>
<target name="create_test_db_eduetl" depends="delete_test_db_eduetl,cvs_checkout_eduetl_dbconv_sch">
<groovy src="../scripts/groovy/build_db.groovy">
<arg value="${java.io.tmpdir}/temp_cvs/webapps/qisserver/WEB-INF/conf/dbconv/conf/sch/sch.eduetl"/>
<arg value="${java.io.tmpdir}/temp_cvs/webapps/qisserver/WEB-INF/conf/dbconv/conf/sch/unl.eduetl"/>
<arg value="jdbc:h2:../test/resources/db/head_eduetl" />
<arg value="org.h2.Driver" />
<arg value="sa" />
</groovy>
<delete dir="${java.io.tmpdir}/temp_cvs" />
</target>
<target name="delete_test_db_eduetl">
<delete dir="../test/resources/db">
<include name="head_eduetl.*" />
</delete>
</target>
<target name="initTimestamp">
<tstamp>
<format property="SX_TIMESTAMP" pattern="dd.MM.yyyy HH:mm" />
</tstamp>
</target>
<target name="war">
<delete file="../superx.war" quiet="true" />
<jar basedir="../superx" compress="true" destfile="../superx.war">
<exclude name="**/*.java" />
</jar>
</target>
<target name="war_his1" description="Erzeugt die superx.war">
<delete file="../superx.war" quiet="true" />
<copy file="${superxBuildBaseDir}/../superx/META-INF/context.xml.HIS1" tofile="../superx/META-INF/context.xml" overwrite="true" />
<copy file="${superxBuildBaseDir}/../superx/WEB-INF/db.properties.HIS1" tofile="../superx/WEB-INF/db.properties" overwrite="true" />
<copy file="${superxBuildBaseDir}/../superx/META-INF/context.xml.FILTER" todir="${distDir}/META-INF" overwrite="true" />
<copy file="${superxBuildBaseDir}/../superx/WEB-INF/db.properties.FILTER" todir="${distDir}/WEB-INF" overwrite="true" />
<jar basedir="../superx" compress="true" destfile="../superx.war">
<exclude name="**/*.java" />
</jar>
</target>
<target name="dist_his1" depends="create_all_modules,his_icons_for_saiku,compileSuperx,test" >
<property name="dist_dir" location="../dist" />
<delete dir="${distDir}" />
<mkdir dir="${distDir}" />
<mkdir dir="${distDir}/scripts/database" />
<mkdir dir="${distDir}/scripts/shell" />
<copy todir="${distDir}/scripts/database">
<fileset dir="${BASE_DIR}/scripts/ant/database" />
</copy>
<copy todir="${distDir}/scripts/shell">
<fileset dir="${BASE_DIR}/scripts/shell">
<include name="component_admin_cli*" />
</fileset>
</copy>
<defaultexcludes remove="**/.gitignore"/>
<copy todir="${distDir}">
<fileset dir="${superxBuildBaseDir}/../superx"
excludesfile="${superxBuildBaseDir}/global_blacklist.txt">
</fileset>
</copy>
<foreach param="MODULE" target="module_checksum">
<path>
<dirset dir="${distDir}/WEB-INF/conf/edustore/db/module" includes="*" />
</path>
</foreach>
<copy todir="${distDir}/WEB-INF/reports">
<fileset dir="${superxBuildBaseDir}/../superx/WEB-INF/reports"
includesfile="${superxBuildBaseDir}/included_reports_list.txt" />
</copy>
<!-- Include Java Sources -->
<copy todir="${distDir}/WEB-INF/src">
<fileset dir="${superxBuildBaseDir}/../src" />
</copy>
<defaultexcludes default="true" />
</target>
<target name="clean">
<delete dir="${distDir}" />
</target>
<!--im Buildpath muessen fuer APPLET images und die entpackten jh.jar Klassen vorliegen-->
<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="compileSuperx" depends="cleanBuildPath" description="Compile all classes for superx.">
<filter token="sxtimestamp" value="${SX_TIMESTAMP}" />
<filter token="version" value="${version}" />
<!-- MB 13.8.2009 auch mitkompilieren <echo message="de/memtext/db/Servlet* weggelassen"/>-->
<copy todir="${BUILD_PATH}" filtering="false">
<fileset dir="${SRC_DIR}">
<include name="**/*.properties" />
<include name="**/*.sam" />
<include name="**/*.xml" />
<include name="edustore/*" />
<include name="saiku-datasources/*" />
<include name="saiku-repository/*" />
<include name="**/javax.xml.xpath.XPathFactory" />
</fileset>
</copy>
<copy todir="${BUILD_PATH}" filtering="false">
<fileset dir="${SRC_DIR}">
<include name="**/*.gif" />
<include name="de/statspez/**" />
</fileset>
</copy>
<javac source="17" target="17"
srcdir="${SRC_DIR}" excludes="de/superx/test/*Test*.java,de/memtext/util/*Test*.java,de/superx/servlet/*Test*.java,de/superx/bin/*Test*.java,test/**/*"
destdir="${BUILD_PATH}"
listfiles="false" encoding="UTF-8" nowarn="on" debug="true" debuglevel="lines,vars,source">
<classpath refid="classpath" />
<compilerarg compiler="org.eclipse.jdt.core.JDTCompilerAdapter" />
</javac>
<antcall target="compileJasperFiles" />
</target>
<target name="compileJasperFiles" description="Compile all 'jrxml' files to 'jasper' files">
<java fork="true" classname="de.superx.util.JasperUtils">
<classpath refid="classpath" />
<arg value="${SUPERX_DIR}/WEB-INF/reports" />
</java>
</target>
<target name="module_checksum" description="Generate hash checksum for module directory">
<echo message="checksum ${MODULE}" />
<if>
<available file="${MODULE}/version_hash.src" property="hash.src.present" />
<then>
<echo>Ausgelagertes Modul. version_hash.src gefunden.</echo>
<copy file="${MODULE}/version_hash.src" tofile="${MODULE}/version_hash" failonerror="false" quiet="false" />
</then>
<else>
<delete file="${MODULE}/version_hash" quiet="false" failonerror="false" />
<echo message="Generating hash." />
<checksum totalproperty="module.hash" algorithm="SHA-512">
<fileset dir="${MODULE}">
<include name="**/*" />
</fileset>
</checksum>
<delete>
<fileset dir="${MODULE}" includes="**/*.SHA-512"/>
</delete>
<echo file="${MODULE}/version_hash">${module.hash}</echo>
</else>
</if>
</target>
<target name="compile">
<javac source="17" target="17"
srcdir="${SRC_DIR}" excludes="**/*Test*.java,de/memtext/util/*Test*.java,de/superx/servlet/*Test*.java,de/superx/bin/*Test*.java,test/**/*"
destdir="${BUILD_PATH}"
listfiles="true" encoding="UTF-8" nowarn="on">
<classpath refid="classpath" />
<compilerarg
compiler="org.eclipse.jdt.core.JDTCompilerAdapter"
line="-warn:+unused -Xemacs"/>
</javac>
</target>
<target name="distServer" depends="compileSuperx" description="Erzeugt die superx${VERSION}.jar, d.h. das Servlet.">
<delete>
<fileset dir="${LIB_WEBAPP_DIR}" includes="superx*.jar" />
</delete>
<jar destfile="${LIB_WEBAPP_DIR}/superx${version}.jar" basedir="${BUILD_PATH}" excludes="freemarker/**/* com/**/* javax/**/* **/*.java edustore/* saiku-datasources/* saiku-repository/*">
<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="distApplet2" depends="initTimestamp" description="Erzeugt die superx.jar. Mit distServer werden die Quellen nach WEB-INF/classes kompiliert, und dann werden die nicht benötigten Dateien entfernt">
<filter token="sxtimestamp" value="${SX_TIMESTAMP}" />
<filter token="version" value="${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="saiku-datasources/*" />
<include name="saiku-repository/*" />
<exclude name="de/superx/servlet/Test*.java" />
</fileset>
</copy>
</target>
<target name="distApplet" depends="initTimestamp" description="Erzeugt die superx.jar. Mit distServer werden die Quellen nach WEB-INF/classes kompiliert, und dann werden die nicht benötigten Dateien entfernt">
<filter token="sxtimestamp" value="${SX_TIMESTAMP}" />
<filter token="version" value="${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="saiku-datasources/*" />
<include name="saiku-repository/*" />
<exclude name="de/superx/servlet/Test*.java" />
</fileset>
</copy>
<!--<echo message="cp:${FULL_CLASSPATH}"/>-->
<javac source="1.7" target="1.7"
destdir="${BUILD_PATH}"
listfiles="false" deprecation="on">
<src path="${BUILD_PATH}" />
<classpath refid="classpath" />
</javac>
<!-- Put everything in ${buildApplet} into the superx.jar file -->
<delete>
<fileset dir="${BUILD_PATH}" includes="**/*.java" />
</delete>
<mkdir dir="${BUILD_PATH}/images" />
<copy todir="${BUILD_PATH}/images">
<fileset dir="${APPLET_DIR}/images" includes="**/*"/>
</copy>
<mkdir dir="${BUILD_PATH}/superx_help" />
<copy todir="${BUILD_PATH}/superx_help">
<fileset dir="${APPLET_DIR}/superx_help" includes="**/*"/>
</copy>
<!-- MB 10/13 de/superx/common/SxUser braucht spring -->
<unjar src="${LIB_WEBAPP_DIR}/spring-security-core-3.0.3.RELEASE.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/freemarker.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/log4j-1.2.14.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/jh.jar" dest="${BUILD_PATH}" />
<!-- in SxUser wird com.google.common.base.Predicate und com.google.common.collect.Sets gebraucht-->
<unjar src="${LIB_WEBAPP_DIR}/guava-16.0.1.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/kettle-core-6.0.0.0-353.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/kettle-engine-6.0.0.0-353.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/dom4j-1.6.1.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/metastore-6.0.0.0-353.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/slf4j-log4j12-1.6.1.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/slf4j-api-1.6.1.jar" dest="${BUILD_PATH}" />
<delete>
<fileset dir="${BUILD_PATH}/META-INF" />
</delete>
<jar jarfile="./superx.jar" basedir="${BUILD_PATH}" manifest="applet-manifest.mf" />
<!-- <jar jarfile="./superxUnobfuscated.jar" basedir="${BUILD_PATH}"/>
<java jar="./proguard.jar" fork="yes">
<arg value="@./superx-obfuscate.pro"/>
</java>
-->
<move file="./superx.jar" todir="${APPLET_DIR}" />
<delete file="./superxUnobfuscated.jar" />
<!--Die folgende keystore muss vorher auf dem Build-Rechner erzeugt werden:
keytool -genkey -alias superx_applet -keyalg RSA
keytool -selfcert -alias superx_applet -validity 365
-->
<echo message="Signieren muss Meikel machen" />
<!-- <signjar jar="${APPLET_DIR}/superx.jar" alias="superx_applet" storepass="changeit" />-->
<!--<antcall target="cleanBuildPath" />-->
</target>
<!-- obsolet wird durch Clientpaket gemacht-->
<target name="standalone" description="Erzeugt standalone Packet">
<delete quiet="true" file="sx_standalone.jar" />
<mkdir dir="tmp_build" />
<delete>
<fileset dir="tmp_build" includes="**/*"/>
</delete>
<javac destdir="tmp_build" srcdir="${SRC_DIR}" includes="de/superx/bin/SendMail.java,de/superx/bin/Wget.java,de/superx/bin/PasswdUpdater.java,de/superx/bin/SxConnection.java">
<classpath refid="classpath" />
</javac>
<!-- Argument Parser-->
<unjar src="${LIB_WEBAPP_DIR}/JSAP-2.1.jar" dest="${BUILD_PATH}" />
<!--commandline parser-->
<unjar src="${LIB_WEBAPP_DIR}/pg74.214.jdbc3.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/ifxjdbc.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/commons-codec-1.5.jar" dest="${BUILD_PATH}" />
<!--base64 decoding-->
<!-- Mailbibliotheken entpacken-->
<unjar src="${LIB_WEBAPP_DIR}/dsn.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/mailapi.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/imap.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/pop3.jar" dest="${BUILD_PATH}" />
<unjar src="${LIB_WEBAPP_DIR}/smtp.jar" dest="${BUILD_PATH}" />
<jar jarfile="standalone/sx_standalone.jar" basedir="${BUILD_PATH}" />
</target>
<!-- automatitesche Testausführung-->
<target name="cleanTestDirs" description="Löscht alle Dateien">
<delete failonerror="false" includeemptydirs="true">
<fileset dir="${build-results}"/>
<fileset dir="${classes-target}"/>
<fileset dir="${test-target}"/>
</delete>
</target>
<target name="initTestDirs" depends="cleanTestDirs">
<mkdir dir="${build-results}"/>
<mkdir dir="${test-target}"/>
</target>
<target name="compile-testclasses" depends="initTestDirs" description="Erzeugt Testklassen">
<filter token="sxtimestamp" value="${SX_TIMESTAMP}"/>
<javac source="17" target="17" srcdir="${SRC_DIR_TEST}" nowarn="on"
destdir="${test-target}" listfiles="false" includeantruntime="false">
<classpath refid="classpath"/>
<exclude name="**/All*Tests*"/>
<exclude name="**/TokenCheckerTestOld.java" />
</javac>
<copy todir="${test-target}" filtering="true">
<fileset dir="${SRC_DIR_TEST}">
<include name="**/javax.xml.xpath.XPathFactory" />
</fileset>
</copy>
</target>
<target name="test" depends="compile-testclasses">
<junit printsummary="yes" haltonerror="false" fork="yes" forkmode="once" dir="${BASE_DIR}" showoutput="true" threads="1">
<jvmarg line="--add-opens java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-opens java.base/javax.crypto=ALL-UNNAMED --add-opens java.base/java.util.stream=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED" />
<classpath location="${BUILD_PATH}" />
<!-- classpath location="${superx-classes}"/ -->
<classpath location="${test-target}"/>
<classpath>
<fileset dir="${LIB_SUPERX_DIR}">
<include name="*.jar"/>
<exclude name="superx*.jar" />
</fileset>
<fileset dir="${LIB_EXT_SUPERX_DIR}">
<include name="*.jar"/>
</fileset>
</classpath>
<batchtest todir="${build-results}" >
<!-- example for running single Tests only
<fileset dir="${test-target}" includes="**/*JasperCreatorTest*,**/ExecuteMaskPDFTest*" excludes="**/*$*.class" />
-->
<fileset dir="${test-target}" excludes="**/*$*.class" />
<formatter type="plain" usefile="true"/>
<formatter type="xml" usefile="true"/>
</batchtest>
</junit>
</target>
<!-- invokation for example: "ant testcase -DCLASS=de.superx.util.CsrfTokenInsertionTest -->
<target name="testcase" depends="compile-testclasses">
<junit printsummary="yes" haltonerror="false" fork="yes" forkmode="once" dir="${BASE_DIR}" showoutput="yes">
<jvmarg line="--add-opens java.naming/com.sun.jndi.ldap=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-opens java.base/javax.crypto=ALL-UNNAMED --add-opens java.base/java.util.stream=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED" />
<classpath location="${BUILD_PATH}" />
<!-- classpath location="${superx-classes}"/ -->
<classpath location="${test-target}" />
<classpath>
<fileset dir="${LIB_SUPERX_DIR}">
<include name="*.jar" />
<exclude name="superx*.jar" />
</fileset>
<fileset dir="${LIB_EXT_SUPERX_DIR}">
<include name="*.jar" />
</fileset>
</classpath>
<test name="${CLASS}">
<formatter type="plain" usefile="false" />
</test>
</junit>
</target>
<target name="create_all_modules">
<subant target="all">
<property name="basedir" value="${BASE_DIR}/src-modules/module/" />
<fileset dir="${BASE_DIR}/src-modules/module/" includes="create_modules_ant.xml" />
</subant>
</target>
<target name="his_icons_for_saiku">
<subant target="all">
<property name="basedir" value="${BASE_DIR}/superx/saiku/css/saiku/" />
<fileset dir="${BASE_DIR}/superx/saiku/css/saiku/" includes="his_icons_for_saiku_ant.xml" />
</subant>
</target>
</project>