Skip to content
Snippets Groups Projects
query-api.gradle 13.3 KiB
Newer Older
    baseName 'openBIS-query-API'
    includeEmptyDirs false
    from project(':lib-commonbase').compileJava.outputs.getFiles().getAsFileTree().plus(
            project(':lib-common').compileJava.outputs.getFiles().getAsFileTree().plus(
                    project(':lib-openbis-common').compileJava.outputs.getFiles().getAsFileTree().plus(
                            project(':server-application-server').compileJava.outputs.getFiles().getAsFileTree().plus(
                                    project(':api-openbis-java').compileJava.outputs.getFiles().getAsFileTree().plus(
                                            project(':server-original-data-store').compileJava.outputs.getFiles().getAsFileTree()))))).matching {
        include "ch/systemsx/cisd/common/exceptions/**/*.class"
        include "ch/systemsx/cisd/common/spring/HttpInvokerUtils.class"
        include "ch/systemsx/cisd/common/api/**/*.class"
        exclude "ch/systemsx/cisd/common/api/server/**/*.class"
        include "ch/systemsx/cisd/openbis/common/api/**/*.class"
        exclude "ch/systemsx/cisd/openbis/common/api/server/**/*.class"
        include "ch/systemsx/cisd/openbis/generic/shared/api/**/*.class"
        include "ch/systemsx/cisd/openbis/generic/shared/basic/**/*.class"
        include "ch/systemsx/cisd/openbis/plugin/query/**/api/**/*.class"
        exclude "ch/systemsx/cisd/openbis/**/server/api/**/*.class"
        include "ch/systemsx/cisd/openbis/dss/client/api/v1/**/*.class"
        include "ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/**/*.class"
        include "ch/systemsx/cisd/openbis/BuildAndEnvironmentInfo.class"
        include "*.INFO"
    }
    archiveName 'sources-query-api.zip'
    from project(':lib-commonbase').files('source/java').getAsFileTree().plus(
            project(':lib-common').files('source/java').getAsFileTree().plus(
                    project(':lib-openbis-common').files('source/java').getAsFileTree().plus(
                            project(':server-application-server').files('source/java').getAsFileTree().plus(
                                    project(':api-openbis-java').files('source/java').getAsFileTree().plus(
                                            project(':server-original-data-store').files('source/java').getAsFileTree()))))).matching {
        include "ch/systemsx/cisd/common/exceptions/**/*.java"
        include "ch/systemsx/cisd/common/spring/HttpInvokerUtils.java"
        include "ch/systemsx/cisd/common/api/**/*.java"
        exclude "ch/systemsx/cisd/common/api/server/**/*.java"
        include "ch/systemsx/cisd/openbis/common/api/**/*.java"
        exclude "ch/systemsx/cisd/openbis/common/api/server/**/*.java"
        include "ch/systemsx/cisd/openbis/generic/shared/api/**/*.java"
        include "ch/systemsx/cisd/openbis/generic/shared/basic/**/*.java"
        include "ch/systemsx/cisd/openbis/plugin/query/**/api/**/*.java"
        exclude "ch/systemsx/cisd/openbis/**/server/api/**/*.java"
        include "ch/systemsx/cisd/openbis/dss/client/api/v1/**/*.java"
        include "ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/**/*.java"
        include "ch/systemsx/cisd/openbis/BuildAndEnvironmentInfo.java"
    }
configurations.create('queryApiJavadoc')
    queryApiJavadoc project(':server-original-data-store')
    source queryApiSources.inputs.getFiles().getAsFileTree().matching {
        include "**/*.java"
    }
    classpath = configurations.queryApiJavadoc
}

task queryApiJavaDocZip(type: Zip, dependsOn: queryApiJavaDoc) {
    archiveName 'javadoc-query-api.zip'
    from queryApiJavaDoc.destinationDir
}

configurations.create('queryApiDependencies')
dependencies {
    queryApiDependencies 'sis:sis-base:23.06.0',
            'apache:httpclient:4.3.6',
            'apache:httpcore:4.3.3',
            'apache:log4j:1.2.15',
            'springframework:spring-aop:5.0.1.RELEASE',
            'springframework:spring-beans:5.0.1.RELEASE',
            'springframework:spring-context:5.0.1.RELEASE',
            'springframework:spring-core:5.0.1.RELEASE',
            'springframework:spring-web:5.0.1.RELEASE',
            'springframework:spring-webmvc:5.0.1.RELEASE',
            'springframework:spring-expression:5.0.1.RELEASE',
            'apache:commons-logging:1.2',
            'apache:commons-lang3:3.11',
            'marathon:marathon-spring-util:1.2.5',
            'aopalliance:aopalliance:1.0'
}

