You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by pt...@apache.org on 2021/11/06 06:21:38 UTC

[fineract] branch develop updated: Mustache template added to modify the generated code (FINERACT-1356)

This is an automated email from the ASF dual-hosted git repository.

ptuomola 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 b89763c  Mustache template added to modify the generated code (FINERACT-1356)
b89763c is described below

commit b89763ce05fe6fec1fbbd97fbb0cd1869d3cce34
Author: danishjamal104 <da...@gmail.com>
AuthorDate: Wed Jun 9 19:49:48 2021 +0530

    Mustache template added to modify the generated code (FINERACT-1356)
---
 fineract-client/build.gradle                       |   6 +
 .../resources/java/template/build.gradle.mustache  | 218 ++++++++++
 .../src/main/resources/java/template/pom.mustache  | 479 +++++++++++++++++++++
 3 files changed, 703 insertions(+)

diff --git a/fineract-client/build.gradle b/fineract-client/build.gradle
index 9f762cf..a6119fe 100644
--- a/fineract-client/build.gradle
+++ b/fineract-client/build.gradle
@@ -42,6 +42,7 @@ task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateT
     skipValidateSpec = true
     inputSpec = "$swaggerFile"
     outputDir = "$buildDir/generated/java".toString()
+    templateDir = "$rootDir/fineract-client/src/main/resources/java/template/"
     groupId = 'org.apache.fineract'
     apiPackage = 'org.apache.fineract.client.services'
     invokerPackage = 'org.apache.fineract.client'
@@ -60,6 +61,11 @@ task buildJavaSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateT
         ':fineract-provider:compileJava'
     ]
     finalizedBy = [licenseFormat]
+    // uncomment below block to automatically copy the custom files in generated SDK
+    /*copy {
+     from file('src/main/java')
+     into file("$buildDir/generated/java/src/main/java")
+     }*/
 }
 
 task buildTypescriptAngularSdk(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask){
diff --git a/fineract-client/src/main/resources/java/template/build.gradle.mustache b/fineract-client/src/main/resources/java/template/build.gradle.mustache
new file mode 100644
index 0000000..e619732
--- /dev/null
+++ b/fineract-client/src/main/resources/java/template/build.gradle.mustache
@@ -0,0 +1,218 @@
+{{!
+/**
+ * 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
new file mode 100644
index 0000000..f2aa193
--- /dev/null
+++ b/fineract-client/src/main/resources/java/template/pom.mustache
@@ -0,0 +1,479 @@
+{{!
+/**
+ * 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