Skip to content
Snippets Groups Projects
query-api.gradle 13.3 KiB
Newer Older
  • Learn to ignore specific revisions
  •     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