From 752df47107df67a5ecefce3043ff538bed12ffce Mon Sep 17 00:00:00 2001 From: Konrad Fischer Date: Fri, 6 Oct 2023 11:49:56 +0200 Subject: [PATCH 01/10] BMU-779: encode path params in typescript sdk for proper escaped URI --- .../typescript/client/files_producers/ClientFileProducer.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/languages/typescript/src/main/kotlin/io/vrap/codegen/languages/typescript/client/files_producers/ClientFileProducer.kt b/languages/typescript/src/main/kotlin/io/vrap/codegen/languages/typescript/client/files_producers/ClientFileProducer.kt index 8bf0ecf5..def77b07 100644 --- a/languages/typescript/src/main/kotlin/io/vrap/codegen/languages/typescript/client/files_producers/ClientFileProducer.kt +++ b/languages/typescript/src/main/kotlin/io/vrap/codegen/languages/typescript/client/files_producers/ClientFileProducer.kt @@ -160,7 +160,8 @@ export function buildRelativeUri(commonRequest: ClientRequest): string { var uri: string = commonRequest.uriTemplate as string for (const param in pathMap) { - uri = uri.replace(`{${'$'}{param}}`, `${'$'}{pathMap[param]}`) + const value = encodeURIComponent(`${'$'}{pathMap[param]}`) + uri = uri.replace(`{${'$'}{param}}`, `${'$'}{value}`) } const resQuery = formatQueryString(commonRequest.queryParams || {}) From f329c4583dda4004f3d6ed07976bb27d4e133d6b Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Tue, 24 Oct 2023 09:37:05 +0000 Subject: [PATCH 02/10] TASK: Updating version in README --- scripts/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install.sh b/scripts/install.sh index 5396fae9..e963b24e 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -2,7 +2,7 @@ set -e -CODEGEN_VERSION=${VRAP_VERSION:-"1.0.0-20231012134051"} +CODEGEN_VERSION=${VRAP_VERSION:-"1.0.0-20231024092737"} CLI_HOME=~/.rmf-cli LIB_FOLDER=$CLI_HOME/lib JAR_FILE_PATH=$LIB_FOLDER/codegen-cli-${CODEGEN_VERSION}.jar From 6d620d8d710acec83a34323211ee27c95d4a2da3 Mon Sep 17 00:00:00 2001 From: Jens Schulze Date: Fri, 27 Oct 2023 22:18:17 +0200 Subject: [PATCH 03/10] add method response validator --- .../rmf/validators/MethodResponseRule.kt | 37 +++++++++++++++++++ .../rmf/validators/ValidatorRulesTest.groovy | 10 +++++ .../test/resources/method-response-rule.raml | 13 +++++++ 3 files changed, 60 insertions(+) create mode 100644 ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/MethodResponseRule.kt create mode 100644 ctp-validators/src/test/resources/method-response-rule.raml diff --git a/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/MethodResponseRule.kt b/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/MethodResponseRule.kt new file mode 100644 index 00000000..416a435c --- /dev/null +++ b/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/MethodResponseRule.kt @@ -0,0 +1,37 @@ +package com.commercetools.rmf.validators + +import io.vrap.rmf.raml.model.resources.HttpMethod +import io.vrap.rmf.raml.model.resources.Method +import io.vrap.rmf.raml.model.resources.Resource +import org.eclipse.emf.common.util.Diagnostic +import java.util.* + +@ValidatorSet +class MethodResponseRule(severity: RuleSeverity, options: List? = null) : ResourcesRule(severity, options) { + + private val exclude: List = + (options?.filter { ruleOption -> ruleOption.type.lowercase(Locale.getDefault()) == RuleOptionType.EXCLUDE.toString() }?.map { ruleOption -> ruleOption.value }?.plus("") ?: defaultExcludes) + + override fun caseMethod(method: Method): List { + val validationResults: MutableList = ArrayList() + + if (method.responses.isEmpty() && exclude.contains("${method.method.name} ${(method.eContainer() as Resource).fullUri.template}").not()) { + validationResults.add(create(method, "Method \"{0} {1}\" must have at least one response defined", method.method.name, (method.eContainer() as Resource).fullUri.template)) + } + return validationResults + } + + companion object : ValidatorFactory { + private val defaultExcludes by lazy { listOf("") } + + @JvmStatic + override fun create(options: List?): MethodResponseRule { + return MethodResponseRule(RuleSeverity.ERROR, options) + } + + @JvmStatic + override fun create(severity: RuleSeverity, options: List?): MethodResponseRule { + return MethodResponseRule(severity, options) + } + } +} diff --git a/ctp-validators/src/test/groovy/com/commercetools/rmf/validators/ValidatorRulesTest.groovy b/ctp-validators/src/test/groovy/com/commercetools/rmf/validators/ValidatorRulesTest.groovy index 2fed562d..492be96f 100644 --- a/ctp-validators/src/test/groovy/com/commercetools/rmf/validators/ValidatorRulesTest.groovy +++ b/ctp-validators/src/test/groovy/com/commercetools/rmf/validators/ValidatorRulesTest.groovy @@ -101,6 +101,16 @@ class ValidatorRulesTest extends Specification implements ValidatorFixtures { result.validationResults[1].message == "Method \"HEAD /invalid-all\" must not have body type defined" } + def "method response rule"() { + when: + def validators = Arrays.asList(new ResourcesValidator(Arrays.asList(MethodResponseRule.create(emptyList())))) + def uri = uriFromClasspath("/method-response-rule.raml") + def result = new RamlModelBuilder(validators).buildApi(uri) + then: + result.validationResults.size == 1 + result.validationResults[0].message == "Method \"HEAD /invalid\" must have at least one response defined" + } + // def "named body type rule"() { // when: // def validators = Arrays.asList(new ResourcesValidator(Arrays.asList(new NamedBodyTypeRule()))) diff --git a/ctp-validators/src/test/resources/method-response-rule.raml b/ctp-validators/src/test/resources/method-response-rule.raml new file mode 100644 index 00000000..0f1747a8 --- /dev/null +++ b/ctp-validators/src/test/resources/method-response-rule.raml @@ -0,0 +1,13 @@ +#%RAML 1.0 +title: method responses + +/carts: + get: + responses: + 200: + head: + responses: + 200: + 404: +/invalid: + head: From 82747404a64d1fffe496d887f6175babc87cfcf9 Mon Sep 17 00:00:00 2001 From: Jens Schulze Date: Sat, 28 Oct 2023 10:15:11 +0200 Subject: [PATCH 04/10] validation rules should be errors by default --- .../rmf/validators/MethodResponseRule.kt | 9 +++++++-- .../com/commercetools/rmf/validators/RuleTypes.kt | 2 +- .../commercetools/rmf/validators/ValidatorSetup.kt | 11 +++++++---- .../rmf/validators/ValidatorRulesTest.groovy | 2 ++ .../src/test/resources/method-response-rule.raml | 7 +++++++ .../io/vrap/rmf/codegen/cli/ValidateSubcommand.kt | 9 ++++++--- 6 files changed, 30 insertions(+), 10 deletions(-) diff --git a/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/MethodResponseRule.kt b/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/MethodResponseRule.kt index 416a435c..381ccc66 100644 --- a/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/MethodResponseRule.kt +++ b/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/MethodResponseRule.kt @@ -1,13 +1,15 @@ package com.commercetools.rmf.validators +import com.commercetools.rmf.diff.resource import io.vrap.rmf.raml.model.resources.HttpMethod import io.vrap.rmf.raml.model.resources.Method import io.vrap.rmf.raml.model.resources.Resource +import io.vrap.rmf.raml.model.resources.ResourceType import org.eclipse.emf.common.util.Diagnostic import java.util.* @ValidatorSet -class MethodResponseRule(severity: RuleSeverity, options: List? = null) : ResourcesRule(severity, options) { +class MethodResponseRule(severity: RuleSeverity, options: List? = null) : ResolvedResourcesRule(severity, options) { private val exclude: List = (options?.filter { ruleOption -> ruleOption.type.lowercase(Locale.getDefault()) == RuleOptionType.EXCLUDE.toString() }?.map { ruleOption -> ruleOption.value }?.plus("") ?: defaultExcludes) @@ -15,8 +17,11 @@ class MethodResponseRule(severity: RuleSeverity, options: List? = nu override fun caseMethod(method: Method): List { val validationResults: MutableList = ArrayList() + if (method.eContainer() is ResourceType) { + return validationResults + } if (method.responses.isEmpty() && exclude.contains("${method.method.name} ${(method.eContainer() as Resource).fullUri.template}").not()) { - validationResults.add(create(method, "Method \"{0} {1}\" must have at least one response defined", method.method.name, (method.eContainer() as Resource).fullUri.template)) + validationResults.add(error(method, "Method \"{0} {1}\" must have at least one response defined", method.method.name, (method.eContainer() as Resource).fullUri.template)) } return validationResults } diff --git a/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/RuleTypes.kt b/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/RuleTypes.kt index 4382764a..7c35d1ab 100644 --- a/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/RuleTypes.kt +++ b/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/RuleTypes.kt @@ -3,4 +3,4 @@ package com.commercetools.rmf.validators annotation class ValidatorSets(val value: Array) @JvmRepeatable(ValidatorSets::class) -annotation class ValidatorSet(val name: String = "default", val severity: RuleSeverity = RuleSeverity.INFO) +annotation class ValidatorSet(val name: String = "default", val severity: RuleSeverity = RuleSeverity.ERROR) diff --git a/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/ValidatorSetup.kt b/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/ValidatorSetup.kt index 443db16a..ccd6a512 100644 --- a/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/ValidatorSetup.kt +++ b/ctp-validators/src/main/kotlin/com/commercetools/rmf/validators/ValidatorSetup.kt @@ -16,11 +16,11 @@ import java.lang.reflect.Modifier class ValidatorSetup { companion object { @JvmStatic - fun setup(config: File): List { - return setup(config.inputStream()) + fun setup(config: File, verbose: Boolean = false): List { + return setup(config.inputStream(), verbose) } - fun setup(config: InputStream): List { + fun setup(config: InputStream, verbose: Boolean = false): List { val mapper = XmlMapper.builder(XmlFactory(WstxInputFactory(), WstxOutputFactory())).defaultUseWrapper(false) .enable(SerializationFeature.INDENT_OUTPUT) .enable(SerializationFeature.WRAP_ROOT_VALUE) @@ -46,6 +46,9 @@ class ValidatorSetup { } } + if (verbose) { + validators.filterIsInstance(DiagnosticsAware::class.java).forEach { validator -> println("${validator::class.java}: ${validator.severity}") } + } return listOf( ResolvedResourcesValidator(validators.filterIsInstance( ResolvedResourcesRule::class.java )), ResourcesValidator(validators.filterIsInstance( ResourcesRule::class.java )), @@ -58,7 +61,7 @@ class ValidatorSetup { var checks = setOne setTwo.forEach { (checkName, check) -> if (checks.containsKey(checkName)) { - checks = checks.plus(checkName to Rule(checkName, check.severity, checks[checkName]!!.options?.plus(check.options ?: listOf()) ?: check.options, check.enabled && checks[checkName]!!.enabled)) + checks = checks.plus(checkName to Rule(checkName, check.severity ?: checks[checkName]!!.severity, checks[checkName]!!.options?.plus(check.options ?: listOf()) ?: check.options, check.enabled && checks[checkName]!!.enabled)) } else { checks = checks.plus(checkName to check) } diff --git a/ctp-validators/src/test/groovy/com/commercetools/rmf/validators/ValidatorRulesTest.groovy b/ctp-validators/src/test/groovy/com/commercetools/rmf/validators/ValidatorRulesTest.groovy index 492be96f..03bd5422 100644 --- a/ctp-validators/src/test/groovy/com/commercetools/rmf/validators/ValidatorRulesTest.groovy +++ b/ctp-validators/src/test/groovy/com/commercetools/rmf/validators/ValidatorRulesTest.groovy @@ -1,6 +1,7 @@ package com.commercetools.rmf.validators import io.vrap.rmf.raml.model.RamlModelBuilder +import org.eclipse.emf.common.util.Diagnostic import spock.lang.Specification import static java.util.Collections.emptyList @@ -109,6 +110,7 @@ class ValidatorRulesTest extends Specification implements ValidatorFixtures { then: result.validationResults.size == 1 result.validationResults[0].message == "Method \"HEAD /invalid\" must have at least one response defined" + result.validationResults[0].severity == Diagnostic.ERROR } // def "named body type rule"() { diff --git a/ctp-validators/src/test/resources/method-response-rule.raml b/ctp-validators/src/test/resources/method-response-rule.raml index 0f1747a8..3fd2b053 100644 --- a/ctp-validators/src/test/resources/method-response-rule.raml +++ b/ctp-validators/src/test/resources/method-response-rule.raml @@ -1,8 +1,15 @@ #%RAML 1.0 title: method responses +resourceTypes: + test: + get?: + responses: + 200: + post?: /carts: get: + description: test responses: 200: head: diff --git a/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/ValidateSubcommand.kt b/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/ValidateSubcommand.kt index 95953f08..66648399 100644 --- a/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/ValidateSubcommand.kt +++ b/tools/cli-application/src/main/kotlin/io/vrap/rmf/codegen/cli/ValidateSubcommand.kt @@ -80,6 +80,9 @@ class ValidateSubcommand : Callable { @CommandLine.Option(names = ["--list-rules"], description = ["Show all rules"]) var listRules: Boolean = false + @CommandLine.Option(names = ["-v", "--verbose"], description = ["Verbose"]) + var verbose: Boolean = false; + lateinit var modelBuilder: RamlModelBuilder private fun linkURI(): java.net.URI { @@ -97,7 +100,7 @@ class ValidateSubcommand : Callable { return 0 } val tmpDir = tempFile?.toAbsolutePath()?.normalize() ?: Paths.get(".tmp") - modelBuilder = setupValidators() + modelBuilder = setupValidators(verbose) val res = safeRun { validate(tmpDir)} if (watch) { val watchDir = ramlFileLocation.toRealPath().toAbsolutePath().parent @@ -182,9 +185,9 @@ class ValidateSubcommand : Callable { return modelResult.validationResults.any { result -> result.severity >= checkSeverity.value }.let { b -> if(b) 1 else 0 } } - private fun setupValidators(): RamlModelBuilder { + private fun setupValidators(verbose: Boolean = false): RamlModelBuilder { val ruleset = rulesetFile?.toFile()?.inputStream() ?: ValidateSubcommand::class.java.getResourceAsStream("/ruleset.xml") - return RamlModelBuilder(ValidatorSetup.setup(ruleset)) + return RamlModelBuilder(ValidatorSetup.setup(ruleset, verbose)) } private fun diagnosticFormatter(printer: OutputFormat, filePath: Path, linkUri: java.net.URI): FormatPrinter { From b3d5ddd82913c50874bb008d86b48a64522ede6d Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Sat, 28 Oct 2023 08:31:12 +0000 Subject: [PATCH 05/10] TASK: Updating version in README --- scripts/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install.sh b/scripts/install.sh index e963b24e..d23cfee3 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -2,7 +2,7 @@ set -e -CODEGEN_VERSION=${VRAP_VERSION:-"1.0.0-20231024092737"} +CODEGEN_VERSION=${VRAP_VERSION:-"1.0.0-20231028082226"} CLI_HOME=~/.rmf-cli LIB_FOLDER=$CLI_HOME/lib JAR_FILE_PATH=$LIB_FOLDER/codegen-cli-${CODEGEN_VERSION}.jar From a3bea2400bfe04bd76ef78d19fdc3a01b063776a Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Sat, 28 Oct 2023 09:20:38 +0000 Subject: [PATCH 06/10] Bump codegen version --- node/rmf-codegen/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/rmf-codegen/package.json b/node/rmf-codegen/package.json index ddfe6cdd..aa90b88c 100644 --- a/node/rmf-codegen/package.json +++ b/node/rmf-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@commercetools-docs/rmf-codegen", - "version": "13.29.0", + "version": "13.30.0", "description": "Provides RMF-Codegen to javascript projects", "license": "MIT", "homepage": "https://github.com/commercetools/rmf-codegen", From d7cd10602420495f69a9ae1fd2c7474009e72402 Mon Sep 17 00:00:00 2001 From: Jens Schulze Date: Wed, 8 Nov 2023 09:28:56 +0100 Subject: [PATCH 07/10] add mixins for impl classes --- .../producers/JavaModelClassFileProducer.kt | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) 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 4a4a9519..dbdce596 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 @@ -1,5 +1,6 @@ package io.vrap.codegen.languages.javalang.client.builder.producers +import com.google.common.collect.Lists import io.vrap.codegen.languages.extensions.isPatternProperty import io.vrap.codegen.languages.extensions.toComment import io.vrap.codegen.languages.java.base.JavaSubTemplates @@ -12,10 +13,8 @@ import io.vrap.rmf.codegen.rendering.utils.keepIndentation import io.vrap.rmf.codegen.types.VrapArrayType import io.vrap.rmf.codegen.types.VrapObjectType import io.vrap.rmf.codegen.types.VrapTypeProvider -import io.vrap.rmf.raml.model.types.BooleanInstance -import io.vrap.rmf.raml.model.types.ObjectType -import io.vrap.rmf.raml.model.types.Property -import io.vrap.rmf.raml.model.types.UnionType +import io.vrap.rmf.raml.model.types.* +import io.vrap.rmf.raml.model.types.Annotation class JavaModelClassFileProducer constructor(override val vrapTypeProvider: VrapTypeProvider, @AllObjectTypes private val allObjectTypes: List) : JavaObjectTypeExtensions, JavaEObjectTypeExtensions, FileProducer { @@ -28,6 +27,17 @@ class JavaModelClassFileProducer constructor(override val vrapTypeProvider: Vrap val vrapType = vrapTypeProvider.doSwitch(type).toJavaVType() as VrapObjectType + val implements = Lists.newArrayList(vrapType.simpleClassName, "ModelBase") + .plus( + when (val ex = type.getAnnotation("java-impl-implements") ) { + is Annotation -> { + (ex.value as StringInstance).value.escapeAll() + } + else -> null + } + ) + .filterNotNull() + val content = """ |package ${vrapType.`package`.toJavaPackage()}; | @@ -53,7 +63,7 @@ class JavaModelClassFileProducer constructor(override val vrapTypeProvider: Vrap | */ |<${JavaSubTemplates.generatedAnnotation}>${if (type.markDeprecated()) """ |@Deprecated""" else ""} - |public class ${vrapType.simpleClassName}Impl implements ${vrapType.simpleClassName}, ModelBase { + |public class ${vrapType.simpleClassName}Impl implements ${implements.joinToString(separator = ", ")} { | | <${type.beanFields().escapeAll()}> | @@ -65,6 +75,7 @@ class JavaModelClassFileProducer constructor(override val vrapTypeProvider: Vrap | | <${type.equalsMethod().escapeAll()}> | + | <${type.getAnnotation("java-impl-mixin")?.value?.value?.let { (it as String).escapeAll()} ?: ""}> |} """.trimMargin().keepIndentation() return TemplateFile( From e9e4d19797c8ffeabc4f0cbaaaf1ff6748b61c43 Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Wed, 8 Nov 2023 08:53:02 +0000 Subject: [PATCH 08/10] TASK: Updating version in README --- scripts/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install.sh b/scripts/install.sh index d23cfee3..593e6078 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -2,7 +2,7 @@ set -e -CODEGEN_VERSION=${VRAP_VERSION:-"1.0.0-20231028082226"} +CODEGEN_VERSION=${VRAP_VERSION:-"1.0.0-20231108084502"} CLI_HOME=~/.rmf-cli LIB_FOLDER=$CLI_HOME/lib JAR_FILE_PATH=$LIB_FOLDER/codegen-cli-${CODEGEN_VERSION}.jar From 72f59f4e080a7d2f0451e31f007a83ef0d80bef0 Mon Sep 17 00:00:00 2001 From: Jens Schulze Date: Mon, 13 Nov 2023 14:47:13 +0100 Subject: [PATCH 09/10] add toString method to Impl classes --- .../producers/JavaModelClassFileProducer.kt | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) 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 dbdce596..f3a474fa 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 @@ -57,6 +57,8 @@ class JavaModelClassFileProducer constructor(override val vrapTypeProvider: Vrap |import com.fasterxml.jackson.annotation.JsonProperty; |import org.apache.commons.lang3.builder.EqualsBuilder; |import org.apache.commons.lang3.builder.HashCodeBuilder; + |import org.apache.commons.lang3.builder.ToStringBuilder; + |import org.apache.commons.lang3.builder.ToStringStyle; | |/** |${type.toComment(" * ${vrapType.simpleClassName}").escapeAll()} @@ -127,26 +129,43 @@ class JavaModelClassFileProducer constructor(override val vrapTypeProvider: Vrap | <${this.allProperties.filterNot { it.deprecated() }.joinToString("\n") { it.hashMethod() }}> | .toHashCode(); |} + | + |@Override + |public String toString() { + | return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) + | <${this.allProperties.filterNot { it.deprecated() }.joinToString("\n") { it.toStringMethod() }}> + | .build(); + |} """.trimMargin().keepIndentation() } private fun Property.equalsMethod(): String { - if (this.isPatternProperty()) { - return ".append(values, that.values)" + return if (this.isPatternProperty()) { + ".append(values, that.values)" } else if (this.name.equals("interface")) { - return ".append(_interface, that._interface)" + ".append(_interface, that._interface)" } else { - return ".append(${this.name.lowerCamelCase()}, that.${this.name.lowerCamelCase()})" + ".append(${this.name.lowerCamelCase()}, that.${this.name.lowerCamelCase()})" } } private fun Property.hashMethod(): String { - if (this.isPatternProperty()) { - return ".append(values)" + return if (this.isPatternProperty()) { + ".append(values)" + } else if (this.name.equals("interface")) { + ".append(_interface)" + } else { + ".append(${this.name.lowerCamelCase()})" + } + } + + private fun Property.toStringMethod(): String { + return if (this.isPatternProperty()) { + ".append(\"values\", values)" } else if (this.name.equals("interface")) { - return ".append(_interface)" + ".append(\"interface\", _interface)" } else { - return ".append(${this.name.lowerCamelCase()})" + ".append(\"${this.name.lowerCamelCase()}\", ${this.name.lowerCamelCase()})" } } From f0512fe82011bbede078c8c7e136a8bc4ce07880 Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Mon, 13 Nov 2023 13:56:22 +0000 Subject: [PATCH 10/10] TASK: Updating version in README --- scripts/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install.sh b/scripts/install.sh index 593e6078..4c6b8ad7 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -2,7 +2,7 @@ set -e -CODEGEN_VERSION=${VRAP_VERSION:-"1.0.0-20231108084502"} +CODEGEN_VERSION=${VRAP_VERSION:-"1.0.0-20231113134915"} CLI_HOME=~/.rmf-cli LIB_FOLDER=$CLI_HOME/lib JAR_FILE_PATH=$LIB_FOLDER/codegen-cli-${CODEGEN_VERSION}.jar