forked from loafle/openapi-generator-original
* Add basic jvm-volley folder to enable it as a library * Add JVM_VOLLEY to the KotlinClientCodegen as a library option (using Retrofit2 processing for now) * Temporary checkin of generated code and kotlinfied version for use in new template * Added Kotlin-ified api invoker and request objects, update Kotlin client codgen for volley * Add Android specific build.gradle mustache file to jvm-volley library * Hardcode SDK version and build tools version in build.gradle template, add extra repository for Android Gradle build tools * Add Android manifest to generated code * Add Kotlin dependencies and plugins to build gradle template * WIP: Create basic API templating for jvm-volley * Add ApiException and parameter validation, create path variable using ApiInvoker * Build queryParams and headerParams * Add VolleyRequest template * WIP: Injecting context and default API invoker into APIs (non compiling) * Add DefaultInvoker stub and update API to inject context * Add request queue generation to the DefaultInvoker * Fix up compile errors in the invoker * Cleanup unrequired templates * Update templates * Add constructor overloads to inject stack or network into request queue * Fix compile errors with request queue generation * Fix compile errors * Al'll fix it for you..... * WIP compile fixes * More compile fixes * Generate to java directory and kotlin-ify auth code * More syntax fixes in templates * Almost left it in a working state, fixing that .... now... * Switch builder method based on model existence constraints - body and response * Add coroutine logic to APIs and pass through listeners to the requests, various other fixes. * Use reflection and type tokens to work around clazz issues on generics * Add POST, PATCH and PUT to RequestFactory * More templating magic * Fix Steve, the human compiler's errors again ! * Add CLI option for generating room models * Configure the room model package * Add initial room model templating and generation * Add room model generation implementation * Implement toRoom function on models to convert model to room model * Bug fixes, transformers to and from room models * Add query parameters to URL generation * Fix issues with gson type conversion, add type adapters to gson instance * Fix issues with older API versions and Java8 libraries, * Add request factory interface * API template tidy up * Update IRequestFactory to include companion object, minor tidy ups * Remove @Keep annotations from room templates * Rename toRoomModel and toApiModel functions * Add empty companion object to generated room model * Add ITransformStorage interface to allow polymorphic transforms to room models * Add content type into GsonRequest * Move gson serialization of request body into GsonRequest * Update request factory to take header factories * Remove the generated comparision code * Move the generateRoomModels switch into the KotlinClientCodegen class * Move room model generation out of default generator * Updates for auth * Finalise removal of kotlin elements from default generator * Hoist room model logic out of abstractKotlin into kotlin client codegen * Revert AbstractKotlinCodegen * Revert Codegen constants to remove base generator changes out of our new library * Revert data class template changes, add data class body check to Kotlin Client codegen * Add sample generation yaml file for jvm-volley library * Update JVM-Volley readme for generateRoomModels flag * Remove unused template files, get auth compiling but non functional, clean build of warnings * Generate sample generated code * Add not implemented method for oauth * Add unit test for KotlinClientCodegen generateRoomModel flag * Remove accidental hard coding of src/main/java source folder * Push changed generated sample files * Move and rename IStorable inside the volley library * Inject retry policy into API definition, re-run sample and doc scripts * Add generic post processors * Update samples after generator changes * Fix some compile errors with the pet store sample * Fix duplicate auth companion object and import generation * Reinstate query and form parameter code generation * Add check for unsupported serialization libraries * Fix broken unit tests * Regenerate samples * AN-233 Update request factory to allow custom gsonadapters * update `GsonRequest.mustache` and `RequestFactoy.mustache` to use `Map<Type, Any>` instead of `Map<Type, Object>` to better fit kotlin conventions * Update readme with better examples and design notes * Update readme with info about gson serializers and adapters for polymorphic types * Updated samples * Merge from upstream * Address review comments * Update samples * Samples * Update docs * Remove DateAdapter generated file, template and it's inclusion as a supporting file in favour of localDateTime * Review comment cleanup for initial PR #10253 - cleaner auth key in parameter string handling * Review comment - add a kotlin version parameter to the build scripts * Updated samples * Missing changes from build.mustache * Regenerate samples for build.gradle changes * Merge from master and generate samples * Remove serializer as a supporting file from jvm-volley - it's serialisation is not a singleton and configured differently via gson request and dependency injection * Remove singleton serializer from jvm-volley generation as it's not used Co-authored-by: Alister Shipman <alister.shipman@greater.com.au> Co-authored-by: Steve Telford <steven.telford@greater.com.au> Co-authored-by: Leigh Cooper <leigh.cooper@greater.com.au> Co-authored-by: Michael Hewett <y2trooper@gmail.com>
96 lines
2.6 KiB
Groovy
96 lines
2.6 KiB
Groovy
|
|
buildscript {
|
|
|
|
ext.kotlin_version = '1.5.10'
|
|
|
|
ext.swagger_annotations_version = "1.6.2"
|
|
|
|
ext.gson_version = "2.8.6"
|
|
|
|
ext.volley_version = "1.2.0"
|
|
|
|
ext.junit_version = "4.13.2"
|
|
|
|
ext.robolectric_version = "4.5.1"
|
|
|
|
ext.concurrent_unit_version = "0.4.6"
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
google()
|
|
maven {
|
|
url 'https://dl.google.com/dl/android/maven2'
|
|
}
|
|
mavenCentral()
|
|
}
|
|
dependencies {
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
classpath 'com.android.tools.build:gradle:4.0.2'
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
}
|
|
}
|
|
|
|
apply plugin: 'com.android.library'
|
|
apply plugin: 'kotlin-android'
|
|
|
|
android {
|
|
compileSdkVersion 30
|
|
defaultConfig {
|
|
minSdkVersion 21
|
|
targetSdkVersion 30
|
|
}
|
|
compileOptions {
|
|
coreLibraryDesugaringEnabled true
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
lintOptions {
|
|
abortOnError false
|
|
}
|
|
|
|
// Rename the aar correctly
|
|
libraryVariants.all { variant ->
|
|
variant.outputs.all { output ->
|
|
if (outputFile != null && outputFileName.endsWith('.aar')) {
|
|
outputFileName = "${archivesBaseName}-${version}.aar"
|
|
}
|
|
}
|
|
}
|
|
|
|
testOptions {
|
|
unitTests.returnDefaultValues = true
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
|
|
implementation "com.google.code.gson:gson:$gson_version"
|
|
implementation "com.android.volley:volley:${volley_version}"
|
|
testImplementation "junit:junit:$junit_version"
|
|
testImplementation "org.robolectric:robolectric:${robolectric_version}"
|
|
testImplementation "net.jodah:concurrentunit:${concurrent_unit_version}"
|
|
annotationProcessor "androidx.room:room-runtime:2.3.0"
|
|
implementation "androidx.room:room-runtime:2.3.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.destinationDirectory = project.file("${project.buildDir}/outputs/jar")
|
|
task.archiveFileName = "${project.name}-${variant.baseName}-${version}.jar"
|
|
artifacts.add('archives', task);
|
|
}
|
|
}
|
|
|