/** | |
* 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. | |
*/ | |
buildscript { | |
repositories { | |
mavenCentral() | |
} | |
} | |
plugins { | |
id "java" | |
id "org.openapi.generator" version "5.1.0" | |
} | |
description = 'Fineract CN Sekhmet Build Tool' | |
ext['openapiSpecFile'] = "$rootDir/openapi.yml".toString() | |
task validateGoodSpec(type: org.openapitools.generator.gradle.plugin.tasks.ValidateTask){ | |
// outputs.upToDateWhen { false } | |
// outputs.cacheIf { false } | |
inputSpec = "$openapiSpecFile" | |
} | |
// TODO: @vidakovic we should publish this lib to Maven Central; do in separate PR | |
openApiMeta { | |
generatorName = 'Fineract' | |
packageName = 'org.apache.fineract.cn.sekhmet' | |
outputFolder = "$buildDir/meta".toString() | |
} | |
openApiValidate { | |
inputSpec = "$openapiSpecFile" | |
recommend = true | |
} | |
task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){ | |
generatorName = 'java' | |
verbose = false | |
validateSpec = true | |
skipValidateSpec = true | |
inputSpec = "$openapiSpecFile" | |
outputDir = "$buildDir/generated/java".toString() | |
groupId = 'org.apache.fineract.cn' | |
id = 'sekhmet-java-client' | |
apiPackage = 'org.apache.fineract.cn.sekhmet.services' | |
invokerPackage = 'org.apache.fineract.cn.sekhmet' | |
modelPackage = 'org.apache.fineract.cn.sekhmet.models' | |
configOptions = [ | |
dateLibrary: 'java8', | |
// useRxJava2: 'false', | |
// library: 'retrofit2', | |
hideGenerationTimestamp: 'true', | |
] | |
generateModelTests = false | |
generateApiTests = false | |
// finalizedBy = [licenseFormat] | |
} | |
task buildTypescriptAngularSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){ | |
generatorName = 'typescript-angular' | |
verbose = false | |
validateSpec = false | |
skipValidateSpec = true | |
inputSpec = "$openapiSpecFile" | |
outputDir = "$buildDir/generated/typescript".toString() | |
apiPackage = 'org.apache.fineract.cn.sekhmet.services' | |
invokerPackage = 'org.apache.fineract.cn.sekhmet' | |
modelPackage = 'org.apache.fineract.cn.sekhmet.models' | |
configOptions = [ | |
apiModulePrefix: 'sekhmet', | |
configurationPrefix: 'sekhmet', | |
ngVersion: '10.0.0', | |
npmName: 'apache-fineract-cn-sekhmet-client' | |
] | |
// finalizedBy = [licenseFormat] | |
} | |
// TODO: @vidakovic we could provide even more client libs in different languages (Go, Ruby, Swift etc.) | |
// compileJava.dependsOn buildJavaSdk, spotlessJavaApply, buildTypescriptAngularSdk | |
sourceSets { | |
generated { | |
java { | |
srcDir "$buildDir/generated/java/src/main/java" | |
} | |
} | |
} | |
java { | |
// keep this at Java 8, not 11; see https://issues.apache.org/jira/browse/FINERACT-1214 | |
sourceCompatibility = JavaVersion.VERSION_1_8 | |
targetCompatibility = JavaVersion.VERSION_1_8 | |
} | |
compileJava { | |
source += sourceSets.generated.java | |
} | |
tasks.withType(JavaCompile) { | |
// the generated code in build/generated/java/src/main/java/org/apache/fineract/client/auth/OAuthOkHttpClient.java#L71 currently uses deprecated RequestBody.create(MediaType,String) | |
// TODO FINERACT-1247 why does this not work: | |
// options.compilerArgs -= ["-Xlint:deprecation"] | |
// options.compilerArgs += ["-Xlint:-deprecation"] | |
// So we just have to use: | |
options.compilerArgs -= ["-Werror"] | |
} | |
configurations { | |
generatedCompile.extendsFrom implementation | |
generatedRuntime.extendsFrom runtime | |
} | |
test { | |
useJUnitPlatform() | |
} |