Skip to main content

# Documentation for the java-msf4j Generator

## METADATA​

Property | Value | Notes
--- | --- | ---
generator name | java-msf4j | pass this to the generate command after -g
generator stability | STABLE |
generator type | SERVER |
generator language | Java |
generator default templating engine | mustache |
helpTxt | Generates a Java Micro Service based on WSO2 Microservices Framework for Java (MSF4J) |

## CONFIG OPTIONS​

These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.

Option | Description | Values | Default
--- | --- | --- | ---
additionalEnumTypeAnnotations | Additional annotations for enum type(class level annotations) |  | null
additionalModelTypeAnnotations | Additional annotations for model type(class level annotations). List separated by semicolon(;) or new line (Linux or Windows) |  | null
additionalOneOfTypeAnnotations | Additional annotations for oneOf interfaces(class level annotations). List separated by semicolon(;) or new line (Linux or Windows) |  | null
allowUnicodeIdentifiers | boolean, toggles whether unicode identifiers are allowed in names or not, default is false |  | false
apiPackage | package for generated api classes |  | org.openapitools.api
artifactDescription | artifact description in generated pom.xml |  | OpenAPI Java
artifactId | artifactId in generated pom.xml. This also becomes part of the generated library's filename |  | openapi-jaxrs-server
artifactUrl | artifact URL in generated pom.xml |  | https://github.com/openapitools/openapi-generator
artifactVersion | artifact version in generated pom.xml. This also becomes part of the generated library's filename |  | 1.0.0
bigDecimalAsString | Treat BigDecimal values as Strings to avoid precision loss. |  | false
booleanGetterPrefix | Set booleanGetterPrefix |  | get
camelCaseDollarSign | Fix camelCase when starting with $ sign. when true : $Value when false : $value |  | false
containerDefaultToNull | Set containers (array, set, map) default to null |  | false
dateLibrary | Option. Date library to use | joda Joda (for legacy app only) legacy Legacy java.util.Date java8-localdatetime Java 8 using LocalDateTime (for legacy app only) java8 Java 8 native JSR310 (preferred for jdk 1.8+) | legacy
developerEmail | developer email in generated pom.xml |  | team@openapitools.org
developerName | developer name in generated pom.xml |  | OpenAPI-Generator Contributors
developerOrganization | developer organization in generated pom.xml |  | OpenAPITools.org
developerOrganizationUrl | developer organization URL in generated pom.xml |  | http://openapitools.org
disableHtmlEscaping | Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields) |  | false
disallowAdditionalPropertiesIfNotPresent | If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default. | false The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications. true Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default. | true
discriminatorCaseSensitive | Whether the discriminator value lookup should be case-sensitive or not. This option only works for Java API client |  | true
ensureUniqueParams | Whether to ensure parameter names are unique in an operation (rename parameters that are not). |  | true
enumUnknownDefaultCase | If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case. | false No changes to the enum's are made, this is the default option. true With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case. | false
groupId | groupId in generated pom.xml |  | org.openapitools
hideGenerationTimestamp | Hides the generation timestamp when files are generated. |  | false
ignoreAnyOfInEnum | Ignore anyOf keyword in enum |  | false
implFolder | folder for generated implementation code |  | src/main/java
implicitHeaders | Skip header parameters in the generated API methods using @ApiImplicitParams annotation. |  | false
implicitHeadersRegex | Skip header parameters that matches given regex in the generated API methods using @ApiImplicitParams annotation. Note: this parameter is ignored when implicitHeaders=true |  | null
invokerPackage | root package for generated code |  | org.openapitools.api
legacyDiscriminatorBehavior | Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default). | true The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document. false The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing. | true
library | library template (sub-template) | jersey2 Jersey core 2.x | jersey2
licenseName | The name of the license |  | Unlicense
licenseUrl | The URL of the license |  | http://unlicense.org
modelPackage | package for generated models |  | org.openapitools.model
openApiNullable | Enable OpenAPI Jackson Nullable library |  | true
parentArtifactId | parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect |  | null
parentGroupId | parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect |  | null
parentVersion | parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect |  | null
prependFormOrBodyParameters | Add form or body parameters to the beginning of the parameter list. |  | false
scmConnection | SCM connection in generated pom.xml |  | scm:git:git@github.com:openapitools/openapi-generator.git
scmDeveloperConnection | SCM developer connection in generated pom.xml |  | scm:git:git@github.com:openapitools/openapi-generator.git
scmUrl | SCM URL in generated pom.xml |  | https://github.com/openapitools/openapi-generator
serializableModel | boolean - toggle "implements Serializable" for generated models |  | false
serverPort | The port on which the server should be started |  | 8080
snapshotVersion | Uses a SNAPSHOT version. | true Use a SnapShot Version false Use a Release Version | null
sortModelPropertiesByRequiredFlag | Sort model properties to place required parameters before optional parameters. |  | true
sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. |  | true
sourceFolder | source folder for generated code |  | src/gen/java
testOutput | Set output folder for models and APIs tests |  | ${project.build.directory}/generated-test-sources/openapi
title | a title describing the application |  | OpenAPI Server
useBeanValidation | Use BeanValidation API annotations |  | true
useJakartaEe | whether to use Jakarta EE namespace instead of javax |  | false
useOneOfInterfaces | whether to use a java interface to describe a set of oneOf options, where each option is a class that implements the interface |  | false
useTags | use tags for creating interface and controller classnames |  | false
withXml | whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML) |  | false

