Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
d47e08c
first pass
Mar 14, 2025
b12e2b7
Fix extra new line
guiarn Mar 17, 2025
ccf127d
adding generator file
Mar 17, 2025
3e1411b
Run new.sh script
guiarn Mar 17, 2025
0189a41
Fix template directory and ignore failing tests
guiarn Mar 17, 2025
24a057e
fixing up content type
Mar 17, 2025
db1df42
adding controller impl
Mar 18, 2025
2a54629
cleanup interface
Mar 18, 2025
20e09d1
typo
Mar 18, 2025
02d053c
removing bodytype
Mar 18, 2025
4b2bcd0
adding protos
Mar 18, 2025
aad809d
fixing 2
Mar 18, 2025
7708982
Fix headerParamsSimple
guiarn Mar 18, 2025
f78df8b
removing protos etc.
Mar 18, 2025
bb2c3bd
fixing imports
Mar 18, 2025
fbd2ffe
removing commented code
Mar 18, 2025
5b03254
fixing imports
Mar 18, 2025
97f995e
fixing return
Mar 18, 2025
dc2b524
fixing file
Mar 18, 2025
d98953c
adding comment
Mar 18, 2025
1da1a68
remove adminapi
Mar 18, 2025
b1fce20
move to jakarta
Mar 18, 2025
2fe8aca
reverting break
Mar 18, 2025
7622409
fixing httpMethods
Mar 18, 2025
7b6ac07
pushing mediaTypes
Mar 18, 2025
cbacdbd
Adds gradle mustache templates
guiarn Mar 17, 2025
48b3c2d
Setup simple build.gradle.kts
guiarn Mar 18, 2025
1c1c356
Adds basic model.mustache for model generation
guiarn Mar 18, 2025
c59be0d
fixing summary
Mar 19, 2025
00ae587
fixing summary 2
Mar 19, 2025
fecee52
Removes unnecesssary line
guiarn Mar 19, 2025
87d18b8
fixing return type
Mar 19, 2025
db7a5d9
Merge remote-tracking branch 'origin/cashapp/misk' into cashapp/misk
Mar 19, 2025
8c2a376
fixing override
Mar 19, 2025
1b92dde
fixing httpcall
Mar 19, 2025
406f6ee
Delete proto folder creation
guiarn Mar 19, 2025
617e36b
fixing return type
Mar 19, 2025
f4473c1
fixing void return type
Mar 19, 2025
7d90207
fixing space
Mar 19, 2025
8251e6e
removing reactive
Mar 19, 2025
663aac2
removing imports
Mar 19, 2025
87efe7b
Fixing spacing
Mar 19, 2025
8813634
Fixing tabbing
Mar 19, 2025
b2d86b7
fixing headers
Mar 19, 2025
b2a57ef
add comment
Mar 19, 2025
c815f17
Adds unit tests
guiarn Mar 19, 2025
dce747b
cleanup
Mar 19, 2025
6b2123b
Correct getHelp() description
guiarn Mar 19, 2025
49d8f0d
cleanup 2
Mar 19, 2025
ccb1d91
removiing pathParams files
Mar 19, 2025
70b2a3f
fixup
Mar 19, 2025
d649598
Merge remote-tracking branch 'origin/cashapp/misk' into cashapp/misk
Mar 19, 2025
ac87f48
fixup 3
Mar 19, 2025
27e300a
removing more files
Mar 19, 2025
bf277fd
Adds GitHub Workflow generation
guiarn Mar 19, 2025
abc4dd7
removing form params as not required
Mar 19, 2025
0cf82f9
Merge remote-tracking branch 'origin/cashapp/misk' into cashapp/misk
Mar 19, 2025
584e6ef
Adds tests for OptionsProvider
guiarn Mar 19, 2025
c3f38c7
Renamed file to match
Mar 20, 2025
13d9f10
Merge remote-tracking branch 'origin/cashapp/misk' into cashapp/misk
Mar 20, 2025
c7b6fdb
remove whitespace
Mar 20, 2025
557edd2
remove whitespace
Mar 20, 2025
0b817e1
adding documentation
Mar 20, 2025
d132bcd
adding documentation
Mar 20, 2025
553f791
removing swagger annotations
Mar 20, 2025
d00d82a
adding tests
Mar 20, 2025
e602d05
Adds Guice Module
guiarn Mar 20, 2025
f69425f
Grab OpenAPI title to generate module name
guiarn Mar 20, 2025
d9958fe
Revert "Grab OpenAPI title to generate module name"
guiarn Mar 20, 2025
5b82849
Update sample
guiarn Mar 20, 2025
9653b82
Removes moduleFileName additional property
guiarn Mar 20, 2025
e1168dd
adding tests
Mar 20, 2025
07a4c32
Merge remote-tracking branch 'origin/cashapp/misk' into cashapp/misk
Mar 20, 2025
6a87f91
adding tests 2
Mar 20, 2025
f5a64a1
adding tests 3
Mar 20, 2025
8ed681a
adding tests 4
Mar 20, 2025
0e04ff0
added media types
Mar 20, 2025
431ed06
re-adding tests
Mar 20, 2025
f73cc10
fixing camelcase
Mar 20, 2025
75061d7
fixing mediatypes
Mar 20, 2025
9663da7
default mediatype
Mar 21, 2025
7d67448
adding validation
Mar 21, 2025
165f1bf
adding validation
Mar 21, 2025
f9a448f
removing swagger
Mar 21, 2025
1095540
adding gradle dependency
Mar 21, 2025
bdf13a6
adding gradle dependency
Mar 21, 2025
98705f9
fixing types
Mar 21, 2025
3c09ceb
fixing return types
Mar 21, 2025
68dd9a3
fixing tests
Mar 21, 2025
d56f808
final fixes
Mar 21, 2025
1bcff51
tweaks
Mar 21, 2025
754c7d2
fixing file etc.
Mar 21, 2025
f0c0c52
Update samples/ folder
guiarn Mar 21, 2025
c8fbb24
fixing jakarta
Mar 21, 2025
4923146
Merge remote-tracking branch 'origin/cashapp/misk' into cashapp/misk
Mar 21, 2025
d4974b7
fixing jakarta 2
Mar 21, 2025
9a25d7e
fixing impl
Mar 21, 2025
17a006a
Fix unit tests
guiarn Mar 21, 2025
ffae64f
fixing jakarta
Mar 21, 2025
10f2915
fixing jakarta 2
Mar 21, 2025
f41e5bb
final final final changes
Mar 21, 2025
de8ea3b
Fix initialization of BigDecimal for default values
guiarn Mar 21, 2025
9b60c46
update samples, docs
wing328 Mar 23, 2025
30fab8a
fixing RequestHeader
Mar 24, 2025
609f2ba
fixing RequestHeader 2
Mar 24, 2025
8ddf965
Merge remote-tracking branch 'origin/cashapp/misk' into cashapp/misk
Mar 24, 2025
6dec952
fixing RequestHeader 2
Mar 24, 2025
18d0ac0
add validateSpec=false
Mar 24, 2025
413db65
fix pom version
Mar 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/samples-kotlin-server-jdk17.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
- samples/server/petstore/kotlin-server/javalin-6
- samples/server/petstore/kotlin-server/ktor
- samples/server/petstore/kotlin-server/ktor2
- samples/server/petstore/kotlin-misk
# comment out due to gradle build failure
# - samples/server/petstore/kotlin-spring-default/
steps:
Expand All @@ -66,4 +67,4 @@ jobs:
arguments: wrapper
- name: Build
working-directory: ${{ matrix.sample }}
run: ./gradlew build -x test
run: ./gradlew build -x test
1 change: 1 addition & 0 deletions .github/workflows/samples-kotlin-server-jdk21.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ jobs:
- samples/server/petstore/kotlin-server/ktor
- samples/server/petstore/kotlin-server/ktor2
- samples/server/petstore/kotlin-server-required-and-nullable-properties
- samples/server/petstore/kotlin-misk
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/samples-kotlin-server.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ jobs:
- samples/server/others/kotlin-server/jaxrs-spec
- samples/server/others/kotlin-server/jaxrs-spec-array-response
- samples/server/petstore/kotlin-spring-cloud
- samples/server/petstore/kotlin-misk
# comment out due to gradle build failure
#- samples/server/petstore/kotlin-spring-default
# no build.gradle file
Expand All @@ -73,4 +74,4 @@ jobs:
arguments: wrapper
- name: Build
working-directory: ${{ matrix.sample }}
run: ./gradlew build -x test
run: ./gradlew build -x test
8 changes: 8 additions & 0 deletions bin/configs/kotlin-misk.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
generatorName: kotlin-misk
outputDir: samples/server/petstore/kotlin-misk
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/kotlin-misk
validateSpec: false
additionalProperties:
hideGenerationTimestamp: "true"
moduleClassName: "PetStoreModule"
1 change: 1 addition & 0 deletions docs/generators.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ The following generators are available:
* [jaxrs-resteasy-eap](generators/jaxrs-resteasy-eap.md)
* [jaxrs-spec](generators/jaxrs-spec.md)
* [julia-server (beta)](generators/julia-server.md)
* [kotlin-misk](generators/kotlin-misk.md)
* [kotlin-server](generators/kotlin-server.md)
* [kotlin-spring](generators/kotlin-spring.md)
* [kotlin-vertx (beta)](generators/kotlin-vertx.md)
Expand Down
279 changes: 279 additions & 0 deletions docs/generators/kotlin-misk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,279 @@
---
title: Documentation for the kotlin-misk Generator
---

