fix(keywords): of java connectors#6992
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the Element Template Generator (ETG) and Java connector annotations so connector keywords are emitted at the top level of generated element templates (as required by Camunda Modeler search), and adds keywords across Java connectors.
Changes:
- Removed the ETG DSL/annotation
metadata.keywordsstructure and introduced a top-levelkeywordsfield. - Updated ETG generation + serialization tests accordingly.
- Added
keywordsto many Java connectors’@ElementTemplateannotations.
Reviewed changes
Copilot reviewed 196 out of 196 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| element-template-generator/core/src/test/resources/test-element-template.json | Updates expected JSON to use top-level keywords instead of metadata.keywords. |
| element-template-generator/core/src/test/java/io/camunda/connector/generator/dsl/ElementTemplateSerializationTest.java | Adjusts serialization test to set keywords directly. |
| element-template-generator/core/src/main/java/io/camunda/connector/generator/java/ClassBasedTemplateGenerator.java | Emits top-level keywords during template generation (omits field when empty). |
| element-template-generator/core/src/main/java/io/camunda/connector/generator/java/ClassBasedDocsGenerator.java | Uses ElementTemplate.keywords() when building docs model. |
| element-template-generator/core/src/main/java/io/camunda/connector/generator/dsl/ElementTemplateBuilder.java | Replaces builder metadata(...) with keywords(...). |
| element-template-generator/core/src/main/java/io/camunda/connector/generator/dsl/ElementTemplate.java | Replaces Metadata metadata with String[] keywords in the DSL record + JSON order. |
| element-template-generator/annotations/src/main/java/io/camunda/connector/generator/java/annotation/ElementTemplate.java | Replaces metadata() with keywords() in the annotation API. |
| connectors/webhook/src/main/java/io/camunda/connector/inbound/HttpWebhookExecutable.java | Adds connector keywords for Modeler search. |
| connectors/soap/src/main/java/io/camunda/connectors/soap/SoapConnector.java | Adds connector keywords for Modeler search. |
| connectors/slack/src/main/java/io/camunda/connector/slack/outbound/SlackFunction.java | Adds connector keywords for Modeler search. |
| connectors/slack/src/main/java/io/camunda/connector/slack/inbound/SlackInboundWebhookExecutable.java | Adds connector keywords for Modeler search. |
| connectors/sendgrid/src/main/java/io/camunda/connector/sendgrid/SendGridFunction.java | Adds connector keywords for Modeler search. |
| connectors/rabbitmq/src/main/java/io/camunda/connector/rabbitmq/outbound/RabbitMqFunction.java | Adds connector keywords for Modeler search. |
| connectors/rabbitmq/src/main/java/io/camunda/connector/rabbitmq/inbound/RabbitMqExecutable.java | Adds connector keywords for Modeler search. |
| connectors/microsoft/teams/src/main/java/io/camunda/connector/MSTeamsFunction.java | Adds connector keywords for Modeler search. |
| connectors/microsoft/email-inbound/src/main/java/io/camunda/connector/microsoft/email/MsEmailInboundExecutable.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/microsoft/azure-blobstorage/src/main/java/io/camunda/connector/azure/blobstorage/BlobStorageConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/kafka/src/main/java/io/camunda/connector/kafka/outbound/KafkaConnectorFunction.java | Adds connector keywords for Modeler search. |
| connectors/kafka/src/main/java/io/camunda/connector/kafka/inbound/KafkaExecutable.java | Adds connector keywords for Modeler search. |
| connectors/jdbc/src/main/java/io/camunda/connector/jdbc/outbound/JdbcFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/http/rest/src/main/java/io/camunda/connector/http/rest/HttpJsonFunction.java | Adds connector keywords for Modeler search. |
| connectors/http/polling/src/main/java/io/camunda/connector/http/polling/HttpPollingConnector.java | Adds connector keywords for Modeler search. |
| connectors/http/graphql/src/main/java/io/camunda/connector/http/graphql/GraphQLFunction.java | Adds connector keywords for Modeler search. |
| connectors/google/google-sheets/src/main/java/io/camunda/connector/gsheets/GoogleSheetsFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/google/google-gemini/src/main/java/io/camunda/connector/gemini/GeminiConnectorFunction.java | Adds connector keywords for Modeler search. |
| connectors/google/google-gcs/src/main/java/io/camunda/connector/google/gcs/ObjectStorageConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/google/google-drive/src/main/java/io/camunda/connector/gdrive/GoogleDriveFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/email/src/main/java/io/camunda/connector/email/outbound/EmailConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/email/src/main/java/io/camunda/connector/email/inbound/EmailConnectorExecutable.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/csv/src/main/java/io/camunda/connector/csv/CsvConnector.java | Adds connector keywords for Modeler search. |
| connectors/camunda-message/src/main/java/io/camunda/connector/message/SendMessageConnectorFunction.java | Adds connector keywords for Modeler search. |
| connectors/box/src/main/java/io/camunda/connector/box/BoxFunction.java | Adds connector keywords for Modeler search. |
| connectors/aws/aws-textract/src/main/java/io/camunda/connector/textract/TextractConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-sqs/src/main/java/io/camunda/connector/outbound/SqsConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-sqs/src/main/java/io/camunda/connector/inbound/SqsExecutable.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-sns/src/main/java/io/camunda/connector/sns/outbound/SnsConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-sns/src/main/java/io/camunda/connector/sns/inbound/SnsWebhookExecutable.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-sagemaker/src/main/java/io/camunda/connector/sagemaker/SagemakerConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-s3/src/main/java/io/camunda/connector/aws/s3/S3ConnectorFunction.java | Adds connector keywords for Modeler search. |
| connectors/aws/aws-lambda/src/main/java/io/camunda/connector/awslambda/LambdaConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-eventbridge/src/main/java/io/camunda/connector/aws/eventbridge/EventBridgeFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-dynamodb/src/main/java/io/camunda/connector/aws/dynamodb/AwsDynamoDbServiceConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/aws/aws-comprehend/src/main/java/io/camunda/connector/comprehend/ComprehendConnectorFunction.java | Adds connector keywords for Modeler search. |
| connectors/aws/aws-bedrock/src/main/java/io/camunda/connector/aws/bedrock/BedrockConnectorFunction.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/automation-anywhere/src/main/java/io/camunda/connector/automationanywhere/AutomationAnywhereConnector.java | Migrates from metadata.keywords to top-level keywords (+ expands keyword set). |
| connectors/agentic-ai/src/main/java/io/camunda/connector/agenticai/aiagent/AiAgentFunction.java | Migrates from metadata.keywords to top-level keywords. |
| /** | ||
| * Element template description. Will be displayed along with the connector name in Camunda | ||
| * Modeler. | ||
| * | ||
| * <p>If not specified, the description will be empty. | ||
| */ | ||
| String description() default ""; | ||
|
|
||
| Metadata metadata() default @Metadata; | ||
| /** | ||
| * Keywords used by Camunda Modeler to improve connector discoverability in search. Emitted at the | ||
| * root level of the generated element template JSON. | ||
| */ | ||
| String[] keywords() default {}; | ||
|
|
There was a problem hiding this comment.
Removing the nested @ElementTemplate.Metadata annotation and the metadata() attribute is a breaking change for any external connector projects depending on element-template-generator-annotations. Consider keeping metadata() (and the nested Metadata type) as a deprecated alias for at least one release, and have the generator merge keywords (prefer new keywords() when non-empty, otherwise fall back to metadata().keywords()). If the break is intentional, this should be paired with an explicit migration note and appropriate versioning/release notes.
|
🎉 This pull request has been included in release Thank you for your contribution! 🚀 |
Description
I split this PR into two commits, so just review the first one, the second one is just the regeneration of the templates.
Related issues
Follow up to this PR fixing this Issue: #6877
Checklist
release, as this branch will be rebased onto main before the next release. Example backport labels:
backport stable/8.8: for changes that should be included in the next 8.8.x release.backport release-8.8.7: for changes that should be included in the specific release 8.8.7, and thisrelease has already been created. The release branch will be merged back into stable/8.8 later, so the change
will be included in future 8.8.x releases as well.