diff --git a/.github/workflows/build-test-publish.yml b/.github/workflows/build-test-publish.yml
new file mode 100644
index 00000000..ac397818
--- /dev/null
+++ b/.github/workflows/build-test-publish.yml
@@ -0,0 +1,58 @@
+name: Build and Publish to GitHub Packages
+
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Setup Java
+ uses: actions/setup-java@v2
+ with:
+ java-version: '17'
+ distribution: 'adopt'
+
+ - name: Cache Gradle packages
+ uses: actions/cache@v2
+ with:
+ path: ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
+ restore-keys: ${{ runner.os }}-gradle
+
+ - name: Set up permissions client
+ run: chmod +x ./src/AndroidClient/gradlew
+
+ - name: Build client
+ working-directory: ./src/AndroidClient
+ run: ./gradlew client:build
+
+ - name: Build and Publish Client
+ env:
+ USERNAME_GITHUB: ${{ github.actor }}
+ TOKEN_GITHUB: ${{ secrets.GITHUB_TOKEN }}
+ VERSION_SUFFIX: ${{ github.run_number }}
+ working-directory: ./src/AndroidClient
+ run: ./gradlew client:publishAllPublicationsToGitHubPackagesRepository -PversionSuffix=$VERSION_SUFFIX
+
+ - name: Build android
+ working-directory: ./src/AndroidClient
+ run: ./gradlew android:build
+
+ - name: Build and Publish Android
+ env:
+ USERNAME_GITHUB: ${{ github.actor }}
+ TOKEN_GITHUB: ${{ secrets.GITHUB_TOKEN }}
+ VERSION_SUFFIX: ${{ github.run_number }}
+ working-directory: ./src/AndroidClient
+ run: ./gradlew android:publishAllPublicationsToGitHubPackagesRepository -PversionSuffix=$VERSION_SUFFIX
+
+# env:
+# OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
+# OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }}
diff --git a/.github/workflows/publish-android-maven-central.yml b/.github/workflows/publish-android-maven-central.yml
new file mode 100644
index 00000000..6c159161
--- /dev/null
+++ b/.github/workflows/publish-android-maven-central.yml
@@ -0,0 +1,43 @@
+name: Stage android to Maven Central
+# This workflow only Stages the package. You must manually login to https://oss.sonatype.org and publish from the Staging
+# Repository. Recent outputs from this workflow will be listed there.
+# You must "Close" each opened staging repository, then "Release". Closing can take some time, as can releasing.
+on:
+ workflow_dispatch:
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Setup Java
+ uses: actions/setup-java@v2
+ with:
+ java-version: '21'
+ distribution: 'adopt'
+
+ - name: Cache Gradle packages
+ uses: actions/cache@v2
+ with:
+ path: ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
+ restore-keys: ${{ runner.os }}-gradle
+
+ - name: Set up permissions client
+ run: chmod +x ./src/AndroidClient/gradlew
+
+ - name: Build android
+ working-directory: ./src/AndroidClient
+ run: ./gradlew android:build
+
+ - name: Publish to Maven Central
+ env:
+ OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
+ OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }}
+ SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
+ SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
+ working-directory: ./src/AndroidClient
+ run: ./gradlew android:publishAllPublicationsToOSSRHRepository
diff --git a/.github/workflows/publish-client-maven-central.yml b/.github/workflows/publish-client-maven-central.yml
new file mode 100644
index 00000000..3c6a535c
--- /dev/null
+++ b/.github/workflows/publish-client-maven-central.yml
@@ -0,0 +1,43 @@
+name: Stage client to Maven Central
+# This workflow only Stages the package. You must manually login to https://oss.sonatype.org and publish from the Staging
+# Repository. Recent outputs from this workflow will be listed there.
+# You must "Close" each opened staging repository, then "Release". Closing can take some time, as can releasing.
+on:
+ workflow_dispatch:
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Setup Java
+ uses: actions/setup-java@v2
+ with:
+ java-version: '21'
+ distribution: 'adopt'
+
+ - name: Cache Gradle packages
+ uses: actions/cache@v2
+ with:
+ path: ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
+ restore-keys: ${{ runner.os }}-gradle
+
+ - name: Set up permissions client
+ run: chmod +x ./src/AndroidClient/gradlew
+
+ - name: Build client
+ working-directory: ./src/AndroidClient
+ run: ./gradlew client:build
+
+ - name: Publish to Maven Central
+ env:
+ OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
+ OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }}
+ SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
+ SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
+ working-directory: ./src/AndroidClient
+ run: ./gradlew client:publishAllPublicationsToOSSRHRepository
diff --git a/.gitignore b/.gitignore
index 9068cd01..466d0cad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+vars.json
+
# Built application files
*.apk
*.ap_
@@ -24,3 +26,25 @@ proguard/
# Log Files
*.log
+src/ServiceStackIDEA/.idea/workspace.xml
+src/ServiceStackIDEA/lib/sdk/
+src/ServiceStackIDEA/lib/idea-sdk.zip
+src/ServiceStackIDEA/.idea/libraries
+src/ServiceStackIDEA/.idea/
+src/ServiceStackIDEA/out/
+linux.gtk.x86/
+linux.gtk.x86_64/
+macosx.cocoa.x86/
+macosx.cocoa.x86_64
+src/ServiceStackEclipse.UpdateSite/repository/
+src/ServiceStackEclipse.UpdateSite/eclipse/
+win32.win32.x86/
+win32.win32.x86_64/
+src/ServiceStackEclipse/**/.idea
+src/ServiceStackEclipse/**/target
+src/ServiceStackEclipse/**/.settings
+
+src/AndroidClient/client/pom.xml
+.idea/
+src/AndroidClient/.idea/**/*
+
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..e7e9d11d
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,2 @@
+# Default ignored files
+/workspace.xml
diff --git a/.idea/ServiceStack.Java.iml b/.idea/ServiceStack.Java.iml
new file mode 100644
index 00000000..ac9e42a7
--- /dev/null
+++ b/.idea/ServiceStack.Java.iml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 00000000..681f41ae
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ServiceStackIDEA/.idea/modules.xml b/.idea/modules.xml
similarity index 54%
rename from src/ServiceStackIDEA/.idea/modules.xml
rename to .idea/modules.xml
index eb2fea6f..58cf0dac 100644
--- a/src/ServiceStackIDEA/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/src/ServiceStackIDEA/.idea/vcs.xml b/.idea/vcs.xml
similarity index 68%
rename from src/ServiceStackIDEA/.idea/vcs.xml
rename to .idea/vcs.xml
index b2bdec2d..35eb1ddf 100644
--- a/src/ServiceStackIDEA/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/README.md b/README.md
index d53a6fb2..56bd7692 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,95 @@
+Follow [@ServiceStack](https://twitter.com/servicestack) or join the [Google+ Community](https://plus.google.com/communities/112445368900682590445)
+for updates, or [StackOverflow](http://stackoverflow.com/questions/ask) or the [Customer Forums](https://forums.servicestack.net/) for support.
+
# ServiceStack.Java
-ServiceStack Java Libraries and Apps
+
+This repository contains the source for ServiceStack plugins for the leading Android Studio, IntelliJ and Eclipse Java IDE's providing Java developers a highly productive development experience for consuming Typed ServiceStack Services by leveraging [Add ServiceStack Reference](https://github.com/ServiceStack/ServiceStack/wiki/Add-ServiceStack-Reference) directly within their IDE!
+
+### v1.1.5 Changes
+
+- Rename FileUpload to `UploadFile` to match other ServiceStack libraries
+
+### v1.1.4 Changes
+
+Added new ServiceClient APIs:
+
+```java
+ T postFileWithRequest(IReturn request, FileUpload file);
+ T postFileWithRequest(Object request, FileUpload file, Object responseType);
+ T postFileWithRequest(String path, Object request, FileUpload file, Object responseType);
+
+ T postFilesWithRequest(IReturn request, FileUpload[] files);
+ T postFilesWithRequest(Object request, FileUpload[] files, Object responseType);
+ T postFilesWithRequest(String path, Object request, FileUpload[] files, Object responseType);
+```
+
+Added new AsyncServiceClient APIs:
+
+```java
+ void postFileWithRequestAsync(IReturn request, FileUpload file, final AsyncResult asyncResult);
+ void postFileWithRequestAsync(Object request, FileUpload file, Object responseType, final AsyncResult asyncResult);
+ void postFileWithRequestAsync(String path, Object request, FileUpload file, Object responseType, final AsyncResult asyncResult);
+
+ void postFilesWithRequestAsync(IReturn request, FileUpload[] files, final AsyncResult asyncResult);
+ void postFilesWithRequestAsync(Object request, FileUpload[] files, Object responseType, final AsyncResult asyncResult);
+ void postFilesWithRequestAsync(String path, Object request, FileUpload[] files, Object responseType, final AsyncResult asyncResult);
+```
+
+### v1.1.0 Changes
+
+Switched to use `/api` pre-defined route by default, revert to legacy `/json/reply` pre-defined route with:
+
+```java
+const client = new JsonServiceClient(baseUrl);
+client.setBasePath();
+```
+
+## Install
+
+### [Install ServiceStack IDEA Plugin on Android Studio and IntelliJ](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#servicestack-idea-android-studio-plugin)
+ - [Install ServiceStack IDEA from the Plugin repository](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#install-servicestack-idea-from-the-plugin-repository)
+ - [Download and Install ServiceStack IDEA Manually](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#download-and-install-servicestack-idea-manually)
+
+#### Issues
+
+Please submit issues to https://github.com/ServiceStack/Issues
+
+### [Installing ServiceStackEclipse Plugin on Eclipse](https://github.com/ServiceStack/ServiceStack.Java/tree/master/src/ServiceStackEclipse)
+
+## Usage
+
+### [Update ServiceStack Reference](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#update-servicestack-reference)
+
+For information on the different code-generation configuration options available and examples of using the `JsonServiceClient` refer to the [Java ServiceStack Reference Documentation](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#update-servicestack-reference).
+
+### [JsonServiceClient](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#jsonserviceclient-api)
+
+For information on using the generic Java JSON Service Client Typed API's see the [JsonServiceClient Documentation](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#jsonserviceclient-api) or jump to the interested sections directly:
+
+ - [JsonServiceClient Usage](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#jsonserviceclient-usage)
+ - [Custom Urls Example Usage](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#custom-example-usage)
+ - [AutoQuery Example Usage](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#autoquery-example-usage)
+ - [Android Service Client](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#androidserviceclient)
+ - [AsyncServiceClient API](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#asyncserviceclient-api)
+ - [Async API Usage](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#async-api-usage)
+ - [Async Error Handling](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#async-error-handling)
+ - [Typed Error Handling](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#typed-error-handling)
+ - [JsonServiceClient Error Handlers](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#jsonserviceclient-error-handlers)
+
+## [Java generated DTO Types](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#java-generated-dto-types)
+
+Contains information on how **Java Add ServiceStack Reference** ensures a high-fidelity, idiomatic translation within the constraints of Java language and its built-in libraries, where .NET Server DTO's are translated into clean, conventional Java POJO's where .NET built-in Value Types mapped to their equivalent Java data Type. Use the links below to jump directly to the sections you're interested in:
+
+ - [.NET Attributes translated into Java Annotations](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#net-attributes-translated-into-java-annotations)
+ - [Terse, typed API's with IReturn interfaces](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#terse-typed-apis-with-ireturn-interfaces)
+ - [Getters and Setters generated for each property](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#getters-and-setters-generated-for-each-property)
+ - [Java Type Conversions](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#java-type-conversions)
+ - [Java Enums](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#java-enums)
+ - [Java Configuration](https://github.com/ServiceStack/ServiceStack/wiki/Java-Add-ServiceStack-Reference#java-configuration)
+
+## Example [TechStacks Android App](https://github.com/ServiceStackApps/TechStacksAndroidApp)
+To demonstrate Java Native Types in action we've ported the Swift [TechStacks iOS App](https://github.com/ServiceStackApps/TechStacksApp) to a native Java Android App to showcase the responsiveness and easy-of-use of leveraging Java Add ServiceStack Reference in Android Projects.
+
+[](https://github.com/ServiceStackApps/TechStacksAndroidApp)
+
+Checkout the [TechStacks Android App](https://github.com/ServiceStackApps/TechStacksAndroidApp) repository for a nice overview of how it leverages Java Native Types, Functional Java Utils and iOS-inspired Data Binding to easily develop services-heavy Mobile Apps.
\ No newline at end of file
diff --git a/build/copy-client.bat b/build/copy-client.bat
new file mode 100644
index 00000000..f31610c5
--- /dev/null
+++ b/build/copy-client.bat
@@ -0,0 +1,6 @@
+SET SRC_DIR=..\src\AndroidClient\android\src\main\java\net\servicestack
+
+RMDIR %SRC_DIR%\client /s /q
+RMDIR %SRC_DIR%\func /s /q
+
+XCOPY /E ..\src\AndroidClient\client\src\main\java\net\servicestack %SRC_DIR%
diff --git a/dist/android-debug.aar b/dist/android-debug.aar
new file mode 100644
index 00000000..152656da
Binary files /dev/null and b/dist/android-debug.aar differ
diff --git a/dist/android-release.aar b/dist/android-release.aar
new file mode 100644
index 00000000..6363b141
Binary files /dev/null and b/dist/android-release.aar differ
diff --git a/dist/client-debug.aar b/dist/client-debug.aar
new file mode 100644
index 00000000..28d0c3fd
Binary files /dev/null and b/dist/client-debug.aar differ
diff --git a/dist/client-release.aar b/dist/client-release.aar
new file mode 100644
index 00000000..cca981f5
Binary files /dev/null and b/dist/client-release.aar differ
diff --git a/license.txt b/license.txt
new file mode 100644
index 00000000..2ea926c8
--- /dev/null
+++ b/license.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2007-present, Demis Bellot, ServiceStack, Inc.
+https://servicestack.net
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the ServiceStack nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/src/AndroidClient/.gitignore b/src/AndroidClient/.gitignore
index afbdab33..2b504629 100644
--- a/src/AndroidClient/.gitignore
+++ b/src/AndroidClient/.gitignore
@@ -4,3 +4,4 @@
/.idea/libraries
.DS_Store
/build
+.idea/
diff --git a/src/AndroidClient/.idea/.name b/src/AndroidClient/.idea/.name
deleted file mode 100644
index 833edf17..00000000
--- a/src/AndroidClient/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-AndroidClient
\ No newline at end of file
diff --git a/src/AndroidClient/.idea/compiler.xml b/src/AndroidClient/.idea/compiler.xml
deleted file mode 100644
index 217af471..00000000
--- a/src/AndroidClient/.idea/compiler.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/AndroidClient/.idea/encodings.xml b/src/AndroidClient/.idea/encodings.xml
deleted file mode 100644
index e206d70d..00000000
--- a/src/AndroidClient/.idea/encodings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/src/AndroidClient/.idea/misc.xml b/src/AndroidClient/.idea/misc.xml
deleted file mode 100644
index 59436c98..00000000
--- a/src/AndroidClient/.idea/misc.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/src/AndroidClient/.idea/modules.xml b/src/AndroidClient/.idea/modules.xml
deleted file mode 100644
index 13aa66e2..00000000
--- a/src/AndroidClient/.idea/modules.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/AndroidClient/.idea/scopes/scope_settings.xml b/src/AndroidClient/.idea/scopes/scope_settings.xml
deleted file mode 100644
index 922003b8..00000000
--- a/src/AndroidClient/.idea/scopes/scope_settings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/src/AndroidClient/.idea/uiDesigner.xml b/src/AndroidClient/.idea/uiDesigner.xml
deleted file mode 100644
index e96534fb..00000000
--- a/src/AndroidClient/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/src/AndroidClient/AndroidClient.iml b/src/AndroidClient/AndroidClient.iml
index d55edf77..ce2b513e 100644
--- a/src/AndroidClient/AndroidClient.iml
+++ b/src/AndroidClient/AndroidClient.iml
@@ -1,16 +1,10 @@
-
-
-
-
-
-
-
+
diff --git a/src/AndroidClient/android/android.iml b/src/AndroidClient/android/android.iml
deleted file mode 100644
index 071b2a6c..00000000
--- a/src/AndroidClient/android/android.iml
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/AndroidClient/android/build.gradle b/src/AndroidClient/android/build.gradle
index 9c6a6379..2c37cd87 100644
--- a/src/AndroidClient/android/build.gradle
+++ b/src/AndroidClient/android/build.gradle
@@ -1,18 +1,42 @@
+// Apply necessary plugins
apply plugin: 'com.android.library'
-apply plugin: 'com.github.dcendents.android-maven'
-apply plugin: 'com.jfrog.bintray'
+apply plugin: 'maven-publish'
+apply plugin: 'signing'
-version = "1.0.10"
+// Define the version and group for the Maven package
+version = "1.1.5"
+group = "net.servicestack"
+if (project.hasProperty('versionSuffix')) {
+ version = "${version}-${versionSuffix}"
+}
+
+
+// Specify dependencies
+dependencies {
+ implementation 'com.google.code.gson:gson:2.11.0'
+ implementation 'com.squareup.okhttp3:okhttp:3.14.9'
+ implementation fileTree(include: '*.jar', dir: 'libs')
+ androidTestImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+ androidTestImplementation 'com.android.support:support-annotations:28.0.0'
+}
+
+// Android specific configurations
android {
- compileSdkVersion 21
- buildToolsVersion "21.1.2"
+ namespace "net.servicestack.android"
+ compileSdk 34
+
+ lintOptions {
+ abortOnError false
+ }
defaultConfig {
minSdkVersion 15
- targetSdkVersion 21
- versionCode 1
- versionName version
+ targetSdkVersion 34
+
+ testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
}
buildTypes {
release {
@@ -20,77 +44,87 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
-}
-
-Properties properties = new Properties()
-properties.load(project.file('./local.properties').newDataInputStream())
-
-def siteUrl = 'https://github.com/ServiceStack/ServiceStack.Java' // Homepage URL of the library
-def gitUrl = 'https://github.com/ServiceStack/ServiceStack.Java.git' // Git repository URL
-group = "net.servicestack" // Maven Group ID for the artifact
-
-bintray {
- user = properties.getProperty("bintray.user")
- key = properties.getProperty("bintray.apiKey")
-
- configurations = ['archives']
- pkg {
- repo = "maven"
- name = "ServiceStack.Android"
- websiteUrl = siteUrl
- vcsUrl = gitUrl
- licenses = ["BSD 3-Clause"]
- publish = true
- userOrg = 'servicestack'
+ sourceSets {
+ main.java.srcDirs += 'src/main/kotlin'
}
}
-install {
- repositories.mavenInstaller {
- // This generates POM.xml with proper parameters
- pom {
- project {
- packaging 'aar'
+// Configure the publishing block for Maven Central deployment
+publishing {
+ publications {
+ mavenJava(MavenPublication) {
+ artifact("$buildDir/outputs/aar/${project.name}-release.aar")
+
+ groupId = group
+ artifactId = 'android'
+ version = version
- // Add your description here
- name 'ServiceStack.Android'
- description 'A client library to call your ServiceStack webservices for Android clients.'
- url siteUrl
+ pom {
+ name = 'ServiceStack.Android'
+ description = 'A client library to call your ServiceStack webservices for Android clients.'
+ url = 'https://github.com/ServiceStack/ServiceStack.Java'
- // Set your license
licenses {
license {
- name 'The BSD 3-Clause License'
- url 'https://raw.githubusercontent.com/ServiceStack/Assets/master/docs/license/LICENSE-BSD3.txt'
+ name = 'The BSD 3-Clause License'
+ url = 'https://servicestack.net/bsd-license.txt'
}
}
developers {
developer {
- id 'mythz'
- name 'Demis Bellot'
- email 'team@servicestack.net'
+ id = 'mythz'
+ name = 'Demis Bellot'
+ email = 'team@servicestack.net'
}
developer {
- id 'layoric'
- name 'Darren Reid'
- email 'team@servicestack.net'
+ id = 'layoric'
+ name = 'Darren Reid'
+ email = 'team@servicestack.net'
}
}
- scm {
- connection 'https://github.com/ServiceStack/ServiceStack.Java'
- developerConnection 'https://github.com/ServiceStack/ServiceStack.Java'
- url 'https://github.com/ServiceStack/ServiceStack.Java'
+ scm {
+ connection = 'https://github.com/ServiceStack/ServiceStack.Java.git'
+ developerConnection = 'https://github.com/ServiceStack/ServiceStack.Java.git'
+ url = 'https://github.com/ServiceStack/ServiceStack.Java'
}
}
}
}
-}
+ repositories {
+ maven {
+ name = 'OSSRH'
+ url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
+ credentials {
+ username = project.findProperty("ossrhUsername") ?: System.getenv("OSSRH_USERNAME")
+ password = project.findProperty("ossrhPassword") ?: System.getenv("OSSRH_TOKEN")
+ }
+ }
+ maven {
+ name = 'GitHubPackages'
+ url = uri("https://maven.pkg.github.com/ServiceStack/ServiceStack.Java")
-dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- compile 'com.android.support:appcompat-v7:21.0.3'
- compile project(':client')
+ credentials {
+ username = project.findProperty("gpr.user") ?: System.getenv("USERNAME_GITHUB")
+ password = project.findProperty("gpr.token") ?: System.getenv("TOKEN_GITHUB")
+ }
+ }
+ }
}
+
+// Check if the environment variables are set
+def signingKey = System.getenv('SIGNING_KEY')
+def signingPassword = System.getenv('SIGNING_PASSWORD')
+
+// Conditionally apply the signing plugin and configuration
+if (signingKey && signingPassword) {
+ println "Signing enabled"
+ signing {
+ useInMemoryPgpKeys(signingKey, signingPassword)
+ sign publishing.publications.mavenJava
+ }
+} else {
+ println "Signing disabled"
+}
\ No newline at end of file
diff --git a/src/AndroidClient/android/lint.xml b/src/AndroidClient/android/lint.xml
new file mode 100644
index 00000000..3c6f61fb
--- /dev/null
+++ b/src/AndroidClient/android/lint.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/AndroidClient/android/src/androidTest/java/io/techstacks/dto.java b/src/AndroidClient/android/src/androidTest/java/io/techstacks/dto.java
deleted file mode 100644
index 8a82281a..00000000
--- a/src/AndroidClient/android/src/androidTest/java/io/techstacks/dto.java
+++ /dev/null
@@ -1,1343 +0,0 @@
-/* Options:
-Date: 2015-04-10 12:38:16
-Version: 1
-BaseUrl: http://techstacks.io
-
-Package: io.techstacks
-//GlobalNamespace: dto
-//AddPropertyAccessors: True
-//SettersReturnThis: True
-//AddServiceStackTypes: True
-//AddResponseStatus: False
-//AddImplicitVersion:
-//IncludeTypes:
-//ExcludeTypes:
-//DefaultImports: java.math.*,java.util.*,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.*
-*/
-
-package io.techstacks;
-
-import com.google.gson.annotations.SerializedName;
-import com.google.gson.reflect.TypeToken;
-
-import net.servicestack.client.AutoQueryViewer;
-import net.servicestack.client.DataContract;
-import net.servicestack.client.DataMember;
-import net.servicestack.client.IReturn;
-import net.servicestack.client.ResponseStatus;
-import net.servicestack.client.Route;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-
-public class dto
-{
-
- public static class Technology extends TechnologyBase
- {
-
- }
-
- public static enum TechnologyTier
- {
- ProgrammingLanguage,
- Client,
- Http,
- Server,
- Data,
- SoftwareInfrastructure,
- OperatingSystem,
- HardwareInfrastructure,
- ThirdPartyServices;
- }
-
- public static class TechnologyStack extends TechnologyStackBase
- {
-
- }
-
- public static class TechnologyHistory extends TechnologyBase
- {
- public Long TechnologyId = null;
- public String Operation = null;
-
- public Long getTechnologyId() { return TechnologyId; }
- public TechnologyHistory setTechnologyId(Long value) { this.TechnologyId = value; return this; }
- public String getOperation() { return Operation; }
- public TechnologyHistory setOperation(String value) { this.Operation = value; return this; }
- }
-
- public static class QueryBase_1 extends QueryBase
- {
-
- }
-
- public static class TechStackDetails extends TechnologyStackBase
- {
- public String DetailsHtml = null;
- public ArrayList TechnologyChoices = null;
-
- public String getDetailsHtml() { return DetailsHtml; }
- public TechStackDetails setDetailsHtml(String value) { this.DetailsHtml = value; return this; }
- public ArrayList getTechnologyChoices() { return TechnologyChoices; }
- public TechStackDetails setTechnologyChoices(ArrayList value) { this.TechnologyChoices = value; return this; }
- }
-
- public static class TechnologyStackHistory extends TechnologyStackBase
- {
- public Long TechnologyStackId = null;
- public String Operation = null;
- public ArrayList TechnologyIds = null;
-
- public Long getTechnologyStackId() { return TechnologyStackId; }
- public TechnologyStackHistory setTechnologyStackId(Long value) { this.TechnologyStackId = value; return this; }
- public String getOperation() { return Operation; }
- public TechnologyStackHistory setOperation(String value) { this.Operation = value; return this; }
- public ArrayList getTechnologyIds() { return TechnologyIds; }
- public TechnologyStackHistory setTechnologyIds(ArrayList value) { this.TechnologyIds = value; return this; }
- }
-
- @DataContract
- public static class Option
- {
- @DataMember(Name="name")
- @SerializedName("name")
- public String Name = null;
-
- @DataMember(Name="title")
- @SerializedName("title")
- public String Title = null;
-
- @DataMember(Name="value")
- @SerializedName("value")
- public TechnologyTier Value = null;
-
- public String getName() { return Name; }
- public Option setName(String value) { this.Name = value; return this; }
- public String getTitle() { return Title; }
- public Option setTitle(String value) { this.Title = value; return this; }
- public TechnologyTier getValue() { return Value; }
- public Option setValue(TechnologyTier value) { this.Value = value; return this; }
- }
-
- public static class UserInfo
- {
- public String UserName = null;
- public String AvatarUrl = null;
- public Integer StacksCount = null;
-
- public String getUserName() { return UserName; }
- public UserInfo setUserName(String value) { this.UserName = value; return this; }
- public String getAvatarUrl() { return AvatarUrl; }
- public UserInfo setAvatarUrl(String value) { this.AvatarUrl = value; return this; }
- public Integer getStacksCount() { return StacksCount; }
- public UserInfo setStacksCount(Integer value) { this.StacksCount = value; return this; }
- }
-
- public static class TechnologyInfo
- {
- public TechnologyTier Tier = null;
- public String Slug = null;
- public String Name = null;
- public String LogoUrl = null;
- public Integer StacksCount = null;
-
- public TechnologyTier getTier() { return Tier; }
- public TechnologyInfo setTier(TechnologyTier value) { this.Tier = value; return this; }
- public String getSlug() { return Slug; }
- public TechnologyInfo setSlug(String value) { this.Slug = value; return this; }
- public String getName() { return Name; }
- public TechnologyInfo setName(String value) { this.Name = value; return this; }
- public String getLogoUrl() { return LogoUrl; }
- public TechnologyInfo setLogoUrl(String value) { this.LogoUrl = value; return this; }
- public Integer getStacksCount() { return StacksCount; }
- public TechnologyInfo setStacksCount(Integer value) { this.StacksCount = value; return this; }
- }
-
- public static class Post
- {
- public Integer Id = null;
- public String UserId = null;
- public String UserName = null;
- public String Date = null;
- public String ShortDate = null;
- public String TextHtml = null;
- public ArrayList Comments = null;
-
- public Integer getId() { return Id; }
- public Post setId(Integer value) { this.Id = value; return this; }
- public String getUserId() { return UserId; }
- public Post setUserId(String value) { this.UserId = value; return this; }
- public String getUserName() { return UserName; }
- public Post setUserName(String value) { this.UserName = value; return this; }
- public String getDate() { return Date; }
- public Post setDate(String value) { this.Date = value; return this; }
- public String getShortDate() { return ShortDate; }
- public Post setShortDate(String value) { this.ShortDate = value; return this; }
- public String getTextHtml() { return TextHtml; }
- public Post setTextHtml(String value) { this.TextHtml = value; return this; }
- public ArrayList getComments() { return Comments; }
- public Post setComments(ArrayList value) { this.Comments = value; return this; }
- }
-
- public static class TechnologyBase
- {
- public Long Id = null;
- public String Name = null;
- public String VendorName = null;
- public String VendorUrl = null;
- public String ProductUrl = null;
- public String LogoUrl = null;
- public String Description = null;
- public Date Created = null;
- public String CreatedBy = null;
- public Date LastModified = null;
- public String LastModifiedBy = null;
- public String OwnerId = null;
- public String Slug = null;
- public Boolean LogoApproved = null;
- public Boolean IsLocked = null;
- public TechnologyTier Tier = null;
- public Date LastStatusUpdate = null;
-
- public Long getId() { return Id; }
- public TechnologyBase setId(Long value) { this.Id = value; return this; }
- public String getName() { return Name; }
- public TechnologyBase setName(String value) { this.Name = value; return this; }
- public String getVendorName() { return VendorName; }
- public TechnologyBase setVendorName(String value) { this.VendorName = value; return this; }
- public String getVendorUrl() { return VendorUrl; }
- public TechnologyBase setVendorUrl(String value) { this.VendorUrl = value; return this; }
- public String getProductUrl() { return ProductUrl; }
- public TechnologyBase setProductUrl(String value) { this.ProductUrl = value; return this; }
- public String getLogoUrl() { return LogoUrl; }
- public TechnologyBase setLogoUrl(String value) { this.LogoUrl = value; return this; }
- public String getDescription() { return Description; }
- public TechnologyBase setDescription(String value) { this.Description = value; return this; }
- public Date getCreated() { return Created; }
- public TechnologyBase setCreated(Date value) { this.Created = value; return this; }
- public String getCreatedBy() { return CreatedBy; }
- public TechnologyBase setCreatedBy(String value) { this.CreatedBy = value; return this; }
- public Date getLastModified() { return LastModified; }
- public TechnologyBase setLastModified(Date value) { this.LastModified = value; return this; }
- public String getLastModifiedBy() { return LastModifiedBy; }
- public TechnologyBase setLastModifiedBy(String value) { this.LastModifiedBy = value; return this; }
- public String getOwnerId() { return OwnerId; }
- public TechnologyBase setOwnerId(String value) { this.OwnerId = value; return this; }
- public String getSlug() { return Slug; }
- public TechnologyBase setSlug(String value) { this.Slug = value; return this; }
- public Boolean isLogoApproved() { return LogoApproved; }
- public TechnologyBase setLogoApproved(Boolean value) { this.LogoApproved = value; return this; }
- public Boolean getIsLocked() { return IsLocked; }
- public TechnologyBase setIsLocked(Boolean value) { this.IsLocked = value; return this; }
- public TechnologyTier getTier() { return Tier; }
- public TechnologyBase setTier(TechnologyTier value) { this.Tier = value; return this; }
- public Date getLastStatusUpdate() { return LastStatusUpdate; }
- public TechnologyBase setLastStatusUpdate(Date value) { this.LastStatusUpdate = value; return this; }
- }
-
- public static class TechnologyStackBase
- {
- public Long Id = null;
- public String Name = null;
- public String VendorName = null;
- public String Description = null;
- public String AppUrl = null;
- public String ScreenshotUrl = null;
- public Date Created = null;
- public String CreatedBy = null;
- public Date LastModified = null;
- public String LastModifiedBy = null;
- public Boolean IsLocked = null;
- public String OwnerId = null;
- public String Slug = null;
- public String Details = null;
- public Date LastStatusUpdate = null;
-
- public Long getId() { return Id; }
- public TechnologyStackBase setId(Long value) { this.Id = value; return this; }
- public String getName() { return Name; }
- public TechnologyStackBase setName(String value) { this.Name = value; return this; }
- public String getVendorName() { return VendorName; }
- public TechnologyStackBase setVendorName(String value) { this.VendorName = value; return this; }
- public String getDescription() { return Description; }
- public TechnologyStackBase setDescription(String value) { this.Description = value; return this; }
- public String getAppUrl() { return AppUrl; }
- public TechnologyStackBase setAppUrl(String value) { this.AppUrl = value; return this; }
- public String getScreenshotUrl() { return ScreenshotUrl; }
- public TechnologyStackBase setScreenshotUrl(String value) { this.ScreenshotUrl = value; return this; }
- public Date getCreated() { return Created; }
- public TechnologyStackBase setCreated(Date value) { this.Created = value; return this; }
- public String getCreatedBy() { return CreatedBy; }
- public TechnologyStackBase setCreatedBy(String value) { this.CreatedBy = value; return this; }
- public Date getLastModified() { return LastModified; }
- public TechnologyStackBase setLastModified(Date value) { this.LastModified = value; return this; }
- public String getLastModifiedBy() { return LastModifiedBy; }
- public TechnologyStackBase setLastModifiedBy(String value) { this.LastModifiedBy = value; return this; }
- public Boolean getIsLocked() { return IsLocked; }
- public TechnologyStackBase setIsLocked(Boolean value) { this.IsLocked = value; return this; }
- public String getOwnerId() { return OwnerId; }
- public TechnologyStackBase setOwnerId(String value) { this.OwnerId = value; return this; }
- public String getSlug() { return Slug; }
- public TechnologyStackBase setSlug(String value) { this.Slug = value; return this; }
- public String getDetails() { return Details; }
- public TechnologyStackBase setDetails(String value) { this.Details = value; return this; }
- public Date getLastStatusUpdate() { return LastStatusUpdate; }
- public TechnologyStackBase setLastStatusUpdate(Date value) { this.LastStatusUpdate = value; return this; }
- }
-
- public static class QueryBase
- {
- @DataMember(Order=1)
- public Integer Skip = null;
-
- @DataMember(Order=2)
- public Integer Take = null;
-
- @DataMember(Order=3)
- public String OrderBy = null;
-
- @DataMember(Order=4)
- public String OrderByDesc = null;
-
- public Integer getSkip() { return Skip; }
- public QueryBase setSkip(Integer value) { this.Skip = value; return this; }
- public Integer getTake() { return Take; }
- public QueryBase setTake(Integer value) { this.Take = value; return this; }
- public String getOrderBy() { return OrderBy; }
- public QueryBase setOrderBy(String value) { this.OrderBy = value; return this; }
- public String getOrderByDesc() { return OrderByDesc; }
- public QueryBase setOrderByDesc(String value) { this.OrderByDesc = value; return this; }
- }
-
- public static class TechnologyInStack extends TechnologyBase
- {
- public Long TechnologyId = null;
- public Long TechnologyStackId = null;
- public String Justification = null;
-
- public Long getTechnologyId() { return TechnologyId; }
- public TechnologyInStack setTechnologyId(Long value) { this.TechnologyId = value; return this; }
- public Long getTechnologyStackId() { return TechnologyStackId; }
- public TechnologyInStack setTechnologyStackId(Long value) { this.TechnologyStackId = value; return this; }
- public String getJustification() { return Justification; }
- public TechnologyInStack setJustification(String value) { this.Justification = value; return this; }
- }
-
- public static class PostComment
- {
- public Integer Id = null;
- public Integer PostId = null;
- public String UserId = null;
- public String UserName = null;
- public String Date = null;
- public String ShortDate = null;
- public String TextHtml = null;
-
- public Integer getId() { return Id; }
- public PostComment setId(Integer value) { this.Id = value; return this; }
- public Integer getPostId() { return PostId; }
- public PostComment setPostId(Integer value) { this.PostId = value; return this; }
- public String getUserId() { return UserId; }
- public PostComment setUserId(String value) { this.UserId = value; return this; }
- public String getUserName() { return UserName; }
- public PostComment setUserName(String value) { this.UserName = value; return this; }
- public String getDate() { return Date; }
- public PostComment setDate(String value) { this.Date = value; return this; }
- public String getShortDate() { return ShortDate; }
- public PostComment setShortDate(String value) { this.ShortDate = value; return this; }
- public String getTextHtml() { return TextHtml; }
- public PostComment setTextHtml(String value) { this.TextHtml = value; return this; }
- }
-
- public static class LogoUrlApprovalResponse
- {
- public Technology Result = null;
-
- public Technology getResult() { return Result; }
- public LogoUrlApprovalResponse setResult(Technology value) { this.Result = value; return this; }
- }
-
- public static class LockStackResponse
- {
-
- }
-
- public static class CreateTechnologyResponse
- {
- public Technology Result = null;
- public ResponseStatus ResponseStatus = null;
-
- public Technology getResult() { return Result; }
- public CreateTechnologyResponse setResult(Technology value) { this.Result = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public CreateTechnologyResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class UpdateTechnologyResponse
- {
- public Technology Result = null;
- public ResponseStatus ResponseStatus = null;
-
- public Technology getResult() { return Result; }
- public UpdateTechnologyResponse setResult(Technology value) { this.Result = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public UpdateTechnologyResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class DeleteTechnologyResponse
- {
- public Technology Result = null;
- public ResponseStatus ResponseStatus = null;
-
- public Technology getResult() { return Result; }
- public DeleteTechnologyResponse setResult(Technology value) { this.Result = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public DeleteTechnologyResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class GetTechnologyResponse
- {
- public Date Created = null;
- public Technology Technology = null;
- public ArrayList TechnologyStacks = null;
- public ResponseStatus ResponseStatus = null;
-
- public Date getCreated() { return Created; }
- public GetTechnologyResponse setCreated(Date value) { this.Created = value; return this; }
- public Technology getTechnology() { return Technology; }
- public GetTechnologyResponse setTechnology(Technology value) { this.Technology = value; return this; }
- public ArrayList getTechnologyStacks() { return TechnologyStacks; }
- public GetTechnologyResponse setTechnologyStacks(ArrayList value) { this.TechnologyStacks = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public GetTechnologyResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class GetTechnologyPreviousVersionsResponse
- {
- public ArrayList Results = null;
-
- public ArrayList getResults() { return Results; }
- public GetTechnologyPreviousVersionsResponse setResults(ArrayList value) { this.Results = value; return this; }
- }
-
- public static class GetTechnologyFavoriteDetailsResponse
- {
- public ArrayList Users = null;
- public Integer FavoriteCount = null;
-
- public ArrayList getUsers() { return Users; }
- public GetTechnologyFavoriteDetailsResponse setUsers(ArrayList value) { this.Users = value; return this; }
- public Integer getFavoriteCount() { return FavoriteCount; }
- public GetTechnologyFavoriteDetailsResponse setFavoriteCount(Integer value) { this.FavoriteCount = value; return this; }
- }
-
- public static class GetAllTechnologiesResponse
- {
- public ArrayList Results = null;
-
- public ArrayList getResults() { return Results; }
- public GetAllTechnologiesResponse setResults(ArrayList value) { this.Results = value; return this; }
- }
-
- @DataContract
- public static class QueryResponse
- {
- @DataMember(Order=1)
- public Integer Offset = null;
-
- @DataMember(Order=2)
- public Integer Total = null;
-
- @DataMember(Order=3)
- public ArrayList Results = null;
-
- @DataMember(Order=4)
- public HashMap Meta = null;
-
- @DataMember(Order=5)
- public ResponseStatus ResponseStatus = null;
-
- public Integer getOffset() { return Offset; }
- public QueryResponse setOffset(Integer value) { this.Offset = value; return this; }
- public Integer getTotal() { return Total; }
- public QueryResponse setTotal(Integer value) { this.Total = value; return this; }
- public ArrayList getResults() { return Results; }
- public QueryResponse setResults(ArrayList value) { this.Results = value; return this; }
- public HashMap getMeta() { return Meta; }
- public QueryResponse setMeta(HashMap value) { this.Meta = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public QueryResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class CreateTechnologyStackResponse
- {
- public TechStackDetails Result = null;
- public ResponseStatus ResponseStatus = null;
-
- public TechStackDetails getResult() { return Result; }
- public CreateTechnologyStackResponse setResult(TechStackDetails value) { this.Result = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public CreateTechnologyStackResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class UpdateTechnologyStackResponse
- {
- public TechStackDetails Result = null;
- public ResponseStatus ResponseStatus = null;
-
- public TechStackDetails getResult() { return Result; }
- public UpdateTechnologyStackResponse setResult(TechStackDetails value) { this.Result = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public UpdateTechnologyStackResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class DeleteTechnologyStackResponse
- {
- public TechStackDetails Result = null;
- public ResponseStatus ResponseStatus = null;
-
- public TechStackDetails getResult() { return Result; }
- public DeleteTechnologyStackResponse setResult(TechStackDetails value) { this.Result = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public DeleteTechnologyStackResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class GetAllTechnologyStacksResponse
- {
- public ArrayList Results = null;
-
- public ArrayList getResults() { return Results; }
- public GetAllTechnologyStacksResponse setResults(ArrayList value) { this.Results = value; return this; }
- }
-
- public static class GetTechnologyStackResponse
- {
- public Date Created = null;
- public TechStackDetails Result = null;
- public ResponseStatus ResponseStatus = null;
-
- public Date getCreated() { return Created; }
- public GetTechnologyStackResponse setCreated(Date value) { this.Created = value; return this; }
- public TechStackDetails getResult() { return Result; }
- public GetTechnologyStackResponse setResult(TechStackDetails value) { this.Result = value; return this; }
- public ResponseStatus getResponseStatus() { return ResponseStatus; }
- public GetTechnologyStackResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
- }
-
- public static class GetTechnologyStackPreviousVersionsResponse
- {
- public ArrayList Results = null;
-
- public ArrayList getResults() { return Results; }
- public GetTechnologyStackPreviousVersionsResponse setResults(ArrayList value) { this.Results = value; return this; }
- }
-
- public static class GetTechnologyStackFavoriteDetailsResponse
- {
- public ArrayList Users = null;
- public Integer FavoriteCount = null;
-
- public ArrayList getUsers() { return Users; }
- public GetTechnologyStackFavoriteDetailsResponse setUsers(ArrayList value) { this.Users = value; return this; }
- public Integer getFavoriteCount() { return FavoriteCount; }
- public GetTechnologyStackFavoriteDetailsResponse setFavoriteCount(Integer value) { this.FavoriteCount = value; return this; }
- }
-
- public static class GetConfigResponse
- {
- public ArrayList