add license formatting to gradle build tool
diff --git a/APACHE_LICENSETEXT.md b/APACHE_LICENSETEXT.md
new file mode 100644
index 0000000..031ac2a
--- /dev/null
+++ b/APACHE_LICENSETEXT.md
@@ -0,0 +1,16 @@
+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.
diff --git a/build.gradle b/build.gradle
index 9ede829..017dcc5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -26,24 +26,51 @@
plugins {
id "java"
id "org.openapi.generator" version "5.1.0"
+ id 'org.nosphere.apache.rat' version '0.7.0'
+ id "com.github.hierynomus.license" version"0.15.0"
}
-description = 'Fineract CN Sekhmet Build Tool'
+description = 'Fineract Credit Scorecard Build Tool'
ext['openapiSpecFile'] = "$rootDir/openapi.yml".toString()
-task validateGoodSpec(type: org.openapitools.generator.gradle.plugin.tasks.ValidateTask){
- // outputs.upToDateWhen { false }
- // outputs.cacheIf { false }
+license {
+ header rootProject.file("$rootDir/APACHE_LICENSETEXT.md")
+ excludes([
+ "**/gradlew*"
+ ])
+ strictCheck true
+}
+task licenseFormatBuildScripts (type:nl.javadude.gradle.plugins.license.License) {
+ source = fileTree(dir: "$rootDir/", includes: [
+ '**/*.bat',
+ '**/*.sh',
+ '**/*.sql',
+ '**/*.java'
+ ], excludes: [
+ '**/gradlew*'
+ ])
+}
+
+licenseFormat.dependsOn licenseFormatBuildScripts
+
+rat {
+ verbose = false
+ reportDir = file("$buildDir/reports/rat")
+ excludes = [
+ '**/licenses/**',
+ '**/*.md',
+ ]
+}
+
+task validateGoodSpec(type: org.openapitools.generator.gradle.plugin.tasks.ValidateTask){
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'
+ packageName = 'org.apache.fineract.credit.scorecard'
outputFolder = "$buildDir/meta".toString()
}
@@ -52,7 +79,7 @@
recommend = true
}
-task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
+task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) {
generatorName = 'java'
verbose = false
validateSpec = true
@@ -60,42 +87,48 @@
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'
+ id = 'credit-scorecard-java-client'
+ apiPackage = 'org.apache.fineract.credit.scorecard.services'
+ invokerPackage = 'org.apache.fineract.credit.scorecard'
+ modelPackage = 'org.apache.fineract.credit.scorecard.models'
configOptions = [
dateLibrary: 'java8',
- // useRxJava2: 'false',
- // library: 'retrofit2',
hideGenerationTimestamp: 'true',
]
generateModelTests = false
generateApiTests = false
- // finalizedBy = [licenseFormat]
+ finalizedBy = ["copyClients"]
}
-task buildTypescriptAngularSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
+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'
+ apiPackage = 'org.apache.fineract.credit.scorecard.services'
+ invokerPackage = 'org.apache.fineract.credit.scorecard'
+ modelPackage = 'org.apache.fineract.credit.scorecard.models'
configOptions = [
- apiModulePrefix: 'sekhmet',
- configurationPrefix: 'sekhmet',
+ apiModulePrefix: 'scorecard',
+ configurationPrefix: 'scorecard',
ngVersion: '10.0.0',
- npmName: 'apache-fineract-cn-sekhmet-client'
+ npmName: 'apache-fineract-credit-scorecard-client'
]
- // finalizedBy = [licenseFormat]
+ finalizedBy = [licenseFormat]
}
-// TODO: @vidakovic we could provide even more client libs in different languages (Go, Ruby, Swift etc.)
-// compileJava.dependsOn buildJavaSdk, spotlessJavaApply, buildTypescriptAngularSdk
+task copyClients {
+ copy {
+ from 'build/generated'
+ into 'clients'
+ exclude '**/*.sbt', '**/*.bat', '**/*.yml', '**/*.sh', '**/api', '**/.openapi-generator', '**/.openapi-generator-ignore', '**/gradle', '**/gradlew'
+ // filter(ReplaceTokens, tokens: [version: '2.3.1'])
+ }
+
+ finalizedBy = [licenseFormat]
+}
sourceSets {
generated {
@@ -106,7 +139,6 @@
}
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
}
@@ -115,15 +147,6 @@
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