## METADATA

| Property | Value | Notes |
| -------- | ----- | ----- |
| generator name | kotlin-misk | pass this to the generate command after -g |
| generator stability | STABLE | |
| generator type | SERVER | |
| generator language | Kotlin | |
| generator default templating engine | mustache | |
| helpTxt | Generates a kotlin-misk server. | |

## CONFIG OPTIONS
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.

| Option | Description | Values | Default |
| ------ | ----------- | ------ | ------- |
|additionalModelTypeAnnotations|Additional annotations for model type(class level annotations). List separated by semicolon(;) or new line (Linux or Windows)| |null|
|apiSuffix|suffix for api classes| |Api|
|artifactId|Generated artifact id (name of jar).| |null|
|artifactVersion|Generated artifact's package version.| |1.0.0|
|enumPropertyNaming|Naming convention for enum properties: 'camelCase', 'PascalCase', 'snake_case', 'UPPERCASE', and 'original'| |original|
|groupId|Generated artifact package's organization (i.e. maven groupId).| |org.openapitools|
|modelMutable|Create mutable models| |false|
|moduleClassName|Name of the generated module class| |OpenApiModule|
|packageName|Generated artifact package name.| |org.openapitools|
|parcelizeModels|toggle "@Parcelize" for generated models| |null|
|serializableModel|boolean - toggle "implements Serializable" for generated models| |null|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |null|
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |null|
|sourceFolder|source folder for generated code| |src/main/kotlin|
|useBeanValidation|Use BeanValidation API annotations to validate data types| |true|

