From ada930f79a2f1a3e31c0d6f5690560a4f5a9b426 Mon Sep 17 00:00:00 2001 From: Mathias Vandaele Date: Fri, 14 Feb 2025 17:15:46 +0800 Subject: [PATCH] feat(element-template-generator): remove the value property and use this annotation to other connetors --- .../aws-textract-outbound-connector.json | 6 +++--- ...aws-textract-outbound-connector-hybrid.json | 6 +++--- .../textract/model/DocumentLocationType.java | 4 ++++ .../textract/model/TextractExecutionType.java | 7 ++++++- .../textract/model/TextractRequestData.java | 11 ----------- .../email-inbound-connector-boundary.json | 6 +++--- .../email-inbound-connector-intermediate.json | 6 +++--- .../email-message-start-event-connector.json | 6 +++--- .../email-outbound-connector.json | 18 +++++++++--------- ...mail-inbound-connector-boundary-hybrid.json | 6 +++--- ...-inbound-connector-intermediate-hybrid.json | 6 +++--- .../email-outbound-connector-hybrid.json | 18 +++++++++--------- ...l-message-start-event-connector-hybrid.json | 6 +++--- .../email/config/CryptographicProtocol.java | 5 +++++ .../connector/email/config/ImapConfig.java | 5 ----- .../connector/email/config/Pop3Config.java | 5 ----- .../connector/email/config/SmtpConfig.java | 5 ----- .../protocols/actions/ContentType.java | 4 ++++ .../protocols/actions/ImapListEmails.java | 4 ---- .../protocols/actions/Pop3ListEmails.java | 8 -------- .../protocols/actions/SmtpSendEmail.java | 7 ------- .../protocols/actions/SortFieldImap.java | 8 ++++---- .../protocols/actions/SortFieldPop3.java | 4 ++++ .../outbound/protocols/actions/SortOrder.java | 3 +++ .../{EnumLabel.java => EnumValue.java} | 5 ++--- .../java/util/TemplatePropertiesUtil.java | 7 ++++--- ...utboundClassBasedTemplateGeneratorTest.java | 2 +- .../example/outbound/MyConnectorInput.java | 4 ++-- 28 files changed, 81 insertions(+), 101 deletions(-) rename element-template-generator/core/src/main/java/io/camunda/connector/generator/java/annotation/{EnumLabel.java => EnumValue.java} (91%) diff --git a/connectors/aws/aws-textract/element-templates/aws-textract-outbound-connector.json b/connectors/aws/aws-textract/element-templates/aws-textract-outbound-connector.json index 067df5c164..86685cd118 100644 --- a/connectors/aws/aws-textract/element-templates/aws-textract-outbound-connector.json +++ b/connectors/aws/aws-textract/element-templates/aws-textract-outbound-connector.json @@ -170,11 +170,11 @@ "tooltip" : "Camunda Document", "type" : "Dropdown", "choices" : [ { - "name" : "S3", - "value" : "S3" - }, { "name" : "Camunda Document", "value" : "UPLOADED" + }, { + "name" : "S3", + "value" : "S3" } ] }, { "id" : "input.documentS3Bucket", diff --git a/connectors/aws/aws-textract/element-templates/hybrid/aws-textract-outbound-connector-hybrid.json b/connectors/aws/aws-textract/element-templates/hybrid/aws-textract-outbound-connector-hybrid.json index 14e901bd13..0a25ec2fcf 100644 --- a/connectors/aws/aws-textract/element-templates/hybrid/aws-textract-outbound-connector-hybrid.json +++ b/connectors/aws/aws-textract/element-templates/hybrid/aws-textract-outbound-connector-hybrid.json @@ -175,11 +175,11 @@ "tooltip" : "Camunda Document", "type" : "Dropdown", "choices" : [ { - "name" : "S3", - "value" : "S3" - }, { "name" : "Camunda Document", "value" : "UPLOADED" + }, { + "name" : "S3", + "value" : "S3" } ] }, { "id" : "input.documentS3Bucket", diff --git a/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/DocumentLocationType.java b/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/DocumentLocationType.java index aab98d6e0c..4738e9e8b7 100644 --- a/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/DocumentLocationType.java +++ b/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/DocumentLocationType.java @@ -6,7 +6,11 @@ */ package io.camunda.connector.textract.model; +import io.camunda.connector.generator.java.annotation.EnumValue; + public enum DocumentLocationType { + @EnumValue(label = "S3", order = 1) S3, + @EnumValue(label = "Camunda Document", order = 0) UPLOADED; } diff --git a/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/TextractExecutionType.java b/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/TextractExecutionType.java index fed5cc319f..6e50fbe645 100644 --- a/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/TextractExecutionType.java +++ b/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/TextractExecutionType.java @@ -6,8 +6,13 @@ */ package io.camunda.connector.textract.model; +import io.camunda.connector.generator.java.annotation.EnumValue; + public enum TextractExecutionType { + @EnumValue(label = "Real-time", order = 1) SYNC, + @EnumValue(label = "Polling", order = 2) POLLING, - ASYNC + @EnumValue(label = "Asynchronous", order = 0) + ASYNC; } diff --git a/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/TextractRequestData.java b/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/TextractRequestData.java index 456eb14910..3a2f238a95 100644 --- a/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/TextractRequestData.java +++ b/connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/model/TextractRequestData.java @@ -21,11 +21,6 @@ public record TextractRequestData( type = TemplateProperty.PropertyType.Dropdown, defaultValue = "ASYNC", feel = FeelMode.disabled, - choices = { - @TemplateProperty.DropdownPropertyChoice(value = "ASYNC", label = "Asynchronous"), - @TemplateProperty.DropdownPropertyChoice(value = "SYNC", label = "Real-time"), - @TemplateProperty.DropdownPropertyChoice(value = "POLLING", label = "Polling") - }, description = "Endpoint inference type") @NotNull TextractExecutionType executionType, @@ -36,12 +31,6 @@ public record TextractRequestData( feel = FeelMode.disabled, type = TemplateProperty.PropertyType.Dropdown, defaultValue = "UPLOADED", - choices = { - @TemplateProperty.DropdownPropertyChoice(value = "S3", label = "S3"), - @TemplateProperty.DropdownPropertyChoice( - value = "UPLOADED", - label = "Camunda Document") - }, tooltip = "Camunda Document", condition = diff --git a/connectors/email/element-templates/email-inbound-connector-boundary.json b/connectors/email/element-templates/email-inbound-connector-boundary.json index e5f15ade9d..09b392fb7a 100644 --- a/connectors/email/element-templates/email-inbound-connector-boundary.json +++ b/connectors/email/element-templates/email-inbound-connector-boundary.json @@ -156,12 +156,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.folderToListen", diff --git a/connectors/email/element-templates/email-inbound-connector-intermediate.json b/connectors/email/element-templates/email-inbound-connector-intermediate.json index 2ce9775057..c7920c638c 100644 --- a/connectors/email/element-templates/email-inbound-connector-intermediate.json +++ b/connectors/email/element-templates/email-inbound-connector-intermediate.json @@ -156,12 +156,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.folderToListen", diff --git a/connectors/email/element-templates/email-message-start-event-connector.json b/connectors/email/element-templates/email-message-start-event-connector.json index 78a5664e44..8f2174ba93 100644 --- a/connectors/email/element-templates/email-message-start-event-connector.json +++ b/connectors/email/element-templates/email-message-start-event-connector.json @@ -156,12 +156,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.folderToListen", diff --git a/connectors/email/element-templates/email-outbound-connector.json b/connectors/email/element-templates/email-outbound-connector.json index f8fcb326c5..f81ed3549b 100644 --- a/connectors/email/element-templates/email-outbound-connector.json +++ b/connectors/email/element-templates/email-outbound-connector.json @@ -216,12 +216,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.pop3Host", @@ -287,12 +287,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.smtpHost", @@ -358,12 +358,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.smtpActionDiscriminator", diff --git a/connectors/email/element-templates/hybrid/email-inbound-connector-boundary-hybrid.json b/connectors/email/element-templates/hybrid/email-inbound-connector-boundary-hybrid.json index 02fb24f634..8c6bf5a682 100644 --- a/connectors/email/element-templates/hybrid/email-inbound-connector-boundary-hybrid.json +++ b/connectors/email/element-templates/hybrid/email-inbound-connector-boundary-hybrid.json @@ -161,12 +161,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.folderToListen", diff --git a/connectors/email/element-templates/hybrid/email-inbound-connector-intermediate-hybrid.json b/connectors/email/element-templates/hybrid/email-inbound-connector-intermediate-hybrid.json index 1764093370..4e671f26df 100644 --- a/connectors/email/element-templates/hybrid/email-inbound-connector-intermediate-hybrid.json +++ b/connectors/email/element-templates/hybrid/email-inbound-connector-intermediate-hybrid.json @@ -161,12 +161,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.folderToListen", diff --git a/connectors/email/element-templates/hybrid/email-outbound-connector-hybrid.json b/connectors/email/element-templates/hybrid/email-outbound-connector-hybrid.json index 9c4dc39627..43d684c354 100644 --- a/connectors/email/element-templates/hybrid/email-outbound-connector-hybrid.json +++ b/connectors/email/element-templates/hybrid/email-outbound-connector-hybrid.json @@ -221,12 +221,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.pop3Host", @@ -292,12 +292,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.smtpHost", @@ -363,12 +363,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.smtpActionDiscriminator", diff --git a/connectors/email/element-templates/hybrid/hybrid-email-message-start-event-connector-hybrid.json b/connectors/email/element-templates/hybrid/hybrid-email-message-start-event-connector-hybrid.json index 586daa5c70..7ec23427e6 100644 --- a/connectors/email/element-templates/hybrid/hybrid-email-message-start-event-connector-hybrid.json +++ b/connectors/email/element-templates/hybrid/hybrid-email-message-start-event-connector-hybrid.json @@ -161,12 +161,12 @@ "choices" : [ { "name" : "TLS", "value" : "TLS" - }, { - "name" : "None", - "value" : "NONE" }, { "name" : "SSL", "value" : "SSL" + }, { + "name" : "None", + "value" : "NONE" } ] }, { "id" : "data.folderToListen", diff --git a/connectors/email/src/main/java/io/camunda/connector/email/config/CryptographicProtocol.java b/connectors/email/src/main/java/io/camunda/connector/email/config/CryptographicProtocol.java index fa016571eb..cfcfdbd99e 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/config/CryptographicProtocol.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/config/CryptographicProtocol.java @@ -6,8 +6,13 @@ */ package io.camunda.connector.email.config; +import io.camunda.connector.generator.java.annotation.EnumValue; + public enum CryptographicProtocol { + @EnumValue(label = "None", order = 2) NONE, + @EnumValue(label = "TLS", order = 0) TLS, + @EnumValue(label = "SSL", order = 1) SSL; } diff --git a/connectors/email/src/main/java/io/camunda/connector/email/config/ImapConfig.java b/connectors/email/src/main/java/io/camunda/connector/email/config/ImapConfig.java index 427e3191af..87e7f0ecbe 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/config/ImapConfig.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/config/ImapConfig.java @@ -43,11 +43,6 @@ public record ImapConfig( type = TemplateProperty.PropertyType.Dropdown, constraints = @TemplateProperty.PropertyConstraints(notEmpty = true), defaultValue = "TLS", - choices = { - @TemplateProperty.DropdownPropertyChoice(label = "TLS", value = "TLS"), - @TemplateProperty.DropdownPropertyChoice(label = "None", value = "NONE"), - @TemplateProperty.DropdownPropertyChoice(label = "SSL", value = "SSL") - }, binding = @TemplateProperty.PropertyBinding( name = "data.imapConfig.imapCryptographicProtocol")) diff --git a/connectors/email/src/main/java/io/camunda/connector/email/config/Pop3Config.java b/connectors/email/src/main/java/io/camunda/connector/email/config/Pop3Config.java index 0e511eb1ae..90fe521468 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/config/Pop3Config.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/config/Pop3Config.java @@ -43,11 +43,6 @@ public record Pop3Config( type = TemplateProperty.PropertyType.Dropdown, constraints = @TemplateProperty.PropertyConstraints(notEmpty = true), defaultValue = "TLS", - choices = { - @TemplateProperty.DropdownPropertyChoice(label = "TLS", value = "TLS"), - @TemplateProperty.DropdownPropertyChoice(label = "None", value = "NONE"), - @TemplateProperty.DropdownPropertyChoice(label = "SSL", value = "SSL") - }, binding = @TemplateProperty.PropertyBinding( name = "data.pop3Config.pop3CryptographicProtocol")) diff --git a/connectors/email/src/main/java/io/camunda/connector/email/config/SmtpConfig.java b/connectors/email/src/main/java/io/camunda/connector/email/config/SmtpConfig.java index 4f7f521f71..321c58ac20 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/config/SmtpConfig.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/config/SmtpConfig.java @@ -43,11 +43,6 @@ public record SmtpConfig( type = TemplateProperty.PropertyType.Dropdown, constraints = @TemplateProperty.PropertyConstraints(notEmpty = true), defaultValue = "TLS", - choices = { - @TemplateProperty.DropdownPropertyChoice(label = "TLS", value = "TLS"), - @TemplateProperty.DropdownPropertyChoice(label = "None", value = "NONE"), - @TemplateProperty.DropdownPropertyChoice(label = "SSL", value = "SSL") - }, binding = @TemplateProperty.PropertyBinding( name = "data.smtpConfig.smtpCryptographicProtocol")) diff --git a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/ContentType.java b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/ContentType.java index cb5d560116..b4beb01038 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/ContentType.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/ContentType.java @@ -7,11 +7,15 @@ package io.camunda.connector.email.outbound.protocols.actions; import com.fasterxml.jackson.annotation.JsonEnumDefaultValue; +import io.camunda.connector.generator.java.annotation.EnumValue; public enum ContentType { @JsonEnumDefaultValue + @EnumValue(label = "PLAIN", order = 0) PLAIN("text/plain; charset=utf-8"), + @EnumValue(label = "HTML", order = 1) HTML("text/html; charset=utf-8"), + @EnumValue(label = "HTML & Plaintext", order = 2) MULTIPART("multipart/mixed; charset=utf-8"); private final String value; diff --git a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/ImapListEmails.java b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/ImapListEmails.java index 5d0c81af65..ecec3998a3 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/ImapListEmails.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/ImapListEmails.java @@ -59,10 +59,6 @@ public record ImapListEmails( type = TemplateProperty.PropertyType.Dropdown, constraints = @TemplateProperty.PropertyConstraints(notEmpty = true), defaultValue = "ASC", - choices = { - @TemplateProperty.DropdownPropertyChoice(label = "ASC", value = "ASC"), - @TemplateProperty.DropdownPropertyChoice(label = "DESC", value = "DESC") - }, binding = @TemplateProperty.PropertyBinding(name = "data.imapAction.sortOrder")) @NotNull SortOrder sortOrder) diff --git a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/Pop3ListEmails.java b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/Pop3ListEmails.java index 5d559ffee6..0f7c7f6049 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/Pop3ListEmails.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/Pop3ListEmails.java @@ -36,10 +36,6 @@ public record Pop3ListEmails( type = TemplateProperty.PropertyType.Dropdown, constraints = @TemplateProperty.PropertyConstraints(notEmpty = true), defaultValue = "SENT_DATE", - choices = { - @TemplateProperty.DropdownPropertyChoice(label = "Sent Date", value = "SENT_DATE"), - @TemplateProperty.DropdownPropertyChoice(label = "Size", value = "SIZE") - }, binding = @TemplateProperty.PropertyBinding(name = "data.pop3Action.sortField")) @NotNull SortFieldPop3 sortField, @@ -53,10 +49,6 @@ public record Pop3ListEmails( type = TemplateProperty.PropertyType.Dropdown, constraints = @TemplateProperty.PropertyConstraints(notEmpty = true), defaultValue = "ASC", - choices = { - @TemplateProperty.DropdownPropertyChoice(label = "ASC", value = "ASC"), - @TemplateProperty.DropdownPropertyChoice(label = "DESC", value = "DESC") - }, binding = @TemplateProperty.PropertyBinding(name = "data.pop3Action.sortOrder")) @NotNull SortOrder sortOrder) diff --git a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SmtpSendEmail.java b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SmtpSendEmail.java index 8b6c24e386..35bab35fe0 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SmtpSendEmail.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SmtpSendEmail.java @@ -90,13 +90,6 @@ public record SmtpSendEmail( id = "contentType", defaultValue = "PLAIN", type = TemplateProperty.PropertyType.Dropdown, - choices = { - @TemplateProperty.DropdownPropertyChoice(label = "PLAIN", value = "PLAIN"), - @TemplateProperty.DropdownPropertyChoice(label = "HTML", value = "HTML"), - @TemplateProperty.DropdownPropertyChoice( - label = "HTML & Plaintext", - value = "MULTIPART") - }, tooltip = "Email's contentType", binding = @TemplateProperty.PropertyBinding(name = "data.smtpAction.contentType")) @Valid diff --git a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortFieldImap.java b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortFieldImap.java index a14dfe0952..57c1bc94c0 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortFieldImap.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortFieldImap.java @@ -6,13 +6,13 @@ */ package io.camunda.connector.email.outbound.protocols.actions; -import io.camunda.connector.generator.java.annotation.EnumLabel; +import io.camunda.connector.generator.java.annotation.EnumValue; public enum SortFieldImap { - @EnumLabel(label = "Received Date", value = "RECEIVED_DATE", order = 0) + @EnumValue(label = "Received Date", order = 0) RECEIVED_DATE, - @EnumLabel(label = "Sent Date", value = "SENT_DATE", order = 1) + @EnumValue(label = "Sent Date", order = 1) SENT_DATE, - @EnumLabel(label = "Size", value = "SIZE", order = 2) + @EnumValue(label = "Size", order = 2) SIZE; } diff --git a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortFieldPop3.java b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortFieldPop3.java index d53b50ba40..9b745f9d29 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortFieldPop3.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortFieldPop3.java @@ -6,7 +6,11 @@ */ package io.camunda.connector.email.outbound.protocols.actions; +import io.camunda.connector.generator.java.annotation.EnumValue; + public enum SortFieldPop3 { + @EnumValue(label = "Sent Date", order = 0) SENT_DATE, + @EnumValue(label = "Size", order = 1) SIZE; } diff --git a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortOrder.java b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortOrder.java index b8f32d45cc..8165222e9e 100644 --- a/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortOrder.java +++ b/connectors/email/src/main/java/io/camunda/connector/email/outbound/protocols/actions/SortOrder.java @@ -6,10 +6,13 @@ */ package io.camunda.connector.email.outbound.protocols.actions; +import io.camunda.connector.generator.java.annotation.EnumValue; import java.util.function.Function; public enum SortOrder { + @EnumValue(order = 0, label = "ASC") ASC(comparison -> comparison), + @EnumValue(order = 1, label = "DESC") DESC(comparison -> -comparison); private final Function comparator; diff --git a/element-template-generator/core/src/main/java/io/camunda/connector/generator/java/annotation/EnumLabel.java b/element-template-generator/core/src/main/java/io/camunda/connector/generator/java/annotation/EnumValue.java similarity index 91% rename from element-template-generator/core/src/main/java/io/camunda/connector/generator/java/annotation/EnumLabel.java rename to element-template-generator/core/src/main/java/io/camunda/connector/generator/java/annotation/EnumValue.java index 80d44a2f92..205c2a169a 100644 --- a/element-template-generator/core/src/main/java/io/camunda/connector/generator/java/annotation/EnumLabel.java +++ b/element-template-generator/core/src/main/java/io/camunda/connector/generator/java/annotation/EnumValue.java @@ -20,14 +20,13 @@ import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) -public @interface EnumLabel { +public @interface EnumValue { /** * Represents the order in which the dropdown will be shown, will be {@link Integer#MAX_VALUE } if * not precised */ int order() default Integer.MAX_VALUE; - String value(); - + /** Represents what will be shown inside the dropdown for the given enum value */ String label(); } diff --git a/element-template-generator/core/src/main/java/io/camunda/connector/generator/java/util/TemplatePropertiesUtil.java b/element-template-generator/core/src/main/java/io/camunda/connector/generator/java/util/TemplatePropertiesUtil.java index 9be21bf609..65e6f65754 100644 --- a/element-template-generator/core/src/main/java/io/camunda/connector/generator/java/util/TemplatePropertiesUtil.java +++ b/element-template-generator/core/src/main/java/io/camunda/connector/generator/java/util/TemplatePropertiesUtil.java @@ -259,9 +259,10 @@ private static List createDropdownModelList(Class enumType) { enumConstant -> { try { Field enumValue = enumType.getField(((Enum) enumConstant).name()); - if (enumValue.isAnnotationPresent(EnumLabel.class)) { - EnumLabel enumLabel = enumValue.getAnnotation(EnumLabel.class); - return new DropdownModel(enumLabel.label(), enumLabel.value(), enumLabel.order()); + if (enumValue.isAnnotationPresent(EnumValue.class)) { + EnumValue enumLabel = enumValue.getAnnotation(EnumValue.class); + return new DropdownModel( + enumLabel.label(), enumValue.getName(), enumLabel.order()); } else { return new DropdownModel( transformIdIntoLabel(((Enum) enumConstant).name()), diff --git a/element-template-generator/core/src/test/java/io/camunda/connector/generator/java/OutboundClassBasedTemplateGeneratorTest.java b/element-template-generator/core/src/test/java/io/camunda/connector/generator/java/OutboundClassBasedTemplateGeneratorTest.java index 0c1d52cde6..436d939695 100644 --- a/element-template-generator/core/src/test/java/io/camunda/connector/generator/java/OutboundClassBasedTemplateGeneratorTest.java +++ b/element-template-generator/core/src/test/java/io/camunda/connector/generator/java/OutboundClassBasedTemplateGeneratorTest.java @@ -433,7 +433,7 @@ void notAnnotated_EnumProperty_hasCorrectDefaults() { assertThat(property.getType()).isEqualTo("Dropdown"); assertThat(((DropdownProperty) property).getChoices()) .containsExactly( - new DropdownChoice("Value one", "value1"), new DropdownChoice("Value two", "value2")); + new DropdownChoice("Value one", "VALUE1"), new DropdownChoice("Value two", "VALUE2")); assertThat(property.isOptional()).isNull(); assertThat(property.getGroup()).isEqualTo(null); assertThat(property.getFeel()).isEqualTo(null); diff --git a/element-template-generator/core/src/test/java/io/camunda/connector/generator/java/example/outbound/MyConnectorInput.java b/element-template-generator/core/src/test/java/io/camunda/connector/generator/java/example/outbound/MyConnectorInput.java index 2b67c60017..e3569e91f8 100644 --- a/element-template-generator/core/src/test/java/io/camunda/connector/generator/java/example/outbound/MyConnectorInput.java +++ b/element-template-generator/core/src/test/java/io/camunda/connector/generator/java/example/outbound/MyConnectorInput.java @@ -118,9 +118,9 @@ public record MyConnectorInput( String mayBeEmptyOrRegexValidatedJakartaStyle) { enum MyEnum { - @EnumLabel(value = "value1", label = "Value one", order = 0) + @EnumValue(label = "Value one", order = 0) VALUE1, - @EnumLabel(value = "value2", label = "Value two", order = 1) + @EnumValue(label = "Value two", order = 1) VALUE2 }