rollback android template

This commit is contained in:
wing328 2015-06-09 13:02:54 +08:00
parent a8f6044c9b
commit ab9daaacd6
9 changed files with 689 additions and 712 deletions

View File

@ -18,7 +18,7 @@ import java.util.HashMap;
import java.io.File; import java.io.File;
{{#operations}} {{#operations}}
public class {{classname}} { public class {{classname}} {
String basePath = "{{basePath}}"; String basePath = "{{basePath}}";
ApiInvoker apiInvoker = ApiInvoker.getInstance(); ApiInvoker apiInvoker = ApiInvoker.getInstance();
@ -42,8 +42,8 @@ import java.io.File;
/** /**
* {{summary}} * {{summary}}
* {{notes}} * {{notes}}
{{#allParams}} * @param {{paramName}} {{description}} {{#allParams}} * @param {{paramName}} {{description}}
{{/allParams}} * @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}} {{/allParams}} * @return {{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}
*/ */
public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) throws ApiException { public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}} ({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) throws ApiException {
Object postBody = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}}; Object postBody = {{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}null{{/bodyParam}};
@ -58,17 +58,11 @@ import java.io.File;
String path = "{{path}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{paramName}}" + "\\}", apiInvoker.escapeString({{{paramName}}}.toString())){{/pathParams}}; String path = "{{path}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{paramName}}" + "\\}", apiInvoker.escapeString({{{paramName}}}.toString())){{/pathParams}};
// query params // query params
Map Map<String, String> queryParams = new HashMap<String, String>();
<String, String> queryParams = new HashMap
<String, String>();
// header params // header params
Map Map<String, String> headerParams = new HashMap<String, String>();
<String, String> headerParams = new HashMap
<String, String>();
// form params // form params
Map Map<String, String> formParams = new HashMap<String, String>();
<String, String> formParams = new HashMap
<String, String>();
{{#queryParams}}if ({{paramName}} != null) {{#queryParams}}if ({{paramName}} != null)
queryParams.put("{{baseName}}", ApiInvoker.parameterToString({{paramName}})); queryParams.put("{{baseName}}", ApiInvoker.parameterToString({{paramName}}));
@ -116,5 +110,5 @@ import java.io.File;
} }
} }
{{/operation}} {{/operation}}
} }
{{/operations}} {{/operations}}

View File

@ -1,29 +1,29 @@
package {{invokerPackage}}; package {{invokerPackage}};
public class ApiException extends Exception { public class ApiException extends Exception {
int code = 0; int code = 0;
String message = null; String message = null;
public ApiException() {} public ApiException() {}
public ApiException(int code, String message) { public ApiException(int code, String message) {
this.code = code; this.code = code;
this.message = message; this.message = message;
} }
public int getCode() { public int getCode() {
return code; return code;
} }
public void setCode(int code) { public void setCode(int code) {
this.code = code; this.code = code;
} }
public String getMessage() { public String getMessage() {
return message; return message;
} }
public void setMessage(String message) { public void setMessage(String message) {
this.message = message; this.message = message;
} }
} }

View File