## IMPORT MAPPING

| Type/Alias | Imports |
| ---------- | ------- |
|BigDecimal|java.math.BigDecimal|
|Date|java.time.LocalDate|
|DateTime|java.time.OffsetDateTime|
|File|java.io.File|
|LocalDate|java.time.LocalDate|
|LocalDateTime|java.time.LocalDateTime|
|LocalTime|java.time.LocalTime|
|Timestamp|java.sql.Timestamp|
|URI|java.net.URI|
|UUID|java.util.UUID|


## INSTANTIATION TYPES

| Type/Alias | Instantiated By |
| ---------- | --------------- |
|array|kotlin.collections.ArrayList|
|list|kotlin.collections.ArrayList|
|map|kotlin.collections.HashMap|


## LANGUAGE PRIMITIVES

<ul class="column-ul">
<li>kotlin.Array</li>
<li>kotlin.Boolean</li>
<li>kotlin.Byte</li>
<li>kotlin.ByteArray</li>
<li>kotlin.Char</li>
<li>kotlin.Double</li>
<li>kotlin.Float</li>
<li>kotlin.Int</li>
<li>kotlin.Long</li>
<li>kotlin.Short</li>
<li>kotlin.String</li>
<li>kotlin.collections.List</li>
<li>kotlin.collections.Map</li>
<li>kotlin.collections.MutableList</li>
<li>kotlin.collections.MutableMap</li>
<li>kotlin.collections.MutableSet</li>
<li>kotlin.collections.Set</li>
</ul>

## RESERVED WORDS

<ul class="column-ul">
<li>ApiResponse</li>
<li>abstract</li>
<li>actual</li>
<li>annotation</li>
<li>as</li>
<li>break</li>
<li>class</li>
<li>companion</li>
<li>const</li>
<li>constructor</li>
<li>continue</li>
<li>contract</li>
<li>crossinline</li>
<li>data</li>
<li>delegate</li>
<li>do</li>
<li>dynamic</li>
<li>else</li>
<li>enum</li>
<li>expect</li>
<li>external</li>
<li>false</li>
<li>field</li>
<li>final</li>
<li>finally</li>
<li>for</li>
<li>fun</li>
<li>if</li>
<li>import</li>
<li>in</li>
<li>infix</li>
<li>init</li>
<li>inline</li>
<li>inner</li>
<li>interface</li>
<li>internal</li>
<li>is</li>
<li>it</li>
<li>lateinit</li>
<li>noinline</li>
<li>null</li>
<li>object</li>
<li>open</li>
<li>operator</li>
<li>out</li>
<li>override</li>
<li>package</li>
<li>param</li>
<li>private</li>
<li>property</li>
<li>protected</li>
<li>public</li>
<li>receiver</li>
<li>reified</li>
<li>return</li>
<li>sealed</li>
<li>setparam</li>
<li>super</li>
<li>suspend</li>
<li>tailrec</li>
<li>this</li>
<li>throw</li>
<li>true</li>
<li>try</li>
<li>typealias</li>
<li>typeof</li>
<li>val</li>
<li>value</li>
<li>var</li>
<li>vararg</li>
<li>when</li>
<li>where</li>
<li>while</li>
</ul>

