build.xml 31.47 KiB
<project name="openbis" default="dist" basedir="..">
<import file="../../server-common/build/build-common.xml" />
<project-classpath name="ecp" classes="${classes}" />
<project-classpath name="eclipse.cp" classes="${targets}/classes" />
<project-classpath name="ecp.gwt" classes="${targets}/www/WEB-INF/classes" />
<property name="mainfolder" value="openbis" />
<property name="gwt.lib" value="${lib}/gwt2.0" />
<property name="gwt.user.lib" value="${gwt.lib}/gwt-user.jar" />
<property name="original.server.dist" value="${original.dist}/server" />
<property name="original.openbis.server.dist" value="../openbis/dist/server" />
<property name="server.folder.name" value="openBIS-server" />
<property name="server.dist" value="${dist}/${server.folder.name}" />
<property name="server.jar.file.name" value="openBIS.jar" />
<property name="server.jar.file" value="${server.dist}/${server.jar.file.name}" />
<property name="server.webapp.file" value="${server.dist}/openBIS.war" />
<property name="server.service" value="${server.dist}/service" />
<property name="server.service.lib" value="${server.service}/lib" />
<property name="application.server.resource" value="../${ant.project.name}/${server-resource}" />
<property name="webapp.dist" value="${dist}/webapp" />
<property name="webapp.dist.web-inf" value="${webapp.dist}/WEB-INF" />
<property name="jar.file.name" value="${ant.project.name}.jar" />
<property name="jar.file" value="${dist}/${jar.file.name}" />
<property name="client.jar.file" value="${dist}/${ant.project.name}-client.jar" />
<property name="admin.console" value="openbis-admin-console" />
<property name="admin.jar.file" value="${dist}/${admin.console}.jar" />
<property name="admin.dist.file" value="${dist}/${admin.console}.zip" />
<property name="query.api" value="openbis-query-api" />
<property name="query.api.jar.file" value="${dist}/${query.api}.jar" />
<property name="query.api.dist.file" value="${dist}/${query.api}.zip" />
<property name="webapp.file.name" value="openBIS.war" />
<property name="webapp.file" value="${server.dist}/${webapp.file.name}" />
<!-- Properties for testing javascript, in particular common-dictionary.js -->
<property name="rhino.lib" value="${lib}/rhino/js.jar" />
<!--
// Cleans distribution directory.
-->
<target name="clean" description="Cleans distribution directory.">
<delete dir="${dist}" failonerror="true" />
<mkdir dir="${dist}" />
</target>
<!--
// Runs tests.
-->
<target name="run-tests" depends="check-dictionary-syntax">
<antcall target="build-common.run-tests">
<param name="test.suite" value="tests.xml" />
</antcall>
</target>
<!--
// Target that sets up enviroment info for tests. The test.suite parameter should be provided when called.
-->
<target name="run-system-test-suite">
<junit dir="." fork="true" forkmode="once" maxmemory="1024m" showoutput="true" failureproperty="tests-failed">
<classpath>
<pathelement location="${sources}" />
<pathelement location="${sources.test}" />
<pathelement path="${ecp}" />
<pathelement location="${gwt.lib}/gwt-dev.jar" />
</classpath>
<jvmarg value="-ea" />
<sysproperty key="authentication-service" value="file-authentication-service" />
<sysproperty key="database.create-from-scratch" value="true" />
<sysproperty key="database.kind" value="system_test" />
<sysproperty key="script-folder" value="sourceTest" />
<sysproperty key="mass-upload-folder" value="sourceTest/sql/postgresql" />
<sysproperty key="log4j.configuration" value="etc/log.xml" />
<sysproperty key="hibernate.search.index-base" value="sourceTest/lucene/indices" />
<sysproperty key="hibernate.search.index-mode" value="NO_INDEX" />
<sysproperty key="hibernate.search.indexing_strategy" value="manual" />
<sysproperty key="data-store-server-base-url" value="https://localhost:8889" />
<sysproperty key="gwt.args" value="-testMethodTimeout 4 -Xtries 1" />
<formatter type="xml" />
<test name="${test.suite}" todir="${output.test}" />
</junit>
<fail>
<condition>
<isset property="tests-failed" />
</condition>
</fail>
</target>
<target name="run-editing1-tests">
<antcall target="run-system-test-suite">
<param name="test.suite" value="ch.systemsx.cisd.openbis.generic.EditingTestSuite1" />
</antcall>
</target>
<target name="run-editing2-tests">
<antcall target="run-system-test-suite">
<param name="test.suite" value="ch.systemsx.cisd.openbis.generic.EditingTestSuite2" />
</antcall>
</target>
<target name="run-viewing1-tests">
<antcall target="run-system-test-suite">
<param name="test.suite" value="ch.systemsx.cisd.openbis.generic.ViewingTestSuite1" />
</antcall>
</target>
<target name="run-viewing2-tests">
<antcall target="run-system-test-suite">
<param name="test.suite" value="ch.systemsx.cisd.openbis.generic.ViewingTestSuite2" />
</antcall>
</target>
<target name="run-viewing3-tests">
<antcall target="run-system-test-suite">
<param name="test.suite" value="ch.systemsx.cisd.openbis.generic.ViewingTestSuite3" />
</antcall>
</target>
<!--
// Runs system tests
-->
<target name="run-system-tests"
depends="prepare-gwt, compile-tests, run-editing1-tests, run-editing2-tests, run-viewing1-tests, run-viewing2-tests">
<delete dir="${output.test}" />
<mkdir dir="${output.test}" />
</target>
<target name="run-system-tests-no-prep"
depends="run-editing1-tests, run-editing2-tests, run-viewing1-tests, run-viewing2-tests, run-viewing3-tests">
<delete dir="${output.test}" />
<mkdir dir="${output.test}" />
</target>
<!--
// Makes a distribution file.
-->
<target name="dist" description="Makes a distribution file.">
<antcall target="make-dist">
<param name="variant" value="" />
</antcall>
</target>
<target name="admin-console-dist" depends="jar"
description="Makes a distribution file for the admin console.">
<zip destfile="${admin.dist.file}">
<zipfileset prefix="${admin.console}" file="${admin.jar.file}"/>
<zipfileset prefix="${admin.console}" file="${lib}/cisd-base/cisd-base.jar"/>
<zipfileset prefix="${admin.console}" file="${lib}/commons-codec/commons-codec.jar"/>
<zipfileset prefix="${admin.console}" file="${lib}/commons-httpclient/commons-httpclient.jar"/>
<zipfileset prefix="${admin.console}" file="${lib}/commons-io/commons-io.jar"/>
<zipfileset prefix="${admin.console}" file="${lib}/commons-logging/commons-logging.jar"/>
<zipfileset prefix="${admin.console}" file="${lib}/jline/jline.jar"/>
<zipfileset prefix="${admin.console}" file="${lib}/log4j/log4j.jar"/>
<zipfileset prefix="${admin.console}" file="${lib}/spring/spring.jar"/>
<zipfileset prefix="${admin.console}" file="${lib}/spring/third-party/stream-supporting-httpinvoker.jar"/>
</zip>
<delete file="${admin.jar.file}"/>
</target>
<target name="query-api-dist" depends="jar"
description="Makes a distribution file for Query API.">
<zip destfile="${query.api.dist.file}">
<zipfileset prefix="${query.api}" file="${query.api.jar.file}"/>
<zipfileset prefix="${query.api}" file="${lib}/cisd-base/cisd-base.jar"/>
<zipfileset prefix="${query.api}" file="${lib}/commons-codec/commons-codec.jar"/>
<zipfileset prefix="${query.api}" file="${lib}/commons-httpclient/commons-httpclient.jar"/>
<zipfileset prefix="${query.api}" file="${lib}/commons-logging/commons-logging.jar"/>
<zipfileset prefix="${query.api}" file="${lib}/log4j/log4j.jar"/>
<zipfileset prefix="${query.api}" file="${lib}/spring/spring.jar"/>
<zipfileset prefix="${query.api}" file="${lib}/spring/third-party/stream-supporting-httpinvoker.jar"/>
</zip>
<delete file="${query.api.jar.file}"/>
</target>
<target name="make-dist" description="Makes a distribution file."
depends="check-dictionary-syntax, clean, war, admin-console-dist, query-api-dist">
<copy file="${lib}/tomcat5/apache-tomcat.zip" todir="${server.dist}" />
<loadfile property="tomcat.version" srcFile="${lib}/tomcat5/version.txt">
<filterchain>
<striplinebreaks />
</filterchain>
</loadfile>
<echo file="${server.dist}/tomcat-version.txt">${tomcat.version}</echo>
<copy file="${original.openbis.server.dist}/server.xml" todir="${server.dist}" />
<move file="${client.jar.file}" todir="${server.dist}" />
<move file="${admin.dist.file}" todir="${server.dist}" />
<move file="${query.api.dist.file}" todir="${server.dist}" />
<copy file="${original.server.dist}/service.properties" todir="${server.dist}" />
<copy file="${original.server.dist}/openbis.conf" todir="${server.dist}" />
<copy file="${original.openbis.server.dist}/openBIS.keystore" todir="${server.dist}" />
<copy file="${original.openbis.server.dist}/passwd.sh" todir="${server.dist}" />
<property name="server.dist.file" value="${server.dist}${variant}-${version.number}-r${revision.number}.zip" />
<zip basedir="${dist}" destfile="${server.dist.file}" excludes="*.zip">
<zipfileset file="${original.openbis.server.dist}/install.sh" filemode="777" prefix="${server.folder.name}" />
</zip>
<delete dir="${server.dist}" />
</target>
<!--
// Task for continuous integration server.
-->
<target name="ci" depends="check-dictionary-syntax, build-common.ci, check-dependencies, dist" description="Task for continuous integration server." />
<!--
// Nightly build task for continuous integration server. // CR : Remove run-system-tests from the dependencies
because the system tests do not run // correctly as a dependent of the nightly build (for some reason). // Orig:
depends="build-common.ci, run-system-tests, dist"
-->
<target name="nightly-build" depends="build-common.ci, dist" description="Nightly build task for continuous integration server." />
<!--
// Compiles the javascript using GWT compiler.
-->
<target name="compile-javascript" depends="prepare-web-client" description="Compiles the javascript using GWT compiler.">
<antcall target="compile-gwt-module">
<param name="gwt.module.name" value="ch.systemsx.cisd.openbis.OpenBIS" />
</antcall>
</target>
<!--
Compiles a GWT module to Javascript. As a side effect ${webbap.dist} is deleted. Parameters: gwt.module.name: Fully
qualified name of the module.
-->
<target name="compile-gwt-module">
<delete dir="${webapp.dist}" />
<java classpath="${ecp}:${gwt.lib}/gwt-dev.jar:${gwt.user.lib}:../openbis/${sources}:${sources}" classname="com.google.gwt.dev.Compiler"
fork="true">
<jvmarg value="-Xmx1024M" />
<arg value="-war" />
<arg value="${webapp.dist}" />
<arg value="${gwt.module.name}" />
<arg value="-localWorkers" />
<arg value="4" />
<arg value="-XdisableCastChecking" />
<arg value="-XdisableClassMetadata" />
</java>
<move todir="${webapp.dist}">
<fileset dir="${webapp.dist}/${gwt.module.name}" />
</move>
</target>
<!--
// Creates build information.
-->
<target name="build-info" description="Creates build information.">
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
</target>
<!--
// Override 'prepare-gwt' target by writing out 'OpenBIS.gwt-without-entry-point.xml' and updating
'ClientPluginProvider.java'.
-->
<target name="prepare-gwt"
description="Override 'prepare-gwt' by writing out 'OpenBIS.gwt-without-entry-point.xml' and updating 'ClientPluginProvider.java'.">
<antcall target="prepare-web-client" />
<antcall target="compile-tests" />
<antcall target="server-common-common.prepare-gwt" />
<copy todir="${targets.www.web-inf}/lib">
<fileset dir="${lib}/cisd-base">
<include name="cisd-base.jar" />
</fileset>
<fileset dir="${lib}/commons-lang">
<include name="commons-lang.jar" />
</fileset>
<fileset dir="${lib}/commons-logging">
<include name="*.jar" />
</fileset>
<fileset dir="${lib}/commons-io">
<include name="commons-io.jar" />
</fileset>
<fileset dir="${lib}/jline">
<include name="jline.jar" />
</fileset>
<fileset dir="${lib}/commons-codec">
<include name="commons-codec.jar" />
</fileset>
<fileset dir="${lib}/commons-httpclient">
<include name="commons-httpclient.jar" />
</fileset>
<fileset dir="${lib}/log4j">
<include name="log4j.jar" />
</fileset>
<fileset dir="${lib}/spring">
<include name="spring.jar" />
</fileset>
<fileset dir="${lib}/spring/webmvc">
<include name="spring-webmvc.jar" />
</fileset>
<fileset dir="${lib}/activation">
<include name="activation.jar" />
</fileset>
<fileset dir="${lib}/mail">
<include name="mail.jar" />
</fileset>
<fileset dir="${gwt.lib}">
<include name="gwt-servlet.jar" />
</fileset>
<fileset dir="${lib}/commons-fileupload">
<include name="*.jar" />
</fileset>
<fileset dir="${lib}/fastutil">
<include name="fastutil.jar" />
</fileset>
<fileset dir="${lib}/postgresql">
<include name="postgresql.jar" />
</fileset>
<fileset dir="${lib}/commons-dbcp">
<include name="commons-dbcp.jar" />
</fileset>
<fileset dir="${lib}/commons-pool">
<include name="commons-pool.jar" />
</fileset>
<fileset dir="${lib}/eodsql">
<include name="eodsql.jar" />
</fileset>
<!-- Hibernate -->
<fileset dir="${lib}/antlr">
<include name="antlr.jar" />
</fileset>
<fileset dir="${lib}/commons-collections">
<include name="commons-collections.jar" />
</fileset>
<fileset dir="${lib}/dom4j">
<include name="dom4j.jar" />
</fileset>
<fileset dir="${lib}/hibernate">
<include name="hibernate3.jar" />
</fileset>
<fileset dir="${lib}/hibernate/jta">
<include name="jta.jar" />
</fileset>
<fileset dir="${lib}/ehcache">
<include name="ehcache.jar" />
</fileset>
<fileset dir="${lib}/cglib">
<include name="asm.jar" />
<include name="asm-attrs.jar" />
<include name="cglib.jar" />
</fileset>
<fileset dir="${lib}/hibernate-annotations">
<include name="*.jar" />
</fileset>
<fileset dir="${lib}/hibernate-validator">
<include name="*.jar" />
</fileset>
<fileset dir="${lib}/javassist">
<include name="*.jar" />
</fileset>
<fileset dir="${lib}/slf4j">
<include name="*.jar" />
<exclude name="src.jar" />
</fileset>
<fileset dir="${lib}/slf4j/log4j12">
<include name="*.jar" />
<exclude name="src.jar" />
</fileset>
<!-- Beanlib -->
<fileset dir="${lib}/beanlib">
<include name="beanlib.jar" />
</fileset>
<fileset dir="${lib}/beanlib-hibernate">
<include name="beanlib-hibernate.jar" />
</fileset>
<!-- Hibernate Search -->
<fileset dir="${lib}/hibernate-search">
<include name="*.jar" />
</fileset>
<fileset dir="${lib}/lucene">
<include name="*.jar" />
</fileset>
<fileset dir="${lib}/lucene-highlighter">
<include name="lucene-highlighter.jar" />
</fileset>
<fileset dir="${lib}/cisd-args4j">
<include name="cisd-args4j.jar" />
</fileset>
<fileset dir="${lib}/jython">
<include name="jython.jar" />
</fileset>
</copy>
</target>
<!--
// Updates 'ClientPluginProvider.java' and 'OpenBIS.gwt-without-entry-point.xml' with requested plugins.
-->
<target name="prepare-web-client" depends="compile"
description="Updates 'ClientPluginProvider.java' and 'OpenBIS.gwt-without-entry-point.xml' with requested plugins.">
<java classname="ch.systemsx.cisd.openbis.generic.shared.util.WebClientFilesUpdater" classpath="${ecp}:../openbis/source/java"
fork="true" failonerror="true">
<arg value="../openbis/source/java" />
</java>
</target>
<!--
// Creates JAR files.
-->
<target name="jar" depends="compile, build-info" description="Creates project jar file.">
<delete file="${jar.file}" />
<recursive-jar destfile="${jar.file}">
<fileset dir="${classes}">
<include name="**/*.class" />
<!-- Exclude 'service.properties' and 'log.xml' file. -->
<exclude name="service.properties" />
<exclude name="log.xml" />
<include name="**/*.properties" />
<include name="${build.info.filename}" />
</fileset>
</recursive-jar>
<jar update="true" destfile="${jar.file}">
<fileset dir="../${ant.project.name}/${classes}" includes="ch/systemsx/cisd/openbis/BuildAndEnvironmentInfo.class" />
</jar>
<jar destfile="${client.jar.file}">
<zipfileset src="${jar.file}">
<include name="ch/systemsx/cisd/common/spring/HttpInvokerUtils.class" />
<include name="ch/systemsx/cisd/common/exceptions/*.class" />
<include name="**/shared/I*.class" />
<include name="**/shared/basic/dto/*.class" />
<include name="**/shared/basic/*.class" />
<include name="**/shared/dto/**/*.class" />
<exclude name="**/shared/dto/*PE.class" />
<include name="**/shared/authorization/annotation/*.class" />
<include name="**/shared/authorization/ISessionProvider.class" />
<include name="**/*BuildAndEnvironmentInfo.class" />
<include name="*.INFO" />
</zipfileset>
<zipfileset src="${lib}/gwt2.0/gwt-user.jar">
<include name="com/google/gwt/user/client/rpc/IsSerializable.class" />
<include name="com/google/gwt/user/client/rpc/SerializableException.class" />
</zipfileset>
<zipfileset src="${lib}/cisd-base/cisd-base.jar">
<include name="**/*BuildAndEnvironmentInfo.class" />
</zipfileset>
<manifest>
<attribute name="Main-Class" value="ch.systemsx.cisd.openbis.BuildAndEnvironmentInfo" />
</manifest>
</jar>
<jar destfile="${admin.jar.file}">
<zipfileset src="${jar.file}">
<include name="ch/systemsx/cisd/common/spring/HttpInvokerUtils.class" />
<include name="ch/systemsx/cisd/common/**/*.class" />
<include name="ch/systemsx/cisd/openbis/generic/client/console/**/*.class" />
<include name="**/shared/I*.class" />
<include name="**/shared/basic/dto/*.class" />
<include name="**/shared/basic/*.class" />
<include name="**/shared/dto/**/*.class" />
<exclude name="**/shared/dto/*PE.class" />
<include name="**/shared/authorization/annotation/*.class" />
<include name="**/shared/authorization/ISessionProvider.class" />
<include name="**/*BuildAndEnvironmentInfo.class" />
<include name="*.INFO" />
</zipfileset>
<zipfileset src="${lib}/gwt2.0/gwt-user.jar">
<include name="com/google/gwt/user/client/rpc/IsSerializable.class" />
<include name="com/google/gwt/user/client/rpc/SerializableException.class" />
</zipfileset>
<manifest>
<attribute name="Main-Class" value="ch.systemsx.cisd.openbis.generic.client.console.AdminConsole" />
<attribute name="Class-Path"
value="${admin.console}.jar cisd-base.jar commons-codec.jar
commons-httpclient.jar commons-io.jar commons-logging.jar
log4j.jar jline.jar spring.jar stream-supporting-httpinvoker.jar"/>
</manifest>
</jar>
<jar destfile="${query.api.jar.file}">
<zipfileset src="${jar.file}">
<include name="ch/systemsx/cisd/common/exceptions/**/*.class" />
<include name="ch/systemsx/cisd/common/spring/HttpInvokerUtils.class" />
<include name="ch/systemsx/cisd/openbis/**/api/**/*.class" />
<exclude name="ch/systemsx/cisd/openbis/**/server/api/**/*.class" />
<include name="**/*BuildAndEnvironmentInfo.class" />
<include name="*.INFO" />
</zipfileset>
</jar>
</target>
<!--
// Creates WAR file.
-->
<target name="war" depends="jar, compile-javascript" description="Creates project war file.">
<mkdir dir="${webapp.dist.web-inf}" />
<copy todir="${webapp.dist.web-inf}">
<fileset dir="${application.server.resource}">
<include name="spring-servlet.xml" />
</fileset>
<fileset dir="../server-common/${server-resource}">
<include name="web-common.xml" />
</fileset>
</copy>
<!-- Create an empty 'gwt.xml' file. -->
<echo file="${webapp.dist.web-inf}/gwt.xml" message="" />
<mkdir dir="${server.dist}" />
<war warfile="${webapp.file}" webxml="${application.server.resource}/web.xml">
<fileset dir="${webapp.dist}" />
<classes dir="../openbis/source">
<include name="**/*.sql" />
</classes>
<!-- Add 'applicationContext.xml' and related files. -->
<classes dir="../server-common/${sources}">
<include name="**/*.xml" />
</classes>
<classes dir="${sources}">
<include name="**/*.xml" />
<exclude name="**/*.gwt.xml" />
</classes>
<classes dir="${original.server.dist}">
<include name="etc/log.xml" />
<include name="etc/passwd" />
</classes>
<classes dir="${classes}">
<include name="${build.info.filename}" />
</classes>
<lib dir="${dist}">
<include name="${jar.file.name}" />
</lib>
<lib dir="${lib}/cisd-base">
<include name="cisd-base.jar" />
</lib>
<lib dir="${lib}/commons-lang">
<include name="commons-lang.jar" />
</lib>
<lib dir="${lib}/commons-logging">
<include name="*.jar" />
</lib>
<lib dir="${lib}/commons-io">
<include name="commons-io.jar" />
</lib>
<lib dir="${lib}/jline">
<include name="jline.jar" />
</lib>
<lib dir="${lib}/commons-codec">
<include name="commons-codec.jar" />
</lib>
<lib dir="${lib}/commons-httpclient">
<include name="commons-httpclient.jar" />
</lib>
<lib dir="${lib}/log4j">
<include name="log4j.jar" />
</lib>
<lib dir="${lib}/spring">
<include name="spring.jar" />
</lib>
<lib dir="${lib}/spring/webmvc">
<include name="spring-webmvc.jar" />
</lib>
<lib dir="${lib}/spring/third-party/">
<include name="stream-supporting-httpinvoker.jar" />
</lib>
<lib dir="${lib}/activation">
<include name="activation.jar" />
</lib>
<lib dir="${lib}/mail">
<include name="mail.jar" />
</lib>
<lib dir="${gwt.lib}">
<include name="gwt-servlet.jar" />
</lib>
<lib dir="${lib}/commons-fileupload">
<include name="*.jar" />
</lib>
<lib dir="${lib}/fastutil">
<include name="fastutil.jar" />
</lib>
<!-- Database -->
<lib dir="${lib}/postgresql">
<include name="postgresql.jar" />
</lib>
<lib dir="${lib}/commons-dbcp">
<include name="commons-dbcp.jar" />
</lib>
<lib dir="${lib}/commons-pool">
<include name="commons-pool.jar" />
</lib>
<lib dir="${lib}/eodsql">
<include name="eodsql.jar" />
</lib>
<!-- Hibernate -->
<lib dir="${lib}/antlr">
<include name="antlr.jar" />
</lib>
<lib dir="${lib}/commons-collections">
<include name="commons-collections.jar" />
</lib>
<lib dir="${lib}/dom4j">
<include name="dom4j.jar" />
</lib>
<lib dir="${lib}/hibernate">
<include name="hibernate3.jar" />
</lib>
<lib dir="${lib}/hibernate/jta">
<include name="jta.jar" />
</lib>
<lib dir="${lib}/ehcache">
<include name="ehcache.jar" />
</lib>
<lib dir="${lib}/cglib">
<include name="asm.jar" />
<include name="asm-attrs.jar" />
<include name="cglib.jar" />
</lib>
<lib dir="${lib}/hibernate-annotations">
<include name="*.jar" />
</lib>
<lib dir="${lib}/hibernate-validator">
<include name="*.jar" />
</lib>
<lib dir="${lib}/javassist">
<include name="*.jar" />
</lib>
<lib dir="${lib}/slf4j">
<include name="*.jar" />
<exclude name="src.jar" />
</lib>
<lib dir="${lib}/slf4j/log4j12">
<include name="*.jar" />
<exclude name="src.jar" />
</lib>
<!-- Beanlib -->
<lib dir="${lib}/beanlib">
<include name="beanlib.jar" />
</lib>
<lib dir="${lib}/beanlib-hibernate">
<include name="beanlib-hibernate.jar" />
</lib>
<!-- Hibernate Search -->
<lib dir="${lib}/hibernate-search">
<include name="*.jar" />
</lib>
<lib dir="${lib}/lucene">
<include name="*.jar" />
</lib>
<lib dir="${lib}/lucene-highlighter">
<include name="lucene-highlighter.jar" />
</lib>
<lib dir="${lib}/cisd-args4j">
<include name="cisd-args4j.jar" />
</lib>
<lib dir="${lib}/jython">
<include name="jython.jar" />
</lib>
</war>
<!-- Does some cleaning. -->
<delete file="${jar.file}" failonerror="true" />
<delete dir="${webapp.dist}" failonerror="true" />
</target>
<!--
// Duplicate developer database and creates dump file and index files
-->
<target name="dump-and-index" description="Dumps developer database and creates a Lucene index files">
<java classpath="${eclipse.cp}" failonerror="true" fork="true" dir="." maxmemory="512m"
classname="ch.systemsx.cisd.openbis.generic.server.dataaccess.db.IndexCreationUtil">
<sysproperty key="log4j.configuration" file="etc/log.xml" />
<arg value="-d" />
<arg value="dev_indexed" />
<arg value="${targets}/dev_indexed.sql" />
<arg value="dev" />
<arg value="${targets}/dev_indexed-index" />
</java>
</target>
<!--
// Replace developer database and index
-->
<target name="replace-database-and-index" description="Replaces developer database and index">
<java classpath="${eclipse.cp}" failonerror="true" fork="true" dir="."
classname="ch.systemsx.cisd.openbis.generic.server.dataaccess.db.DatabaseAndIndexReplacer">
<sysproperty key="log4j.configuration" file="etc/log.xml" />
<arg value="dev" />
<arg value="${targets}/indices" />
<arg value="dev_indexed" />
<arg value="${targets}/dev_indexed-index" />
</java>
</target>
<!--
// // MODULE TEST // // Run the app with compiled javscript, but using the classes compiled by Eclipse
-->
<!--
// // Compile Java to javscript, assuming that prepare-gwt has already been run // // Must pass in module-test.path
and module-test.module as arguments // e.g., // <{property,param} name="module-test.path" value="openbis-test" /> //
<{property,param} name="module-test.module" value="ch.systemsx.cisd.openbis.OpenBIS" /> //
-->
<target name="compile-module-test" description="Compile the module test mode">
<delete dir="${targets.www}/${module-test.path}" />
<java classpath="${ecp}:${ecp.gwt}:${gwt.lib}/gwt-dev.jar:${gwt.user.lib}:../openbis/${sources}:${sources}"
classname="com.google.gwt.dev.Compiler" fork="true">
<jvmarg value="-Xmx512M" />
<arg value="-war" />
<arg value="${targets.www}" />
<arg value="${module-test.module}Safari" />
<arg value="-draftCompile" />
<arg value="-style" />
<arg value="PRETTY" />
<!-- <arg value="-compileReport" /> -->
</java>
<move todir="${targets.www}/${module-test.path}">
<fileset dir="${targets.www}/${module-test.module}" />
</move>
</target>
<!--
Run the production mode, assuming compile-module-test has already been run
Must pass in module-test.path, module-test.module, and module-test.db-kind as arguments
e.g.,
<{property,param} name="module-test.path" value="openbis-test" />
<{property,param} name="module-test.module" value="ch.systemsx.cisd.openbis.OpenBIS" />
-->
<target name="run-module-test" description="Run the module test mode">
<java failonerror="true" fork="true" classname="com.google.gwt.dev.DevMode">
<classpath>
<pathelement location="${sources}" />
<pathelement location="../openbis/${sources}" />
<pathelement path="${ecp}" />
<pathelement path="${ecp.gwt}" />
<pathelement location="${gwt.lib}/gwt-dev.jar" />
<pathelement location="${gwt.lib}/gwt-user.jar" />
</classpath>
<jvmarg value="-Xmx512M" />
<jvmarg value="-ea" />
<sysproperty key="log4j.configuration" file="etc/log.xml" />
<sysproperty key="javax.net.ssl.trustStore" file="dist/server/openBIS.keystore" />
<!-- Arguments to com.google.gwt.dev.DevMode -->
<!-- Provide two startup urls : one for the compiled version, one for the normal dev version -->
<arg value="-startupUrl" />
<arg value="${module-test.path}/index.html" />
<arg value="-startupUrl" />
<arg value="${module-test.module}/index.html" />
<arg value="${module-test.module}" />
<arg value="-war" />
<arg value="targets/www" />
<arg value="-logLevel" />
<arg value="WARN" />
</java>
</target>
<target name="prepare-and-run-module-test" depends="prepare-gwt, module-test" description="Prepare, compile, and run the module test mode">
</target>
<target name="module-test-no-run" description="Compile module test mode" depends="check-dictionary-syntax">
<antcall target="compile-module-test">
<param name="module-test.path" value="openbis-test" />
<param name="module-test.module" value="ch.systemsx.cisd.openbis.OpenBIS" />
</antcall>
</target>
<target name="module-test" description="Compile and run the module test mode" depends="check-dictionary-syntax">
<antcall target="compile-module-test">
<param name="module-test.path" value="openbis-test" />
<param name="module-test.module" value="ch.systemsx.cisd.openbis.OpenBIS" />
</antcall>
<antcall target="run-openbis-test" />
</target>
<target name="run-openbis-test" description="Runs the openBIS test mode">
<antcall target="run-module-test">
<param name="module-test.path" value="openbis-test" />
<param name="module-test.module" value="ch.systemsx.cisd.openbis.OpenBIS" />
</antcall>
</target>
<target name="check-javascript-syntax" description="Callable task for checking that javascript syntax is correct.">
<java failonerror="true" fork="true" jar="${rhino.lib}">
<arg value="${javascript-file}" />
</java>
</target>
<target name="check-dictionary-syntax" description="Parse *-dictionary.js and check that the syntax is correct.">
<antcall target="check-javascript-syntax">
<param name="javascript-file" value="../openbis/${sources}/ch/systemsx/cisd/openbis/public/common-dictionary.js" />
</antcall>
<antcall target="check-javascript-syntax">
<param name="javascript-file"
value="../openbis/${sources}/ch/systemsx/cisd/openbis/plugin/query/client/web/public/query-dictionary.js" />
</antcall>
<antcall target="check-javascript-syntax">
<param name="javascript-file" value="../openbis/${sources}/ch/systemsx/cisd/openbis/generic/client/web/public/generic-dictionary.js" />
</antcall>
</target>
</project>