You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ar...@apache.org on 2022/06/15 09:37:54 UTC
[fineract] branch develop updated: Allow headers to be passed for generated fineract client APIs
This is an automated email from the ASF dual-hosted git repository.
arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 78280aab9 Allow headers to be passed for generated fineract client APIs
78280aab9 is described below
commit 78280aab98ee80fdbe3bb5f10cd510e1058870c5
Author: Arnold Galovics <ga...@gmail.com>
AuthorDate: Wed Jun 15 10:57:12 2022 +0200
Allow headers to be passed for generated fineract client APIs
---
fineract-client/build.gradle | 2 +-
.../resources/java/template/build.gradle.mustache | 218 ----------
.../src/main/resources/java/template/pom.mustache | 479 ---------------------
.../src/main/resources/templates/java/api.mustache | 120 ++++++
4 files changed, 121 insertions(+), 698 deletions(-)
diff --git a/fineract-client/build.gradle b/fineract-client/build.gradle
index 2d9b508d9..7af23cee2 100644
--- a/fineract-client/build.gradle
+++ b/fineract-client/build.gradle
@@ -46,7 +46,7 @@ task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateT
skipValidateSpec = true
inputSpec = "file:///$swaggerFile"
outputDir = "$buildDir/generated/java".toString()
- templateDir = "$rootDir/fineract-client/src/main/resources/java/template/"
+ templateDir = "$projectDir/src/main/resources/templates/java"
groupId = 'org.apache.fineract'
apiPackage = 'org.apache.fineract.client.services'
invokerPackage = 'org.apache.fineract.client'
diff --git a/fineract-client/src/main/resources/java/template/build.gradle.mustache b/fineract-client/src/main/resources/java/template/build.gradle.mustache
deleted file mode 100644
index e61973267..000000000
--- a/fineract-client/src/main/resources/java/template/build.gradle.mustache
+++ /dev/null
@@ -1,218 +0,0 @@
-{{!
-/**
- * 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.
- */
-}}
-apply plugin: 'idea'
-apply plugin: 'eclipse'
-
-group = '{{groupId}}'
-version = '{{artifactVersion}}'
-
-buildscript {
-repositories {
-maven { url "https://repo1.maven.org/maven2" }
-jcenter()
-}
-dependencies {
-classpath 'com.android.tools.build:gradle:2.3.+'
-classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
-}
-}
-
-repositories {
-jcenter()
-}
-
-
-if(hasProperty('target') && target == 'android') {
-
-apply plugin: 'com.android.library'
-apply plugin: 'com.github.dcendents.android-maven'
-
-android {
-compileSdkVersion 25
-buildToolsVersion '25.0.2'
-defaultConfig {
-minSdkVersion 14
-targetSdkVersion 25
-}
-compileOptions {
-{{#java8}}
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
-{{/java8}}
-{{^java8}}
- sourceCompatibility JavaVersion.VERSION_1_7
- targetCompatibility JavaVersion.VERSION_1_7
-{{/java8}}
-}
-
-// Rename the aar correctly
-libraryVariants.all { variant ->
-variant.outputs.each { output ->
-def outputFile = output.outputFile
-if (outputFile != null && outputFile.name.endsWith('.aar')) {
-def fileName = "${project.name}-${variant.baseName}-${version}.aar"
-output.outputFile = new File(outputFile.parent, fileName)
-}
-}
-}
-
-dependencies {
-provided 'javax.annotation:jsr250-api:1.0'
-}
-}
-
-afterEvaluate {
-android.libraryVariants.all { variant ->
-def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
-task.description = "Create jar artifact for ${variant.name}"
-task.dependsOn variant.javaCompile
-task.from variant.javaCompile.destinationDir
-task.destinationDir = project.file("${project.buildDir}/outputs/jar")
-task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
-artifacts.add('archives', task);
-}
-}
-
-task sourcesJar(type: Jar) {
-from android.sourceSets.main.java.srcDirs
-classifier = 'sources'
-}
-
-artifacts {
-archives sourcesJar
-}
-
-} else {
-
-apply plugin: 'java'
-apply plugin: 'maven'
-
-{{#java8}}
- sourceCompatibility = JavaVersion.VERSION_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
-{{/java8}}
-{{^java8}}
- sourceCompatibility = JavaVersion.VERSION_1_7
- targetCompatibility = JavaVersion.VERSION_1_7
-{{/java8}}
-
-install {
-repositories.mavenInstaller {
-pom.artifactId = '{{artifactId}}'
-}
-}
-
-task execute(type:JavaExec) {
-main = System.getProperty('mainClass')
-classpath = sourceSets.main.runtimeClasspath
-}
-}
-
-ext {
-oltu_version = "1.0.1"
-retrofit_version = "2.9.0"
-okhttp3_version = "4.9.0"
-{{#usePlayWS}}
- jackson_version = "2.10.5"
- jackson_databind_version = "2.10.5.1"
- {{#openApiNullable}}
- jackson_databind_nullable_version = "0.2.1"
- {{/openApiNullable}}
- {{#play24}}
- play_version = "2.4.11"
- {{/play24}}
- {{#play25}}
- play_version = "2.5.14"
- {{/play25}}
- {{#play26}}
- play_version = "2.6.7"
- {{/play26}}
-{{/usePlayWS}}
-swagger_annotations_version = "1.5.22"
-junit_version = "4.13.1"
-{{#useRxJava}}
- rx_java_version = "1.3.0"
-{{/useRxJava}}
-{{#useRxJava2}}
- rx_java_version = "2.1.1"
-{{/useRxJava2}}
-{{#useRxJava3}}
- rx_java_version = "3.0.4"
-{{/useRxJava3}}
-{{#joda}}
- jodatime_version = "2.9.9"
-{{/joda}}
-{{#threetenbp}}
- threetenbp_version = "1.4.0"
-{{/threetenbp}}
-json_fire_version = "1.8.0"
-}
-
-dependencies {
-implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
-implementation "com.squareup.retrofit2:converter-scalars:$retrofit_version"
-implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
-implementation "com.squareup.okhttp3:logging-interceptor:4.9.0"
-implementation "com.squareup.okhttp3:okhttp:$okhttp3_version"
-{{#useRxJava}}
- implementation "com.squareup.retrofit2:adapter-rxjava:$retrofit_version"
- implementation "io.reactivex:rxjava:$rx_java_version"
-{{/useRxJava}}
-{{#useRxJava2}}
- implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
- implementation "io.reactivex.rxjava2:rxjava:$rx_java_version"
-{{/useRxJava2}}
-{{#useRxJava3}}
- implementation 'com.github.akarnokd:rxjava3-retrofit-adapter:3.0.0'
- implementation "io.reactivex.rxjava3:rxjava:$rx_java_version"
-{{/useRxJava3}}
-implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
-implementation "com.google.code.findbugs:jsr305:3.0.2"
-implementation ("org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:$oltu_version"){
-exclude group:'org.apache.oltu.oauth2' , module: 'org.apache.oltu.oauth2.common'
-}
-implementation "io.gsonfire:gson-fire:$json_fire_version"
-{{#joda}}
- implementation "joda-time:joda-time:$jodatime_version"
-{{/joda}}
-{{#threetenbp}}
- implementation "org.threeten:threetenbp:$threetenbp_version"
-{{/threetenbp}}
-{{#usePlayWS}}
- {{#play26}}
- implementation "com.typesafe.play:play-ahc-ws_2.12:$play_version"
- implementation "javax.validation:validation-api:1.1.0.Final"
- {{/play26}}
- {{^play26}}
- implementation "com.typesafe.play:play-java-ws_2.11:$play_version"
- {{/play26}}
- implementation "com.squareup.retrofit2:converter-jackson:$retrofit_version"
- implementation "com.fasterxml.jackson.core:jackson-core:$jackson_version"
- implementation "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
- implementation "com.fasterxml.jackson.core:jackson-databind:$jackson_databind_version"
- {{#openApiNullable}}
- implementation "org.openapitools:jackson-databind-nullable:$jackson_databind_nullable_version"
- {{/openApiNullable}}
- implementation "com.fasterxml.jackson.datatype:jackson-datatype-{{^java8}}joda{{/java8}}{{#java8}}jsr310{{/java8}}:$jackson_version"
-{{/usePlayWS}}
-implementation 'javax.annotation:javax.annotation-api:1.3.2'
-testImplementation "junit:junit:$junit_version"
-}
\ No newline at end of file
diff --git a/fineract-client/src/main/resources/java/template/pom.mustache b/fineract-client/src/main/resources/java/template/pom.mustache
deleted file mode 100644
index f2aa1939f..000000000
--- a/fineract-client/src/main/resources/java/template/pom.mustache
+++ /dev/null
@@ -1,479 +0,0 @@
-{{!
-/**
- * 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.
- */
-}}
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>{{groupId}}</groupId>
- <artifactId>{{artifactId}}</artifactId>
- <packaging>jar</packaging>
- <name>{{artifactId}}</name>
- <version>{{artifactVersion}}</version>
- <url>{{artifactUrl}}</url>
- <description>{{artifactDescription}}</description>
- <scm>
- <connection>{{scmConnection}}</connection>
- <developerConnection>{{scmDeveloperConnection}}</developerConnection>
- <url>{{scmUrl}}</url>
- </scm>
- {{#parentOverridden}}
- <parent>
- <groupId>{{{parentGroupId}}}</groupId>
- <artifactId>{{{parentArtifactId}}}</artifactId>
- <version>{{{parentVersion}}}</version>
- </parent>
- {{/parentOverridden}}
-
- <licenses>
- <license>
- <name>{{licenseName}}</name>
- <url>{{licenseUrl}}</url>
- <distribution>repo</distribution>
- </license>
- </licenses>
-
- <developers>
- <developer>
- <name>{{developerName}}</name>
- <email>{{developerEmail}}</email>
- <organization>{{developerOrganization}}</organization>
- <organizationUrl>{{developerOrganizationUrl}}</organizationUrl>
- </developer>
- </developers>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
- <version>3.0.0-M1</version>
- <executions>
- <execution>
- <id>enforce-maven</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <requireMavenVersion>
- <version>2.2.0</version>
- </requireMavenVersion>
- </rules>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12</version>
- <configuration>
- <systemProperties>
- <property>
- <name>loggerPath</name>
- <value>conf/log4j.properties</value>
- </property>
- </systemProperties>
- <argLine>-Xms512m -Xmx1500m</argLine>
- <parallel>methods</parallel>
- <forkMode>pertest</forkMode>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>${project.build.directory}/lib</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- attach test jar -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.2</version>
- <executions>
- <execution>
- <goals>
- <goal>jar</goal>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.10</version>
- <executions>
- <execution>
- <id>add_sources</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>src/main/java</source>
- </sources>
- </configuration>
- </execution>
- <execution>
- <id>add_test_sources</id>
- <phase>generate-test-sources</phase>
- <goals>
- <goal>add-test-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>src/test/java</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.6.1</version>
- <configuration>
- {{#java8}}
- <source>1.8</source>
- <target>1.8</target>
- {{/java8}}
- {{^java8}}
- <source>1.7</source>
- <target>1.7</target>
- {{/java8}}
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>3.1.1</version>
- <configuration>
- <doclint>none</doclint>
- {{#java8}}
- <source>1.8</source>
- {{/java8}}
- {{^java8}}
- <source>1.7</source>
- {{/java8}}
- </configuration>
- <executions>
- <execution>
- <id>attach-javadocs</id>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <version>2.2.1</version>
- <executions>
- <execution>
- <id>attach-sources</id>
- <goals>
- <goal>jar-no-fork</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <profiles>
- <profile>
- <id>sign-artifacts</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-gpg-plugin</artifactId>
- <version>1.5</version>
- <executions>
- <execution>
- <id>sign-artifacts</id>
- <phase>verify</phase>
- <goals>
- <goal>sign</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
- <dependencies>
- <dependency>
- <groupId>io.swagger</groupId>
- <artifactId>swagger-annotations</artifactId>
- <version>${swagger-annotations-version}</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
- <dependency>
- <groupId>com.squareup.okhttp3</groupId>
- <artifactId>okhttp</artifactId>
- <version>${okhttp3-version}</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor -->
- <dependency>
- <groupId>com.squareup.okhttp3</groupId>
- <artifactId>logging-interceptor</artifactId>
- <version>3.12.1</version>
- </dependency>
- <!-- @Nullable annotation -->
- <dependency>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- <version>3.0.2</version>
- </dependency>
- <dependency>
- <groupId>com.squareup.retrofit2</groupId>
- <artifactId>converter-gson</artifactId>
- <version>${retrofit-version}</version>
- </dependency>
- <dependency>
- <groupId>com.squareup.retrofit2</groupId>
- <artifactId>retrofit</artifactId>
- <version>${retrofit-version}</version>
- </dependency>
- <dependency>
- <groupId>com.squareup.retrofit2</groupId>
- <artifactId>converter-scalars</artifactId>
- <version>${retrofit-version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.oltu.oauth2</groupId>
- <artifactId>org.apache.oltu.oauth2.client</artifactId>
- <version>${oltu-version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.oltu.oauth2</groupId>
- <artifactId>common</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>io.gsonfire</groupId>
- <artifactId>gson-fire</artifactId>
- <version>${gson-fire-version}</version>
- </dependency>
- {{#joda}}
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- <version>${jodatime-version}</version>
- </dependency>
- {{/joda}}
- {{#threetenbp}}
- <dependency>
- <groupId>org.threeten</groupId>
- <artifactId>threetenbp</artifactId>
- <version>${threetenbp-version}</version>
- </dependency>
- {{/threetenbp}}
- {{#useRxJava}}
- <dependency>
- <groupId>io.reactivex</groupId>
- <artifactId>rxjava</artifactId>
- <version>${rxjava-version}</version>
- </dependency>
- <dependency>
- <groupId>com.squareup.retrofit2</groupId>
- <artifactId>adapter-rxjava</artifactId>
- <version>${retrofit-version}</version>
- </dependency>
- {{/useRxJava}}
- {{#useRxJava2}}
- <dependency>
- <groupId>io.reactivex.rxjava2</groupId>
- <artifactId>rxjava</artifactId>
- <version>${rxjava-version}</version>
- </dependency>
- <dependency>
- <groupId>com.squareup.retrofit2</groupId>
- <artifactId>adapter-rxjava2</artifactId>
- <version>${retrofit-version}</version>
- </dependency>
- {{/useRxJava2}}
- {{#useRxJava3}}
- <dependency>
- <groupId>io.reactivex.rxjava3</groupId>
- <artifactId>rxjava</artifactId>
- <version>${rxjava-version}</version>
- </dependency>
- <dependency>
- <groupId>com.github.akarnokd</groupId>
- <artifactId>rxjava3-retrofit-adapter</artifactId>
- <version>3.0.0</version>
- </dependency>
- {{/useRxJava3}}
- {{#usePlayWS}}
- <!-- JSON processing: jackson -->
- <dependency>
- <groupId>com.squareup.retrofit2</groupId>
- <artifactId>converter-jackson</artifactId>
- <version>${retrofit-version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>${jackson-version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- <version>${jackson-version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>${jackson-version}</version>
- </dependency>
- {{#openApiNullable}}
- <dependency>
- <groupId>org.openapitools</groupId>
- <artifactId>jackson-databind-nullable</artifactId>
- <version>${jackson-databind-nullable-version}</version>
- </dependency>
- {{/openApiNullable}}
- <dependency>
- <groupId>com.fasterxml.jackson.datatype</groupId>
- <artifactId>jackson-datatype-{{^java8}}joda{{/java8}}{{#java8}}jsr310{{/java8}}</artifactId>
- <version>${jackson-version}</version>
- </dependency>
- {{#withXml}}
- <!-- XML processing: Jackson -->
- <dependency>
- <groupId>com.fasterxml.jackson.dataformat</groupId>
- <artifactId>jackson-dataformat-xml</artifactId>
- <version>${jackson-version}</version>
- </dependency>
- {{/withXml}}
- {{#play24}}
- <dependency>
- <groupId>com.typesafe.play</groupId>
- <artifactId>play-java-ws_2.11</artifactId>
- <version>${play-version}</version>
- </dependency>
- {{/play24}}
- {{#play25}}
- <dependency>
- <groupId>com.typesafe.play</groupId>
- <artifactId>play-java-ws_2.11</artifactId>
- <version>${play-version}</version>
- </dependency>
- {{/play25}}
- {{#play26}}
- <dependency>
- <groupId>com.typesafe.play</groupId>
- <artifactId>play-ahc-ws_2.12</artifactId>
- <version>${play-version}</version>
- </dependency>
- <dependency>
- <groupId>javax.validation</groupId>
- <artifactId>validation-api</artifactId>
- <version>1.1.0.Final</version>
- </dependency>
- {{/play26}}
- {{/usePlayWS}}
- {{#parcelableModel}}
- <!-- Needed for Parcelable support-->
- <dependency>
- <groupId>com.google.android</groupId>
- <artifactId>android</artifactId>
- <version>4.1.1.4</version>
- <scope>provided</scope>
- </dependency>
- {{/parcelableModel}}
- <dependency>
- <groupId>javax.annotation</groupId>
- <artifactId>javax.annotation-api</artifactId>
- <version>${javax-annotation-version}</version>
- <scope>provided</scope>
- </dependency>
- <!-- test dependencies -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${junit-version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <java.version>{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}</java.version>
- <maven.compiler.source>${java.version}</maven.compiler.source>
- <maven.compiler.target>${java.version}</maven.compiler.target>
- <gson-fire-version>1.8.3</gson-fire-version>
- <swagger-annotations-version>1.5.22</swagger-annotations-version>
- {{#usePlayWS}}
- <jackson-version>2.12.1</jackson-version>
- {{#play24}}
- <play-version>2.4.11</play-version>
- {{/play24}}
- {{#play25}}
- <play-version>2.5.15</play-version>
- {{/play25}}
- {{#play26}}
- <play-version>2.6.7</play-version>
- {{/play26}}
- {{#openApiNullable}}
- <jackson-databind-nullable-version>0.2.1</jackson-databind-nullable-version>
- {{/openApiNullable}}
- {{/usePlayWS}}
- <retrofit-version>2.9.0</retrofit-version>
- <okhttp3-version>4.9.0</okhttp3-version>
- {{#useRxJava}}
- <rxjava-version>1.3.0</rxjava-version>
- {{/useRxJava}}
- {{#useRxJava2}}
- <rxjava-version>2.1.1</rxjava-version>
- {{/useRxJava2}}
- {{#useRxJava3}}
- <rxjava-version>3.0.4</rxjava-version>
- {{/useRxJava3}}
- {{#joda}}
- <jodatime-version>2.9.9</jodatime-version>
- {{/joda}}
- {{#threetenbp}}
- <threetenbp-version>1.4.0</threetenbp-version>
- {{/threetenbp}}
- <javax-annotation-version>1.3.2</javax-annotation-version>
- <oltu-version>1.0.1</oltu-version>
- <junit-version>4.13.1</junit-version>
- </properties>
-</project>
\ No newline at end of file
diff --git a/fineract-client/src/main/resources/templates/java/api.mustache b/fineract-client/src/main/resources/templates/java/api.mustache
new file mode 100644
index 000000000..65915d89f
--- /dev/null
+++ b/fineract-client/src/main/resources/templates/java/api.mustache
@@ -0,0 +1,120 @@
+package {{package}};
+
+import {{invokerPackage}}.CollectionFormats.*;
+
+{{#useRxJava2}}
+ import io.reactivex.Observable;
+{{/useRxJava2}}
+{{#useRxJava3}}
+ import io.reactivex.rxjava3.core.Observable;
+{{/useRxJava3}}
+{{^returnType}}
+ {{#useRxJava2}}
+ import io.reactivex.Completable;
+ {{/useRxJava2}}
+ {{#useRxJava3}}
+ import io.reactivex.rxjava3.core.Completable;
+ {{/useRxJava3}}
+{{/returnType}}
+{{#doNotUseRx}}
+ import retrofit2.Call;
+{{/doNotUseRx}}
+import retrofit2.http.*;
+
+import okhttp3.RequestBody;
+import okhttp3.ResponseBody;
+import okhttp3.MultipartBody;
+
+{{#imports}}import {{import}};
+{{/imports}}
+
+{{^fullJavaUtil}}
+ import java.util.ArrayList;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+{{/fullJavaUtil}}
+
+{{#operations}}
+ public interface {{classname}} {
+ {{#operation}}
+ /**
+ * {{summary}}
+ * {{notes}}
+ {{#allParams}}
+ * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
+ {{/allParams}}
+ * @return {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{ [...]
+ {{#isDeprecated}}
+ * @deprecated
+ {{/isDeprecated}}
+ {{#externalDocs}}
+ * {{description}}
+ * @see <a href="{{url}}">{{summary}} Documentation</a>
+ {{/externalDocs}}
+ */
+ {{#isDeprecated}}
+ @Deprecated
+ {{/isDeprecated}}
+ {{#formParams}}
+ {{#-first}}
+ {{#isMultipart}}@retrofit2.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit2.http.FormUrlEncoded{{/isMultipart}}
+ {{/-first}}
+ {{/formParams}}
+ {{^formParams}}
+ {{#prioritizedContentTypes}}
+ {{#-first}}
+ @Headers({
+ "Content-Type:{{{mediaType}}}"
+ })
+ {{/-first}}
+ {{/prioritizedContentTypes}}
+ {{/formParams}}
+ @{{httpMethod}}("{{{path}}}")
+ {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call< [...]
+ {{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/bodyParams}}{{>libraries/retrofit2/formParams}}{{^-last}}, {{/-last}}{{#-last}}
+ );{{/-last}}{{/allParams}}
+
+ {{/operation}}
+
+ {{#operation}}
+ /**
+ * {{summary}}
+ * {{notes}}
+ {{#allParams}}
+ * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}
+ {{/allParams}}
+ * @return {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{returnType}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx [...]
+ {{#isDeprecated}}
+ * @deprecated
+ {{/isDeprecated}}
+ {{#externalDocs}}
+ * {{description}}
+ * @see <a href="{{url}}">{{summary}} Documentation</a>
+ {{/externalDocs}}
+ */
+ {{#isDeprecated}}
+ @Deprecated
+ {{/isDeprecated}}
+ {{#formParams}}
+ {{#-first}}
+ {{#isMultipart}}@retrofit2.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit2.http.FormUrlEncoded{{/isMultipart}}
+ {{/-first}}
+ {{/formParams}}
+ {{^formParams}}
+ {{#prioritizedContentTypes}}
+ {{#-first}}
+ @Headers({
+ "Content-Type:{{{mediaType}}}"
+ })
+ {{/-first}}
+ {{/prioritizedContentTypes}}
+ {{/formParams}}
+ @{{httpMethod}}("{{{path}}}")
+ {{^doNotUseRx}}{{#useRxJava2}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava2}}{{#useRxJava3}}{{#returnType}}Observable<{{#isResponseFile}}ResponseBody{{/isResponseFile}}{{^isResponseFile}}{{{returnType}}}{{/isResponseFile}}>{{/returnType}}{{^returnType}}Completable{{/returnType}}{{/useRxJava3}}{{/doNotUseRx}}{{#doNotUseRx}}Call< [...]
+ {{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/bodyParams}}{{>libraries/retrofit2/formParams}}{{^-last}}, {{/-last}}{{#-last}}
+ , @HeaderMap Map<String, String> headers);{{/-last}}{{/allParams}}
+
+ {{/operation}}
+ }
+{{/operations}}
\ No newline at end of file