Skip to content
Commits on Source (13)
......@@ -13,9 +13,9 @@
<classpathentry kind="lib" path="libs/test/objenesis-1.0.jar"/>
<classpathentry kind="lib" path="libs/test/testng-jdk15.jar"/>
<classpathentry kind="lib" path="libs/build/ecj-4.6.1.jar"/>
<classpathentry kind="lib" path="libs/prod/cisd-args4j-9.11.2.jar" sourcepath="libs/prod/cisd-args4j-9.11.2-sources.jar"/>
<classpathentry kind="lib" path="libs/prod/commons-lang3-3.7.jar" sourcepath="libs/prod/commons-lang3-3.7-sources.jar"/>
<classpathentry kind="lib" path="libs/prod/commons-io-2.6.jar" sourcepath="libs/prod/commons-io-2.6-sources.jar"/>
<classpathentry kind="lib" path="libs/prod/sis-base-18.08.0.jar" sourcepath="libs/prod/sis-base-18.08.0-sources.jar"/>
<classpathentry kind="lib" path="libs/prod/sis-base-18.09-pre1.jar" sourcepath="libs/prod/sis-base-18.09-pre1-sources.jar"/>
<classpathentry kind="lib" path="libs/prod/args4j-2.33.jar"/>
<classpathentry kind="output" path="targets/classes"/>
</classpath>
......@@ -11,8 +11,41 @@ tasks.withType(Test) {
systemProperty "java.library.path", "libs/native/jhdf5/amd64-Linux:libs/native/jhdf5/amd64-Linux:libs/native/jhdf5/x86_64-Mac OS X:libs/native/jhdf5/x86_64-Mac OS X"
}
def execute(command, arguments) {
new ByteArrayOutputStream().withStream { os ->
print "execute: ${command}"
arguments.collect({print " ${it}"})
println ''
def result = exec {
executable = command
args = arguments
standardOutput = os
}
return os.toString().split('\n')
}
}
task processDistFiles( type: Copy) {
into "$buildDir/output/dist"
from ("dist") {
exclude 'doc/JHDF5.odt'
}
from ("dist") {
include 'doc/JHDF5.odt'
rename { "JHDF5-${version}.odt" }
}
doLast {
execute('lowriter', [ '--headless', '--convert-to', 'pdf', '--outdir', "$buildDir/output/dist/doc", "$buildDir/output/dist/doc/JHDF5-${version}.odt" ])
}
}
jar {
baseName "${project.group}-jhdf5"
exclude '**/HDF5ArchiverMain*.class'
from('targets/dist') {
include 'BUILD*INFO'
}
......@@ -21,9 +54,24 @@ jar {
include 'native/jhdf5/**/**/*'
}
manifest {
attributes 'Main-Class': 'ch.systemsx.cisd.base.BuildAndEnvironmentInfo'
attributes 'Class-Path': configurations.runtime.filter { !(it.getName().contains("-sources") || it.getName().startsWith("cisd-args4j")) }.collect { it.getName() }.join(' ')
}
}
task h5arCLIJar(type: Jar, dependsOn: [jar]) {
archiveName "${project.group}-jhdf5-h5ar-cli-${version}.jar"
from files(sourceSets.main.output.classesDir) {
include '**/HDF5ArchiverMain*.class'
}
from('targets/dist') {
include 'BUILD*INFO'
}
manifest {
attributes 'Main-Class': 'ch.systemsx.cisd.hdf5.h5ar.HDF5ArchiverMain'
attributes 'Class-Path': configurations.runtime.collect { it.getName().contains("-sources") ? "" : it.getName() + " " }.join('')
attributes 'Class-Path': "${project.group}-jhdf5-${version}.jar " + configurations.runtime.filter { !it.getName().contains("-sources") }.collect { it.getName() }.join(' ')
}
}
......@@ -54,14 +102,15 @@ task myJavadoc(type: Javadoc, dependsOn: [compileJava]) {
exclude "ch/systemsx/cisd/hdf5/ReflectionUtils.java"
}
task javadocJar(type: Jar, dependsOn: myJavadoc) {
task javadocJar(type: Jar, dependsOn: [myJavadoc, processDistFiles]) {
archiveName "${project.group}-jhdf5-javadoc-${project.version}.jar"
from javadoc.destinationDir
from ("sourceExamples/java") {
include '**/*'
}
from ("dist/doc") {
include 'JHDF5.pdf'
from ("$buildDir/output/dist/doc") {
include "JHDF5-${version}.pdf"
rename { "JHDF5.pdf" }
}
from ("targets/dist") {
......@@ -83,39 +132,7 @@ task exampleJar(type: Jar) {
}
def execute(command, arguments) {
new ByteArrayOutputStream().withStream { os ->
print "execute: ${command}"
arguments.collect({print " ${it}"})
println ''
def result = exec {
executable = command
args = arguments
standardOutput = os
}
return os.toString().split('\n')
}
}
task processDistFiles( type: Copy) {
into "$buildDir/output/dist"
from ("dist") {
exclude 'doc/JHDF5.odt'
}
from ("dist") {
include 'doc/JHDF5.odt'
rename { "JHDF5-${version}.odt" }
}
doLast {
execute('lowriter', [ '--headless', '--convert-to', 'pdf', '--outdir', "$buildDir/output/dist/doc", "$buildDir/output/dist/doc/JHDF5-${version}.odt" ])
}
}
task distributionZip(type: Zip, dependsOn: [jar, javadocJar, sourcesJar, exampleJar, processDistFiles]) {
task distributionZip(type: Zip, dependsOn: [jar, h5arCLIJar, javadocJar, sourcesJar, exampleJar, processDistFiles]) {
baseName "${project.group}-jhdf5"
from('targets/dist') {
......@@ -160,6 +177,10 @@ task distributionZip(type: Zip, dependsOn: [jar, javadocJar, sourcesJar, example
into "${project.group}-jhdf5/lib"
}
from (h5arCLIJar.archivePath) {
into "${project.group}-jhdf5/lib"
}
from (configurations.runtime) {
exclude '*restriction*'
exclude '*bcel*'
......
#! /bin/bash
SCRIPT="$0"
if [ "${SCRIPT}" = "${SCRIPT#/}" ]; then
SCRIPT="`pwd`/${SCRIPT#./}"
fi
BINDIR="${SCRIPT%/*}"
BASEDIR=${BINDIR%/*}
cd $BASEDIR
ant -lib ../build_resources/lib/ecj.jar -f build/build.xml "$@"
<project name="jhdf5" default="dist" basedir="..">
<import file="../../build_resources/ant/build-common.xml" />
<project-classpath name="ecp" classes="${classes}:${lib}/junit4/junit.jar" />
<property name="mainfolder" value="sis-${ant.project.name}" />
<property name="distfolder" value="${ant.project.name}" />
<property name="jar.file" value="${dist}/sis-jhdf5.jar" />
<property name="dist.file" value="${dist}/sis-jhdf5" />
<property name="jar.batteries-included.filename"
value="sis-jhdf5-batteries_included.jar" />
<property name="jar.batteries-included.file" value="${dist}/${jar.batteries-included.filename}" />
<property name="jar.core.file" value="${dist}/sis-jhdf5-core.jar" />
<property name="jar.tools.file" value="${dist}/sis-jhdf5-tools.jar" />
<property name="sources.examples" value="sourceExamples/java" />
<property name="src.zip.file" value="${dist}/sis-jhdf5-src.zip" />
<property name="examples.src.zip.file" value="${dist}/sis-jhdf5-examples-src.zip" />
<property name="javadoc.zip.file" value="${dist}/sis-jhdf5-javadoc.zip" />
<property name="test.jar.file" value="${dist}/sis-jhdf5-test.jar" />
<property name="lib" value="../libraries" />
<property name="original.dist" value="../${ant.project.name}/dist" />
<property name="nativesrc" value="libs/native" />
<property name="nativeroot" value="${targets}/ant" />
<property name="native" value="${nativeroot}/native" />
<property name="dist.hdf5" value="${dist}/${mainfolder}" />
<property name="dist.hdf5.lib" value="${dist.hdf5}/lib" />
<!--
// Compile Java classes using the Eclipse compiler
// Note: THIS IS A PRIVATE TARGET. It isn't intended to be used in other build scripts.
// Parameter: src = source folder
-->
<target name="_plain-compile">
<echo level="info">Compile all classes in ${basedir}/${src} and subfolders</echo>
<javac srcdir="${src}"
destdir="${classes}"
classpath="${ecp}"
source="1.7"
target="1.7"
encoding="UTF-8"
debug="true">
<compilerarg line="-warn:none" />
</javac>
<copy todir="${classes}">
<fileset dir="${src}">
<include name="**/*.xml" />
<include name="**/*.xsd" />
<include name="**/*.properties" />
<include name="**/*.jpg" />
<include name="**/*.png" />
<include name="**/*.gif" />
</fileset>
</copy>
</target>
<target name="clean">
<delete dir="${dist}" />
<delete dir="${targets}/ant" />
</target>
<target name="jar-test" depends="clean, compile-tests">
<mkdir dir="${dist.hdf5.lib}" />
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<copy todir="${native}">
<fileset dir="${nativesrc}">
<include name="**/libjhdf5.so" />
<include name="**/libjhdf5.jnilib" />
<include name="**/jhdf5.dll" />
</fileset>
</copy>
<recursive-jar destfile="${test.jar.file}">
<fileset dir="${classes}">
<include name="**/*.class" />
<include name="${build.info.filename}" />
</fileset>
<fileset dir="${nativeroot}">
<include name="native/**/*.so" />
<include name="native/**/*.jnilib" />
<include name="native/**/*.dll" />
</fileset>
<fileset dir="${sources.test}/test/hdf5lib">
<include name="*.hdf" />
</fileset>
<zipfileset src="${lib}/testng/testng-jdk15.jar" />
<zipfileset src="${lib}/junit4/junit.jar" />
<zipfileset src="${lib}/jmock/hamcrest/hamcrest-core.jar" />
<zipfileset src="${lib}/sis-base/sis-base.jar" />
<zipfileset src="${lib}/cisd-args4j/cisd-args4j.jar" />
<zipfileset src="${lib}/commons-lang/commons-lang.jar" />
<zipfileset src="${lib}/commons-io/commons-io.jar" />
<manifest>
<attribute name="Main-Class" value="ch.systemsx.cisd.hdf5.HDF5RoundtripTest" />
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
</manifest>
</recursive-jar>
</target>
<target name="jar-complete" depends="compile">
<mkdir dir="${dist.hdf5.lib}" />
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<copy todir="${native}">
<fileset dir="${nativesrc}">
<include name="**/libjhdf5.so" />
<include name="**/libjhdf5.jnilib" />
<include name="**/jhdf5.dll" />
</fileset>
</copy>
<recursive-jar destfile="${jar.batteries-included.file}">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
<include name="**/*.class" />
</fileset>
<fileset dir="${nativeroot}">
<include name="native/**/*.so" />
<exclude name="native/**/*-SunOS/*.so" />
<include name="native/**/*.jnilib" />
<include name="native/**/*.dll" />
</fileset>
<zipfileset src="${lib}/sis-base/sis-base.jar">
<exclude name="${build.info.filename}" />
<exclude name="native/**/*-SunOS/*.so" />
</zipfileset>
<zipfileset src="${lib}/cisd-args4j/cisd-args4j.jar">
<exclude name="${build.info.filename}" />
<exclude name="**/AbstractBuildAndEnvironmentInfo.class" />
</zipfileset>
<zipfileset src="${lib}/commons-lang/commons-lang.jar">
<exclude name="META-INF/LICENSE.txt" />
<exclude name="META-INF/NOTICE.txt" />
</zipfileset>
<zipfileset src="${lib}/commons-io/commons-io.jar">
<exclude name="META-INF/LICENSE.txt" />
<exclude name="META-INF/NOTICE.txt" />
</zipfileset>
<manifest>
<attribute name="Main-Class" value="ch.systemsx.cisd.hdf5.h5ar.HDF5ArchiverMain" />
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
</manifest>
</recursive-jar>
<recursive-jar destfile="${jar.file}">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
<include name="**/*.class" />
</fileset>
<zipfileset src="${lib}/sis-base/sis-base.jar">
<exclude name="${build.info.filename}" />
<exclude name="native/**" />
</zipfileset>
<zipfileset src="${lib}/cisd-args4j/cisd-args4j.jar">
<exclude name="${build.info.filename}" />
<exclude name="**/AbstractBuildAndEnvironmentInfo.class" />
</zipfileset>
<zipfileset src="${lib}/commons-lang/commons-lang.jar">
<exclude name="META-INF/LICENSE.txt" />
<exclude name="META-INF/NOTICE.txt" />
</zipfileset>
<zipfileset src="${lib}/commons-io/commons-io.jar">
<exclude name="META-INF/LICENSE.txt" />
<exclude name="META-INF/NOTICE.txt" />
</zipfileset>
<manifest>
<attribute name="Main-Class" value="ch.systemsx.cisd.hdf5.h5ar.HDF5ArchiverMain" />
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
<attribute name="Class-Path"
value="hdf5-linux-intel.jar hdf5-macosx-intel.jar hdf5-windows-intel.jar" />
</manifest>
</recursive-jar>
</target>
<target name="examples-src-zip">
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<recursive-jar destfile="${examples.src.zip.file}">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
</fileset>
<fileset dir="${sources.examples}">
<include name="**/*.java" />
</fileset>
<manifest>
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
</manifest>
</recursive-jar>
</target>
<target name="src-zip">
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<recursive-jar destfile="${src.zip.file}">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
</fileset>
<fileset dir="${sources}">
<include name="**/*.java" />
</fileset>
<manifest>
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
</manifest>
</recursive-jar>
</target>
<target name="jar-core" depends="compile">
<mkdir dir="${dist.hdf5.lib}" />
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<jar destfile="${jar.core.file}">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
<include name="**/*.class" />
<exclude name="**/io/*.class" />
<exclude name="**/h5ar/*.class" />
</fileset>
<zipfileset src="${lib}/sis-base/sis-base.jar">
<include name="ch/systemsx/cisd/base/utilities/AbstractBuildAndEnvironmentInfo.class" />
</zipfileset>
<manifest>
<attribute name="Main-Class" value="ch.systemsx.cisd.hdf5.BuildAndEnvironmentInfo" />
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
</manifest>
</jar>
</target>
<target name="jar-tools" depends="compile">
<mkdir dir="${dist.hdf5.lib}" />
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<jar destfile="${jar.tools.file}">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
<include name="**/io/*.class" />
<include name="**/h5ar/*.class" />
<include name="ch/systems/cisd/hdf5/BuildAndEnvironmentInfo*.class" />
</fileset>
<zipfileset src="${lib}/sis-base/sis-base.jar">
<include name="ch/systemsx/cisd/base/utilities/AbstractBuildAndEnvironmentInfo.class" />
</zipfileset>
<manifest>
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
<attribute name="Main-Class" value="ch.systemsx.cisd.hdf5.h5ar.HDF5ArchiverMain" />
<attribute name="Class-Path"
value="commons-lang.jar commons-io.jar sis-base.jar cisd-args4j.jar sis-jhdf5-core.jar hdf5-linux-intel.jar hdf5-macosx-intel.jar hdf5-windows-intel.jar" />
</manifest>
</jar>
</target>
<target name="jar-all"
depends="jar-complete, src-zip, examples-src-zip, jar-core, jar-tools, jar-platforms" />
<target name="jar-platforms"
depends="jar-linux-intel, jar-macosx-intel, jar-windows-intel" />
<target name="jar-linux-intel" depends="compile">
<delete dir="${native}" />
<mkdir dir="${native}" />
<mkdir dir="${dist.hdf5.lib}" />
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<copy todir="${native}">
<fileset dir="${nativesrc}">
<include name="jhdf5/i386-Linux/libjhdf5.so" />
<include name="jhdf5/amd64-Linux/libjhdf5.so" />
<include name="jhdf5/arm-Linux/libjhdf5.so" />
</fileset>
</copy>
<jar destfile="${dist}/hdf5-linux-intel.jar">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
</fileset>
<fileset dir="${nativeroot}">
<include name="native/**/*.so" />
</fileset>
<zipfileset src="${lib}/sis-base/sis-base.jar">
<include name="ch/systemsx/cisd/base/utilities/BuildAndEnvironmentInfo.class" />
</zipfileset>
<manifest>
<attribute name="Main-Class"
value="ch.systemsx.cisd.base.utilities.BuildAndEnvironmentInfo" />
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
</manifest>
</jar>
</target>
<target name="jar-macosx-intel" depends="compile">
<delete dir="${native}" />
<mkdir dir="${native}" />
<mkdir dir="${dist.hdf5.lib}" />
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<copy todir="${native}">
<fileset dir="${nativesrc}">
<include name="jhdf5/i386-Mac OS X/libjhdf5.jnilib" />
<include name="jhdf5/x86_64-Mac OS X/libjhdf5.jnilib" />
</fileset>
</copy>
<jar destfile="${dist}/hdf5-macosx-intel.jar">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
</fileset>
<fileset dir="${nativeroot}">
<include name="native/**/*.jnilib" />
</fileset>
<zipfileset src="${lib}/sis-base/sis-base.jar">
<include name="ch/systemsx/cisd/base/utilities/BuildAndEnvironmentInfo.class" />
</zipfileset>
<manifest>
<attribute name="Main-Class"
value="ch.systemsx.cisd.base.utilities.BuildAndEnvironmentInfo" />
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
</manifest>
</jar>
</target>
<target name="jar-windows-intel" depends="compile">
<delete dir="${native}" />
<mkdir dir="${native}" />
<mkdir dir="${dist.hdf5.lib}" />
<build-info revision="revision.number" version="version.number" clean="clean.flag" />
<echo file="${build.info.file}">${version.number}:${revision.number}:${clean.flag}</echo>
<copy todir="${native}">
<fileset dir="${nativesrc}">
<include name="jhdf5/x86-Windows/jhdf5.dll" />
<include name="jhdf5/amd64-Windows/jhdf5.dll" />
</fileset>
</copy>
<jar destfile="${dist}/hdf5-windows-intel.jar">
<fileset dir="${classes}">
<include name="${build.info.filename}" />
</fileset>
<fileset dir="${nativeroot}">
<include name="native/**/*.dll" />
</fileset>
<zipfileset src="${lib}/sis-base/sis-base.jar">
<include name="ch/systemsx/cisd/base/utilities/BuildAndEnvironmentInfo.class" />
</zipfileset>
<manifest>
<attribute name="Main-Class"
value="ch.systemsx.cisd.base.utilities.BuildAndEnvironmentInfo" />
<attribute name="Version" value="${version.number}" />
<attribute name="Build-Number"
value="${version.number} (r${revision.number},${clean.flag})" />
</manifest>
</jar>
</target>
<target name="doc">
<delete dir="${targets}/doc" />
<delete dir="${targets}/source-base" />
<unzip src="../libraries/sis-base/sis-base-src.zip" dest="${targets}/source-base" />
<javadoc classpath="../base/targets/classes:../libraries/sis-base/sis-base.jar:../libraries/commons-lang/commons-lang.jar:../libraries/commons-io/commons-io.jar:../libraries/restrictionchecker/restrictions.jar:../libraries/cisd-args4j/cisd-args4j.jar"
destdir="targets/doc"
doctitle="JHDF5 14.12"
author="false"
overview="overview.html"
access="public">
<fileset dir="source/java" defaultexcludes="yes">
<include name="ch/systemsx/cisd/hdf5/**/*.java" />
<include name="ncsa/hdf/hdf5lib/exceptions/**/*.java" />
<exclude name="ch/systemsx/cisd/hdf5/hdf5lib/**/*.java" />
<exclude name="ch/systemsx/cisd/hdf5/cleanup/**/*.java" />
<exclude name="ch/systemsx/cisd/hdf5/MatrixUtils.java" />
<exclude name="ch/systemsx/cisd/hdf5/StringUtils.java" />
<exclude name="ch/systemsx/cisd/hdf5/ReflectionUtils.java" />
<exclude name="ch/systemsx/cisd/hdf5/BitSetConversionUtils.java" />
</fileset>
<fileset dir="${targets}/source-base" defaultexcludes="yes">
<include name="ch/systemsx/cisd/base/mdarray/**/*.java" />
</fileset>
</javadoc>
<copy todir="${targets}/doc">
<fileset dir="${sources.examples}" />
</copy>
<copy file="${original.dist}/doc/JHDF5.pdf" todir="${targets}/doc" />
</target>
<target name="dist" depends="clean, jar-all, doc">
<zip destfile="${javadoc.zip.file}" basedir="${targets}" includes="doc/**" />
<delete dir="${dist}/${mainfolder}" />
<copy file="${lib}/cisd-args4j/cisd-args4j.jar" todir="${dist}/${distfolder}/lib" />
<copy file="${lib}/sis-base/sis-base.jar" todir="${dist}/${distfolder}/lib" />
<copy file="${lib}/commons-lang/commons-lang.jar" todir="${dist}/${distfolder}/lib" />
<copy file="${lib}/commons-io/commons-io.jar" todir="${dist}/${distfolder}/lib" />
<move file="${jar.batteries-included.file}"
todir="${dist}/${distfolder}/lib/batteries_included" />
<move file="${dist}/hdf5-linux-intel.jar" todir="${dist}/${distfolder}/lib/nativejar" />
<move file="${dist}/hdf5-macosx-intel.jar" todir="${dist}/${distfolder}/lib/nativejar" />
<move file="${dist}/hdf5-windows-intel.jar" todir="${dist}/${distfolder}/lib/nativejar" />
<move todir="${dist}/${distfolder}/lib">
<fileset dir="${dist}">
<include name="*.jar" />
</fileset>
</move>
<unzip src="${dist}/${distfolder}/lib/batteries_included/${jar.batteries-included.filename}"
dest="${dist}/${distfolder}/lib">
<patternset>
<include name="native/**" />
</patternset>
</unzip>
<move file="${src.zip.file}" todir="${dist}/${distfolder}/src" />
<move file="${javadoc.zip.file}" todir="${dist}/${distfolder}/doc" />
<move file="${examples.src.zip.file}" todir="${dist}/${distfolder}/doc" />
<copy todir="${dist}/${distfolder}">
<fileset dir="${original.dist}" />
</copy>
<zip destfile="${dist.file}-${version.number}-r${revision.number}.zip">
<zipfileset dir="${dist}/${distfolder}" prefix="${mainfolder}" excludes="**/*.sh" />
<zipfileset dir="${dist}/${distfolder}"
prefix="${mainfolder}"
includes="**/*.sh"
filemode="755" />
</zip>
<delete dir="${dist}/${distfolder}" />
</target>
<!--
// Task for continuous integration server.
-->
<target name="ci"
depends="build-common.ci, check-dependencies"
description="Task for continuous integration server." />
</project>
libsis-jhdf5-java (18.09.0-pre1+dfsg-1) UNRELEASED; urgency=medium
libsis-jhdf5-java (18.09.0~pre1+git20180925.eb8733c+dfsg-1) UNRELEASED; urgency=medium
* Pre-release to adapt to HDF5 1.10.3-pre1
* Adapt watch file to upstream Gitlab clone tags
......
......@@ -12,12 +12,16 @@ Build-Depends: debhelper (>= 11~),
ant,
libcommons-lang-java,
libcommons-io-java,
libsis-base-java (>= 18.08.0~),
libecj-java,
libjaxb-java,
libsis-base-java (>= 18.09~pre1),
libhdf5-dev (>> 1.8.13),
libargs4j-java,
libargs4j-java (>= 2.33),
junit4,
testng,
libjmock2-java
libhamcrest-java,
libjmock2-java,
libobjenesis-java
Standards-Version: 4.1.4
Vcs-Browser: https://salsa.debian.org/med-team/libsis-jhdf5-java
Vcs-Git: https://salsa.debian.org/med-team/libsis-jhdf5-java.git
......
Subject: fix templating
Description: fix compilation issue for templating
Author: Tim Booth
Last-Updated: 2015-08-21
Forwarded: no
--- a/source/java/ch/systemsx/cisd/hdf5/HDF5CompoundMemberByteifyerEnumArrayFactory.java
+++ b/source/java/ch/systemsx/cisd/hdf5/HDF5CompoundMemberByteifyerEnumArrayFactory.java
@@ -438,7 +438,7 @@
{ "unchecked", "rawtypes" })
private static Enum<?> getValue(Class<? extends Enum<?>> enumClass, String value)
{
- return Enum.valueOf((Class<Enum>) enumClass, value);
+ return Enum.valueOf((Class) enumClass, value);
}
}
Subject: Use Debian directories to load native libs
Description: There is already a libjhdf5.so on the system. This is an incompatible fork.
Since the .so is tightly bound to the Java library there seems no harm in simply
renaming this one; nothing outside this package should want to link to it.
Also, skip the library loader utility class since it doesn't help us. Note that
on modern java, multiple calls to System.loadLibrary() are idempotent too.
Author: Tim Booth
Last-Updated: 2015-08-21
Forwarded: no
--- a/source/java/ch/systemsx/cisd/hdf5/hdf5lib/H5.java
+++ b/source/java/ch/systemsx/cisd/hdf5/hdf5lib/H5.java
@@ -38,10 +38,7 @@ class H5
{
synchronized (ncsa.hdf.hdf5lib.H5.class)
{
- if (NativeLibraryUtilities.loadNativeLibrary("jhdf5") == false)
- {
- throw new UnsupportedOperationException("No suitable HDF5 native library found for this platform.");
- }
+ System.loadLibrary("sis-jhdf5");
// Important! Exit quietly
try
Subject: remove decorator
Description: decorator class is not in Debian and not useful
Author: Tim Booth
Last-Updated: 2015-08-21
Forwarded: no
--- a/source/java/ch/systemsx/cisd/hdf5/BitSetConversionUtils.java
+++ b/source/java/ch/systemsx/cisd/hdf5/BitSetConversionUtils.java
@@ -23,7 +23,6 @@
import org.apache.commons.lang.SystemUtils;
-import ch.rinn.restrictions.Private;
import ch.systemsx.cisd.base.mdarray.MDLongArray;
/**
@@ -122,7 +121,6 @@
}
}
- @Private
static BitSet fromStorageFormGeneric(final long[] serializedWordArray, int start, int length)
{
final BitSet result = new BitSet();
--- a/source/java/ch/systemsx/cisd/hdf5/HDF5Utils.java
+++ b/source/java/ch/systemsx/cisd/hdf5/HDF5Utils.java
@@ -22,7 +22,6 @@
import ncsa.hdf.hdf5lib.exceptions.HDF5JavaException;
-import ch.rinn.restrictions.Private;
/**
* Some utility methods used by {@link HDF5Reader} and {@link HDF5Writer}.
@@ -43,7 +42,6 @@
static final String TYPE_VARIANT_ATTRIBUTE_NAME = "TYPE_VARIANT";
/** The minimal size of a chunk. */
- @Private
static final int MIN_CHUNK_SIZE = 1;
/** The minimal size of a data set in order to allow for chunking. */
--- a/sourceTest/java/ch/systemsx/cisd/hdf5/BitSetConversionTest.java
+++ b/sourceTest/java/ch/systemsx/cisd/hdf5/BitSetConversionTest.java
@@ -25,7 +25,6 @@
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
-import ch.rinn.restrictions.Friend;
import ch.systemsx.cisd.base.mdarray.MDLongArray;
/**
@@ -33,7 +32,6 @@
*
* @author Bernd Rinn
*/
-@Friend(toClasses = BitSetConversionUtils.class)
public class BitSetConversionTest
{
private BitSet create(final Integer... indices)
--- a/sourceTest/java/ch/systemsx/cisd/hdf5/h5ar/HDF5ArchiverTest.java
+++ b/sourceTest/java/ch/systemsx/cisd/hdf5/h5ar/HDF5ArchiverTest.java
@@ -38,7 +38,6 @@
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
-import ch.rinn.restrictions.Friend;
import ch.systemsx.cisd.base.unix.FileLinkType;
import ch.systemsx.cisd.base.unix.Unix;
import ch.systemsx.cisd.base.unix.Unix.Stat;
@@ -51,8 +50,6 @@
*
* @author Bernd Rinn
*/
-@Friend(toClasses =
- { HDF5Archiver.class, IdCache.class, LinkRecord.class })
public class HDF5ArchiverTest
{
private static final File rootDirectory = new File("targets", "unit-test-wd");
# fix_dodgy_cast.patch
# remove_ch_rinn_imports.patch
# load_native_debian.patch
use_debian_packaged_libs.patch
use_jaxb.patch
--- a/.classpath
+++ b/.classpath
@@ -4,18 +4,18 @@
<classpathentry kind="src" path="sourceExamples/java"/>
<classpathentry kind="src" path="sourceTest/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
- <classpathentry kind="lib" path="libs"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="lib" path="libs/test/hamcrest-core.jar"/>
- <classpathentry kind="lib" path="libs/test/hamcrest-integration.jar"/>
- <classpathentry kind="lib" path="libs/test/hamcrest-library.jar"/>
- <classpathentry kind="lib" path="libs/test/jmock.jar"/>
- <classpathentry kind="lib" path="libs/test/objenesis-1.0.jar"/>
- <classpathentry kind="lib" path="libs/test/testng-jdk15.jar"/>
- <classpathentry kind="lib" path="libs/build/ecj-4.6.1.jar"/>
- <classpathentry kind="lib" path="libs/prod/commons-lang3-3.7.jar" sourcepath="libs/prod/commons-lang3-3.7-sources.jar"/>
- <classpathentry kind="lib" path="libs/prod/commons-io-2.6.jar" sourcepath="libs/prod/commons-io-2.6-sources.jar"/>
- <classpathentry kind="lib" path="libs/prod/sis-base-18.09-pre1.jar" sourcepath="libs/prod/sis-base-18.09-pre1-sources.jar"/>
- <classpathentry kind="lib" path="libs/prod/args4j-2.33.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/hamcrest-core.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/hamcrest-integration.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/hamcrest-library.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/jmock2.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/objenesis.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/testng.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/ecj.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/commons-lang3.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/commons-io.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/sis-base.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/args4j.jar"/>
+ <classpathentry kind="lib" path="/usr/share/java/jaxb-core.jar"/>
<classpathentry kind="output" path="targets/classes"/>
</classpath>
--- a/build.gradle
+++ b/build.gradle
@@ -3,8 +3,8 @@ apply from: 'javaproject.gradle'
group='sis'
dependencies {
- compile fileTree(dir: 'libs/prod', include: '*.jar')
- testCompile fileTree(dir: 'libs/test', include: '*.jar')
+ compile fileTree(dir: '/usr/share/java', include: '*.jar')
+ testCompile fileTree(dir: '/usr/share/java', include: '*.jar')
}
tasks.withType(Test) {
--- a/javaproject.gradle
+++ b/javaproject.gradle
@@ -180,7 +180,7 @@ test {
}
dependencies {
- ecj files('../jhdf5/libs/build/ecj-4.6.1.jar')
+ ecj files('/usr/share/java/ecj.jar')
}
compileJava {
Author: Emmanuel Bourg <ebourg@apache.org>
Date: Wed, 19 Sep 2018 23:29:20 +0200
Origin: https://lists.debian.org/debian-java/2018/09/msg00061.html
Description: It isn't missing, it's hidden by default to prepare its removal in the
next Java release.
.
> I guess this is what I need once Java 11 will be the default - but I
> have no idea why the build stumbles upon this. :-(
.
Java 11 will soon be the default (maybe next week for the GA release?),
so I recommend aiming for a long term solution.
--- a/source/java/ch/systemsx/cisd/hdf5/hdf5lib/HDFHelper.java
+++ b/source/java/ch/systemsx/cisd/hdf5/hdf5lib/HDFHelper.java
@@ -32,7 +32,7 @@ import static hdf.hdf5lib.HDF5Constants.
import static hdf.hdf5lib.HDF5Constants.H5_INDEX_NAME;
import static hdf.hdf5lib.HDF5Constants.H5_ITER_INC;
-import com.sun.xml.internal.bind.v2.runtime.Name;
+import com.sun.xml.bind.v2.runtime.Name;
import hdf.hdf5lib.H5;
import hdf.hdf5lib.HDF5Constants;
......@@ -16,9 +16,9 @@ TESTIGNORE = sourceTest/java/ch/systemsx/cisd/hdf5/HDF5RoundtripTest.java \
sourceTest/java/ch/systemsx/cisd/hdf5/io/HDF5DataSetRandomAccessFileTest.java
%:
dh $@ --with javahelper # --buildsystem=gradle
dh $@ --with javahelper --buildsystem=gradle
override_dh_auto_clean:
_override_dh_auto_clean:
rm -rf build *.jar
rm -rf source/c/*.log
rm -rf source/c/*.so
......@@ -30,7 +30,7 @@ override_dh_auto_clean:
#Things that we'd probably exclude from the orig.tar.gz anyway
rm -rf jsrc lib ./sourceTest/java/jni
override_dh_auto_build:
_override_dh_auto_build:
# C build
cd source/c && \
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -shared -fPIC -Wl,--exclude-libs,ALL \
......@@ -38,7 +38,7 @@ override_dh_auto_build:
*.c jni/*.c -o libsis-jhdf5.so -lz -lhdf5_serial
jh_build sis-jhdf5.jar src
override_dh_auto_test:
_override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
# FIXME
# Due to bug #842815 several tests are failing
......@@ -70,7 +70,7 @@ ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
rmdir debian/tmptestignore
endif
override_dh_install:
_override_dh_install:
dh_install
mkdir -p debian/libsis-jhdf5-java/usr/bin
cp -a dist/bin/h5ar.sh debian/libsis-jhdf5-java/usr/bin
version=4
opts="repacksuffix=+dfsg,dversionmangle=s/\+dfsg//g,repack,compression=xz" \
https://sissource.ethz.ch/sispub/jhdf5/tags .*/archive/.+/jhdf5-(\d[-\d.pre]+)@ARCHIVE_EXT@
#opts="uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/,repacksuffix=+dfsg,dversionmangle=s/\+dfsg//g,repack,compression=xz" \
# https://sissource.ethz.ch/sispub/jhdf5/tags .*/archive/.+/jhdf5-(\d[-\d.pre]+)@ARCHIVE_EXT@
#opts="mode=git,pretty=18.08~pre+git%cd.%h,repacksuffix=+dfsg,dversionmangle=s/\+dfsg//g,repack,compression=xz" \
# https://sissource.ethz.ch/sispub/jhdf5.git HEAD
opts="mode=git,pretty=18.09.0~pre1+git%cd.%h,uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/,repacksuffix=+dfsg,dversionmangle=s/\+dfsg//g,repack,compression=xz" \
https://sissource.ethz.ch/sispub/jhdf5.git HEAD
......@@ -42,13 +42,16 @@ Source Code:
The source code of the Apache "Commons Lang3" library.
Libraries:
lib/sis-jhdf5.jar:
The Java class files of the JHDF5 library, the h5ar archiver and the hdf5 native libraries.
Requires commons-io-2.6.jar, commons-lang3-3.7.jar, sis-base-18.08.0.jar and cisd-args4j-9.11.2
(only needed for h5ar archiver) on the class path.
lib/sis-base-18.08.0.jar
The Java class files of the SIS base library. Requires commons-io-2.6.jar, commons-lang3-3.7.jar
lib/sis-jhdf5-<VERSION>.jar:
The Java class files of the JHDF5 library and the hdf5 native libraries.
Requires commons-io-2.6.jar, commons-lang3-3.7.jar and sis-base-18.08.0.jar on the class path.
lib/sis-jhdf5-h5ar-cli-<VERSION>.jar:
The Java class files of the h5ar archiver command line interface application.
Requires sis-jhdf5-<VERSION> and all its dependencies, as well as cisd-args4j-9.11.2
on the class path.
lib/sis-base-18.08.0.jar
The Java class files of the SIS base library. Requires commons-io-2.6.jar and
commons-lang3-3.7.jar on the class path.
lib/cisd-args4j-9.11.2.jar
The Java class files of the CISD args4j library.
lib/commons-lang3-3.7.jar
......
......@@ -20,4 +20,4 @@ done
BINDIR="${SCRIPT%/*}"
JHDFDIR="${BINDIR%/*}"
VERSION=`cat "${JHDFDIR}/version.txt"`
java -Dnative.libpath="${JHDFDIR}/lib/native" -jar "${JHDFDIR}/lib/sis-jhdf5-${VERSION}.jar" "$@"
java -Dnative.libpath="${JHDFDIR}/lib/native" -jar "${JHDFDIR}/lib/sis-jhdf5-h5ar-cli-${VERSION}.jar" "$@"
@echo off
set /p version=<%~dp0..\version.txt
java -Dnative.libpath=%~dp0..\lib\native -jar %~dp0..\lib\sis-jhdf5-%version%.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
java -Dnative.libpath=%~dp0..\lib\native -jar %~dp0..\lib\sis-jhdf5-h5ar-cli-%version%.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
......@@ -180,7 +180,7 @@ test {
}
dependencies {
ecj files('libs/build/ecj-4.6.1.jar')
ecj files('../jhdf5/libs/build/ecj-4.6.1.jar')
}
compileJava {
......@@ -281,6 +281,23 @@ task checkDependencies(dependsOn: classes) << {
}
}
task checkRestrictions(type: Exec, dependsOn: [classes, testClasses]) {
doFirst {
def cp = configurations.testCompile.filter({ f -> f.name.startsWith('restrictionchecker') || f.name.startsWith('bcel')}).asPath
def cmd = ['java', '-cp', cp, 'ch.rinn.restrictions.RestrictionChecker', '-r', sourceSets.main.output.classesDir]
if (sourceSets.test.output.classesDir.exists()) {
cmd.add(sourceSets.test.output.classesDir)
}
cmd.add('-cp')
cmd.add(sourceSets.main.output.classesDir)
if (sourceSets.test.output.classesDir.exists()) {
cmd.add(sourceSets.test.output.classesDir)
}
cmd.add(configurations.testCompile.asPath)
commandLine cmd
}
}
apply plugin: 'ivy-publish'
if (hasProperty('ivyRepository') == false || ''.equals(project.ivyRepository))
{
......
1. Install OpenJDK 1.8:
# yum install java-1.8.0-openjdk-headless.x86_64 java-1.8.0-openjdk-devel.x86_64
2. Install devtoolset-7 from Scientific Linux:
# yum install centos-release-scl
# yum install devtoolset-7
4. As build-user, enable devtoolset-7
$ scl enable devtoolset-7 bash
5. Build HDF5:
$ ./compile_hdf5_linux_amd64.sh
6. Build JHDF5:
$ ./compile_linux_amd64.sh
7. If the build runs successful, you will find the file build/libjhdf5.so
8. Copy build/libjhdf5.so to the Linux workspace folder libs/native/jhdf5/amd64-Linux/libjhdf5.so
--- CMake-hdf5-1.10.3-pre2/hdf5-1.10.3-pre2/java/src/jni/CMakeLists.txt.orig 2018-07-29 14:25:43.000000000 +0200
+++ CMake-hdf5-1.10.3-pre2/hdf5-1.10.3-pre2/java/src/jni/CMakeLists.txt 2018-08-14 17:47:57.250369809 +0200
diff -ruN CMake-hdf5-1.10.3.orig/hdf5-1.10.3/java/src/jni/CMakeLists.txt CMake-hdf5-1.10.3/hdf5-1.10.3/java/src/jni/CMakeLists.txt
--- CMake-hdf5-1.10.3.orig/hdf5-1.10.3/java/src/jni/CMakeLists.txt 2018-07-29 14:25:43.000000000 +0200
+++ CMake-hdf5-1.10.3/hdf5-1.10.3/java/src/jni/CMakeLists.txt 2018-08-23 12:22:09.608458730 +0200
@@ -21,6 +21,10 @@
${HDF5_JAVA_JNI_SOURCE_DIR}/h5util.c
${HDF5_JAVA_JNI_SOURCE_DIR}/h5zImp.c
......