-
felmer authored
SSDM-561: 'apply from' remote (http://svncisd.ethz.ch/repos/cisd/gradle/trunk/javaproject.gradle) replaced by local (../gradle/javaproject.gradle) SVN: 31889
felmer authoredSSDM-561: 'apply from' remote (http://svncisd.ethz.ch/repos/cisd/gradle/trunk/javaproject.gradle) replaced by local (../gradle/javaproject.gradle) SVN: 31889
build.gradle 12.70 KiB
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')
apply from: '../gradle/javaproject.gradle'
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'
archivesBaseName = 'openBIS-server-standard-technologies'
configurations.create('gwt')
configurations.create('zipping')
configurations.create('datastore_server')
configurations.create('javadoc_sources')
configurations.create('javadoc_compilation')
def jettyVersion = '8.1.8'
dependencies {
compile project(':screening'),
project(':rtd_phosphonetx')
providedCompile 'google:gwt-user:2.4'
providedRuntime "eclipse:jetty-util:${jettyVersion}.v20121106",
"eclipse:jetty-deploy:${jettyVersion}.v20121106"
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'),
'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:':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'),
'cisd:cisd-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) {
buildDir = "${project.buildDir}/gwt"
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 {
[
sourceSets.main.java.srcDirs,
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,
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'
}
classpathEntries = files(
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'
)
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/jetty.xml'),
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'),
file('dist/server/service.properties'),
file('dist/server/web-client.properties')
)
task checkFilesExist {
inputs.files files(classpathEntries, zipEntries)
doLast {
classpathEntries.each {
x -> assert x.exists()
}
zipEntries.each {
x -> assert x.exists()
}
}
}
war.dependsOn compileGwt
war.dependsOn checkFilesExist
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
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")
}
from('dist/server'){
into("WEB-INF/classes")
include "etc/log.xml"
}
from('targets/dist'){
into("WEB-INF/classes")
include 'BUILD*INFO'
rename 'BUILD.*INFO', 'BUILD-openbis.INFO'
}
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'
}
from('../rtd_phosphonetx/source/sql'){
into("WEB-INF/classes")
include "proteomics/**/*.sql"
}
}
task zipCorePlugins(type: Zip) {
archiveName 'core-plugins.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'])
from 'dist/server/core-plugins.properties'
into 'core-plugins'
}
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()
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
from zipCorePlugins.archivePath
from zipAdminConsole.archivePath
rename 'jetty-distribution(.*).zip', 'jetty.zip'
rename 'openBIS(.*).war', 'openBIS.war'
}
zip.dependsOn war
zip.dependsOn zipCorePlugins
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'
}
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 (file('dist/server/service.properties')) {
into 'datastore_server/server'
}
from (file('dist/server/etc/log.xml')) {
into 'datastore_server/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'
}
}
task clientsAndApis(type: Zip, dependsOn: [dssClientZip, queryApiZip, proteomicsApiZip, screeningApiZip]) {
baseName 'openBIS-clients-and-APIs'
from dssClientZip.archivePath
from queryApiZip.archivePath
from proteomicsApiZip.archivePath
from screeningApiZip.archivePath
from ('../openbis_all/dist/readme.txt')
}
task generateJavadoc(type: Javadoc) {
source = configurations.javadoc_sources.collect { zipTree(it).matching {
include "**/ch/systemsx/cisd/**/api/**/*.java"
include "**/ch/systemsx/cisd/base/**/*.java"
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"
options.addStringOption("source", "1.6")
}
build.dependsOn zip
build.dependsOn zipDss
build.dependsOn clientsAndApis
build.dependsOn dssUploadGuiStandaloneZip
build.dependsOn dssUploadGuiStandaloneJar
build.dependsOn generateJavadoc