## SUPPORTED VENDOR EXTENSIONS​

Extension name | Description | Applicable for | Default value
--- | --- | --- | ---
x-discriminator-value | Used with model inheritance to specify value for discriminator that identifies current model | MODEL |
x-implements | Ability to specify interfaces that model must implements | MODEL | empty array
x-setter-extra-annotation | Custom annotation that can be specified over java setter for specific field | FIELD | When field is array & uniqueItems, then this extension is used to add `@JsonDeserialize(as = LinkedHashSet.class)` over setter, otherwise no value
x-tags | Specify multiple swagger tags for operation | OPERATION | null
x-accepts | Specify custom value for 'Accept' header for operation | OPERATION | null
x-content-type | Specify custom value for 'Content-Type' header for operation | OPERATION | null
x-class-extra-annotation | List of custom annotations to be added to model | MODEL | null
x-field-extra-annotation | List of custom annotations to be added to property | FIELD | null

## IMPORT MAPPING​

Type/Alias | Imports
--- | ---
Array | java.util.List
ArrayList | java.util.ArrayList
BigDecimal | java.math.BigDecimal
Date | java.util.Date
DateTime | org.joda.time.*
File | java.io.File
HashMap | java.util.HashMap
LinkedHashSet | java.util.LinkedHashSet
List | java.util.*
LocalDate | org.joda.time.*
LocalDateTime | org.joda.time.*
LocalTime | org.joda.time.*
Map | java.util.Map
Set | java.util.*
Timestamp | java.sql.Timestamp
URI | java.net.URI
UUID | java.util.UUID

## INSTANTIATION TYPES​

Type/Alias | Instantiated By
--- | ---
array | ArrayList
map | HashMap
set | LinkedHashSet

## LANGUAGE PRIMITIVES​

- Boolean
- Double
- Float
- Integer
- Long
- Object
- String
- boolean
- byte[]

## RESERVED WORDS​

- abstract
- apiclient
- apiexception
- apiresponse
- assert
- boolean
- break
- byte
- case
- catch
- char
- class
- configuration
- const
- continue
- default
- do
- double
- else
- enum
- extends
- file
- final
- finally
- float
- for
- goto
- if
- implements
- import
- instanceof
- int
- interface
- list
- localdate
- localreturntype
- localtime
- localvaraccept
- localvaraccepts
- localvarauthnames
- localvarcollectionqueryparams
- localvarcontenttype
- localvarcontenttypes
- localvarcookieparams
- localvarformparams
- localvarheaderparams
- localvarpath
- localvarpostbody
- localvarqueryparams
- long
- native
- new
- null
- object
- offsetdatetime
- package
- private
- protected
- public
- return
- short
- static
- strictfp
- stringutil
- super
- switch
- synchronized
- this
- throw
- throws
- transient
- try
- void
- volatile
- while

## 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