Skip to content
Snippets Groups Projects
build.xml 29.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • <project name="datastore_server" default="dist" basedir="..">
    	<import file="../../build_resources/ant/build-common.xml" />
    
    	<import file="../../openbis/build/build.xml" />
    
    	<project-classpath name="ecp" classes="${classes}" />
    
    	<property name="dss.original.dist" value="../datastore_server/dist" />
    	<property name="dss" value="datastore_server" />
    	<property name="dist.datastore_server" value="${dist}/${dss}" />
    	<property name="dist.datastore_server.lib" value="${dist.datastore_server}/lib" />
    	<property name="dss-jar.file" value="${dist.datastore_server.lib}/datastore_server.jar" />
    	<property name="dist.file.prefix" value="${dist}/datastore_server" />
    	<property name="plugin-jar.file" value="${dist}/datastore_server-plugin.jar" />
    
    felmer's avatar
    felmer committed
    	<property name="dss-build.info.filename" value="BUILD-datastore_server.INFO"/>
    	<property name="dss-build.info.file" value="${classes}/${dss-build.info.filename}"/>
    
    	
    	<property name="dss_client" value="dss_client" />
    	<property name="dist.dss_client" value="${dist}/dss_client" />
    	<property name="dist.dss_client.lib" value="${dist.dss_client}/lib" />
      <property name="dss-client-jar.file" value="${dist.dss_client.lib}/dss_client.jar" />
      <property name="dist.client.file.prefix" value="${dist}/dss_client" />
    	
    	<property name="dss_upload_gui" value="dss_upload_gui" />
    	<property name="dist.dss_upload_gui" value="${dist}/${dss_upload_gui}" />
    	<property name="dist.dss_upload_gui.lib" value="${dist.dss_upload_gui}/lib" />
      <property name="dss-upload-gui-jar.file" value="${dist.dss_upload_gui.lib}/dss_upload_gui.jar" />
      <property name="dist.upload-gui.file.prefix" value="${dist}/${dss_upload_gui}" />
    
      
      <property name="query.api" value="openBIS-query-API" />
      <property name="query.api.jar.file" value="${dist}/openbis-query-api.jar" />
      <property name="query.api.doc" value="${dist}/${query.api}/doc" />
      <property name="query.api.doc.zip" value="${dist}/doc.zip" />
      <property name="query.api.src.zip" value="${dist}/src.zip" />
    
      <property name="nativesrc" value="${lib}/unix/native" />
      <property name="nativeroot" value="${targets}/ant" />
      <property name="native" value="${nativeroot}/native" />
    
    
    	<target name="clean">
    		<delete dir="${dist}" />
    	</target>
    
    	<target name="compile" depends="build-common.compile, clean" />
    
    	<target name="run-tests">
    		<antcall target="build-common.run-tests">
    			<param name="test.suite" value="tests.xml" />
    		</antcall>
    	</target>
    	
    	<target name="dss-jar" depends="compile">
    		<mkdir dir="${dist.datastore_server.lib}" />
    		<delete dir="tmp/test"/><!-- remove this directory in order to get a clean clean-flag -->
    		<build-info revision="revision.number" version="version.number" clean="clean.flag" />
    
    		<antcall target="make-dss-jar"/>
    	</target>
    		
    	<target name="make-dss-jar">
    
    felmer's avatar
    felmer committed
    		<echo file="${dss-build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
    
    		<copy todir="${native}">
    			<fileset dir="${nativesrc}">
    				<include name="**/unix.so" />
    			</fileset>
    		</copy>
    		<jar destfile="${dist}/dss-sql.jar">
    			<fileset dir="../datastore_server/source">
    				<include name="**/*.sql" />
    			</fileset>	
    		</jar>
    		<recursive-jar destfile="${dss-jar.file}">
    			<fileset dir="${classes}">
    				<include name="**/*.class" />
    				<include name="**/*.xsd" />
    
    felmer's avatar
    felmer committed
    				<include name="${dss-build.info.filename}" />
    
    			</fileset>
    			<zipfileset prefix="datastore_server/" src="${dist}/dss-sql.jar">
    				<include name="**/*.sql" />
    			</zipfileset>	
    			<fileset dir="${nativeroot}">
    				<include name="**/unix.so" />
    			</fileset>
    			<manifest>
    				<attribute name="Version" value="${version.number}" />
    				<attribute name="Build-Number"
    				           value="${version.number} (r${revision.number},${clean.flag})" />
    			</manifest>
    		</recursive-jar>
    	  <delete file="${dist}/dss-sql.jar"/>
    		<jar update="true" destfile="${dss-jar.file}">
    			<fileset dir="../datastore_server/${sources}">
    				<include name="**/*.xml" />
    				<include name="**/*.xsd" />
    			</fileset>
          <fileset dir="${sources}">
            <include name="**/*.xml" />
            <include name="**/*.xsd" />
          </fileset>
    			<fileset dir="../${ant.project.name}/${classes}" includes="ch/systemsx/cisd/openbis/dss/BuildAndEnvironmentInfo.class"/>
    
    			<zipfileset src="${lib}/gwt2.4/gwt-user.jar"
    
    			            includes="com/google/gwt/user/client/rpc/IsSerializable.class, com/google/gwt/user/client/rpc/SerializableException.class" />
    		</jar>
    
        <jar destfile="${query.api.jar.file}">
          <zipfileset src="${dss-jar.file}">
            <include name="ch/systemsx/cisd/common/exceptions/**/*.class" />
            <include name="ch/systemsx/cisd/common/spring/HttpInvokerUtils.class" />
            <include name="ch/systemsx/cisd/common/api/**/*.class" />
            <exclude name="ch/systemsx/cisd/common/api/server/**/*.class" />
            <include name="ch/systemsx/cisd/openbis/generic/shared/api/**/*.class" />
            <include name="ch/systemsx/cisd/openbis/generic/shared/basic/**/*.class" />
            <include name="ch/systemsx/cisd/openbis/plugin/query/**/api/**/*.class" />
            <exclude name="ch/systemsx/cisd/openbis/**/server/api/**/*.class" />
    
            <include name="ch/systemsx/cisd/openbis/dss/client/api/v1/**/*.class" />
            <include name="ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/**/*.class" />
    
            <include name="ch/systemsx/cisd/openbis/BuildAndEnvironmentInfo.class" />
            <include name="*.INFO" />
          </zipfileset>
        </jar>
    
    	</target>
    	
      <target name="make-plugin-dist">
    
    		<move file="${plugin-jar.file}" tofile="${dist.datastore_server.lib}/datastore_server_plugin${variant}.jar" />
    
      	<antcall target="openbis.copy-core-plugins">
    
          <param name="project-path" value="" />
    
          <param name="plugin-kind" value="dss" />
    
      	<move todir="${dist.datastore_server}">
      		<fileset dir="${dist}">
      		  <include name="*.MD5"/>
      		</fileset>
      	</move>
    
    		<property name="dist.file"
    		          value="${dist}/datastore_server_plugin${variant}-${version.number}-r${revision.number}.zip" />
    
    		<zip basedir="${dist}" destfile="${dist.file}" excludes="*.zip *.jar"/>
      	<delete dir="${dist}/core-plugins"/>
      	<delete dir="${dist.datastore_server}"/>
    
      </target>
    
      <!-- Pattern sets of API source in project 'datastore_server' -->
      <patternset id="datastore_server-api-sources">
        <include name="ch/systemsx/cisd/openbis/dss/client/api/v1/**" />
    
        <include name="ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/**" />
    
        <include name="ch/systemsx/cisd/openbis/dss/generic/shared/*" />
    
      </patternset>
      
      <target name="make-query-api-doc">
        <javadoc destdir="${query.api.doc}" access="public" author="false" version="false" classpath="${ecp}">
          <packageset dir="../datastore_server/${sources}">
            <patternset refid="datastore_server-api-sources"/>
          </packageset>
          <packageset dir="../openbis/${sources}">
            <patternset refid="openbis-api-sources"/>
          </packageset>
          <packageset dir="../openbis_api/${sources}">
            <patternset refid="openbis_api-api-sources"/>
          </packageset>
          <packageset dir="../common/${sources}">
            <patternset refid="common-api-sources"/>
          </packageset>
    
          <packageset dir="../openbis-common/${sources}">
            <patternset refid="openbis-common-api-sources"/>
    
          </packageset>
        </javadoc>
        <zip destfile="${query.api.doc.zip}">
          <zipfileset dir="${query.api.doc}" includes="**" />
        </zip>
        <delete dir="${dist}/${query.api}" />
        <zip destfile="${query.api.src.zip}">
          <fileset dir="../datastore_server/${sources}">
            <patternset refid="datastore_server-api-sources"/>
          </fileset>
          <fileset dir="../openbis/${sources}">
            <patternset refid="openbis-api-sources"/>
          </fileset>
          <fileset dir="../openbis_api/${sources}">
            <patternset refid="openbis_api-api-sources"/>
          </fileset>
          <fileset dir="../common/${sources}">
            <patternset refid="common-api-sources"/>
          </fileset>
    
          <fileset dir="../openbis-common/${sources}">
            <patternset refid="openbis-common-api-sources"/>
    
          </fileset>
        </zip>
      </target>
    	
      <target name="query-api-dist" depends="dss-jar, make-query-api-doc" 
      	description="Makes a distribution file for Query API.">
        <zip destfile="${dist}/openBIS-query-API-${version.number}-r${revision.number}.zip">
          <zipfileset prefix="${query.api}" file="${query.api.jar.file}"/>
          <zipfileset prefix="${query.api}" file="${query.api.doc.zip}"/>
          <zipfileset prefix="${query.api}" file="${query.api.src.zip}"/>
          <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}"/>
      	<delete file="${query.api.doc.zip}"/>
      	<delete file="${query.api.src.zip}"/>
      </target>
    
    
    	<target name="dist">
    		<antcall target="make-dist">
    			<param name="variant" value="" />
    		</antcall>
    	</target>
    
       <!-- This target has been separated to allow DSS extensions to modify jar files in the distribution
        -->
      <target name="prepare-dist-libs" depends="dss-jar, dist-client, dist-upload-gui">
        <copy file="${dss-jar.file}" todir="${dist.datastore_server.lib}" />
    
      	<antcall target="add-dss-dist-libs"/>
      </target>	
      	
    	<!-- Add libraries to DSS distribution. -->
    	<target name="add-dss-dist-libs">
    
      	<copy todir="${dist.datastore_server.lib}" flatten="true">
      		<fileset dir="${lib}/jetty7/lib">
      		  <include name="common/*.jar" />
      		  <include name="server/*.jar" />
      		</fileset>
      	</copy>
      	<copy todir="${dist.datastore_server.lib}">
      		<fileset dir="${lib}/cisd-image_readers">
      		  <include name="*.jar" />
      		</fileset>
      	</copy>
      	<copy file="${lib}/cisd-base/cisd-base.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/cisd-args4j/cisd-args4j.jar" todir="${dist.datastore_server.lib}" />
    
        <copy file="${lib}/cisd-jhdf5/cisd-jhdf5-core.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/cisd-jhdf5/cisd-jhdf5-tools.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/cisd-jhdf5/hdf5-linux-intel.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/cisd-jhdf5/hdf5-macosx-intel.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/cisd-jhdf5/hdf5-windows-intel.jar" todir="${dist.datastore_server.lib}" />
    
        <copy file="${lib}/cifex/cifex.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/activation/activation.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/mail/mail.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/log4j/log4j.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/fast-md5/fast-md5.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/commons-codec/commons-codec.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/commons-io/commons-io.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/commons-lang/commons-lang.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/commons-dbcp/commons-dbcp.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/commons-pool/commons-pool.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/postgresql/postgresql.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/commons-logging/commons-logging.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/commons-httpclient/commons-httpclient.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/eodsql/eodsql.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/imagej/ij.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/bioformats/bioformats.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jai/jai_core.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jai/jai_codec.jar" todir="${dist.datastore_server.lib}" />
    
        <copy file="${lib}/pngj/pngj.jar" todir="${dist.datastore_server.lib}" />
    
        <copy file="${lib}/jaxb/jaxb-api.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jaxb/jaxb-impl.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jaxb/jsr173_1.0_api.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/spring/spring.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/slf4j/log4j12/slf4j-log4j12.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/slf4j/slf4j.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/fast-md5/fast-md5.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/csv/csv.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jfreechart/jcommon-1.0.16.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jfreechart/jfreechart-1.0.13.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jython/jython.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/mina/mina-core.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/ftpserver/ftpserver-core.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/truezip/truezip.jar" todir="${dist.datastore_server.lib}" />
        <copy todir="${dist.datastore_server.lib}/${dss_upload_gui}" >
        	<fileset 	dir="${dist.dss_upload_gui.lib}" />
        </copy>
    
        <copy file="${lib}/poi/poi.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/poi/poi-ooxml.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/poi/poi-ooxml-schemas.jar" todir="${dist.datastore_server.lib}" />
    
        <copy file="${lib}/poi/ooxml-lib/dom4j-1.6.1.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/poi/ooxml-lib/geronimo-stax-api_1.0_spec-1.0.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/poi/ooxml-lib/xmlbeans-2.3.0.jar" todir="${dist.datastore_server.lib}" />
    
        <copy file="${lib}/jsonrpc4j/jsonrpc4j.jar" todir="${dist.datastore_server.lib}" />
    
        <copy file="${lib}/jackson/jackson-annotations.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jackson/jackson-core.jar" todir="${dist.datastore_server.lib}" />
        <copy file="${lib}/jackson/jackson-databind.jar" todir="${dist.datastore_server.lib}" />
    
        <copy file="${lib}/sshd/sshd-core.jar" todir="${dist.datastore_server.lib}" />
    
    	<copy file="${lib}/reflections/reflections.jar" todir="${dist.datastore_server.lib}" />
    	<copy file="${lib}/reflections/lib/guava-r08.jar" todir="${dist.datastore_server.lib}" />
    	<copy file="${lib}/reflections/lib/gson-1.4.jar" todir="${dist.datastore_server.lib}" />
    	<copy file="${lib}/reflections/lib/jboss-vfs-3.0.0.CR5.jar" todir="${dist.datastore_server.lib}" />
    	<copy file="${lib}/reflections/lib/xml-apis-1.0.b2.jar" todir="${dist.datastore_server.lib}" />
    	<copy file="${lib}/javassist/javassist.jar" todir="${dist.datastore_server.lib}" />
    
    
      	<!-- The dss_upload_gui folder is no longer needed; clean it up here (not in the task that makes the zip) -->
      	<delete dir="${dist.dss_upload_gui}" />
      </target>
    
      <!-- parameters: 
              variant - will be used in the distribution file name  
        -->
      <target name="create-distribution">
        <property name="dist.file"
                  value="${dist.file.prefix}${variant}-${version.number}-r${revision.number}.zip" />
        <move file="${checksum.file}" todir="${dist.datastore_server}" />
        <zip basedir="${dist}" destfile="${dist.file}" excludes="*.zip *.jar">
          <zipfileset dir="${dss.original.dist}" 
    
                excludes="**/datastore_server.sh, **/dss_client.sh, **/service.properties, **/log.xml, *.MD5" 
    
                prefix="${dss}" />
          <zipfileset dir="dist" 
    
                includes="**/service.properties, **/log.xml" 
    
                prefix="${dss}" />
          <zipfileset file="${dss.original.dist}/datastore_server.sh"
                      filemode="755"
                      prefix="${dss}" />         
        </zip>
        <delete dir="${dist.datastore_server}" />
      </target>
      
      <!-- 
          Build the checksum file.
      -->
      <target name="compute-checksum" depends="compute-separate-checksums">
        <concat-checksums />
      </target>
      
      <!-- 
          Compute checksum files, one per configuration file, and place them
          in the ${dist} dir. 
          
          The pattern shown in the file should be:
            hash[two spaces]path_in_distribution_to_file
          e.g.,
            {0}  [folder of file]{1}
      -->
      <target name="compute-separate-checksums">
        <checksum todir="${dist}" pattern="{0}  etc/{1}">
          <fileset dir="dist/etc">
            <include name="service.properties" />
            <include name="log.xml" />
            <include name="openBIS.keystore" />
    
        </checksum>
    		<checksum todir="${dist}" pattern="{0}  etc/{1}">
    			<fileset dir="dist/etc">
    				<include name="datastore_server.conf" />
    			</fileset>
    		</checksum>
      	<checksum todir="${dist}" pattern="{0}  ./{1}">
    			<fileset dir="dist">
    				<include name="datastore_server.sh" />
    			</fileset>
      	</checksum>
    
    felmer's avatar
    felmer committed
    	<!--
    			Compute checksums of all DSS core plugin files.
    			
    			Parameter:
    
    			  technology: Technology, i.e. top-level folder inside core-plugins folder
    
    felmer's avatar
    felmer committed
    			  path-prefix: Prefix to dist folder, usual project name
    	-->
      <target name="compute-core-plugins-checksums">
    
      	<delete file="${dist}/${technology}-${checksum.file.name}"/>
    
    felmer's avatar
    felmer committed
        <checksum todir="${dist}" pattern="{0}  {3}">
    
          <fileset dir="${path-prefix}/source/">
    
          	<include name="core-plugins/${technology}/*/dss/**/*"/>
    
    felmer's avatar
    felmer committed
          </fileset>
        </checksum>
      	<replaceregexp byline="true">
    
      		<regexp pattern="([0-6a-f]*) .*source/(.*)"/>
      		<substitution expression="\1  ../\2"/>
    
    felmer's avatar
    felmer committed
      		<fileset dir="${dist}">
    				<include name="**/*.MD5"/>
    			</fileset>
      	</replaceregexp>
      	<concat-checksums />
    
      	<move file="${dist}/${checksum.file.name}" tofile="${dist}/${technology}-${checksum.file.name}"/>
    
    felmer's avatar
    felmer committed
      </target>
    	
    
    	<!-- parameters: 
    					variant - will be used in the distribution file name  
    		-->
    
    	<target name="make-dist" depends="prepare-dist-libs, query-api-dist, compute-checksum, create-distribution" />
    
      
      <!--  
        dss-client-jar is designed to be called from make-dist. Thus, it does not depend on compile, but
        should be called after dss-jar. -->
      <target name="dss-client-jar" depends="">
        <mkdir dir="${dist.dss_client.lib}" />
        <build-info revision="revision.number" version="version.number" clean="clean.flag" />
    
    felmer's avatar
    felmer committed
        <echo file="${dss-build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
    
        <recursive-jar destfile="${dss-client-jar.file}">
          <fileset dir="${classes}">
          	<include name="ch/systemsx/cisd/common/**/*.class" />
          	<include name="ch/systemsx/cisd/openbis/generic/shared/**/*.class" />
            <include name="ch/systemsx/cisd/openbis/dss/client/**/*.class" />
          	<include name="ch/systemsx/cisd/openbis/dss/generic/shared/api/**/*.class" />
          	<include name="ch/systemsx/cisd/openbis/dss/generic/shared/utils/**/*.class" />
    
    felmer's avatar
    felmer committed
            <include name="${dss-build.info.filename}" />
    
          </fileset>
          <manifest>
            <attribute name="Main-Class" value="ch.systemsx.cisd.openbis.dss.client.api.cli.DssClient" />
            <attribute name="Class-Path"
                       value="cisd-base.jar cisd-args4j.jar stream-supporting-httpinvoker.jar log4j.jar commons-lang.jar commons-io.jar commons-logging.jar 
    
     commons-codec.jar commons-httpclient.jar spring.jar jline.jar jython.jar poi.jar poi-ooxml.jar poi-ooxml-schemas.jar dom4j-1.6.1.jar geronimo-stax-api_1.0_spec-1.0.jar xmlbeans-2.3.0.jar" />
    
            <attribute name="Version" value="${version.number}" />
            <attribute name="Build-Number"
                       value="${version.number} (r${revision.number},${clean.flag})" />
          </manifest>
        </recursive-jar>
        <jar update="true" destfile="${dss-client-jar.file}">
          <fileset dir="../${ant.project.name}/${classes}" includes="ch/systemsx/cisd/openbis/dss/BuildAndEnvironmentInfo.class"/>
    
        	<zipfileset src="${lib}/gwt2.4/gwt-user.jar"
    
        				            includes="com/google/gwt/user/client/rpc/IsSerializable.class, com/google/gwt/user/client/rpc/SerializableException.class" />
        </jar>
      </target>
    	
    	<target name="dist-client">
    		<antcall target="make-dist-client">
    			<param name="variant" value="${variant}" />
    		</antcall>
    	</target>
    
      <target name="make-dist-client" depends="dss-client-jar">
        <copy file="${dss-client-jar.file}" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/cisd-base/cisd-base.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/cisd-args4j/cisd-args4j.jar" todir="${dist.dss_client.lib}" />
      	<copy file="${lib}/spring/third-party/stream-supporting-httpinvoker.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/log4j/log4j.jar" todir="${dist.dss_client.lib}" />
    
    cramakri's avatar
    cramakri committed
      	<copy file="${lib}/cglib/cglib-nodep.jar" todir="${dist.dss_client.lib}" />
    
        <copy file="${lib}/commons-lang/commons-lang.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/commons-io/commons-io.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/commons-logging/commons-logging.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/commons-codec/commons-codec.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/commons-httpclient/commons-httpclient.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/spring/spring.jar" todir="${dist.dss_client.lib}" />
      	<copy file="${lib}/jline/jline.jar" todir="${dist.dss_client.lib}" />
    
    brinn's avatar
    brinn committed
      	<copy file="${lib}/jython/jython.jar" todir="${dist.dss_client.lib}" />
    
        <copy file="${lib}/poi/poi.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/poi/poi-ooxml.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/poi/poi-ooxml-schemas.jar" todir="${dist.dss_client.lib}" />
    
        <copy file="${lib}/poi/ooxml-lib/dom4j-1.6.1.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/poi/ooxml-lib/geronimo-stax-api_1.0_spec-1.0.jar" todir="${dist.dss_client.lib}" />
        <copy file="${lib}/poi/ooxml-lib/xmlbeans-2.3.0.jar" todir="${dist.dss_client.lib}" />
    
        <property name="dist.file"
                  value="${dist.client.file.prefix}${variant}-${version.number}-r${revision.number}.zip" />
        
        <zip destfile="${dist.file}">
          <zipfileset dir="${dist.dss_client.lib}"
                      prefix="${dss_client}/lib" />
          <zipfileset file="${dss.original.dist}/dss_client.sh"
                      filemode="755"
                      prefix="${dss_client}" />
        </zip>
        <delete dir="${dist.dss_client}" />
        
      </target>
    	
    	
      <!--  
        dss-upload-gui-jar is designed to be called from make-dist. Thus, it does not depend on compile, but
        should be called after dss-jar. -->
      <target name="dss-upload-gui-jar" depends="">
        <mkdir dir="${dist.dss_upload_gui.lib}" />
        <build-info revision="revision.number" version="version.number" clean="clean.flag" />
    
    felmer's avatar
    felmer committed
        <echo file="${dss-build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
    
        <recursive-jar destfile="${dss-upload-gui-jar.file}">
          <fileset dir="${classes}">
          	<include name="ch/systemsx/cisd/common/**/*.class" />
          	<include name="ch/systemsx/cisd/openbis/generic/shared/**/*.class" />
            <include name="ch/systemsx/cisd/openbis/dss/client/**/*.class" />
          	<include name="ch/systemsx/cisd/openbis/dss/generic/shared/api/**/*.class" />
          	<include name="ch/systemsx/cisd/openbis/dss/generic/shared/utils/**/*.class" />
          	<include name="org/python/core/SyspathArchiveHack.class" />
    
    felmer's avatar
    felmer committed
            <include name="${dss-build.info.filename}" />
    
          </fileset>
          <fileset dir="resource">
            <include name="wait.gif" />
            <include name="wrong.png" />
            <include name="ok.png" />
    
          </fileset>
          <manifest>
            <attribute name="Main-Class" value="ch.systemsx.cisd.openbis.dss.client.api.gui.DataSetUploadClient" />
            <attribute name="Class-Path"
    
    cramakri's avatar
    cramakri committed
                       value="cisd-base.jar cisd-args4j.jar cglib-nodep.jar stream-supporting-httpinvoker.jar log4j.jar commons-lang.jar commons-io.jar commons-logging.jar 
    
     commons-codec.jar commons-httpclient.jar spring.jar jline.jar jython.jar poi.jar poi-ooxml.jar poi-ooxml-schemas.jar dom4j-1.6.1.jar geronimo-stax-api_1.0_spec-1.0.jar xmlbeans-2.3.0.jar" />
    
            <attribute name="Version" value="${version.number}" />
            <attribute name="Build-Number"
                       value="${version.number} (r${revision.number},${clean.flag})" />
          </manifest>
        </recursive-jar>
        <jar update="true" destfile="${dss-upload-gui-jar.file}">
          <fileset dir="../${ant.project.name}/${classes}" includes="ch/systemsx/cisd/openbis/dss/BuildAndEnvironmentInfo.class"/>
    
        	<zipfileset src="${lib}/gwt2.4/gwt-user.jar"
    
        				            includes="com/google/gwt/user/client/rpc/IsSerializable.class, com/google/gwt/user/client/rpc/SerializableException.class" />
        </jar>
      </target>
    	
    	<target name="dist-upload-gui">
    		<antcall target="make-dist-upload-gui">
    			<param name="variant" value="${variant}" />
    		</antcall>
    	</target>
      
      <target name="make-dist-upload-gui" depends="dss-upload-gui-jar">
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${dist.dss_upload_gui.lib}" />
    			<param name="jar" value="dss_upload_gui.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/cisd-base" />
    			<param name="jar" value="cisd-base.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/cisd-args4j" />
    			<param name="jar" value="cisd-args4j.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/cisd-base" />
    			<param name="jar" value="cisd-base.jar" />
    		</antcall>
    
    cramakri's avatar
    cramakri committed
      	<antcall target="copy-and-sign-upload-ui-jar">
      		<param name="dir" value="${lib}/cglib" />
      		<param name="jar" value="cglib-nodep.jar" />
      	</antcall>
    
      	<antcall target="copy-and-sign-upload-ui-jar">
    
      		<param name="dir" value="${lib}/commons-codec" />
      		<param name="jar" value="commons-codec.jar" />
      	</antcall>
    
      	<antcall target="copy-and-sign-upload-ui-jar">
    
      		<param name="dir" value="${lib}/commons-httpclient" />
      		<param name="jar" value="commons-httpclient.jar" />
      	</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/commons-io" />
    			<param name="jar" value="commons-io.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/commons-lang" />
    			<param name="jar" value="commons-lang.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/commons-logging" />
    			<param name="jar" value="commons-logging.jar" />
    		</antcall>
    
      	<antcall target="copy-and-sign-upload-ui-jar">
    
      		<param name="dir" value="${lib}/commons-codec" />
      		<param name="jar" value="commons-codec.jar" />
      	</antcall>
    
      	<antcall target="copy-and-sign-upload-ui-jar">
    
      		<param name="dir" value="${lib}/spring" />
      		<param name="jar" value="spring.jar" />
      	</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/spring/third-party" />
    			<param name="jar" value="stream-supporting-httpinvoker.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    brinn's avatar
    brinn committed
    			<param name="dir" value="${lib}/jython" />
    
    			<param name="jar" value="jython.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/poi" />
    
    			<param name="jar" value="poi.jar" />
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/poi" />
    
    			<param name="jar" value="poi-ooxml.jar" />
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/poi" />
    
    			<param name="jar" value="poi-ooxml-schemas.jar" />
    
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/log4j" />
    			<param name="jar" value="log4j.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/poi/ooxml-lib" />
    			<param name="jar" value="dom4j-1.6.1.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/poi/ooxml-lib" />
    			<param name="jar" value="geronimo-stax-api_1.0_spec-1.0.jar" />
    		</antcall>
    
    		<antcall target="copy-and-sign-upload-ui-jar">
    
    			<param name="dir" value="${lib}/poi/ooxml-lib" />
    			<param name="jar" value="xmlbeans-2.3.0.jar" />
    		</antcall>
    
        <property name="dist.file"
                  value="${dist.upload-gui.file.prefix}${variant}-${version.number}-r${revision.number}.zip" />
        
        <zip destfile="${dist.file}">
          <zipfileset dir="${dist.dss_upload_gui.lib}"
                      prefix="${dss_upload_gui}/lib" />
        </zip>
      	
      	<!-- Do NOT delete the directory here;  it will be cleaned up in another part of the dist process 
        <delete dir="${dist.dss_upload_gui}" />
        -->
      	
      </target>
    	
    
    	<target name="copy-and-sign-upload-ui-jar">
    
    		<copy file="${dir}/${jar}" todir="${dist.dss_upload_gui.lib}" />
    		<signjar jar="${dist.dss_upload_gui.lib}/${jar}"
    		         keystore="../openbis/etc/dev.keystore"
    		         alias="openbis"
    		         storepass="openbistest"/>
    	</target>
    
    	<target name="ci" depends="run-tests, check-dependencies, dist">
    	</target>
      
      <target name="api-doc">
        <javadoc 
          destdir="targets/docs/api" 
          access="public" 
          author="true" 
          version="true" 
          classpath="${ecp}:../common/targets/classes">
        	<fileset dir="${sources}">
            <include name="ch/systemsx/cisd/openbis/dss/component/*.java" />
            <include name="ch/systemsx/cisd/openbis/dss/rpc/client/*.java" />
            <include name="ch/systemsx/cisd/openbis/dss/rpc/shared/*.java" />
            <exclude name="ch/systemsx/cisd/openbis/dss/rpc/shared/FileInfoDssBuilder.java" />
          </fileset>
        </javadoc>
      </target>