Skip to content

Commit 1acf5d2

Browse files
committed
Merge pull request #1816 from xhh/android-volley-library
[Android] Change the android-volley client codegen to an Android library (sub template)
2 parents 0635c60 + beabe8c commit 1acf5d2

File tree

89 files changed

+142
-467
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+142
-467
lines changed

.dockerignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ samples/client/petstore/qt5cpp/build-*
3030
samples/client/petstore/qt5cpp/PetStore/PetStore
3131
samples/client/petstore/qt5cpp/PetStore/Makefile
3232
samples/client/petstore/java/hello.txt
33-
samples/client/petstore/android-java/hello.txt
33+
samples/client/petstore/android/default/hello.txt
3434
samples/client/petstore/objc/Build
3535
samples/client/petstore/objc/Pods
3636
samples/server/petstore/nodejs/node_modules

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ samples/client/petstore/qt5cpp/build-*
3131
samples/client/petstore/qt5cpp/PetStore/PetStore
3232
samples/client/petstore/qt5cpp/PetStore/Makefile
3333
samples/client/petstore/java/hello.txt
34-
samples/client/petstore/android-java/hello.txt
34+
samples/client/petstore/android/default/hello.txt
3535
samples/client/petstore/objc/SwaggerClientTests/Build
3636
samples/client/petstore/objc/SwaggerClientTests/Pods
3737
samples/client/petstore/objc/SwaggerClientTests/SwaggerClient.xcworkspace

bin/all-petstore.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ fi
1919

2020
cd $APP_DIR
2121
./bin/akka-scala-petstore.sh
22-
./bin/android-java-petstore.sh
22+
./bin/android-petstore.sh
2323
./bin/clojure-petstore.sh
2424
./bin/csharp-petstore.sh
2525
./bin/dynamic-html.sh

bin/android-petstore-volley.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"library": "volley",
3+
"artifactId": "swagger-petstore-android-volley"
4+
}

bin/android-volley-petstore.sh renamed to bin/android-petstore-volley.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ fi
2626

2727
# if you've executed sbt assembly previously it will use that instead.
2828
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
29-
ags="$@ generate -t ../modules/swagger-codegen/src/main/resources/android-volley -i ../modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android-volley -o samples/client/petstore/android-volley"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android -c bin/android-petstore-volley.json -o samples/client/petstore/android/volley"
3030

31-
java $JAVA_OPTS -jar $executable $ags
31+
java $JAVA_OPTS -jar $executable $ags

bin/android-java-petstore.sh renamed to bin/android-petstore.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ fi
2626

2727
# if you've executed sbt assembly previously it will use that instead.
2828
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
29-
ags="$@ generate -t modules/swagger-codegen/src/main/resources/android-java -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android -o samples/client/petstore/android-java"
29+
ags="$@ generate -t modules/swagger-codegen/src/main/resources/android -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android -o samples/client/petstore/android/default"
3030

3131
java $JAVA_OPTS -jar $executable $ags

bin/windows/android-java-petstore.bat renamed to bin/windows/android-petstore.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ If Not Exist %executable% (
55
)
66

77
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties
8-
set ags=generate -t modules\swagger-codegen\src\main\resources\android-java -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l android -o samples\client\petstore\android-java
8+
set ags=generate -t modules\swagger-codegen\src\main\resources\android -i modules\swagger-codegen\src\test\resources\2_0\petstore.json -l android -o samples\client\petstore\android\default
99

1010
java %JAVA_OPTS% -jar %executable% %ags%

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidClientCodegen.java

Lines changed: 63 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,16 @@ public class AndroidClientCodegen extends DefaultCodegen implements CodegenConfi
2727
protected String sourceFolder = projectFolder + "/java";
2828
protected Boolean useAndroidMavenGradlePlugin = true;
2929

