* Introduce GeneratorSettings + cleanup
GeneratorSettings is an immutable settings object, intended to limit the
manipulation of generator settings.
To move to GeneratorSettings, lots of modification was done to
CodegenConfigurator. The goal here is that CodegenConfigurator
would create the contextual information required to initiate a
generator run:
* GeneratorSettings
* Workflow related settings
* Configuring "system" GeneratorProperties (ThreadLocal properties)
* Deserializing from file to config object
* Input spec document (OpenAPI, intending to target others)
ClientOpts was generally unused, and the few places it was being used
have been updated to pass the properties to
codegen.additionalProperties.
* Add sanity to system properties
The -D argument for the generate command is an application argument
which is easily confused for Java System Properties. This isn't the
case, as setting values here doesn't update the configuration in
System.getProperties().
This adds a warning and deprecation to that option, as defining these
values as system properties will also continue to work as expected. This
makes the -D application argument redundant and confusing.
* Contextualize generator/workflow settings
This splits settings relevant to generator configuration (the what) and
workflow configuration (the how) in an attempt to make configuration
easier to conceptualize.
* Update Gradle task w/ CodegenConfigurator setters
* Remove -D usage in scripts
* Add -p option for additional properties
* Regnerate samples
* Restore test classes to commit 5340c35ce1
* Fix samples/client/petstore/java/feign
* Fix samples/client/petstore/java/jersey1
* Fix samples/client/petstore/java/jersey2-java8
* Fix samples/client/petstore/java/jersey2
* Fix samples/client/petstore/java/okhttp-gson
* Fix samples/client/petstore/java/resttemplate/src/test/java
* Move "StringUtilTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Fix echo line
* Move tests to 'test-manual/common/'
* Move "ApiClientTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "ConfigurationTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "auth/ApiKeyAuthTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "auth/HttpBasicAuthTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "model/EnumValueTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Move "JSONTest.java" to "samples.ci"
and add copy command in *.sh scripts
* Replace "cp" => "mkdir & cp"
* JSONTest.java is java8 specific
* Run bin/java-petstore-all.sh
* "$_" does not work on Shippable
The $@ option in bash doesn't make sense to come before `generate`
because the only option we can pass before generate cli usage is `help`.
System properties can be passed via JAVA_OPTS, so there's not really a
need for any intermediaries in the command line construction.
Having $@ at the end of the arguments list allows maintainers and users
inspecting options to quickly pass new options to a script. For example,
```
./bin/aspnetcore-petstore.sh --additional-properties sourceFolder=asdf
```
For command line arguments that may appear more than once in the
arguments list, this change doesn't provide any rules about overwriting
values that may exist (hard-coded) in the script. That is, in the
example above, if aspnetcore-petstore.sh already includes the
sourceFolder set to a different value, the "winning" value is up to the
options parser and openapi-generator-cli implementation.
* Add support for Spring's RestTemplate in Java client codegen
Resolves#1176
* Update all Java samples to include change for Jackson enums
Currently enums are deserialized from a String value with an
explicit @JsonCreator. However, they are not being serialized with
this String value. This change introduces the @JsonValue annotation
on the toString() method of enums, so they will be serialized as a
String with the correct value.