90 lines
2.8 KiB
Groovy
90 lines
2.8 KiB
Groovy
/**
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
description = 'Fineract Client'
|
|
|
|
ext['swaggerFile'] = "$rootDir/fineract-provider/build/classes/java/main/static/swagger-ui/fineract.yaml".toString()
|
|
|
|
apply plugin: 'org.openapi.generator'
|
|
|
|
apply from: 'dependencies.gradle'
|
|
|
|
// TODO: @vidakovic we should publish this lib to Maven Central; do in separate PR
|
|
|
|
openApiMeta {
|
|
generatorName = 'Fineract'
|
|
packageName = 'org.apache.fineract.client'
|
|
outputFolder = "$buildDir/meta".toString()
|
|
}
|
|
|
|
openApiValidate {
|
|
inputSpec = "$swaggerFile"
|
|
recommend = true
|
|
}
|
|
|
|
task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
|
|
generatorName = 'java'
|
|
verbose = false
|
|
validateSpec = false
|
|
skipValidateSpec = true
|
|
inputSpec = "$swaggerFile"
|
|
outputDir = "$buildDir/generated/java".toString()
|
|
groupId = 'org.apache.fineract'
|
|
apiPackage = 'org.apache.fineract.client.services'
|
|
invokerPackage = 'org.apache.fineract.client'
|
|
modelPackage = 'org.apache.fineract.client.models'
|
|
configOptions = [
|
|
dateLibrary: 'java8',
|
|
useRxJava2: 'false',
|
|
library: 'retrofit2',
|
|
hideGenerationTimestamp: 'true',
|
|
]
|
|
generateModelTests = false
|
|
generateApiTests = false
|
|
// trick to make sure fineract.yaml is generated first
|
|
dependsOn = [
|
|
':fineract-provider:compileJava'
|
|
]
|
|
finalizedBy = [licenseFormat]
|
|
}
|
|
|
|
// TODO: @vidakovic we could provide even more client libs in different languages (Go, Ruby, Swift etc.)
|
|
compileJava.dependsOn buildJavaSdk, spotlessJavaApply
|
|
|
|
sourceSets {
|
|
generated {
|
|
java {
|
|
srcDir "$buildDir/generated/java/src/main/java"
|
|
}
|
|
}
|
|
}
|
|
|
|
compileJava {
|
|
source += sourceSets.generated.java
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
// the generated code contains some warnings in build/generated/java/src/main/java/org/apache/fineract/client/auth/OAuthOkHttpClient.java#L71 that won't pass
|
|
options.compilerArgs -= ["-Werror"]
|
|
}
|
|
|
|
configurations {
|
|
generatedCompile.extendsFrom implementation
|
|
generatedRuntime.extendsFrom runtime
|
|
}
|