Newer
Older
evaluationDependsOn(':commonbase')
evaluationDependsOn(':common')
evaluationDependsOn(':openbis_api')
evaluationDependsOn(':openbis-common')
evaluationDependsOn(':authentication')
evaluationDependsOn(':dbmigration')
evaluationDependsOn(':openbis')
evaluationDependsOn(':datastore_server')
evaluationDependsOn(':rtd_phosphonetx')
evaluationDependsOn(':screening')
evaluationDependsOn(':rtd_yeastx')
evaluationDependsOn(':deep_sequencing_unit')
evaluationDependsOn(':plasmid')
apply from: 'query-api.gradle'
apply from: 'screening-api.gradle'
apply from: 'proteomics-api.gradle'
apply from: 'clients.gradle'
apply from: 'admin-console.gradle'
apply plugin: 'war'
anttil
committed
archivesBaseName = 'openBIS-server-standard-technologies'
configurations.create('gwt')
configurations.create('zipping')
configurations.create('datastore_server')
configurations.create('javadoc_sources')
configurations.create('javadoc_compilation')
anttil
committed
dependencies {
compile project(':screening'),
project(':rtd_phosphonetx')
providedCompile 'google:gwt-user:2.4'
providedRuntime "eclipse:jetty-deploy:${jettyVersion}.v20180320@jar",
"eclipse:jetty-xml:${jettyVersion}.v20180320@jar",
"eclipse:jetty-webapp:${jettyVersion}.v20180320@jar",
"eclipse:jetty-servlet:${jettyVersion}.v20180320@jar",
"eclipse:jetty-security:${jettyVersion}.v20180320@jar",
"eclipse:jetty-server:${jettyVersion}.v20180320@jar",
"eclipse:jetty-continuation:${jettyVersion}.v20180320@jar"
gwt 'reveregroup:gwt-image-loader:1.1.4',
'google:gwt-dev:+'
zipping "eclipse:jetty-distribution:${jettyVersion}@zip"
datastore_server project(':deep_sequencing_unit'),
project(':rtd_yeastx'),
project(':screening'),
project(':rtd_phosphonetx'),
project(':plasmid'),
'bioformats:bioformats:+',
'imagej:ij:+',
'cisd:cisd-openbis-knime-server:+',
'apache:xml-apis:+',
'javax:jaxb:+',
'slf4j:slf4j:+',
'slf4j:slf4j-log4j12:+',
'sybit:image-viewer:+'
javadoc_sources project(path:':commonbase', configuration: 'archives'),
project(path:':common', configuration: 'archives'),
project(path:':openbis_api', configuration: 'archives'),
project(path:':openbis-common', configuration: 'archives'),
project(path:':openbis', configuration: 'archives'),
project(path:':datastore_server', configuration: 'archives'),
project(path:':rtd_phosphonetx', configuration: 'archives'),
project(path:':screening', configuration: 'archives'),
anttil
committed
'sis:sis-base:+:sources',
'cisd:cisd-args4j:+:sources',
'cisd:cisd-hotdeploy:+:sources'
javadoc_compilation project(path:':rtd_phosphonetx'),
project(path:':screening')
}
buildscript {
apply from: '../gradle/repository.gradle'
repositories repositoryConfig
dependencies {
classpath 'apache:commons-codec:+'
}
task compileGwt (dependsOn: classes, type: JavaExec) {
ext.buildDir = "${project.buildDir}/gwt"
def extraDir = "${project.buildDir}/extra"
inputs.source sourceSets.main.java.srcDirs
inputs.dir sourceSets.main.output.resourcesDir
outputs.dir buildDir
doFirst {
file(buildDir).mkdirs()
}
main = 'com.google.gwt.dev.Compiler'
classpath {
[
anttil
committed
sourceSets.main.java.srcDirs,
anttil
committed
project(":openbis").sourceSets.main.java.srcDirs,
project(":openbis").sourceSets.main.output.resourcesDir,
project(":openbis").sourceSets.main.output.classesDir,
project(":openbis").sourceSets.main.compileClasspath,
project(":common").sourceSets.main.java.srcDirs,
project(":openbis_api").sourceSets.main.java.srcDirs,
anttil
committed
project(":screening").sourceSets.main.java.srcDirs,
project(":screening").sourceSets.main.output.resourcesDir,
project(":rtd_phosphonetx").sourceSets.main.java.srcDirs,
project(":rtd_phosphonetx").sourceSets.main.output.resourcesDir,
configurations.gwt
]
}
args =
[
'ch.systemsx.cisd.openbis.OpenBIS',
'-war', buildDir,
'-logLevel', 'INFO',
'-localWorkers', '2',
'-compileReport',
'-extra', extraDir,
]
maxHeapSize = '1024m'
systemProperty "javax.xml.parsers.SAXParserFactory", "org.apache.xerces.jaxp.SAXParserFactoryImpl"
}
anttil
committed
ext.classpathEntries = files(
anttil
committed
project(':openbis').file('source/java/applicationContext.xml'),
project(':openbis').file('source/java/dbConfigurationContext.xml'),
project(':openbis').file('source/java/ehcache.xml'),
project(':openbis').file('source/java/genericApplicationContext.xml'),
project(':openbis').file('source/java/hibernateContext.xml'),
project(':openbis').file('source/java/schema-for-xslt20.xsd'),
project(':openbis').file('source/java/XMLSchema.xsd'),
project(':screening').file('source/java/screening-applicationContext.xml'),
project(':screening').file('source/java/screening-dssApplicationContext.xml'),
project(':screening').file('source/java/screening-plugin-applicationContext.xml'),
project(':rtd_phosphonetx').file('source/java/proteomics-applicationContext.xml'),
project(':rtd_phosphonetx').file('source/java/proteomics-plugin-applicationContext.xml'),
project(':common').file('source/java/genericCommonContext.xml'),
'source/java/standard-technologies-applicationContext.xml'
)
ext.zipEntries = files(
project(':openbis').file('dist/server/check.sh'),
project(':openbis').file('dist/server/configure.sh'),
project(':openbis').file('dist/server/export-master-data.py'),
project(':openbis').file('dist/server/export-master-data.sh'),
project(':openbis').file('dist/server/install.sh'),
project(':openbis').file('dist/server/openBIS.keystore'),
project(':openbis').file('dist/server/openbis.conf'),
project(':openbis').file('dist/server/passwd.sh'),
project(':openbis').file('dist/server/register-master-data.sh'),
project(':openbis').file('dist/server/setup-env'),
project(':openbis').file('dist/server/shutdown.sh'),
project(':openbis').file('dist/server/startup.sh'),
project(':openbis').file('dist/server/status.sh'),
project(':openbis').file('dist/server/version.sh'),
project(':openbis').file('dist/server/watchdog.sh'),
project(':openbis').fileTree(dir: 'dist/server').matching {
include 'base/**'
},
file('dist/server/service.properties'),
file('dist/server/web-client.properties')
)
task checkFilesExist {
inputs.files files(classpathEntries, zipEntries)
anttil
committed
doLast {
classpathEntries.each {
x -> assert x.exists()
}
zipEntries.each {
x -> assert x.exists()
}
anttil
committed
}
}
war.dependsOn compileGwt
war.dependsOn checkFilesExist
felmer
committed
war.dependsOn signWebStartJars
war {
rootSpec.eachFile { file ->
if (file.name.startsWith('cisd-cifex') || file.name.startsWith('datastore_server')) {
file.exclude()
}
}
from "${compileGwt.buildDir}/ch.systemsx.cisd.openbis.OpenBIS"
from signedJarsFolder
anttil
committed
webXml = file('resource/server/web.xml')
webInf {
from "${compileGwt.buildDir}/WEB-INF",
project(':openbis').file('resource/server/bis-common.xml'),
file('resource/server/spring-servlet.xml'),
project(':common').file('resource/server/web-common.xml')
}
from (classpathEntries) {
into("WEB-INF/classes")
anttil
committed
}
anttil
committed
into("WEB-INF/classes")
include "etc/log.xml"
}
from('targets/dist'){
into("WEB-INF/classes")
include 'BUILD*INFO'
rename 'BUILD.*INFO', 'BUILD-openbis.INFO'
anttil
committed
}
from('../screening/source'){
into("WEB-INF/classes")
include "sql/**/*.sql"
exclude "sql/imaging/postgresql/_ERD"
}
from('../openbis/source'){
into("WEB-INF/classes")
include "sql/**/*.sql"
exclude "sql/generic/_ERD"
duplicatesStrategy 'exclude'
}
anttil
committed
from('../rtd_phosphonetx/source/sql'){
into("WEB-INF/classes")
include "proteomics/**/*.sql"
}
}
def downloadFile(url, filename) {
def file = project(':openbis').file("../openbis_standard_technologies/targets/downloads/$filename")
if (file.exists() == false || System.currentTimeMillis() - file.lastModified() > 3600000) {
file.getParentFile().mkdirs()
ext.executeFunction('curl', [url, '-sLk', '-o', file.getAbsolutePath()])
}
task zipCorePlugins(type: Zip) {
archiveName 'core-plugins.zip'
downloadFile('https://github.com/aarpon/obit_flow_core_technology/archive/master.zip', 'flow.zip')
downloadFile('https://github.com/aarpon/obit_microscopy_core_technology/archive/master.zip', 'microscopy.zip')
felmer
committed
downloadFile('https://github.com/aarpon/obit_shared_core_technology/archive/master.zip', 'shared.zip')
from project(':rtd_phosphonetx').fileTree(dir: 'source/core-plugins', includes:['proteomics/**', 'proteomics-optional/**'], excludes:['**/dss/**', '**/package-to-dist'])
from project(':screening').fileTree(dir: 'source/core-plugins', includes:['screening/**', 'screening-optional/**'], excludes:['**/dss/**', '**/package-to-dist'])
from project(':deep_sequencing_unit').fileTree(dir: 'source/core-plugins', includes:['illumina-ngs/**'], excludes:['**/dss/**', '**/package-to-dist'])
felmer
committed
from 'dist/core-plugins'
felmer
committed
from zipTree('targets/downloads/flow.zip')
from zipTree('targets/downloads/microscopy.zip')
from zipTree('targets/downloads/shared.zip')
from 'dist/server/core-plugins.properties'
into 'core-plugins'
eachFile { FileCopyDetails fcd ->
def rp = fcd.relativePath
if (rp.pathString.contains("obit_")) {
if (rp.pathString.contains("/core-plugins/") && fcd.name.equals("core-plugins.properties") == false) {
fcd.relativePath = new RelativePath(fcd.isDirectory() == false, rp.segments[2..-1] as String[])
} else if (fcd.name.equals("LICENSE")) {
fcd.relativePath = new RelativePath(true, ["core-plugins", rp.pathString.split("_")[1], "LICENSE"] as String[])
} else {
fcd.exclude()
}
}
}
def generateMD5(final file) {
java.security.MessageDigest digest = java.security.MessageDigest.getInstance("MD5")
file.withInputStream(){is->
byte[] buffer = new byte[8192]
int read = 0
while( (read = is.read(buffer)) > 0) {
digest.update(buffer, 0, read);
}
}
byte[] md5sum = digest.digest()
BigInteger bigInt = new BigInteger(1, md5sum)
return bigInt.toString(16)
}
task checksums {
ext.destFile = new File(buildDir, 'configuration.MD5')
ext.inputFiles = war.getSource().filter({file -> file.name.endsWith('xml') || file.name.endsWith('.conf') || file.name.endsWith('.properties')})
inputs.files inputFiles
outputs.file destFile
doLast {
if (destFile.exists()) {
destFile.delete()
}
destFile.createNewFile()
def configFiles = classpathEntries.filter({file -> file.name.endsWith('xml') || file.name.endsWith('.conf') || file.name.endsWith('.properties')})
configFiles.each {file ->
destFile.text += generateMD5(file)+" webapps/openbis/WEB-INF/classes/"+file.name+"\n"
}
configFiles = war.getSource().filter({file -> file.name.endsWith('xml') || file.name.endsWith('.conf') || file.name.endsWith('.properties')}).minus(classpathEntries)
configFiles.each {file ->
destFile.text += generateMD5(file)+" webapps/openbis/WEB-INF/"+file.name+"\n"
}
}
}
checksums.dependsOn war
task createJettyVersionFile {
ext.versionFile = new File(buildDir, 'jetty-version.txt')
outputs.file versionFile
doLast {
versionFile.text = "${jettyVersion}"
}
}
task zip(type: Zip, dependsOn: createJettyVersionFile) {
from createJettyVersionFile
from war
from zipEntries
from checksums
from configurations.zipping
anttil
committed
from zipCorePlugins.archivePath
from zipAdminConsole.archivePath
rename 'jetty-distribution(.*).zip', 'jetty.zip'
rename 'openBIS(.*).war', 'openBIS.war'
}
zip.dependsOn war
zip.dependsOn zipCorePlugins
anttil
committed
zip.dependsOn zipAdminConsole
zip.dependsOn checksums
task zipDss(type: Zip, dependsOn: signWebStartJars) {
baseName 'datastore_server-standard-technologies'
includeEmptyDirs true
from (configurations.datastore_server) {
into 'datastore_server/lib'
exclude '**/antlr*.jar'
exclude '**/fastutil*.jar'
exclude '**/gwt*.jar'
exclude '**/gxt*.jar'
exclude '**/hibernate*.jar'
exclude '**/jmock*.jar'
exclude '**/junit*.jar'
exclude '**/lucene*.jar'
exclude '**/restrictions*.jar'
exclude '**/testng*.jar'
rename 'common-.*jar', 'common.jar'
rename 'commonbase-.*jar', 'commonbase.jar'
}
from (signedJarsFolder) {
into 'datastore_server/lib/dss_upload_gui'
exclude openbisClientJarName
exclude dssCliClientJarName
}
from (project(':datastore_server').fileTree(dir: 'dist', includes: ['**/*'], excludes:['dss_client.sh', 'etc/**'])) {
into 'datastore_server';
}
from (project(':datastore_server').files('dist/etc/datastore_server.conf', 'dist/etc/openBIS.keystore')) {
into 'datastore_server/etc';
}
from (fileTree(dir: 'dist', includes: ['etc/service.properties', 'etc/log.xml'])) {
into 'datastore_server'
}
from (project(':screening').file('dist/etc/tabular-data-graph.properties')) {
into 'datastore_server/etc';
}
from (project(':rtd_phosphonetx').fileTree(dir: 'source/core-plugins', includes:['proteomics/**', 'proteomics-optional/**'], excludes:['**/as/**', '**/package-to-dist']).plus(
project(':screening').fileTree(dir: 'source/core-plugins', includes:['screening/**', 'screening-optional/**'], excludes:['**/as/**', '**/package-to-dist']).plus(
project(':deep_sequencing_unit').fileTree(dir: 'source/core-plugins', includes:['illumina-ngs/**'], excludes:['**/as/**', '**/package-to-dist'])))) {
into 'core-plugins'
}
}
felmer
committed
task clientsAndApis(type: Zip, dependsOn: [dssClientZip, queryApiZip, apiV3Zip, proteomicsApiZip, screeningApiZip]) {
baseName 'openBIS-clients-and-APIs'
downloadFile("https://sissource.ethz.ch/sispub/pybis/repository/master/archive.zip", "pybis.zip")
from "targets/downloads/pybis.zip"
felmer
committed
from dssClientZip.archivePath
from queryApiZip.archivePath
from apiV3Zip.archivePath
from proteomicsApiZip.archivePath
from screeningApiZip.archivePath
from ('../openbis_all/dist/readme.txt')
def contentOfSetUpFile = zipTree('targets/downloads/pybis.zip').getFiles().findAll {it.path.endsWith('PyBis/setup.py') }.iterator().next().text
def pybisVersion = ( contentOfSetUpFile =~ /version.*=.*'(.*)'/)[0][1]
rename 'pybis.zip', "pybis-${pybisVersion}.zip"
anttil
committed
}
task generateJavadoc(type: Javadoc) {
source = configurations.javadoc_sources.collect { zipTree(it).matching {
include "**/ch/ethz/sis/openbis/generic/asapi/**/*.java"
include "**/ch/ethz/sis/openbis/generic/dssapi/**/*.java"
include "**/ch/systemsx/cisd/**/api/**/*.java"
include "**/ch/systemsx/cisd/common/annotation/*.java"
include "**/ch/systemsx/cisd/base/**/*.java"
anttil
committed
include "**/OpenBISScreeningML.java"
include "**/ch/systemsx/cisd/**/etlserver/TopLevelDataSetRegistratorGlobalState.java"
include "**/ch/systemsx/cisd/**/etlserver/registrator/*.java"
include "**/ch/systemsx/cisd/common/mail/*.java"
}}
classpath = configurations.javadoc_compilation
maxMemory = "1024m"
build.dependsOn zip
build.dependsOn zipDss
build.dependsOn clientsAndApis
anttil
committed
build.dependsOn dssUploadGuiStandaloneZip
build.dependsOn dssUploadGuiStandaloneJar
build.dependsOn generateJavadoc