## FEATURE SET


### Client Modification Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasePath|✗|ToolingExtension
|Authorizations|✗|ToolingExtension
|UserAgent|✗|ToolingExtension
|MockServer|✗|ToolingExtension

### Data Type Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Custom|✗|OAS2,OAS3
|Int32|✓|OAS2,OAS3
|Int64|✓|OAS2,OAS3
|Float|✓|OAS2,OAS3
|Double|✓|OAS2,OAS3
|Decimal|✓|ToolingExtension
|String|✓|OAS2,OAS3
|Byte|✓|OAS2,OAS3
|Binary|✓|OAS2,OAS3
|Boolean|✓|OAS2,OAS3
|Date|✓|OAS2,OAS3
|DateTime|✓|OAS2,OAS3
|Password|✓|OAS2,OAS3
|File|✓|OAS2
|Uuid|✗|
|Array|✓|OAS2,OAS3
|Null|✗|OAS3
|AnyType|✗|OAS2,OAS3
|Object|✓|OAS2,OAS3
|Maps|✓|ToolingExtension
|CollectionFormat|✓|OAS2
|CollectionFormatMulti|✓|OAS2
|Enum|✓|OAS2,OAS3
|ArrayOfEnum|✓|ToolingExtension
|ArrayOfModel|✓|ToolingExtension
|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
|ArrayOfCollectionOfModel|✓|ToolingExtension
|ArrayOfCollectionOfEnum|✓|ToolingExtension
|MapOfEnum|✓|ToolingExtension
|MapOfModel|✓|ToolingExtension
|MapOfCollectionOfPrimitives|✓|ToolingExtension
|MapOfCollectionOfModel|✓|ToolingExtension
|MapOfCollectionOfEnum|✓|ToolingExtension

### Documentation Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Readme|✓|ToolingExtension
|Model|✓|ToolingExtension
|Api|✓|ToolingExtension

### Global Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Host|✓|OAS2,OAS3
|BasePath|✓|OAS2,OAS3
|Info|✓|OAS2,OAS3
|Schemes|✗|OAS2,OAS3
|PartialSchemes|✓|OAS2,OAS3
|Consumes|✓|OAS2
|Produces|✓|OAS2
|ExternalDocumentation|✓|OAS2,OAS3
|Examples|✓|OAS2,OAS3
|XMLStructureDefinitions|✗|OAS2,OAS3
|MultiServer|✗|OAS3
|ParameterizedServer|✗|OAS3
|ParameterStyling|✗|OAS3
|Callbacks|✗|OAS3
|LinkObjects|✗|OAS3

### Parameter Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Path|✓|OAS2,OAS3
|Query|✓|OAS2,OAS3
|Header|✓|OAS2,OAS3
|Body|✓|OAS2
|FormUnencoded|✓|OAS2
|FormMultipart|✓|OAS2
|Cookie|✓|OAS3

### Schema Support Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|Simple|✓|OAS2,OAS3
|Composite|✓|OAS2,OAS3
|Polymorphism|✗|OAS2,OAS3
|Union|✗|OAS3
|allOf|✗|OAS2,OAS3
|anyOf|✗|OAS3
|oneOf|✗|OAS3
|not|✗|OAS3

### Security Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|BasicAuth|✗|OAS2,OAS3
|ApiKey|✗|OAS2,OAS3
|OpenIDConnect|✗|OAS3
|BearerToken|✗|OAS3
|OAuth2_Implicit|✗|OAS2,OAS3
|OAuth2_Password|✗|OAS2,OAS3
|OAuth2_ClientCredentials|✗|OAS2,OAS3
|OAuth2_AuthorizationCode|✗|OAS2,OAS3
|SignatureAuth|✗|OAS3
|AWSV4Signature|✗|ToolingExtension

### Wire Format Feature
| Name | Supported | Defined By |
| ---- | --------- | ---------- |
|JSON|✗|OAS2,OAS3
|XML|✗|OAS2,OAS3
|PROTOBUF|✓|ToolingExtension
|Custom|✗|OAS2,OAS3
Loading
Loading