* 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
* various updates
* update pom.xml
* update ci config with new location
* Change "swagger-codegen" to "openapi-generator" in a comment
* fix pom.xml for bash client
* minor fix to github ID
* fix pom for ios
* [tools] Make sed in new.sh more cross-platform
The -r option passed to sed is a GNU sed option for extended regex
evaluation. The -E option evaluates the same option, and is part of the
POSIX standard, meaning this option is available in GNU sed as well as
Apple's BSD variant.
This commit removes the need for users to install gnu-sed on Mac.
* [ktor] Initial ktor (kotlin-server)
This adds a very barebones implementation for a ktor server generator.
This supports metrics and typed locations. All endpoins are stubbed to
return HTTP/1.1 501 Not Implemented.
* [ktor] Initial sample
* [ktor] Adding options for select feature installs
Options available:
* featureAutoHead
* featureConditionalHeaders
* featureHSTS
* featureCORS
* featureCompression
* [ktor] Start of auth functionality
* [ktor] API key auth placeholder
* Add basic support for oauth2 configurations
ktor doesn't seem to explicitly accept oauth flow properties in its
configuration object. This may be a blocker for 'implicit' flow
definitions.
* Added example response objects
* [ktor] Route for apis with bodies, some cleanup
ktor locations are only supported for routes with path/query parameters.
Routes with body or file parameters must be declared with traditional
route api.
This commit also includes lambdas for simplifying processing in
library-based server generator code. As an example, ktor requires
lowercase http methods while spring (a potential future generator)
would require an uppercase such as HttpMethod.GET. It doesn't make sense
to modify these in the operations post-process method because that
format wouldn't be universally desirable.
The lambdas included in the KotlinServerCodegen:
* lowercase: converts all text to lowercase
* uppercase: converts all text to UPPERCASE
* titlecase: converts words (with configurable delim) to Title Case
* indented|indented_8|indented_12|indented_16: these helpers apply the
same desired indent to all lines of an included fragment's text.
* Fix some javadoc issues in lambda classes
* Update kotlin-server-petstore.bat
Change `kotlin` to `kotlin-server`
* Fix javadoc error messages in CI