Skip to content
Snippets Groups Projects
query-api.gradle 10.8 KiB
Newer Older
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'
}