task queryApiZip(type: Zip, dependsOn: [queryApiJar, queryApiSources, queryApiJavaDocZip]) {
    baseName 'openBIS-query-API'
    from queryApiJar.archivePath
    from queryApiSources.archivePath
    from queryApiJavaDocZip.archivePath
    from configurations.queryApiDependencies
    into 'openBIS-query-API'
/////////// API V3 ////////////////////

    baseName 'openBIS-API-V3'
    includeEmptyDirs false
    from project(':lib-commonbase').compileJava.outputs.getFiles().getAsFileTree().plus(
            project(':lib-common').compileJava.outputs.getFiles().getAsFileTree().plus(
                    project(':lib-openbis-common').compileJava.outputs.getFiles().getAsFileTree().plus(
                            project(':server-application-server').compileJava.outputs.getFiles().getAsFileTree().plus(
                                    project(':api-openbis-java').compileJava.outputs.getFiles().getAsFileTree())))).matching {
        include "ch/systemsx/cisd/common/exceptions/**/*.class"
        include "ch/systemsx/cisd/common/spring/HttpInvokerUtils.class"
        include "ch/systemsx/cisd/common/spring/IRemoteSpringBeanProvider.class"
        include "ch/systemsx/cisd/common/spring/Jetty*.class"
        include "ch/systemsx/cisd/common/http/*.class"
        include "ch/systemsx/cisd/common/api/**/*.class"
        exclude "ch/systemsx/cisd/common/api/server/**/*.class"
        include "ch/systemsx/cisd/common/reflection/*.class"
        include "ch/systemsx/cisd/common/shared/basic/**/*.class"
        include "ch/systemsx/cisd/openbis/common/api/**/*.class"
        exclude "ch/systemsx/cisd/openbis/common/api/server/**/*.class"
        include "ch/ethz/sis/openbis/generic/*.class"
        include "ch/ethz/sis/openbis/generic/asapi/v3/**/*.class"
        include "ch/ethz/sis/openbis/generic/dssapi/v3/**/*.class"
        include "ch/systemsx/cisd/openbis/BuildAndEnvironmentInfo.class"
        include "*.INFO"
    }
configurations.create('apiV3Dependencies')
dependencies {
    apiV3Dependencies 'sis:sis-base:23.06.0',
            'sis:sis-file-transfer:19.03.1',
            'apache:httpclient:4.3.6',
            'apache:commons-lang3:3.11',
            'eclipse:jetty-client:9.4.44.v20210927',
            'springframework:spring-web:5.0.1.RELEASE',
            'marathon:marathon-spring-util:1.2.5'
apply plugin: 'ivy-publish'

def _configurations = configurations

if (!project.hasProperty("publishRevision")) {
}
if (!project.hasProperty("repositoryRoot")) {
    ext.repositoryRoot = "/non-existent"
    publications {
        ivyApiV3(IvyPublication) {
            from components.java
            organisation 'openbis'
            module 'openbis-v3-api'
            revision = project.publishRevision
            descriptor.withXml {

                asNode().remove(asNode().publications)
                asNode().remove(asNode().configurations)

                asNode().info[0].attributes().remove('status')
                asNode().info[0].attributes().remove('publication')

                asNode().remove(asNode().dependencies)
                asNode().appendNode('dependencies')

                _configurations.apiV3Dependencies.resolvedConfiguration.firstLevelModuleDependencies.each {
                    def node = asNode().dependencies[0].appendNode('dependency')
                    node.attributes()['org'] = it.moduleGroup
                    node.attributes()['name'] = it.moduleName
                    node.attributes()['rev'] = it.moduleVersion
                }
            }
    doLast {
        if (publishRevision == "-1") {
            throw new GradleException("No publish revision defined. Run this task like: ./gradlew clean publishApiV3 -PpublishRevision=S277 -PrepositoryRoot=/Users/juanf/git/openbis/ivy-repository")
        }

        if (repositoryRoot == "/non-existent") {
            throw new GradleException("No repository root defined. Run this task like: ./gradlew clean publishApiV3 -PpublishRevision=S277 -PrepositoryRoot=/Users/juanf/git/openbis/ivy-repository")
        }
    }
def publishDir = new File("${repositoryRoot}/openbis/openbis-v3-api/${publishRevision}")
    dependsOn "prepublish", "generateDescriptorFileForIvyApiV3Publication", "apiV3Jar"
    doFirst {
        publishDir.mkdirs()
    }
    from("${buildDir}/publications/ivyApiV3/ivy.xml")
    from(apiV3Jar.archivePath) {
        rename '(.*)', "openbis-v3-api-${publishRevision}.jar"
    }
    into publishDir
task apiV3JarBatteriesIncluded(type: Jar, dependsOn: [apiV3Jar]) {
    duplicatesStrategy 'include'
    baseName 'openBIS-API-V3-batteries-included'
    includeEmptyDirs false
    from(zipTree(apiV3Jar.archivePath)) {
        include '**/*'
    }
    from(configurations.apiV3Dependencies.collect { zipTree(it) }) {
        include '**/*'
    }
    archiveName 'sources-api-v3.zip'
    from project(':lib-commonbase').files('source/java').getAsFileTree().plus(
            project(':lib-common').files('source/java').getAsFileTree().plus(
                    project(':lib-openbis-common').files('source/java').getAsFileTree().plus(
                            project(':server-application-server').files('source/java').getAsFileTree().plus(
                                    project(':api-openbis-java').files('source/java').getAsFileTree())))).matching {
        include "ch/systemsx/cisd/common/exceptions/**/*.java"
        include "ch/systemsx/cisd/common/spring/HttpInvokerUtils.java"
        include "ch/systemsx/cisd/common/spring/IRemoteSpringBeanProvider.java"
        include "ch/systemsx/cisd/common/api/**/*.java"
        exclude "ch/systemsx/cisd/common/api/server/**/*.java"
        include "ch/systemsx/cisd/common/reflection/*.java"
        include "ch/systemsx/cisd/common/shared/basic/**/*.java"
        include "ch/systemsx/cisd/openbis/common/api/**/*.java"
        exclude "ch/systemsx/cisd/openbis/common/api/server/**/*.java"
        include "ch/ethz/sis/openbis/generic/asapi/v3/**/*.java"
        include "ch/ethz/sis/openbis/generic/dssapi/v3/**/*.java"
        include "ch/systemsx/cisd/openbis/BuildAndEnvironmentInfo.java"
    }
}

configurations.create('apiV3Javadoc')
dependencies {
    apiV3Javadoc project(':api-openbis-java')
    source apiV3Sources.inputs.getFiles().getAsFileTree().matching {
        include "**/*.java"
    }
    classpath = configurations.apiV3Javadoc
}

task apiV3JavaDocZip(type: Zip, dependsOn: apiV3JavaDoc) {
    archiveName 'javadoc-api-v3.zip'
    from apiV3JavaDoc.destinationDir
task apiV3Zip(type: Zip, dependsOn: [apiV3JarBatteriesIncluded, apiV3Sources, apiV3JavaDocZip]) {
    from apiV3Jar.archiveFile
    from apiV3JarBatteriesIncluded.archiveFile
    from apiV3Sources.archiveFile
    from apiV3JavaDocZip.archiveFile
    from configurations.apiV3Dependencies
    into 'openBIS-API-V3'

/////////// DROPBOX API V2 ////////////////////

task dropboxApiJar(type: Jar) {
    baseName 'openBIS-API-dropbox'
    includeEmptyDirs false
    from project(':server-original-data-store').compileJava.outputs.getFiles().getAsFileTree().matching {
        include "ch/systemsx/cisd/etlserver/registrator/api/v2/*.class"
        include "ch/systemsx/cisd/etlserver/registrator/api/v2/impl/*.class"
        include "ch/systemsx/cisd/openbis/dss/generic/shared/api/**/*.class"
    }
}

task dropboxApiZip(type: Zip, dependsOn: [dropboxApiJar]) {
    baseName 'openBIS-API-dropbox'
    from dropboxApiJar.archiveFile
    into 'openBIS-API-dropbox'
}
configurations.create('dropboxApiJavadoc')
dependencies {
    dropboxApiJavadoc project(':server-original-data-store')
    source project(':server-original-data-store').files('source/java').getAsFileTree().matching {
        include "ch/systemsx/cisd/etlserver/registrator/api/v2/*.java"
        include "ch/systemsx/cisd/etlserver/registrator/api/v2/impl/*.java"
        include "ch/systemsx/cisd/openbis/dss/generic/shared/api/**/*.class"
    }
    classpath = configurations.dropboxApiJavadoc
}

task dropboxJavaDocZip(type: Zip, dependsOn: dropboxApiJavadoc) {
    archiveName 'javadoc-dropbox-api.zip'
    from dropboxApiJavadoc.destinationDir
}

/////////// DYNAMIC PROPERTIES API ////////////////////

configurations.create('dynamicApiJavadoc')
dependencies {
    dynamicApiJavadoc project(':server-application-server')
    source project(':server-application-server').files('source/java').getAsFileTree().matching {
        include "ch/systemsx/cisd/openbis/generic/shared/hotdeploy_plugins/api/*.java"
    }
    classpath = configurations.dynamicApiJavadoc
}

task dynamicApiJavadocZip(type: Zip, dependsOn: dynamicApiJavadoc) {
    archiveName 'javadoc-dynamic-api.zip'
    from dropboxApiJavadoc.destinationDir