@ -52,345 +52,338 @@ import javax.net.ssl.X509TrustManager;
import com.google.gson.JsonParseException; import com.google.gson.JsonParseException;
public class ApiInvoker { public class ApiInvoker {
private static ApiInvoker INSTANCE = new ApiInvoker(); private static ApiInvoker INSTANCE = new ApiInvoker();
private Map private Map<String, String> defaultHeaderMap = new HashMap<String, String>();
<String, String> defaultHeaderMap = new HashMap
<String, String>();
private HttpClient client = null; private HttpClient client = null;
private boolean ignoreSSLCertificates = false; private boolean ignoreSSLCertificates = false;
private ClientConnectionManager ignoreSSLConnectionManager; private ClientConnectionManager ignoreSSLConnectionManager;
/** Content type "text/plain" with UTF-8 encoding. */ /** Content type "text/plain" with UTF-8 encoding. */
public static final ContentType TEXT_PLAIN_UTF8 = ContentType.create("text/plain", Consts.UTF_8); public static final ContentType TEXT_PLAIN_UTF8 = ContentType.create("text/plain", Consts.UTF_8);
/** /**
* ISO 8601 date time format. * ISO 8601 date time format.
* @see https://en.wikipedia.org/wiki/ISO_8601 * @see https://en.wikipedia.org/wiki/ISO_8601
*/ */
public static final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); public static final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
/** /**
* ISO 8601 date format. * ISO 8601 date format.
* @see https://en.wikipedia.org/wiki/ISO_8601 * @see https://en.wikipedia.org/wiki/ISO_8601
*/ */
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
static { static {
// Use UTC as the default time zone. // Use UTC as the default time zone.
DATE_TIME_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); DATE_TIME_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC"));
DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC"));
// Set default User-Agent. // Set default User-Agent.
setUserAgent("Android-Java-Swagger"); setUserAgent("Android-Java-Swagger");
} }
public static void setUserAgent(String userAgent) { public static void setUserAgent(String userAgent) {
INSTANCE.addDefaultHeader("User-Agent", userAgent); INSTANCE.addDefaultHeader("User-Agent", userAgent);
} }
public static Date parseDateTime(String str) { public static Date parseDateTime(String str) {
try { try {
return DATE_TIME_FORMAT.parse(str); return DATE_TIME_FORMAT.parse(str);
} catch (java.text.ParseException e) { } catch (java.text.ParseException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
public static Date parseDate(String str) { public static Date parseDate(String str) {
try { try {
return DATE_FORMAT.parse(str); return DATE_FORMAT.parse(str);
} catch (java.text.ParseException e) { } catch (java.text.ParseException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
public static String formatDateTime(Date datetime) { public static String formatDateTime(Date datetime) {
return DATE_TIME_FORMAT.format(datetime); return DATE_TIME_FORMAT.format(datetime);
} }
public static String formatDate(Date date) { public static String formatDate(Date date) {
return DATE_FORMAT.format(date); return DATE_FORMAT.format(date);
} }
public static String parameterToString(Object param) { public static String parameterToString(Object param) {
if (param == null) { if (param == null) {
return ""; return "";
} else if (param instanceof Date) { } else if (param instanceof Date) {
return formatDateTime((Date) param); return formatDateTime((Date) param);
} else if (param instanceof Collection) { } else if (param instanceof Collection) {
StringBuilder b = new StringBuilder(); StringBuilder b = new StringBuilder();
for(Object o : (Collection)param) { for(Object o : (Collection)param) {
if(b.length() > 0) { if(b.length() > 0) {
b.append(","); b.append(",");
} }
b.append(String.valueOf(o)); b.append(String.valueOf(o));
} }
return b.toString(); return b.toString();
} else { } else {
return String.valueOf(param); return String.valueOf(param);
} }
} }
public ApiInvoker() { public ApiInvoker() {
initConnectionManager(); initConnectionManager();
} }
public static ApiInvoker getInstance() { public static ApiInvoker getInstance() {
return INSTANCE; return INSTANCE;
} }
public void ignoreSSLCertificates(boolean ignoreSSLCertificates) { public void ignoreSSLCertificates(boolean ignoreSSLCertificates) {
this.ignoreSSLCertificates = ignoreSSLCertificates; this.ignoreSSLCertificates = ignoreSSLCertificates;
} }
public void addDefaultHeader(String key, String value) { public void addDefaultHeader(String key, String value) {
defaultHeaderMap.put(key, value); defaultHeaderMap.put(key, value);
} }
public String escapeString(String str) { public String escapeString(String str) {
return str; return str;
} }
public static Object deserialize(String json, String containerType, Class cls) throws ApiException { public static Object deserialize(String json, String containerType, Class cls) throws ApiException {
try{ try{
if("list".equalsIgnoreCase(containerType) || "array".equalsIgnoreCase(containerType)) { if("list".equalsIgnoreCase(containerType) || "array".equalsIgnoreCase(containerType)) {
return JsonUtil.deserializeToList(json, cls); return JsonUtil.deserializeToList(json, cls);
} }
else if(String.class.equals(cls)) { else if(String.class.equals(cls)) {
if(json != null && json.startsWith("\"") && json.endsWith("\"") && json.length() > 1) if(json != null && json.startsWith("\"") && json.endsWith("\"") && json.length() > 1)
return json.substring(1, json.length() - 2); return json.substring(1, json.length() - 2);
else else
return json; return json;
} }
else { else {
return JsonUtil.deserializeToObject(json, cls); return JsonUtil.deserializeToObject(json, cls);
} }
} }
catch (JsonParseException e) { catch (JsonParseException e) {
throw new ApiException(500, e.getMessage()); throw new ApiException(500, e.getMessage());
} }
} }
public static String serialize(Object obj) throws ApiException { public static String serialize(Object obj) throws ApiException {
try { try {
if (obj != null) if (obj != null)
return JsonUtil.serialize(obj); return JsonUtil.serialize(obj);
else else
return null; return null;
} }
catch (Exception e) { catch (Exception e) {
throw new ApiException(500, e.getMessage()); throw new ApiException(500, e.getMessage());
} }
} }
public String invokeAPI(String host, String path, String method, Map public String invokeAPI(String host, String path, String method, Map<String, String> queryParams, Object body, Map<String, String> headerParams, Map<String, String> formParams, String contentType) throws ApiException {
<String, String> queryParams, Object body, Map HttpClient client = getClient(host);
<String, String> headerParams, Map
<String, String> formParams, String contentType) throws ApiException {
HttpClient client = getClient(host);
StringBuilder b = new StringBuilder(); StringBuilder b = new StringBuilder();
for(String key : queryParams.keySet()) { for(String key : queryParams.keySet()) {
String value = queryParams.get(key); String value = queryParams.get(key);
if (value != null){ if (value != null){
if(b.toString().length() == 0) if(b.toString().length() == 0)
b.append("?"); b.append("?");
else else
b.append("&"); b.append("&");
b.append(escapeString(key)).append("=").append(escapeString(value)); b.append(escapeString(key)).append("=").append(escapeString(value));
} }
} }
String url = host + path + b.toString(); String url = host + path + b.toString();
HashMap HashMap<String, String> headers = new HashMap<String, String>();
<String, String> headers = new HashMap
<String, String>();
for(String key : headerParams.keySet()) { for(String key : headerParams.keySet()) {
headers.put(key, headerParams.get(key)); headers.put(key, headerParams.get(key));
} }
for(String key : defaultHeaderMap.keySet()) { for(String key : defaultHeaderMap.keySet()) {
if(!headerParams.containsKey(key)) { if(!headerParams.containsKey(key)) {
headers.put(key, defaultHeaderMap.get(key)); headers.put(key, defaultHeaderMap.get(key));
} }
} }
headers.put("Accept", "application/json"); headers.put("Accept", "application/json");
// URL encoded string from form parameters // URL encoded string from form parameters
String formParamStr = null; String formParamStr = null;
// for form data // for form data
if ("application/x-www-form-urlencoded".equals(contentType)) { if ("application/x-www-form-urlencoded".equals(contentType)) {
StringBuilder formParamBuilder = new StringBuilder(); StringBuilder formParamBuilder = new StringBuilder();
// encode the form params // encode the form params
for (String key : formParams.keySet()) { for (String key : formParams.keySet()) {
String value = formParams.get(key); String value = formParams.get(key);
if (value != null && !"".equals(value.trim())) { if (value != null && !"".equals(value.trim())) {
if (formParamBuilder.length() > 0) { if (formParamBuilder.length() > 0) {
formParamBuilder.append("&"); formParamBuilder.append("&");
} }
try { try {
formParamBuilder.append(URLEncoder.encode(key, "utf8")).append("=").append(URLEncoder.encode(value, "utf8")); formParamBuilder.append(URLEncoder.encode(key, "utf8")).append("=").append(URLEncoder.encode(value, "utf8"));
} }
catch (Exception e) { catch (Exception e) {
// move on to next // move on to next
} }
} }
} }
formParamStr = formParamBuilder.toString(); formParamStr = formParamBuilder.toString();
} }
HttpResponse response = null; HttpResponse response = null;
try { try {
if ("GET".equals(method)) { if ("GET".equals(method)) {
HttpGet get = new HttpGet(url); HttpGet get = new HttpGet(url);
get.addHeader("Accept", "application/json"); get.addHeader("Accept", "application/json");
for(String key : headers.keySet()) { for(String key : headers.keySet()) {
get.setHeader(key, headers.get(key)); get.setHeader(key, headers.get(key));
} }
response = client.execute(get); response = client.execute(get);
} }
else if ("POST".equals(method)) { else if ("POST".equals(method)) {
HttpPost post = new HttpPost(url); HttpPost post = new HttpPost(url);
if (formParamStr != null) { if (formParamStr != null) {
post.setHeader("Content-Type", contentType); post.setHeader("Content-Type", contentType);
post.setEntity(new StringEntity(formParamStr, "UTF-8")); post.setEntity(new StringEntity(formParamStr, "UTF-8"));
} else if (body != null) { } else if (body != null) {
if (body instanceof HttpEntity) { if (body instanceof HttpEntity) {
// this is for file uploading // this is for file uploading
post.setEntity((HttpEntity) body); post.setEntity((HttpEntity) body);
} else { } else {
post.setHeader("Content-Type", contentType); post.setHeader("Content-Type", contentType);
post.setEntity(new StringEntity(serialize(body), "UTF-8")); post.setEntity(new StringEntity(serialize(body), "UTF-8"));
} }
} }
for(String key : headers.keySet()) { for(String key : headers.keySet()) {
post.setHeader(key, headers.get(key)); post.setHeader(key, headers.get(key));
} }
response = client.execute(post); response = client.execute(post);
} }
else if ("PUT".equals(method)) { else if ("PUT".equals(method)) {
HttpPut put = new HttpPut(url); HttpPut put = new HttpPut(url);
if (formParamStr != null) { if (formParamStr != null) {
put.setHeader("Content-Type", contentType); put.setHeader("Content-Type", contentType);
put.setEntity(new StringEntity(formParamStr, "UTF-8")); put.setEntity(new StringEntity(formParamStr, "UTF-8"));
} else if (body != null) { } else if (body != null) {
put.setHeader("Content-Type", contentType); put.setHeader("Content-Type", contentType);
put.setEntity(new StringEntity(serialize(body), "UTF-8")); put.setEntity(new StringEntity(serialize(body), "UTF-8"));
} }
for(String key : headers.keySet()) { for(String key : headers.keySet()) {
put.setHeader(key, headers.get(key)); put.setHeader(key, headers.get(key));
} }
response = client.execute(put); response = client.execute(put);
} }
else if ("DELETE".equals(method)) { else if ("DELETE".equals(method)) {
HttpDelete delete = new HttpDelete(url); HttpDelete delete = new HttpDelete(url);
for(String key : headers.keySet()) { for(String key : headers.keySet()) {
delete.setHeader(key, headers.get(key)); delete.setHeader(key, headers.get(key));
} }
response = client.execute(delete); response = client.execute(delete);
} }
else if ("PATCH".equals(method)) { else if ("PATCH".equals(method)) {
HttpPatch patch = new HttpPatch(url); HttpPatch patch = new HttpPatch(url);
if (formParamStr != null) { if (formParamStr != null) {
patch.setHeader("Content-Type", contentType); patch.setHeader("Content-Type", contentType);
patch.setEntity(new StringEntity(formParamStr, "UTF-8")); patch.setEntity(new StringEntity(formParamStr, "UTF-8"));
} else if (body != null) { } else if (body != null) {
patch.setHeader("Content-Type", contentType); patch.setHeader("Content-Type", contentType);
patch.setEntity(new StringEntity(serialize(body), "UTF-8")); patch.setEntity(new StringEntity(serialize(body), "UTF-8"));
} }
for(String key : headers.keySet()) { for(String key : headers.keySet()) {
patch.setHeader(key, headers.get(key)); patch.setHeader(key, headers.get(key));
} }
response = client.execute(patch); response = client.execute(patch);
} }
int code = response.getStatusLine().getStatusCode(); int code = response.getStatusLine().getStatusCode();
String responseString = null; String responseString = null;
if(code == 204) if(code == 204)
responseString = ""; responseString = "";
else if(code >= 200 && code < 300) { else if(code >= 200 && code < 300) {
if(response.getEntity() != null) { if(response.getEntity() != null) {
HttpEntity resEntity = response.getEntity(); HttpEntity resEntity = response.getEntity();
responseString = EntityUtils.toString(resEntity); responseString = EntityUtils.toString(resEntity);
} }
return responseString; return responseString;
} }
else { else {
if(response.getEntity() != null) { if(response.getEntity() != null) {
HttpEntity resEntity = response.getEntity(); HttpEntity resEntity = response.getEntity();
responseString = EntityUtils.toString(resEntity); responseString = EntityUtils.toString(resEntity);
} }
else else
responseString = "no data"; responseString = "no data";
} }
throw new ApiException(code, responseString); throw new ApiException(code, responseString);
} }
catch(IOException e) { catch(IOException e) {
throw new ApiException(500, e.getMessage()); throw new ApiException(500, e.getMessage());
} }
} }
private HttpClient getClient(String host) { private HttpClient getClient(String host) {
if (client == null) { if (client == null) {
if (ignoreSSLCertificates && ignoreSSLConnectionManager != null) { if (ignoreSSLCertificates && ignoreSSLConnectionManager != null) {
// Trust self signed certificates // Trust self signed certificates
client = new DefaultHttpClient(ignoreSSLConnectionManager, new BasicHttpParams()); client = new DefaultHttpClient(ignoreSSLConnectionManager, new BasicHttpParams());
} else { } else {
client = new DefaultHttpClient(); client = new DefaultHttpClient();
} }
} }
return client; return client;
} }
private void initConnectionManager() { private void initConnectionManager() {
try { try {
final SSLContext sslContext = SSLContext.getInstance("SSL"); final SSLContext sslContext = SSLContext.getInstance("SSL");
// set up a TrustManager that trusts everything // set up a TrustManager that trusts everything
TrustManager[] trustManagers = new TrustManager[] { TrustManager[] trustManagers = new TrustManager[] {
new X509TrustManager() { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() { public X509Certificate[] getAcceptedIssuers() {
return null; return null;
} }
public void checkClientTrusted(X509Certificate[] certs, String authType) {} public void checkClientTrusted(X509Certificate[] certs, String authType) {}
public void checkServerTrusted(X509Certificate[] certs, String authType) {} public void checkServerTrusted(X509Certificate[] certs, String authType) {}
}}; }};
sslContext.init(null, trustManagers, new SecureRandom()); sslContext.init(null, trustManagers, new SecureRandom());
SSLSocketFactory sf = new SSLSocketFactory((KeyStore)null) { SSLSocketFactory sf = new SSLSocketFactory((KeyStore)null) {
private javax.net.ssl.SSLSocketFactory sslFactory = sslContext.getSocketFactory(); private javax.net.ssl.SSLSocketFactory sslFactory = sslContext.getSocketFactory();
public Socket createSocket(Socket socket, String host, int port, boolean autoClose) public Socket createSocket(Socket socket, String host, int port, boolean autoClose)
throws IOException, UnknownHostException { throws IOException, UnknownHostException {
return sslFactory.createSocket(socket, host, port, autoClose); return sslFactory.createSocket(socket, host, port, autoClose);
} }
public Socket createSocket() throws IOException { public Socket createSocket() throws IOException {
return sslFactory.createSocket(); return sslFactory.createSocket();
} }
}; };
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Scheme httpsScheme = new Scheme("https", sf, 443); Scheme httpsScheme = new Scheme("https", sf, 443);
SchemeRegistry schemeRegistry = new SchemeRegistry(); SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(httpsScheme); schemeRegistry.register(httpsScheme);
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
ignoreSSLConnectionManager = new ThreadSafeClientConnManager(new BasicHttpParams(), schemeRegistry); ignoreSSLConnectionManager = new ThreadSafeClientConnManager(new BasicHttpParams(), schemeRegistry);
} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {
// This will only be thrown if SSL isn't available for some reason. // This will only be thrown if SSL isn't available for some reason.
} catch (KeyManagementException e) { } catch (KeyManagementException e) {
// This might be thrown when passing a key into init(), but no key is being passed. // This might be thrown when passing a key into init(), but no key is being passed.
} catch (GeneralSecurityException e) { } catch (GeneralSecurityException e) {
// This catches anything else that might go wrong. // This catches anything else that might go wrong.
// If anything goes wrong we default to the standard connection manager. // If anything goes wrong we default to the standard connection manager.
} }
} }
} }

View File

@ -1,93 +1,93 @@
{{#useAndroidMavenGradlePlugin}} {{#useAndroidMavenGradlePlugin}}
group = '{{groupId}}' group = '{{groupId}}'
project.version = '{{artifactVersion}}' project.version = '{{artifactVersion}}'
{{/useAndroidMavenGradlePlugin}} {{/useAndroidMavenGradlePlugin}}
buildscript { buildscript {
repositories { repositories {
jcenter() jcenter()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:1.2.2' classpath 'com.android.tools.build:gradle:1.2.2'
{{#useAndroidMavenGradlePlugin}} {{#useAndroidMavenGradlePlugin}}
classpath 'com.github.dcendents:android-maven-plugin:1.2' classpath 'com.github.dcendents:android-maven-plugin:1.2'
{{/useAndroidMavenGradlePlugin}} {{/useAndroidMavenGradlePlugin}}
} }
} }
allprojects { allprojects {
repositories { repositories {
jcenter() jcenter()
} }
} }
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
{{#useAndroidMavenGradlePlugin}} {{#useAndroidMavenGradlePlugin}}
apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.github.dcendents.android-maven'
{{/useAndroidMavenGradlePlugin}} {{/useAndroidMavenGradlePlugin}}
android { android {
compileSdkVersion 22 compileSdkVersion 22
buildToolsVersion '22.0.0' buildToolsVersion '22.0.0'
defaultConfig { defaultConfig {
minSdkVersion 14 minSdkVersion 14
targetSdkVersion 22 targetSdkVersion 22
} }
// Rename the aar correctly // Rename the aar correctly
libraryVariants.all { variant -> libraryVariants.all { variant ->
variant.outputs.each { output -> variant.outputs.each { output ->
def outputFile = output.outputFile def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.aar')) { if (outputFile != null && outputFile.name.endsWith('.aar')) {
def fileName = "${project.name}-${variant.baseName}-${version}.aar" def fileName = "${project.name}-${variant.baseName}-${version}.aar"
output.outputFile = new File(outputFile.parent, fileName) output.outputFile = new File(outputFile.parent, fileName)
} }
} }
} }
} }
ext { ext {
swagger_annotations_version = "1.5.0" swagger_annotations_version = "1.5.0"
gson_version = "2.3.1" gson_version = "2.3.1"
httpclient_version = "4.3.3" httpclient_version = "4.3.3"
junit_version = "4.8.1" junit_version = "4.8.1"
} }
dependencies { dependencies {
compile "io.swagger:swagger-annotations:$swagger_annotations_version" compile "io.swagger:swagger-annotations:$swagger_annotations_version"
compile "com.google.code.gson:gson:$gson_version" compile "com.google.code.gson:gson:$gson_version"
compile "org.apache.httpcomponents:httpcore:$httpclient_version" compile "org.apache.httpcomponents:httpcore:$httpclient_version"
compile "org.apache.httpcomponents:httpclient:$httpclient_version" compile "org.apache.httpcomponents:httpclient:$httpclient_version"
compile ("org.apache.httpcomponents:httpcore:$httpclient_version") { compile ("org.apache.httpcomponents:httpcore:$httpclient_version") {
exclude(group: 'org.apache.httpcomponents', module: 'httpclient') exclude(group: 'org.apache.httpcomponents', module: 'httpclient')
} }
compile ("org.apache.httpcomponents:httpmime:$httpclient_version") { compile ("org.apache.httpcomponents:httpmime:$httpclient_version") {
exclude(group: 'org.apache.httpcomponents', module: 'httpclient') exclude(group: 'org.apache.httpcomponents', module: 'httpclient')
} }
testCompile "junit:junit:$junit_version" testCompile "junit:junit:$junit_version"
} }
afterEvaluate { afterEvaluate {
android.libraryVariants.all { variant -> android.libraryVariants.all { variant ->
def task = project.tasks.create "jar${variant.name.capitalize()}", Jar def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
task.description = "Create jar artifact for ${variant.name}" task.description = "Create jar artifact for ${variant.name}"
task.dependsOn variant.javaCompile task.dependsOn variant.javaCompile
task.from variant.javaCompile.destinationDir task.from variant.javaCompile.destinationDir
task.destinationDir = project.file("${project.buildDir}/outputs/jar") task.destinationDir = project.file("${project.buildDir}/outputs/jar")
task.archiveName = "${project.name}-${variant.baseName}-${version}.jar" task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
artifacts.add('archives', task); artifacts.add('archives', task);
} }
} }
{{#useAndroidMavenGradlePlugin}} {{#useAndroidMavenGradlePlugin}}
task sourcesJar(type: Jar) { task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs from android.sourceSets.main.java.srcDirs
classifier = 'sources' classifier = 'sources'
} }
artifacts { artifacts {
archives sourcesJar archives sourcesJar
} }
{{/useAndroidMavenGradlePlugin}} {{/useAndroidMavenGradlePlugin}}

View File

@ -3,14 +3,14 @@ package {{invokerPackage}};
import org.apache.http.client.methods.*; import org.apache.http.client.methods.*;
public class HttpPatch extends HttpPost { public class HttpPatch extends HttpPost {
public static final String METHOD_PATCH = "PATCH"; public static final String METHOD_PATCH = "PATCH";
public HttpPatch(final String url) { public HttpPatch(final String url) {
super(url); super(url);
} }
@Override @Override
public String getMethod() { public String getMethod() {
return METHOD_PATCH; return METHOD_PATCH;
} }
} }

View File

@ -8,29 +8,27 @@ import java.util.List;
import {{modelPackage}}.*; import {{modelPackage}}.*;
public class JsonUtil { public class JsonUtil {
public static GsonBuilder gsonBuilder; public static GsonBuilder gsonBuilder;
static { static {
gsonBuilder = new GsonBuilder(); gsonBuilder = new GsonBuilder();
gsonBuilder.serializeNulls(); gsonBuilder.serializeNulls();
gsonBuilder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); gsonBuilder.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
} }
public static Gson getGson() { public static Gson getGson() {
return gsonBuilder.create(); return gsonBuilder.create();
} }
public static String serialize(Object obj){ public static String serialize(Object obj){
return getGson().toJson(obj); return getGson().toJson(obj);
} }
public static public static <T> T deserializeToList(String jsonString, Class cls){
<T> T deserializeToList(String jsonString, Class cls){
return getGson().fromJson(jsonString, getListTypeForDeserialization(cls)); return getGson().fromJson(jsonString, getListTypeForDeserialization(cls));
} }
public static public static <T> T deserializeToObject(String jsonString, Class cls){
<T> T deserializeToObject(String jsonString, Class cls){
return getGson().fromJson(jsonString, getTypeForDeserialization(cls)); return getGson().fromJson(jsonString, getTypeForDeserialization(cls));
} }
@ -38,14 +36,10 @@ public static
String className = cls.getSimpleName(); String className = cls.getSimpleName();
{{#models}}{{#model}} {{#models}}{{#model}}
if ("{{classname}}".equalsIgnoreCase(className)) { if ("{{classname}}".equalsIgnoreCase(className)) {
return new TypeToken return new TypeToken<List<{{classname}}>>(){}.getType();
<List
<{{classname}}>>(){}.getType();
} }
{{/model}}{{/models}} {{/model}}{{/models}}
return new TypeToken return new TypeToken<List<Object>>(){}.getType();
<List
<Object>>(){}.getType();
} }
public static Type getTypeForDeserialization(Class cls) { public static Type getTypeForDeserialization(Class cls) {
@ -55,8 +49,7 @@ public static
return new TypeToken<{{classname}}>(){}.getType(); return new TypeToken<{{classname}}>(){}.getType();
} }
{{/model}}{{/models}} {{/model}}{{/models}}
return new TypeToken return new TypeToken<Object>(){}.getType();
<Object>(){}.getType();
} }
}; };

View File

@ -1,3 +1,3 @@
<manifest package="{{invokerPackage}}"> <manifest package="{{invokerPackage}}">
<application/> <application />
</manifest> </manifest>

View File

@ -7,12 +7,12 @@ import io.swagger.annotations.*;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
{{#models}} {{#models}}
{{#model}}{{#description}} {{#model}}{{#description}}
/** /**
* {{description}} * {{description}}
**/{{/description}} **/{{/description}}
@ApiModel(description = "{{{description}}}") @ApiModel(description = "{{{description}}}")
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} { public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {
{{#vars}}{{#isEnum}} {{#vars}}{{#isEnum}}
public enum {{datatypeWithEnum}} { public enum {{datatypeWithEnum}} {
{{#allowableValues}}{{#values}} {{.}}, {{/values}}{{/allowableValues}} {{#allowableValues}}{{#values}} {{.}}, {{/values}}{{/allowableValues}}
@ -47,6 +47,6 @@ import com.google.gson.annotations.SerializedName;
{{/vars}}sb.append("}\n"); {{/vars}}sb.append("}\n");
return sb.toString(); return sb.toString();
} }
} }
{{/model}} {{/model}}
{{/models}} {{/models}}

View File

@ -77,8 +77,7 @@
</goals> </goals>
<configuration> <configuration>
<sources> <sources>
<source> <source>src/main/java</source>
src/main/java</source>
</sources> </sources>
</configuration> </configuration>
</execution> </execution>
@ -90,8 +89,7 @@
</goals> </goals>
<configuration> <configuration>
<sources> <sources>
<source> <source>src/test/java</source>
src/test/java</source>
</sources> </sources>
</configuration> </configuration>
</execution> </execution>
@ -102,8 +100,7 @@
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version> <version>2.3.2</version>
<configuration> <configuration>
<source> <source>1.6</source>
1.6</source>
<target>1.6</target> <target>1.6</target>
</configuration> </configuration>
</plugin> </plugin>