From fad4b59f342a3c16a5dfdd4fb35f3fda10a907d3 Mon Sep 17 00:00:00 2001 From: Anna Shipil Date: Fri, 29 May 2026 10:50:10 +0200 Subject: [PATCH 1/6] DEVX-796: updating jackson version --- .../client/builder/model/JavaModelInterfaceRenderer.kt | 6 +++--- .../client/builder/producers/JavaModelClassFileProducer.kt | 4 ++-- .../client/builder/requests/JavaHttpRequestRenderer.kt | 2 +- .../builder/requests/JavaStringHttpRequestRenderer.kt | 2 +- .../languages/java/base/extensions/JavaMethodExtensions.kt | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt index e19828e9..0904931a 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt @@ -50,7 +50,7 @@ class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: Vrap |${type.subclassImport()} | |import com.fasterxml.jackson.annotation.*; - |import com.fasterxml.jackson.databind.annotation.*; + |import tools.jackson.databind.annotation.*; |import io.vrap.rmf.base.client.utils.Generated; |import io.vrap.rmf.base.client.Accessor; |import jakarta.validation.Valid; @@ -118,8 +118,8 @@ class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: Vrap | * gives a TypeReference for usage with Jackson DataBind | * @return TypeReference | */ - |public static com.fasterxml.jackson.core.type.TypeReference<${vrapType.simpleClassName}> typeReference() { - | return new com.fasterxml.jackson.core.type.TypeReference<${vrapType.simpleClassName}>() { + |public static tools.jackson.core.type.TypeReference<${vrapType.simpleClassName}> typeReference() { + | return new tools.jackson.core.type.TypeReference<${vrapType.simpleClassName}>() { | @Override | public String toString() { | return "TypeReference<${vrapType.simpleClassName}>"; diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt index cbc5dc00..44813ca9 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt @@ -50,8 +50,8 @@ class JavaModelClassFileProducer constructor(override val vrapTypeProvider: Vrap |import java.util.*; |import java.time.*; | - |import com.fasterxml.jackson.core.JsonProcessingException; - |import com.fasterxml.jackson.databind.annotation.*; + |import tools.jackson.core.exc.JacksonException; + |import import tools.jackson.databind.annotation.*; |import com.fasterxml.jackson.annotation.JsonAnySetter; |import com.fasterxml.jackson.annotation.JsonCreator; |import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt index f66d3f6d..a3aa8b92 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt @@ -78,7 +78,7 @@ class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTyp |import java.util.stream.Collectors; |import java.util.concurrent.CompletableFuture; |import io.vrap.rmf.base.client.utils.Generated; - |import com.fasterxml.jackson.core.type.TypeReference; + |import tools.jackson.core.type.TypeReference; | |import javax.annotation.Nullable; | diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt index 2a41e47d..dfc3c582 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt @@ -73,7 +73,7 @@ class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: V |import java.util.stream.Collectors; |import java.util.concurrent.CompletableFuture; |import io.vrap.rmf.base.client.utils.Generated; - |import com.fasterxml.jackson.core.type.TypeReference; + |import tools.jackson.core.type.TypeReference; | |import javax.annotation.Nullable; | diff --git a/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/extensions/JavaMethodExtensions.kt b/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/extensions/JavaMethodExtensions.kt index 688896de..cd223272 100644 --- a/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/extensions/JavaMethodExtensions.kt +++ b/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/extensions/JavaMethodExtensions.kt @@ -13,7 +13,7 @@ fun Method.javaReturnType(vrapTypeProvider: VrapTypeProvider) : String { if(returnType is VrapObjectType) { return "${returnType.`package`.toJavaPackage()}.${returnType.simpleClassName}" } - return "com.fasterxml.jackson.databind.JsonNode" + return "tools.jackson.databind.JsonNode" } fun Method.toStringRequestName(): String { From 91952fb7bc450b71446c7dc363b6caa706dacb43 Mon Sep 17 00:00:00 2001 From: Anna Shipil Date: Tue, 2 Jun 2026 14:43:41 +0200 Subject: [PATCH 2/6] DEVX-796: adding jackson version parameter --- .../vrap/rmf/codegen/CodeGeneratorConfig.kt | 3 ++- .../model/JavaModelInterfaceRenderer.kt | 11 +++++----- .../client/builder/module/JavaClientModule.kt | 4 ++-- .../builder/module/JavaCompleteModule.kt | 6 ++--- .../producers/JavaModelClassFileProducer.kt | 9 +++++--- .../requests/JavaHttpRequestRenderer.kt | 22 ++++++++++--------- .../requests/JavaStringHttpRequestRenderer.kt | 22 ++++++++++--------- .../languages/java/base/ExtensionsBase.kt | 2 ++ .../base/extensions/JavaMethodExtensions.kt | 8 +++++-- .../rmf/codegen/cli/GenerateSubcommand.kt | 2 ++ 10 files changed, 53 insertions(+), 36 deletions(-) diff --git a/codegen-core/src/main/kotlin/io/vrap/rmf/codegen/CodeGeneratorConfig.kt b/codegen-core/src/main/kotlin/io/vrap/rmf/codegen/CodeGeneratorConfig.kt index 41229002..abcfd3b5 100644 --- a/codegen-core/src/main/kotlin/io/vrap/rmf/codegen/CodeGeneratorConfig.kt +++ b/codegen-core/src/main/kotlin/io/vrap/rmf/codegen/CodeGeneratorConfig.kt @@ -20,5 +20,6 @@ data class CodeGeneratorConfig ( val writeGitHash: Boolean = false, val outputFolder: Path = Paths.get("build/gensrc"), val customTypeMapping: Map = mapOf(), - val inlineExamples: Boolean = false + val inlineExamples: Boolean = false, + val jacksonV3: Boolean = false ) diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt index 0904931a..c50435d1 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt @@ -7,6 +7,7 @@ import io.vrap.codegen.languages.extensions.namedSubTypes import io.vrap.codegen.languages.extensions.toComment import io.vrap.codegen.languages.java.base.JavaSubTemplates import io.vrap.codegen.languages.java.base.extensions.* +import io.vrap.rmf.codegen.CodeGeneratorConfig import io.vrap.rmf.codegen.firstLowerCase import io.vrap.rmf.codegen.firstUpperCase import io.vrap.rmf.codegen.io.TemplateFile @@ -20,8 +21,9 @@ import io.vrap.rmf.raml.model.types.util.TypesSwitch import org.eclipse.emf.ecore.EObject import javax.lang.model.SourceVersion -class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: VrapTypeProvider) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, ObjectTypeRenderer { +class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, override val generatorConfig: CodeGeneratorConfig) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, ObjectTypeRenderer { + val jacksonVersion = if (generatorConfig.jacksonV3) "tools" else "com.fasterxml" override fun render(type: ObjectType): TemplateFile { val vrapType = vrapTypeProvider.doSwitch(type).toJavaVType() as VrapObjectType @@ -42,7 +44,6 @@ class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: Vrap } ) .filterNotNull() - val content= """ |package ${vrapType.`package`}; | @@ -50,7 +51,7 @@ class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: Vrap |${type.subclassImport()} | |import com.fasterxml.jackson.annotation.*; - |import tools.jackson.databind.annotation.*; + |import ${jacksonVersion}.jackson.databind.annotation.*; |import io.vrap.rmf.base.client.utils.Generated; |import io.vrap.rmf.base.client.Accessor; |import jakarta.validation.Valid; @@ -118,8 +119,8 @@ class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: Vrap | * gives a TypeReference for usage with Jackson DataBind | * @return TypeReference | */ - |public static tools.jackson.core.type.TypeReference<${vrapType.simpleClassName}> typeReference() { - | return new tools.jackson.core.type.TypeReference<${vrapType.simpleClassName}>() { + |public static ${jacksonVersion}.jackson.core.type.TypeReference<${vrapType.simpleClassName}> typeReference() { + | return new ${jacksonVersion}.jackson.core.type.TypeReference<${vrapType.simpleClassName}>() { | @Override | public String toString() { | return "TypeReference<${vrapType.simpleClassName}>"; diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaClientModule.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaClientModule.kt index 47fd309f..4c2fa733 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaClientModule.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaClientModule.kt @@ -19,8 +19,8 @@ object JavaClientModule: Module { JavaRequestBuilderResourceRenderer(generatorModule.vrapTypeProvider()) ), generatorModule.allResources().filterNot { it.deprecated() }), MethodGenerator(setOf( - JavaHttpRequestRenderer(generatorModule.vrapTypeProvider()), - JavaStringHttpRequestRenderer(generatorModule.vrapTypeProvider()) + JavaHttpRequestRenderer(generatorModule.vrapTypeProvider(), generatorModule.generatorConfig), + JavaStringHttpRequestRenderer(generatorModule.vrapTypeProvider(), generatorModule.generatorConfig) ), generatorModule.allResourceMethods().filterNot { it.deprecated() }), TraitGenerator(setOf( JavaTraitRenderer(generatorModule.vrapTypeProvider()) diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaCompleteModule.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaCompleteModule.kt index 9d0c6432..4feedd72 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaCompleteModule.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaCompleteModule.kt @@ -19,7 +19,7 @@ object JavaCompleteModule: Module { override fun configure(generatorModule: RamlGeneratorModule) = setOf ( ObjectTypeGenerator(setOf( - JavaModelInterfaceRenderer(generatorModule.vrapTypeProvider()) + JavaModelInterfaceRenderer(generatorModule.vrapTypeProvider(), generatorModule.generatorConfig) ), generatorModule.allObjectTypes()), StringTypeGenerator(setOf( JavaStringTypeRenderer(generatorModule.vrapTypeProvider()) @@ -33,8 +33,8 @@ object JavaCompleteModule: Module { JavaRequestBuilderResourceRenderer(generatorModule.vrapTypeProvider()) ), generatorModule.allResources().filterNot { it.deprecated() }), MethodGenerator(setOf( - JavaHttpRequestRenderer(generatorModule.vrapTypeProvider()), - JavaStringHttpRequestRenderer(generatorModule.vrapTypeProvider()) + JavaHttpRequestRenderer(generatorModule.vrapTypeProvider(), generatorModule.generatorConfig), + JavaStringHttpRequestRenderer(generatorModule.vrapTypeProvider(), generatorModule.generatorConfig) ), generatorModule.allResourceMethods().filterNot { it.deprecated() }), TraitGenerator(setOf( JavaTraitRenderer(generatorModule.vrapTypeProvider()) diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt index 44813ca9..e2736d88 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt @@ -5,6 +5,7 @@ import io.vrap.codegen.languages.extensions.isPatternProperty import io.vrap.codegen.languages.extensions.toComment import io.vrap.codegen.languages.java.base.JavaSubTemplates import io.vrap.codegen.languages.java.base.extensions.* +import io.vrap.rmf.codegen.CodeGeneratorConfig import io.vrap.rmf.codegen.di.AllObjectTypes import io.vrap.rmf.codegen.io.TemplateFile import io.vrap.rmf.codegen.rendering.FileProducer @@ -18,8 +19,10 @@ import io.vrap.rmf.raml.model.types.Annotation import javax.lang.model.SourceVersion -class JavaModelClassFileProducer constructor(override val vrapTypeProvider: VrapTypeProvider, @AllObjectTypes private val allObjectTypes: List) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, FileProducer { +class JavaModelClassFileProducer constructor(override val vrapTypeProvider: VrapTypeProvider, override val generatorConfig: CodeGeneratorConfig, @AllObjectTypes private val allObjectTypes: List) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, FileProducer { + val jacksonVersion = if (generatorConfig.jacksonV3) "tools" else "com.fasterxml" + val jacksonExcVersion = if (generatorConfig.jacksonV3) "exc.JacksonException" else "JsonProcessingException" override fun produceFiles(): List { return allObjectTypes.filter{!it.deprecated()}.map { render(it) } } @@ -50,8 +53,8 @@ class JavaModelClassFileProducer constructor(override val vrapTypeProvider: Vrap |import java.util.*; |import java.time.*; | - |import tools.jackson.core.exc.JacksonException; - |import import tools.jackson.databind.annotation.*; + |import ${jacksonVersion}.jackson.core.${jacksonExcVersion}; + |import ${jacksonVersion}.jackson.databind.annotation.*; |import com.fasterxml.jackson.annotation.JsonAnySetter; |import com.fasterxml.jackson.annotation.JsonCreator; |import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt index a3aa8b92..f9a666ed 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt @@ -5,6 +5,7 @@ import com.google.common.net.MediaType import io.vrap.codegen.languages.extensions.* import io.vrap.codegen.languages.java.base.JavaSubTemplates import io.vrap.codegen.languages.java.base.extensions.* +import io.vrap.rmf.codegen.CodeGeneratorConfig import io.vrap.rmf.codegen.firstUpperCase import io.vrap.rmf.codegen.firstLowerCase import io.vrap.rmf.codegen.io.TemplateFile @@ -27,8 +28,9 @@ import org.eclipse.emf.ecore.EObject */ const val PLACEHOLDER_PARAM_ANNOTATION = "placeholderParam" -class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTypeProvider) : MethodRenderer, JavaObjectTypeExtensions, JavaEObjectTypeExtensions { +class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, override val generatorConfig: CodeGeneratorConfig) : MethodRenderer, JavaObjectTypeExtensions, JavaEObjectTypeExtensions { + val jacksonVersion = if (generatorConfig.jacksonV3) "tools" else "com.fasterxml" override fun render(type: Method): TemplateFile { val vrapType = vrapTypeProvider.doSwitch(type as EObject) as VrapObjectType @@ -78,7 +80,7 @@ class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTyp |import java.util.stream.Collectors; |import java.util.concurrent.CompletableFuture; |import io.vrap.rmf.base.client.utils.Generated; - |import tools.jackson.core.type.TypeReference; + |import ${jacksonVersion}.jackson.core.type.TypeReference; | |import javax.annotation.Nullable; | @@ -99,11 +101,11 @@ class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTyp | */ |<${JavaSubTemplates.generatedAnnotation}>${if (type.markDeprecated() ) """ |@Deprecated""" else ""} - |public class ${type.toRequestName()} extends $apiMethodClass\<${type.toRequestName()}, ${type.javaReturnType(vrapTypeProvider)}$bodyTypeClass\>${if (implements.isNotEmpty()) " implements ${implements.joinToString(", ")}" else ""} { + |public class ${type.toRequestName()} extends $apiMethodClass\<${type.toRequestName()}, ${type.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}$bodyTypeClass\>${if (implements.isNotEmpty()) " implements ${implements.joinToString(", ")}" else ""} { | | @Override - | public TypeReference\<${type.javaReturnType(vrapTypeProvider)}\> resultType() { - | return new TypeReference\<${type.javaReturnType(vrapTypeProvider)}\>() { + | public TypeReference\<${type.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}\> resultType() { + | return new TypeReference\<${type.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}\>() { | }; | } | @@ -154,7 +156,7 @@ class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTyp return """ |\
|\\{@code - | CompletableFuture\\> result = apiRoot + | CompletableFuture\\> result = apiRoot | <${builderComment(resource, this)}> |}\\ |\ @@ -384,8 +386,8 @@ class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTyp private fun Method.executeBlockingMethod() : String { return """ |@Override - |public ApiHttpResponse\<${this.javaReturnType(vrapTypeProvider)}\> executeBlocking(final ApiHttpClient client, final Duration timeout) { - | return executeBlocking(client, timeout, ${this.javaReturnType(vrapTypeProvider)}.class); + |public ApiHttpResponse\<${this.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}\> executeBlocking(final ApiHttpClient client, final Duration timeout) { + | return executeBlocking(client, timeout, ${this.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}.class); |} """.trimMargin() } @@ -393,8 +395,8 @@ class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTyp private fun Method.executeMethod() : String { return """ |@Override - |public CompletableFuture\\> execute(final ApiHttpClient client) { - | return execute(client, ${this.javaReturnType(vrapTypeProvider)}.class); + |public CompletableFuture\\> execute(final ApiHttpClient client) { + | return execute(client, ${this.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}.class); |} """.trimMargin() } diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt index dfc3c582..82255577 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt @@ -5,6 +5,7 @@ import com.google.common.net.MediaType import io.vrap.codegen.languages.extensions.* import io.vrap.codegen.languages.java.base.JavaSubTemplates import io.vrap.codegen.languages.java.base.extensions.* +import io.vrap.rmf.codegen.CodeGeneratorConfig import io.vrap.rmf.codegen.firstUpperCase import io.vrap.rmf.codegen.firstLowerCase import io.vrap.rmf.codegen.io.TemplateFile @@ -26,8 +27,9 @@ import org.eclipse.emf.ecore.EObject * Query parameters with this annotation should be ignored by JVM sdk. */ -class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTypeProvider) : MethodRenderer, JavaObjectTypeExtensions, JavaEObjectTypeExtensions { +class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, override val generatorConfig: CodeGeneratorConfig) : MethodRenderer, JavaObjectTypeExtensions, JavaEObjectTypeExtensions { + val jacksonVersion = if (generatorConfig.jacksonV3) "tools" else "com.fasterxml" override fun render(type: Method): TemplateFile { val vrapType = vrapTypeProvider.doSwitch(type as EObject) as VrapObjectType @@ -73,7 +75,7 @@ class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: V |import java.util.stream.Collectors; |import java.util.concurrent.CompletableFuture; |import io.vrap.rmf.base.client.utils.Generated; - |import tools.jackson.core.type.TypeReference; + |import ${jacksonVersion}.jackson.core.type.TypeReference; | |import javax.annotation.Nullable; | @@ -94,11 +96,11 @@ class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: V | */ |<${JavaSubTemplates.generatedAnnotation}>${if (type.markDeprecated() ) """ |@Deprecated""" else ""} - |public class ${type.toStringRequestName()} extends StringBodyApiMethod\<${type.toStringRequestName()}, ${type.javaReturnType(vrapTypeProvider)}\>${if (implements.isNotEmpty()) " implements ${implements.joinToString(", ")}" else ""} { + |public class ${type.toStringRequestName()} extends StringBodyApiMethod\<${type.toStringRequestName()}, ${type.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}\>${if (implements.isNotEmpty()) " implements ${implements.joinToString(", ")}" else ""} { | | @Override - | public TypeReference\<${type.javaReturnType(vrapTypeProvider)}\> resultType() { - | return new TypeReference\<${type.javaReturnType(vrapTypeProvider)}\>() { + | public TypeReference\<${type.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}\> resultType() { + | return new TypeReference\<${type.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}\>() { | }; | } | @@ -147,7 +149,7 @@ class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: V return """ |\
|\\{@code - | CompletableFuture\\> result = apiRoot + | CompletableFuture\\> result = apiRoot | <${builderComment(resource, this)}> |}\\ |\ @@ -293,8 +295,8 @@ class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: V private fun Method.executeBlockingMethod() : String { return """ |@Override - |public ApiHttpResponse\<${this.javaReturnType(vrapTypeProvider)}\> executeBlocking(final ApiHttpClient client, final Duration timeout) { - | return executeBlocking(client, timeout, ${this.javaReturnType(vrapTypeProvider)}.class); + |public ApiHttpResponse\<${this.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}\> executeBlocking(final ApiHttpClient client, final Duration timeout) { + | return executeBlocking(client, timeout, ${this.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}.class); |} """.trimMargin() } @@ -302,8 +304,8 @@ class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: V private fun Method.executeMethod() : String { return """ |@Override - |public CompletableFuture\\> execute(final ApiHttpClient client) { - | return execute(client, ${this.javaReturnType(vrapTypeProvider)}.class); + |public CompletableFuture\\> execute(final ApiHttpClient client) { + | return execute(client, ${this.javaReturnType(vrapTypeProvider, generatorConfig.jacksonV3)}.class); |} """.trimMargin() } diff --git a/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt b/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt index f92d9264..577e72f6 100644 --- a/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt +++ b/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt @@ -1,7 +1,9 @@ package io.vrap.codegen.languages.java.base +import io.vrap.rmf.codegen.CodeGeneratorConfig import io.vrap.rmf.codegen.types.VrapTypeProvider interface ExtensionsBase { val vrapTypeProvider: VrapTypeProvider + val generatorConfig: CodeGeneratorConfig } \ No newline at end of file diff --git a/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/extensions/JavaMethodExtensions.kt b/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/extensions/JavaMethodExtensions.kt index cd223272..e20e18e0 100644 --- a/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/extensions/JavaMethodExtensions.kt +++ b/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/extensions/JavaMethodExtensions.kt @@ -8,12 +8,16 @@ import io.vrap.rmf.codegen.types.VrapObjectType import io.vrap.rmf.codegen.types.VrapTypeProvider import io.vrap.rmf.raml.model.resources.Method -fun Method.javaReturnType(vrapTypeProvider: VrapTypeProvider) : String { +fun Method.javaReturnType(vrapTypeProvider: VrapTypeProvider, jacksonV3: Boolean = false) : String { val returnType = vrapTypeProvider.doSwitch(this.returnType()) if(returnType is VrapObjectType) { return "${returnType.`package`.toJavaPackage()}.${returnType.simpleClassName}" } - return "tools.jackson.databind.JsonNode" + return if (jacksonV3) { + "tools.jackson.databind.JsonNode" + } else { + "com.fasterxml.jackson.databind.JsonNode" + } } fun Method.toStringRequestName(): String { diff --git a/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt b/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt index ff42d5aa..df226f5a 100644 --- a/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt +++ b/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt @@ -95,6 +95,8 @@ const val ValidTargets = "JAVA_CLIENT, JAVA_TEST, JAVA_QUERY_PREDICATES, TYPESCR @CommandLine.Command(name = "generate",description = ["Generate source code from a RAML specification."]) class GenerateSubcommand : Callable { + @CommandLine.Option(names = ["--jackson-version"], description = ["Jackson major version to target (2 or 3)"], required = false, defaultValue = "2") + var jacksonVersion: Int = 2 @CommandLine.Option(names = ["-h", "--help"], usageHelp = true, description = ["display this help message"]) var usageHelpRequested = false From 557280b56fddc9cf18e91d435e4b475145bb52a7 Mon Sep 17 00:00:00 2001 From: Anna Shipil Date: Tue, 2 Jun 2026 15:03:35 +0200 Subject: [PATCH 3/6] DEVX-796: fixing ommandLine.Option for jackson version --- .../main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt b/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt index df226f5a..3ded091b 100644 --- a/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt +++ b/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt @@ -95,8 +95,8 @@ const val ValidTargets = "JAVA_CLIENT, JAVA_TEST, JAVA_QUERY_PREDICATES, TYPESCR @CommandLine.Command(name = "generate",description = ["Generate source code from a RAML specification."]) class GenerateSubcommand : Callable { - @CommandLine.Option(names = ["--jackson-version"], description = ["Jackson major version to target (2 or 3)"], required = false, defaultValue = "2") - var jacksonVersion: Int = 2 + @CommandLine.Option(names = ["--jackson-version"], description = ["Jackson major version to target (2 or 3)"], required = false, defaultValue = "false") + var jacksonV3: Boolean = false @CommandLine.Option(names = ["-h", "--help"], usageHelp = true, description = ["display this help message"]) var usageHelpRequested = false From 3aa62c7e71ba44400e0da3b5c1fbca96687263a0 Mon Sep 17 00:00:00 2001 From: Anna Shipil Date: Tue, 2 Jun 2026 15:06:01 +0200 Subject: [PATCH 4/6] DEVX-796: fixing ExtensionsBase, no need to add a Config parameter for the interface --- .../kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt b/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt index 577e72f6..1ce0824b 100644 --- a/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt +++ b/languages/javalang/java-base/src/main/kotlin/io/vrap/codegen/languages/java/base/ExtensionsBase.kt @@ -5,5 +5,4 @@ import io.vrap.rmf.codegen.types.VrapTypeProvider interface ExtensionsBase { val vrapTypeProvider: VrapTypeProvider - val generatorConfig: CodeGeneratorConfig } \ No newline at end of file From 63a69497b88c9ece3424e9002bf037794dfa48db Mon Sep 17 00:00:00 2001 From: Anna Shipil Date: Tue, 2 Jun 2026 15:10:00 +0200 Subject: [PATCH 5/6] DEVX-796: fixing ExtensionsBase and children, no need to add a Config parameter for the interface --- .../client/builder/model/JavaModelInterfaceRenderer.kt | 2 +- .../javalang/client/builder/module/JavaCompleteModule.kt | 2 +- .../client/builder/module/JavaInterfaceModelModule.kt | 4 ++-- .../javalang/client/builder/module/JavaModelModule.kt | 4 ++-- .../client/builder/producers/JavaModelClassFileProducer.kt | 2 +- .../client/builder/requests/JavaHttpRequestRenderer.kt | 2 +- .../client/builder/requests/JavaStringHttpRequestRenderer.kt | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt index c50435d1..6d351ffd 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/model/JavaModelInterfaceRenderer.kt @@ -21,7 +21,7 @@ import io.vrap.rmf.raml.model.types.util.TypesSwitch import org.eclipse.emf.ecore.EObject import javax.lang.model.SourceVersion -class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, override val generatorConfig: CodeGeneratorConfig) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, ObjectTypeRenderer { +class JavaModelInterfaceRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, val generatorConfig: CodeGeneratorConfig) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, ObjectTypeRenderer { val jacksonVersion = if (generatorConfig.jacksonV3) "tools" else "com.fasterxml" override fun render(type: ObjectType): TemplateFile { diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaCompleteModule.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaCompleteModule.kt index 4feedd72..306af2c6 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaCompleteModule.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaCompleteModule.kt @@ -25,7 +25,7 @@ object JavaCompleteModule: Module { JavaStringTypeRenderer(generatorModule.vrapTypeProvider()) ), generatorModule.allEnumStringTypes()), FileGenerator(setOf( - JavaModelClassFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes()), + JavaModelClassFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes(), generatorModule.generatorConfig), JavaModelDraftBuilderFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes()), JavaApiRootFileProducer(generatorModule.provideClientPackageName(), generatorModule.provideRamlModel()) )), diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaInterfaceModelModule.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaInterfaceModelModule.kt index b9aa801e..a3d1e017 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaInterfaceModelModule.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaInterfaceModelModule.kt @@ -12,13 +12,13 @@ object JavaInterfaceModelModule : Module { override fun configure(generatorModule: RamlGeneratorModule) = setOf ( ObjectTypeGenerator(setOf( - JavaModelInterfaceRenderer(generatorModule.vrapTypeProvider()) + JavaModelInterfaceRenderer(generatorModule.vrapTypeProvider(), generatorModule.generatorConfig) ), generatorModule.allObjectTypes()), StringTypeGenerator(setOf( JavaStringTypeRenderer(generatorModule.vrapTypeProvider()) ), generatorModule.allEnumStringTypes()), FileGenerator(setOf( - JavaModelClassFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes()), + JavaModelClassFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes(), generatorModule.generatorConfig), JavaModelDraftBuilderFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes()) )) ) diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaModelModule.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaModelModule.kt index e19ec82f..456152ac 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaModelModule.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/module/JavaModelModule.kt @@ -14,13 +14,13 @@ object JavaModelModule: Module { override fun configure(generatorModule: RamlGeneratorModule) = setOf ( ObjectTypeGenerator(setOf( - JavaModelInterfaceRenderer(generatorModule.vrapTypeProvider()) + JavaModelInterfaceRenderer(generatorModule.vrapTypeProvider(), generatorModule.generatorConfig) ), generatorModule.allObjectTypes()), StringTypeGenerator(setOf( JavaStringTypeRenderer(generatorModule.vrapTypeProvider()) ), generatorModule.allEnumStringTypes()), FileGenerator(setOf( - JavaModelClassFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes()), + JavaModelClassFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes(), generatorModule.generatorConfig), JavaModelDraftBuilderFileProducer(generatorModule.vrapTypeProvider(), generatorModule.allObjectTypes()), )) ) diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt index e2736d88..5a1eb059 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/producers/JavaModelClassFileProducer.kt @@ -19,7 +19,7 @@ import io.vrap.rmf.raml.model.types.Annotation import javax.lang.model.SourceVersion -class JavaModelClassFileProducer constructor(override val vrapTypeProvider: VrapTypeProvider, override val generatorConfig: CodeGeneratorConfig, @AllObjectTypes private val allObjectTypes: List) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, FileProducer { +class JavaModelClassFileProducer constructor(override val vrapTypeProvider: VrapTypeProvider, @AllObjectTypes private val allObjectTypes: List, val generatorConfig: CodeGeneratorConfig) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, FileProducer { val jacksonVersion = if (generatorConfig.jacksonV3) "tools" else "com.fasterxml" val jacksonExcVersion = if (generatorConfig.jacksonV3) "exc.JacksonException" else "JsonProcessingException" diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt index f9a666ed..ce4a74df 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaHttpRequestRenderer.kt @@ -28,7 +28,7 @@ import org.eclipse.emf.ecore.EObject */ const val PLACEHOLDER_PARAM_ANNOTATION = "placeholderParam" -class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, override val generatorConfig: CodeGeneratorConfig) : MethodRenderer, JavaObjectTypeExtensions, JavaEObjectTypeExtensions { +class JavaHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, val generatorConfig: CodeGeneratorConfig) : MethodRenderer, JavaObjectTypeExtensions, JavaEObjectTypeExtensions { val jacksonVersion = if (generatorConfig.jacksonV3) "tools" else "com.fasterxml" override fun render(type: Method): TemplateFile { diff --git a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt index 82255577..b62554c9 100644 --- a/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt +++ b/languages/javalang/builder-renderer/java-builder-client/src/main/kotlin/io/vrap/codegen/languages/javalang/client/builder/requests/JavaStringHttpRequestRenderer.kt @@ -27,7 +27,7 @@ import org.eclipse.emf.ecore.EObject * Query parameters with this annotation should be ignored by JVM sdk. */ -class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, override val generatorConfig: CodeGeneratorConfig) : MethodRenderer, JavaObjectTypeExtensions, JavaEObjectTypeExtensions { +class JavaStringHttpRequestRenderer constructor(override val vrapTypeProvider: VrapTypeProvider, val generatorConfig: CodeGeneratorConfig) : MethodRenderer, JavaObjectTypeExtensions, JavaEObjectTypeExtensions { val jacksonVersion = if (generatorConfig.jacksonV3) "tools" else "com.fasterxml" override fun render(type: Method): TemplateFile { From f9610c16f97595fd932d536d4b2965f58c45ba9e Mon Sep 17 00:00:00 2001 From: Jens Schulze Date: Tue, 2 Jun 2026 17:00:33 +0200 Subject: [PATCH 6/6] Update tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt --- .../main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt b/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt index 3ded091b..2812e49f 100644 --- a/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt +++ b/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/GenerateSubcommand.kt @@ -95,7 +95,7 @@ const val ValidTargets = "JAVA_CLIENT, JAVA_TEST, JAVA_QUERY_PREDICATES, TYPESCR @CommandLine.Command(name = "generate",description = ["Generate source code from a RAML specification."]) class GenerateSubcommand : Callable { - @CommandLine.Option(names = ["--jackson-version"], description = ["Jackson major version to target (2 or 3)"], required = false, defaultValue = "false") + @CommandLine.Option(names = ["--jackson-v3"], description = ["Jackson major version to target (2 or 3)"], required = false, defaultValue = "false") var jacksonV3: Boolean = false @CommandLine.Option(names = ["-h", "--help"], usageHelp = true, description = ["display this help message"])