30+
// requestPackage and authPackage are used by the "volley" template/library
31+
protected String requestPackage = "io.swagger.client.request";
32+
protected String authPackage = "io.swagger.client.auth";
33+
3034
public AndroidClientCodegen() {
3135
super();
3236
outputFolder = "generated-code/android";
3337
modelTemplateFiles.put("model.mustache", ".java");
3438
apiTemplateFiles.put("api.mustache", ".java");
35-
embeddedTemplateDir = templateDir = "android-java";
39+
embeddedTemplateDir = templateDir = "android";
3640
apiPackage = "io.swagger.client.api";
3741
modelPackage = "io.swagger.client.model";
3842

@@ -70,6 +74,12 @@ public AndroidClientCodegen() {
7074
cliOptions.add(new CliOption(CodegenConstants.SOURCE_FOLDER, CodegenConstants.SOURCE_FOLDER_DESC));
7175
cliOptions.add(CliOption.newBoolean(USE_ANDROID_MAVEN_GRADLE_PLUGIN, "A flag to toggle android-maven gradle plugin.")
7276
.defaultValue(Boolean.TRUE.toString()));
77+
78+
supportedLibraries.put("<default>", "HTTP client: Apache HttpClient 4.3.6. JSON processing: Gson 2.3.1");
79+
supportedLibraries.put("volley", "HTTP client: Volley 1.0.19");
80+
CliOption library = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use");
81+
library.setEnum(supportedLibraries);
82+
cliOptions.add(library);
7383
}
7484

7585
@Override
@@ -236,22 +246,67 @@ public void processOpts() {
236246
additionalProperties.put(USE_ANDROID_MAVEN_GRADLE_PLUGIN, useAndroidMavenGradlePlugin);
237247
}
238248

239-
supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
240-
additionalProperties.put(USE_ANDROID_MAVEN_GRADLE_PLUGIN, useAndroidMavenGradlePlugin);
249+
if (additionalProperties.containsKey(CodegenConstants.LIBRARY)) {
250+
this.setLibrary((String) additionalProperties.get(CodegenConstants.LIBRARY));
251+
}
241252

253+
if (StringUtils.isEmpty(getLibrary())) {
254+
addSupportingFilesForDefault();
255+
} else if ("volley".equals(getLibrary())) {
256+
addSupportingFilesForVolley();
257+
}
258+
}
259+
260+
private void addSupportingFilesForDefault() {
261+
supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
242262
supportingFiles.add(new SupportingFile("settings.gradle.mustache", "", "settings.gradle"));
243263
supportingFiles.add(new SupportingFile("build.mustache", "", "build.gradle"));
244264
supportingFiles.add(new SupportingFile("manifest.mustache", projectFolder, "AndroidManifest.xml"));
245265
supportingFiles.add(new SupportingFile("apiInvoker.mustache",
246-
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "ApiInvoker.java"));
266+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "ApiInvoker.java"));
247267
supportingFiles.add(new SupportingFile("httpPatch.mustache",
248-
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "HttpPatch.java"));
268+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "HttpPatch.java"));
269+
supportingFiles.add(new SupportingFile("jsonUtil.mustache",
270+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "JsonUtil.java"));
271+
supportingFiles.add(new SupportingFile("apiException.mustache",
272+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "ApiException.java"));
273+
supportingFiles.add(new SupportingFile("Pair.mustache",
274+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "Pair.java"));
275+
}
276+
277+
private void addSupportingFilesForVolley() {
278+
// supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
279+
// supportingFiles.add(new SupportingFile("settings.gradle.mustache", "", "settings.gradle"));
280+
supportingFiles.add(new SupportingFile("build.mustache", "", "build.gradle"));
281+
supportingFiles.add(new SupportingFile("manifest.mustache", projectFolder, "AndroidManifest.xml"));
282+
supportingFiles.add(new SupportingFile("apiInvoker.mustache",
283+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "ApiInvoker.java"));
284+
supportingFiles.add(new SupportingFile("responses.mustache",
285+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "Responses.java"));
286+
// supportingFiles.add(new SupportingFile("httpPatch.mustache",
287+
// (sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "HttpPatch.java"));
249288
supportingFiles.add(new SupportingFile("jsonUtil.mustache",
250-
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "JsonUtil.java"));
289+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "JsonUtil.java"));
251290
supportingFiles.add(new SupportingFile("apiException.mustache",
252-
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "ApiException.java"));
291+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "ApiException.java"));
253292
supportingFiles.add(new SupportingFile("Pair.mustache",
254-
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "Pair.java"));
293+
(sourceFolder + File.separator + invokerPackage).replace(".", File.separator), "Pair.java"));
294+
supportingFiles.add(new SupportingFile("request/getrequest.mustache",
295+
(sourceFolder + File.separator + requestPackage).replace(".", File.separator), "GetRequest.java"));
296+
supportingFiles.add(new SupportingFile("request/postrequest.mustache",
297+
(sourceFolder + File.separator + requestPackage).replace(".", File.separator), "PostRequest.java"));
298+
supportingFiles.add(new SupportingFile("request/putrequest.mustache",
299+
(sourceFolder + File.separator + requestPackage).replace(".", File.separator), "PutRequest.java"));
300+
supportingFiles.add(new SupportingFile("request/deleterequest.mustache",
301+
(sourceFolder + File.separator + requestPackage).replace(".", File.separator), "DeleteRequest.java"));
302+
supportingFiles.add(new SupportingFile("request/patchrequest.mustache",
303+
(sourceFolder + File.separator + requestPackage).replace(".", File.separator), "PatchRequest.java"));
304+
supportingFiles.add(new SupportingFile("auth/apikeyauth.mustache",
305+
(sourceFolder + File.separator + authPackage).replace(".", File.separator), "ApiKeyAuth.java"));
306+
supportingFiles.add(new SupportingFile("auth/httpbasicauth.mustache",
307+
(sourceFolder + File.separator + authPackage).replace(".", File.separator), "HttpBasicAuth.java"));
308+
supportingFiles.add(new SupportingFile("auth/authentication.mustache",
309+
(sourceFolder + File.separator + authPackage).replace(".", File.separator), "Authentication.java"));
255310
}
256311

257312
public Boolean getUseAndroidMavenGradlePlugin() {

0 commit comments

Comments
 (0)