Skip to content
Snippets Groups Projects
query-api.gradle 11.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • task queryApiJar(type: Jar) {
    	baseName 'openBIS-query-API'
    	includeEmptyDirs false
    
    	from project(':commonbase').compileJava.outputs.getFiles().getAsFileTree().plus(
             project(':common').compileJava.outputs.getFiles().getAsFileTree().plus(
    
             project(':openbis-common').compileJava.outputs.getFiles().getAsFileTree().plus( 
             project(':openbis').compileJava.outputs.getFiles().getAsFileTree().plus(
             project(':openbis_api').compileJava.outputs.getFiles().getAsFileTree().plus(
    
             project(':datastore_server').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(':commonbase').files('source/java').getAsFileTree().plus(
    		project(':common').files('source/java').getAsFileTree().plus(
    
    		project(':openbis-common').files('source/java').getAsFileTree().plus(
    		project(':openbis').files('source/java').getAsFileTree().plus(
    		project(':openbis_api').files('source/java').getAsFileTree().plus(
    
    		project(':datastore_server').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(':datastore_server')
    
    }
    
    task queryApiJavaDoc(type: Javadoc) {
    	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:18.09.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 ////////////////////
    
    
    task apiV3Jar(type: Jar) {
      baseName 'openBIS-API-V3'
      includeEmptyDirs false
    
    felmer's avatar
    felmer committed
      from project(':commonbase').compileJava.outputs.getFiles().getAsFileTree().plus(
             project(':common').compileJava.outputs.getFiles().getAsFileTree().plus( 
    
             project(':openbis-common').compileJava.outputs.getFiles().getAsFileTree().plus( 
             project(':openbis').compileJava.outputs.getFiles().getAsFileTree().plus(
    
    felmer's avatar
    felmer committed
             project(':openbis_api').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/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:18.09.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")) {
      ext.publishRevision= "-1"
    }
    if (!project.hasProperty("repositoryRoot")) {
      ext.repositoryRoot="/non-existent"
    }
    
    publishing {
      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
            }
          }
        }
      }  
    }
    
    task prepublish {
      doLast {
          if (publishRevision == "-1") {
    
    anttil's avatar
    anttil committed
            throw new GradleException("No publish revision defined. Run this task like: ./gradlew clean publishApiV3 -PpublishRevision=S277 -PrepositoryRoot=/Users/juanf/git/openbis/ivy-repository")
    
    anttil's avatar
    anttil committed
            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}")
    
    task publishApiV3(type: Sync) {
    
    anttil's avatar
    anttil committed
      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]) {
    
      baseName 'openBIS-API-V3-batteries-included'
      includeEmptyDirs false
      from (zipTree(apiV3Jar.archivePath)) {
        include '**/*'
      }
      from (configurations.apiV3Dependencies.collect {zipTree(it)}) {
        include '**/*'
      }
    }
    
    
    task apiV3Sources(type: Jar) {
      archiveName 'sources-api-v3.zip'
    
    felmer's avatar
    felmer committed
      from project(':commonbase').files('source/java').getAsFileTree().plus(
        project(':common').files('source/java').getAsFileTree().plus(
    
        project(':openbis-common').files('source/java').getAsFileTree().plus(
        project(':openbis').files('source/java').getAsFileTree().plus(
    
        project(':openbis_api').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(':openbis_api')
    }
    
    task apiV3JavaDoc(type: Javadoc) {
      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]) {
    
      baseName 'openBIS-API-V3'
      from apiV3Jar.archivePath
    
      from apiV3JarBatteriesIncluded.archivePath
    
      from apiV3Sources.archivePath
      from apiV3JavaDocZip.archivePath
      from configurations.apiV3Dependencies
      into 'openBIS-API-V3'
    }
    
    
    /////////// DROPBOX API V2 ////////////////////
    
    configurations.create('dropboxApiJavadoc')
    dependencies {
        dropboxApiJavadoc project(':datastore_server')
    }
    
    task dropboxApiJavadoc(type: Javadoc) {
        source project(':datastore_server').files('source/java').getAsFileTree().matching {
            include "ch/systemsx/cisd/etlserver/registrator/api/v2/*.java"
            include "ch/systemsx/cisd/etlserver/registrator/api/v2/impl/*.java"
        }
        classpath = configurations.dropboxApiJavadoc
    }
    
    task dropboxJavaDocZip(type: Zip, dependsOn: dropboxApiJavadoc) {
        archiveName 'javadoc-dropbox-api.zip'
        from dropboxApiJavadoc.destinationDir
    }