From 52995753d41b20974601e15ba5a0846ce94ca10e Mon Sep 17 00:00:00 2001 From: Pavel Kotelevsky <38818382+chillleader@users.noreply.github.com> Date: Fri, 23 Aug 2024 09:14:46 +0200 Subject: [PATCH] feat(document): restructure the project and move document stuff to a different package (#3149) * refactor: move document stuff to a different module --------- Co-authored-by: Jonathan Roques --- .../connector-runtime-core/pom.xml | 5 ++ ...DefaultInboundConnectorContextFactory.java | 2 +- .../inbound/InboundConnectorContextImpl.java | 20 ++--- ...boundIntermediateConnectorContextImpl.java | 4 +- .../core/outbound/ConnectorJobHandler.java | 2 +- .../core/outbound/JobHandlerContext.java | 15 ++-- ...ultInboundConnectorContextFactoryTest.java | 2 +- .../InboundConnectorRuntimeConfiguration.java | 12 +-- ...OutboundConnectorRuntimeConfiguration.java | 8 +- .../SpringConnectorJobHandler.java | 2 +- .../lifecycle/OutboundConnectorManager.java | 2 +- connector-sdk/core/pom.xml | 5 ++ .../api/inbound/InboundConnectorContext.java | 6 +- .../json/ConnectorsObjectMapperSupplier.java | 17 +++- .../outbound/OutboundConnectorContext.java | 4 +- connector-sdk/document/pom.xml | 19 ++++ .../io/camunda}/document/CamundaDocument.java | 10 +-- .../java/io/camunda}/document/Document.java | 3 +- .../camunda}/document/DocumentMetadata.java | 2 +- .../document/factory}/DocumentFactory.java | 6 +- .../factory}/DocumentFactoryImpl.java | 31 ++++--- .../AggregatingOperationExecutor.java | 6 +- .../operation/Base64OperationExecutor.java | 8 +- .../document/operation/DocumentOperation.java | 6 +- .../operation/DocumentOperationExecutor.java | 4 +- .../CamundaDocumentReferenceImpl.java | 5 +- .../reference}/DocumentReference.java | 4 +- .../document/store/CamundaDocumentStore.java | 4 +- .../store/DocumentCreationRequest.java | 4 +- .../store}/InMemoryDocumentStore.java | 14 +-- .../jackson-datatype-document/pom.xml | 2 +- .../jackson/DocumentReferenceModel.java | 6 +- .../jackson/JacksonModuleDocument.java | 86 +++++++++---------- .../ByteArrayDocumentDeserializer.java | 13 ++- .../deserializer/DocumentDeserializer.java | 6 +- .../DocumentDeserializerBase.java | 8 +- .../DocumentOperationResultDeserializer.java | 4 +- .../InputStreamDocumentDeserializer.java | 4 +- .../ObjectDocumentDeserializer.java | 7 +- .../StringDocumentDeserializer.java | 4 +- .../serializer/DocumentSerializer.java | 4 +- .../jackson/DocumentDeserializationTest.java | 22 ++--- .../jackson/DocumentSerializationTest.java | 10 +-- connector-sdk/pom.xml | 1 + .../InboundConnectorContextBuilder.java | 34 ++++---- .../OutboundConnectorContextBuilder.java | 20 ++--- parent/pom.xml | 6 ++ 47 files changed, 258 insertions(+), 211 deletions(-) create mode 100644 connector-sdk/document/pom.xml rename {connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core => connector-sdk/document/src/main/java/io/camunda}/document/CamundaDocument.java (83%) rename connector-sdk/{core/src/main/java/io/camunda/connector/api => document/src/main/java/io/camunda}/document/Document.java (93%) rename connector-sdk/{core/src/main/java/io/camunda/connector/api => document/src/main/java/io/camunda}/document/DocumentMetadata.java (97%) rename connector-sdk/{core/src/main/java/io/camunda/connector/api/document => document/src/main/java/io/camunda/document/factory}/DocumentFactory.java (85%) rename {connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document => connector-sdk/document/src/main/java/io/camunda/document/factory}/DocumentFactoryImpl.java (63%) rename {connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document => connector-sdk/document/src/main/java/io/camunda/document/operation}/AggregatingOperationExecutor.java (82%) rename connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/operation/Base64Operation.java => connector-sdk/document/src/main/java/io/camunda/document/operation/Base64OperationExecutor.java (75%) rename connector-sdk/{core/src/main/java/io/camunda/connector/api => document/src/main/java/io/camunda}/document/operation/DocumentOperation.java (77%) rename connector-sdk/{core/src/main/java/io/camunda/connector/api => document/src/main/java/io/camunda}/document/operation/DocumentOperationExecutor.java (90%) rename {connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document => connector-sdk/document/src/main/java/io/camunda/document/reference}/CamundaDocumentReferenceImpl.java (85%) rename connector-sdk/{core/src/main/java/io/camunda/connector/api/document => document/src/main/java/io/camunda/document/reference}/DocumentReference.java (92%) rename connector-sdk/{core/src/main/java/io/camunda/connector/api => document/src/main/java/io/camunda}/document/store/CamundaDocumentStore.java (89%) rename connector-sdk/{core/src/main/java/io/camunda/connector/api => document/src/main/java/io/camunda}/document/store/DocumentCreationRequest.java (95%) rename {connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document => connector-sdk/document/src/main/java/io/camunda/document/store}/InMemoryDocumentStore.java (83%) diff --git a/connector-runtime/connector-runtime-core/pom.xml b/connector-runtime/connector-runtime-core/pom.xml index a625ac3a47..f4f59fceaf 100644 --- a/connector-runtime/connector-runtime-core/pom.xml +++ b/connector-runtime/connector-runtime-core/pom.xml @@ -25,6 +25,11 @@ connector-core + + io.camunda.connector + connector-document + + com.fasterxml.jackson.core diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/DefaultInboundConnectorContextFactory.java b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/DefaultInboundConnectorContextFactory.java index 447089d0f1..e1db3f77bf 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/DefaultInboundConnectorContextFactory.java +++ b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/DefaultInboundConnectorContextFactory.java @@ -18,7 +18,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.EvictingQueue; -import io.camunda.connector.api.document.DocumentFactory; import io.camunda.connector.api.inbound.InboundConnectorContext; import io.camunda.connector.api.inbound.InboundConnectorExecutable; import io.camunda.connector.api.inbound.InboundIntermediateConnectorContext; @@ -26,6 +25,7 @@ import io.camunda.connector.runtime.core.inbound.correlation.InboundCorrelationHandler; import io.camunda.connector.runtime.core.inbound.details.InboundConnectorDetails.ValidInboundConnectorDetails; import io.camunda.connector.runtime.core.secret.SecretProviderAggregator; +import io.camunda.document.factory.DocumentFactory; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.function.Consumer; diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/InboundConnectorContextImpl.java b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/InboundConnectorContextImpl.java index cd970d2c64..ea133937c5 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/InboundConnectorContextImpl.java +++ b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/InboundConnectorContextImpl.java @@ -18,9 +18,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.EvictingQueue; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.store.DocumentCreationRequest; import io.camunda.connector.api.inbound.Activity; import io.camunda.connector.api.inbound.CorrelationResult; import io.camunda.connector.api.inbound.Health; @@ -31,11 +28,14 @@ import io.camunda.connector.api.validation.ValidationProvider; import io.camunda.connector.feel.FeelEngineWrapperException; import io.camunda.connector.runtime.core.AbstractConnectorContext; -import io.camunda.connector.runtime.core.document.DocumentFactoryImpl; -import io.camunda.connector.runtime.core.document.InMemoryDocumentStore; import io.camunda.connector.runtime.core.inbound.correlation.InboundCorrelationHandler; import io.camunda.connector.runtime.core.inbound.details.InboundConnectorDetails; import io.camunda.connector.runtime.core.inbound.details.InboundConnectorDetails.ValidInboundConnectorDetails; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.factory.DocumentFactoryImpl; +import io.camunda.document.store.DocumentCreationRequest; +import io.camunda.document.store.InMemoryDocumentStore; import java.util.List; import java.util.Map; import java.util.Objects; @@ -56,12 +56,10 @@ public class InboundConnectorContextImpl extends AbstractConnectorContext private final ObjectMapper objectMapper; private final Consumer cancellationCallback; - - private Health health = Health.unknown(); - private final EvictingQueue logs; - private final DocumentFactory documentFactory; + private Health health = Health.unknown(); + private Map propertiesWithSecrets; public InboundConnectorContextImpl( SecretProvider secretProvider, @@ -95,7 +93,7 @@ public InboundConnectorContextImpl( this( secretProvider, validationProvider, - new DocumentFactoryImpl(new InMemoryDocumentStore()), + new DocumentFactoryImpl(InMemoryDocumentStore.INSTANCE), connectorDetails, correlationHandler, cancellationCallback, @@ -182,8 +180,6 @@ public Document createDocument(DocumentCreationRequest request) { return documentFactory.create(request); } - private Map propertiesWithSecrets; - private Map getPropertiesWithSecrets(Map properties) { if (propertiesWithSecrets == null) { propertiesWithSecrets = diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/InboundIntermediateConnectorContextImpl.java b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/InboundIntermediateConnectorContextImpl.java index 599b20a70c..1d21c787ab 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/InboundIntermediateConnectorContextImpl.java +++ b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/inbound/InboundIntermediateConnectorContextImpl.java @@ -17,8 +17,6 @@ package io.camunda.connector.runtime.core.inbound; import com.fasterxml.jackson.databind.ObjectMapper; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.store.DocumentCreationRequest; import io.camunda.connector.api.inbound.Activity; import io.camunda.connector.api.inbound.CorrelationResult; import io.camunda.connector.api.inbound.Health; @@ -29,6 +27,8 @@ import io.camunda.connector.api.validation.ValidationProvider; import io.camunda.connector.runtime.core.inbound.correlation.InboundCorrelationHandler; import io.camunda.connector.runtime.core.inbound.correlation.MessageCorrelationPoint.BoundaryEventCorrelationPoint; +import io.camunda.document.Document; +import io.camunda.document.store.DocumentCreationRequest; import io.camunda.operate.model.FlowNodeInstance; import java.util.List; import java.util.Map; diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/outbound/ConnectorJobHandler.java b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/outbound/ConnectorJobHandler.java index 2a67cae15b..60c94a3bd1 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/outbound/ConnectorJobHandler.java +++ b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/outbound/ConnectorJobHandler.java @@ -18,7 +18,6 @@ package io.camunda.connector.runtime.core.outbound; import com.fasterxml.jackson.databind.ObjectMapper; -import io.camunda.connector.api.document.DocumentFactory; import io.camunda.connector.api.error.ConnectorException; import io.camunda.connector.api.error.ConnectorRetryException; import io.camunda.connector.api.outbound.OutboundConnectorFunction; @@ -34,6 +33,7 @@ import io.camunda.connector.runtime.core.outbound.ErrorExpressionJobContext.ErrorExpressionJob; import io.camunda.connector.runtime.core.secret.SecretProviderAggregator; import io.camunda.connector.runtime.core.secret.SecretProviderDiscovery; +import io.camunda.document.factory.DocumentFactory; import io.camunda.zeebe.client.api.command.FinalCommandStep; import io.camunda.zeebe.client.api.response.ActivatedJob; import io.camunda.zeebe.client.api.response.CompleteJobResponse; diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/outbound/JobHandlerContext.java b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/outbound/JobHandlerContext.java index 4c61b4e120..5d1c4948dd 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/outbound/JobHandlerContext.java +++ b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/outbound/JobHandlerContext.java @@ -21,17 +21,17 @@ import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.exc.*; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.store.DocumentCreationRequest; import io.camunda.connector.api.error.ConnectorException; import io.camunda.connector.api.outbound.JobContext; import io.camunda.connector.api.outbound.OutboundConnectorContext; import io.camunda.connector.api.secret.SecretProvider; import io.camunda.connector.api.validation.ValidationProvider; import io.camunda.connector.runtime.core.AbstractConnectorContext; -import io.camunda.connector.runtime.core.document.DocumentFactoryImpl; -import io.camunda.connector.runtime.core.document.InMemoryDocumentStore; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.factory.DocumentFactoryImpl; +import io.camunda.document.store.DocumentCreationRequest; +import io.camunda.document.store.InMemoryDocumentStore; import io.camunda.zeebe.client.api.response.ActivatedJob; import java.util.Objects; import org.slf4j.Logger; @@ -50,9 +50,8 @@ public class JobHandlerContext extends AbstractConnectorContext private final ObjectMapper objectMapper; private final JobContext jobContext; - private String jsonWithSecrets = null; - private final DocumentFactory documentFactory; + private String jsonWithSecrets = null; public JobHandlerContext( final ActivatedJob job, @@ -76,7 +75,7 @@ public JobHandlerContext( job, secretProvider, validationProvider, - new DocumentFactoryImpl(new InMemoryDocumentStore()), + new DocumentFactoryImpl(InMemoryDocumentStore.INSTANCE), objectMapper); } diff --git a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/inbound/DefaultInboundConnectorContextFactoryTest.java b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/inbound/DefaultInboundConnectorContextFactoryTest.java index 4dede2dbc1..dea238d025 100644 --- a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/inbound/DefaultInboundConnectorContextFactoryTest.java +++ b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/inbound/DefaultInboundConnectorContextFactoryTest.java @@ -20,7 +20,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.EvictingQueue; -import io.camunda.connector.api.document.DocumentFactory; import io.camunda.connector.api.inbound.InboundConnectorContext; import io.camunda.connector.api.inbound.InboundConnectorExecutable; import io.camunda.connector.api.inbound.InboundIntermediateConnectorContext; @@ -28,6 +27,7 @@ import io.camunda.connector.runtime.core.inbound.correlation.InboundCorrelationHandler; import io.camunda.connector.runtime.core.inbound.details.InboundConnectorDetails.ValidInboundConnectorDetails; import io.camunda.connector.runtime.core.secret.SecretProviderAggregator; +import io.camunda.document.factory.DocumentFactory; import java.util.function.Consumer; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/inbound/InboundConnectorRuntimeConfiguration.java b/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/inbound/InboundConnectorRuntimeConfiguration.java index e980f39be9..151be365cf 100644 --- a/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/inbound/InboundConnectorRuntimeConfiguration.java +++ b/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/inbound/InboundConnectorRuntimeConfiguration.java @@ -17,7 +17,6 @@ package io.camunda.connector.runtime.inbound; import com.fasterxml.jackson.databind.ObjectMapper; -import io.camunda.connector.api.document.DocumentFactory; import io.camunda.connector.api.validation.ValidationProvider; import io.camunda.connector.feel.FeelEngineWrapper; import io.camunda.connector.runtime.core.inbound.DefaultInboundConnectorContextFactory; @@ -39,6 +38,7 @@ import io.camunda.connector.runtime.inbound.state.ProcessStateStore; import io.camunda.connector.runtime.inbound.state.TenantAwareProcessStateStoreImpl; import io.camunda.connector.runtime.inbound.webhook.WebhookConnectorRegistry; +import io.camunda.document.factory.DocumentFactory; import io.camunda.operate.CamundaOperateClient; import io.camunda.zeebe.client.ZeebeClient; import io.camunda.zeebe.spring.client.metrics.MetricsRecorder; @@ -59,6 +59,11 @@ public class InboundConnectorRuntimeConfiguration { @Value("${camunda.connector.inbound.message.ttl:PT1H}") private Duration messageTtl; + @Bean + public static InboundConnectorBeanDefinitionProcessor inboundConnectorBeanDefinitionProcessor() { + return new InboundConnectorBeanDefinitionProcessor(); + } + @Bean public ProcessElementContextFactory processElementContextFactory( ObjectMapper objectMapper, @@ -78,11 +83,6 @@ public InboundCorrelationHandler inboundCorrelationHandler( zeebeClient, feelEngine, metricsRecorder, elementContextFactory, messageTtl); } - @Bean - public static InboundConnectorBeanDefinitionProcessor inboundConnectorBeanDefinitionProcessor() { - return new InboundConnectorBeanDefinitionProcessor(); - } - @Bean public InboundConnectorContextFactory springInboundConnectorContextFactory( ObjectMapper mapper, diff --git a/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/OutboundConnectorRuntimeConfiguration.java b/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/OutboundConnectorRuntimeConfiguration.java index dbf09476ed..20b511a6d6 100644 --- a/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/OutboundConnectorRuntimeConfiguration.java +++ b/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/OutboundConnectorRuntimeConfiguration.java @@ -17,16 +17,16 @@ package io.camunda.connector.runtime.outbound; import com.fasterxml.jackson.databind.ObjectMapper; -import io.camunda.connector.api.document.DocumentFactory; import io.camunda.connector.api.validation.ValidationProvider; -import io.camunda.connector.runtime.core.document.DocumentFactoryImpl; -import io.camunda.connector.runtime.core.document.InMemoryDocumentStore; import io.camunda.connector.runtime.core.outbound.DefaultOutboundConnectorFactory; import io.camunda.connector.runtime.core.outbound.OutboundConnectorDiscovery; import io.camunda.connector.runtime.core.outbound.OutboundConnectorFactory; import io.camunda.connector.runtime.core.secret.SecretProviderAggregator; import io.camunda.connector.runtime.outbound.lifecycle.OutboundConnectorAnnotationProcessor; import io.camunda.connector.runtime.outbound.lifecycle.OutboundConnectorManager; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.factory.DocumentFactoryImpl; +import io.camunda.document.store.InMemoryDocumentStore; import io.camunda.zeebe.spring.client.jobhandling.CommandExceptionHandlingStrategy; import io.camunda.zeebe.spring.client.jobhandling.JobWorkerManager; import io.camunda.zeebe.spring.client.metrics.MetricsRecorder; @@ -45,7 +45,7 @@ public OutboundConnectorFactory outboundConnectorFactory() { @Bean public DocumentFactory documentFactory() { - return new DocumentFactoryImpl(new InMemoryDocumentStore()); + return new DocumentFactoryImpl(InMemoryDocumentStore.INSTANCE); } @Bean diff --git a/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/jobhandling/SpringConnectorJobHandler.java b/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/jobhandling/SpringConnectorJobHandler.java index ed0f25684c..254913be1c 100644 --- a/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/jobhandling/SpringConnectorJobHandler.java +++ b/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/jobhandling/SpringConnectorJobHandler.java @@ -17,7 +17,6 @@ package io.camunda.connector.runtime.outbound.jobhandling; import com.fasterxml.jackson.databind.ObjectMapper; -import io.camunda.connector.api.document.DocumentFactory; import io.camunda.connector.api.outbound.OutboundConnectorFunction; import io.camunda.connector.api.validation.ValidationProvider; import io.camunda.connector.runtime.core.config.OutboundConnectorConfiguration; @@ -27,6 +26,7 @@ import io.camunda.connector.runtime.core.secret.SecretProviderAggregator; import io.camunda.connector.runtime.metrics.ConnectorMetrics; import io.camunda.connector.runtime.metrics.ConnectorMetrics.Outbound; +import io.camunda.document.factory.DocumentFactory; import io.camunda.zeebe.client.api.command.FinalCommandStep; import io.camunda.zeebe.client.api.response.ActivatedJob; import io.camunda.zeebe.client.api.worker.JobClient; diff --git a/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/lifecycle/OutboundConnectorManager.java b/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/lifecycle/OutboundConnectorManager.java index 1d75b767c9..202250caf7 100644 --- a/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/lifecycle/OutboundConnectorManager.java +++ b/connector-runtime/connector-runtime-spring/src/main/java/io/camunda/connector/runtime/outbound/lifecycle/OutboundConnectorManager.java @@ -17,13 +17,13 @@ package io.camunda.connector.runtime.outbound.lifecycle; import com.fasterxml.jackson.databind.ObjectMapper; -import io.camunda.connector.api.document.DocumentFactory; import io.camunda.connector.api.outbound.OutboundConnectorFunction; import io.camunda.connector.api.validation.ValidationProvider; import io.camunda.connector.runtime.core.config.OutboundConnectorConfiguration; import io.camunda.connector.runtime.core.outbound.OutboundConnectorFactory; import io.camunda.connector.runtime.core.secret.SecretProviderAggregator; import io.camunda.connector.runtime.outbound.jobhandling.SpringConnectorJobHandler; +import io.camunda.document.factory.DocumentFactory; import io.camunda.zeebe.client.ZeebeClient; import io.camunda.zeebe.client.api.worker.JobHandler; import io.camunda.zeebe.spring.client.annotation.value.ZeebeWorkerValue; diff --git a/connector-sdk/core/pom.xml b/connector-sdk/core/pom.xml index 87cc0ea42f..8d54d351da 100644 --- a/connector-sdk/core/pom.xml +++ b/connector-sdk/core/pom.xml @@ -41,6 +41,11 @@ jackson-datatype-jdk8 provided + + io.camunda.connector + jackson-datatype-document + 8.6.0-SNAPSHOT + org.junit.jupiter diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/inbound/InboundConnectorContext.java b/connector-sdk/core/src/main/java/io/camunda/connector/api/inbound/InboundConnectorContext.java index 2461c25c0f..8ed2fcbec4 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/inbound/InboundConnectorContext.java +++ b/connector-sdk/core/src/main/java/io/camunda/connector/api/inbound/InboundConnectorContext.java @@ -16,8 +16,8 @@ */ package io.camunda.connector.api.inbound; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.store.DocumentCreationRequest; +import io.camunda.document.Document; +import io.camunda.document.store.DocumentCreationRequest; import java.util.Map; /** @@ -56,7 +56,7 @@ public interface InboundConnectorContext { /** * Low-level properties access method. Allows to perform custom deserialization. For a simpler - * property access, consider using {@link #bindProperties(Class)} (Class)}. + * property access, consider using {@link #bindProperties(Class)}. * *

Note: this method doesn't perform validation or FEEl expression evaluation. Secret * replacement is performed using the {@link io.camunda.connector.api.secret.SecretProvider} diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/json/ConnectorsObjectMapperSupplier.java b/connector-sdk/core/src/main/java/io/camunda/connector/api/json/ConnectorsObjectMapperSupplier.java index 1a35dab5b5..549b873101 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/json/ConnectorsObjectMapperSupplier.java +++ b/connector-sdk/core/src/main/java/io/camunda/connector/api/json/ConnectorsObjectMapperSupplier.java @@ -23,16 +23,25 @@ import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import io.camunda.connector.document.annotation.jackson.JacksonModuleDocument; +import io.camunda.connector.document.annotation.jackson.JacksonModuleDocument.DocumentModuleSettings; import io.camunda.connector.feel.jackson.JacksonModuleFeelFunction; +import io.camunda.document.factory.DocumentFactoryImpl; +import io.camunda.document.store.InMemoryDocumentStore; /** Default ObjectMapper supplier to be used by the connector runtime. */ public class ConnectorsObjectMapperSupplier { - private ConnectorsObjectMapperSupplier() {} - public static ObjectMapper DEFAULT_MAPPER = JsonMapper.builder() - .addModules(new JacksonModuleFeelFunction(), new Jdk8Module(), new JavaTimeModule()) + .addModules( + new JacksonModuleFeelFunction(), + new JacksonModuleDocument( + new DocumentFactoryImpl(InMemoryDocumentStore.INSTANCE), + null, + DocumentModuleSettings.create()), + new Jdk8Module(), + new JavaTimeModule()) .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS) .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) .enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS) @@ -40,6 +49,8 @@ private ConnectorsObjectMapperSupplier() {} .disable(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS) .build(); + private ConnectorsObjectMapperSupplier() {} + public static ObjectMapper getCopy() { return DEFAULT_MAPPER.copy(); } diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/outbound/OutboundConnectorContext.java b/connector-sdk/core/src/main/java/io/camunda/connector/api/outbound/OutboundConnectorContext.java index 953189e012..71010c5f4a 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/outbound/OutboundConnectorContext.java +++ b/connector-sdk/core/src/main/java/io/camunda/connector/api/outbound/OutboundConnectorContext.java @@ -16,8 +16,8 @@ */ package io.camunda.connector.api.outbound; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.store.DocumentCreationRequest; +import io.camunda.document.Document; +import io.camunda.document.store.DocumentCreationRequest; /** * The context object provided to a connector function. The context allows to fetch information diff --git a/connector-sdk/document/pom.xml b/connector-sdk/document/pom.xml new file mode 100644 index 0000000000..d9dfa8869f --- /dev/null +++ b/connector-sdk/document/pom.xml @@ -0,0 +1,19 @@ + + 4.0.0 + + + io.camunda.connector + connector-sdk-parent + ../pom.xml + 8.6.0-SNAPSHOT + + + connector-document + Camunda Connector Document + connector-document + jar + + + + \ No newline at end of file diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/CamundaDocument.java b/connector-sdk/document/src/main/java/io/camunda/document/CamundaDocument.java similarity index 83% rename from connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/CamundaDocument.java rename to connector-sdk/document/src/main/java/io/camunda/document/CamundaDocument.java index 76a8df02e4..a513178d03 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/CamundaDocument.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/CamundaDocument.java @@ -14,13 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.runtime.core.document; +package io.camunda.document; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentMetadata; -import io.camunda.connector.api.document.DocumentReference; -import io.camunda.connector.api.document.DocumentReference.CamundaDocumentReference; -import io.camunda.connector.api.document.store.CamundaDocumentStore; +import io.camunda.document.reference.DocumentReference; +import io.camunda.document.reference.DocumentReference.CamundaDocumentReference; +import io.camunda.document.store.CamundaDocumentStore; import java.io.InputStream; import java.util.Base64; diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/Document.java b/connector-sdk/document/src/main/java/io/camunda/document/Document.java similarity index 93% rename from connector-sdk/core/src/main/java/io/camunda/connector/api/document/Document.java rename to connector-sdk/document/src/main/java/io/camunda/document/Document.java index fb0cae0fa9..28df9738ae 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/Document.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/Document.java @@ -14,8 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.api.document; +package io.camunda.document; +import io.camunda.document.reference.DocumentReference; import java.io.InputStream; /** diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentMetadata.java b/connector-sdk/document/src/main/java/io/camunda/document/DocumentMetadata.java similarity index 97% rename from connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentMetadata.java rename to connector-sdk/document/src/main/java/io/camunda/document/DocumentMetadata.java index ea480b95bf..8d67bb1683 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentMetadata.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/DocumentMetadata.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.api.document; +package io.camunda.document; import java.util.Map; diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentFactory.java b/connector-sdk/document/src/main/java/io/camunda/document/factory/DocumentFactory.java similarity index 85% rename from connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentFactory.java rename to connector-sdk/document/src/main/java/io/camunda/document/factory/DocumentFactory.java index e66e6b119b..3462559a28 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentFactory.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/factory/DocumentFactory.java @@ -14,9 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.api.document; +package io.camunda.document.factory; -import io.camunda.connector.api.document.store.DocumentCreationRequest; +import io.camunda.document.Document; +import io.camunda.document.reference.DocumentReference; +import io.camunda.document.store.DocumentCreationRequest; public interface DocumentFactory { diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/DocumentFactoryImpl.java b/connector-sdk/document/src/main/java/io/camunda/document/factory/DocumentFactoryImpl.java similarity index 63% rename from connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/DocumentFactoryImpl.java rename to connector-sdk/document/src/main/java/io/camunda/document/factory/DocumentFactoryImpl.java index 4942e47003..21dc9237e5 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/DocumentFactoryImpl.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/factory/DocumentFactoryImpl.java @@ -14,15 +14,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.runtime.core.document; +package io.camunda.document.factory; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.DocumentReference; -import io.camunda.connector.api.document.DocumentReference.CamundaDocumentReference; -import io.camunda.connector.api.document.DocumentReference.ExternalDocumentReference; -import io.camunda.connector.api.document.store.CamundaDocumentStore; -import io.camunda.connector.api.document.store.DocumentCreationRequest; +import io.camunda.document.CamundaDocument; +import io.camunda.document.Document; +import io.camunda.document.reference.DocumentReference; +import io.camunda.document.reference.DocumentReference.CamundaDocumentReference; +import io.camunda.document.reference.DocumentReference.ExternalDocumentReference; +import io.camunda.document.store.CamundaDocumentStore; +import io.camunda.document.store.DocumentCreationRequest; public class DocumentFactoryImpl implements DocumentFactory { @@ -34,13 +34,18 @@ public DocumentFactoryImpl(CamundaDocumentStore documentStore) { @Override public Document resolve(DocumentReference reference) { - return switch (reference) { - case CamundaDocumentReference camundaDocumentReference -> new CamundaDocument( + if (reference == null) { + return null; + } + if (reference instanceof CamundaDocumentReference camundaDocumentReference) { + return new CamundaDocument( camundaDocumentReference.metadata(), camundaDocumentReference, documentStore); - case ExternalDocumentReference ignored -> throw new IllegalArgumentException( + } + if (reference instanceof ExternalDocumentReference ignored) { + throw new IllegalArgumentException( "External document references are not yet supported: " + reference.getClass()); - default -> throw new IllegalArgumentException("Unsupported document reference: " + reference); - }; + } + throw new IllegalArgumentException("Unknown document reference type: " + reference.getClass()); } @Override diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/AggregatingOperationExecutor.java b/connector-sdk/document/src/main/java/io/camunda/document/operation/AggregatingOperationExecutor.java similarity index 82% rename from connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/AggregatingOperationExecutor.java rename to connector-sdk/document/src/main/java/io/camunda/document/operation/AggregatingOperationExecutor.java index f44eba58e6..9847f506c2 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/AggregatingOperationExecutor.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/operation/AggregatingOperationExecutor.java @@ -14,11 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.runtime.core.document; +package io.camunda.document.operation; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.operation.DocumentOperation; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; +import io.camunda.document.Document; public class AggregatingOperationExecutor implements DocumentOperationExecutor { diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/operation/Base64Operation.java b/connector-sdk/document/src/main/java/io/camunda/document/operation/Base64OperationExecutor.java similarity index 75% rename from connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/operation/Base64Operation.java rename to connector-sdk/document/src/main/java/io/camunda/document/operation/Base64OperationExecutor.java index 77615e66ed..6b62596652 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/operation/Base64Operation.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/operation/Base64OperationExecutor.java @@ -14,13 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.runtime.core.document.operation; +package io.camunda.document.operation; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.operation.DocumentOperation; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; +import io.camunda.document.Document; -public class Base64Operation implements DocumentOperationExecutor { +public class Base64OperationExecutor implements DocumentOperationExecutor { @Override public boolean matches(DocumentOperation operationReference) { diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/operation/DocumentOperation.java b/connector-sdk/document/src/main/java/io/camunda/document/operation/DocumentOperation.java similarity index 77% rename from connector-sdk/core/src/main/java/io/camunda/connector/api/document/operation/DocumentOperation.java rename to connector-sdk/document/src/main/java/io/camunda/document/operation/DocumentOperation.java index 69465ef7e7..24bf3c064f 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/operation/DocumentOperation.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/operation/DocumentOperation.java @@ -14,10 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.api.document.operation; +package io.camunda.document.operation; -import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Map; -public record DocumentOperation( - @JsonProperty("$name") String name, @JsonProperty("$params") Map params) {} +public record DocumentOperation(String name, Map params) {} diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/operation/DocumentOperationExecutor.java b/connector-sdk/document/src/main/java/io/camunda/document/operation/DocumentOperationExecutor.java similarity index 90% rename from connector-sdk/core/src/main/java/io/camunda/connector/api/document/operation/DocumentOperationExecutor.java rename to connector-sdk/document/src/main/java/io/camunda/document/operation/DocumentOperationExecutor.java index 1bbb89b5b7..b07323654d 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/operation/DocumentOperationExecutor.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/operation/DocumentOperationExecutor.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.api.document.operation; +package io.camunda.document.operation; -import io.camunda.connector.api.document.Document; +import io.camunda.document.Document; public interface DocumentOperationExecutor { diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/CamundaDocumentReferenceImpl.java b/connector-sdk/document/src/main/java/io/camunda/document/reference/CamundaDocumentReferenceImpl.java similarity index 85% rename from connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/CamundaDocumentReferenceImpl.java rename to connector-sdk/document/src/main/java/io/camunda/document/reference/CamundaDocumentReferenceImpl.java index f8c2971032..439945acf6 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/CamundaDocumentReferenceImpl.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/reference/CamundaDocumentReferenceImpl.java @@ -14,10 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.runtime.core.document; +package io.camunda.document.reference; -import io.camunda.connector.api.document.DocumentMetadata; -import io.camunda.connector.api.document.DocumentReference; +import io.camunda.document.DocumentMetadata; public record CamundaDocumentReferenceImpl( String storeId, String documentId, DocumentMetadata metadata) diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentReference.java b/connector-sdk/document/src/main/java/io/camunda/document/reference/DocumentReference.java similarity index 92% rename from connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentReference.java rename to connector-sdk/document/src/main/java/io/camunda/document/reference/DocumentReference.java index 234d0e2d7a..3c384ff698 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/DocumentReference.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/reference/DocumentReference.java @@ -14,7 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.api.document; +package io.camunda.document.reference; + +import io.camunda.document.DocumentMetadata; public interface DocumentReference { diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/store/CamundaDocumentStore.java b/connector-sdk/document/src/main/java/io/camunda/document/store/CamundaDocumentStore.java similarity index 89% rename from connector-sdk/core/src/main/java/io/camunda/connector/api/document/store/CamundaDocumentStore.java rename to connector-sdk/document/src/main/java/io/camunda/document/store/CamundaDocumentStore.java index 2414329a84..ab36db890a 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/store/CamundaDocumentStore.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/store/CamundaDocumentStore.java @@ -14,9 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.api.document.store; +package io.camunda.document.store; -import io.camunda.connector.api.document.DocumentReference.CamundaDocumentReference; +import io.camunda.document.reference.DocumentReference.CamundaDocumentReference; import java.io.InputStream; public interface CamundaDocumentStore { diff --git a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/store/DocumentCreationRequest.java b/connector-sdk/document/src/main/java/io/camunda/document/store/DocumentCreationRequest.java similarity index 95% rename from connector-sdk/core/src/main/java/io/camunda/connector/api/document/store/DocumentCreationRequest.java rename to connector-sdk/document/src/main/java/io/camunda/document/store/DocumentCreationRequest.java index b20e558cdc..a2109cf500 100644 --- a/connector-sdk/core/src/main/java/io/camunda/connector/api/document/store/DocumentCreationRequest.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/store/DocumentCreationRequest.java @@ -15,9 +15,9 @@ * limitations under the License. */ -package io.camunda.connector.api.document.store; +package io.camunda.document.store; -import io.camunda.connector.api.document.DocumentMetadata; +import io.camunda.document.DocumentMetadata; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.Map; diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/InMemoryDocumentStore.java b/connector-sdk/document/src/main/java/io/camunda/document/store/InMemoryDocumentStore.java similarity index 83% rename from connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/InMemoryDocumentStore.java rename to connector-sdk/document/src/main/java/io/camunda/document/store/InMemoryDocumentStore.java index f7cd7dd2e9..51bea60f9c 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/document/InMemoryDocumentStore.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/store/InMemoryDocumentStore.java @@ -14,24 +14,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.runtime.core.document; +package io.camunda.document.store; -import io.camunda.connector.api.document.DocumentMetadata; -import io.camunda.connector.api.document.DocumentReference.CamundaDocumentReference; -import io.camunda.connector.api.document.store.CamundaDocumentStore; -import io.camunda.connector.api.document.store.DocumentCreationRequest; +import io.camunda.document.DocumentMetadata; +import io.camunda.document.reference.CamundaDocumentReferenceImpl; +import io.camunda.document.reference.DocumentReference.CamundaDocumentReference; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import java.util.UUID; +/** Use this document store to store documents in memory. This is useful for testing purposes. */ public class InMemoryDocumentStore implements CamundaDocumentStore { public static final String STORE_ID = "in-memory"; + public static InMemoryDocumentStore INSTANCE = new InMemoryDocumentStore(); + private final Map documents = new HashMap<>(); + private InMemoryDocumentStore() {} + @Override public CamundaDocumentReference createDocument(DocumentCreationRequest request) { final String id = diff --git a/connector-sdk/jackson-datatype-document/pom.xml b/connector-sdk/jackson-datatype-document/pom.xml index b33f92cdd5..86d91be000 100644 --- a/connector-sdk/jackson-datatype-document/pom.xml +++ b/connector-sdk/jackson-datatype-document/pom.xml @@ -14,7 +14,7 @@ io.camunda.connector - connector-core + connector-document com.fasterxml.jackson.core diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/DocumentReferenceModel.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/DocumentReferenceModel.java index 6c09137b73..8a211ec51b 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/DocumentReferenceModel.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/DocumentReferenceModel.java @@ -24,11 +24,11 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo.As; -import io.camunda.connector.api.document.DocumentMetadata; -import io.camunda.connector.api.document.DocumentReference; -import io.camunda.connector.api.document.operation.DocumentOperation; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel.CamundaDocumentReferenceModel; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel.ExternalDocumentReferenceModel; +import io.camunda.document.DocumentMetadata; +import io.camunda.document.operation.DocumentOperation; +import io.camunda.document.reference.DocumentReference; import java.util.Map; import java.util.Optional; diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/JacksonModuleDocument.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/JacksonModuleDocument.java index 6f36b77804..c9d40868cf 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/JacksonModuleDocument.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/JacksonModuleDocument.java @@ -18,9 +18,6 @@ import com.fasterxml.jackson.core.Version; import com.fasterxml.jackson.databind.module.SimpleModule; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.deserializer.ByteArrayDocumentDeserializer; import io.camunda.connector.document.annotation.jackson.deserializer.DocumentDeserializer; import io.camunda.connector.document.annotation.jackson.deserializer.DocumentOperationResultDeserializer; @@ -28,50 +25,13 @@ import io.camunda.connector.document.annotation.jackson.deserializer.ObjectDocumentDeserializer; import io.camunda.connector.document.annotation.jackson.deserializer.StringDocumentDeserializer; import io.camunda.connector.document.annotation.jackson.serializer.DocumentSerializer; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.InputStream; public class JacksonModuleDocument extends SimpleModule { - public static class DocumentModuleSettings { - - private boolean lazy = true; - private boolean enableObject = true; - private boolean enableString = true; - - private DocumentModuleSettings() {} - - /** - * Enable lazy operations for document deserialization. - * - *

When enabled, given that the connector consumes a document as a generic {@link Object} - * type, and an operation is present in the document reference, the operation is not executed in - * the deserialization phase. Instead, the operation is executed during serialization using the - * {@link DocumentSerializer}. - * - *

Disable lazy operations if your connector doesn't use the document module for - * serialization (or doesn't use Jackson at all). - * - *

This takes no effect if {@link #enableObject(boolean)} is disabled. - */ - public void lazyOperations(boolean lazy) { - this.lazy = lazy; - } - - /** Enable deserialization of document references into objects. */ - public void enableObject(boolean enable) { - this.enableObject = enable; - } - - /** Enable deserialization of document references into strings. */ - public void enableString(boolean enable) { - this.enableString = enable; - } - - public static DocumentModuleSettings create() { - return new DocumentModuleSettings(); - } - } - private final DocumentFactory documentFactory; private final DocumentOperationExecutor operationExecutor; private final DocumentModuleSettings settings; @@ -123,4 +83,44 @@ public void setupModule(SetupContext context) { addSerializer(Document.class, new DocumentSerializer(operationExecutor)); super.setupModule(context); } + + public static class DocumentModuleSettings { + + private boolean lazy = true; + private boolean enableObject = true; + private boolean enableString = true; + + private DocumentModuleSettings() {} + + public static DocumentModuleSettings create() { + return new DocumentModuleSettings(); + } + + /** + * Enable lazy operations for document deserialization. + * + *

When enabled, given that the connector consumes a document as a generic {@link Object} + * type, and an operation is present in the document reference, the operation is not executed in + * the deserialization phase. Instead, the operation is executed during serialization using the + * {@link DocumentSerializer}. + * + *

Disable lazy operations if your connector doesn't use the document module for + * serialization (or doesn't use Jackson at all). + * + *

This takes no effect if {@link #enableObject(boolean)} is disabled. + */ + public void lazyOperations(boolean lazy) { + this.lazy = lazy; + } + + /** Enable deserialization of document references into objects. */ + public void enableObject(boolean enable) { + this.enableObject = enable; + } + + /** Enable deserialization of document references into strings. */ + public void enableString(boolean enable) { + this.enableString = enable; + } + } } diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/ByteArrayDocumentDeserializer.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/ByteArrayDocumentDeserializer.java index 1edddd9173..06451acf6a 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/ByteArrayDocumentDeserializer.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/ByteArrayDocumentDeserializer.java @@ -17,14 +17,19 @@ package io.camunda.connector.document.annotation.jackson.deserializer; import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; +import com.fasterxml.jackson.databind.deser.std.PrimitiveArrayDeserializers; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.IOException; public class ByteArrayDocumentDeserializer extends DocumentDeserializerBase { + private final JsonDeserializer fallbackDeserializer = + PrimitiveArrayDeserializers.forType(byte.class); + public ByteArrayDocumentDeserializer( DocumentOperationExecutor operationExecutor, DocumentFactory documentFactory) { super(operationExecutor, documentFactory); @@ -41,6 +46,8 @@ public byte[] deserializeDocumentReference( @Override public byte[] fallback(JsonNode node, DeserializationContext ctx) throws IOException { - return ctx.readTreeAsValue(node, byte[].class); + var parser = node.traverse(ctx.getParser().getCodec()); + parser.nextToken(); + return (byte[]) fallbackDeserializer.deserialize(parser, ctx); } } diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentDeserializer.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentDeserializer.java index 687724ac0c..94e4302909 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentDeserializer.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentDeserializer.java @@ -18,10 +18,10 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonNode; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.IOException; public class DocumentDeserializer extends DocumentDeserializerBase { diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentDeserializerBase.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentDeserializerBase.java index 577f7653a9..9bff270900 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentDeserializerBase.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentDeserializerBase.java @@ -20,12 +20,12 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperation; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.DocumentOperationResult; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperation; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.IOException; public abstract class DocumentDeserializerBase extends JsonDeserializer { diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentOperationResultDeserializer.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentOperationResultDeserializer.java index 13c4ca54f2..13f3bd105f 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentOperationResultDeserializer.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/DocumentOperationResultDeserializer.java @@ -22,10 +22,10 @@ import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.deser.ContextualDeserializer; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.DocumentOperationResult; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; public class DocumentOperationResultDeserializer extends DocumentDeserializerBase> implements ContextualDeserializer { diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/InputStreamDocumentDeserializer.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/InputStreamDocumentDeserializer.java index f46f5decee..e339f1d057 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/InputStreamDocumentDeserializer.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/InputStreamDocumentDeserializer.java @@ -18,9 +18,9 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonNode; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.InputStream; public class InputStreamDocumentDeserializer extends DocumentDeserializerBase { diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/ObjectDocumentDeserializer.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/ObjectDocumentDeserializer.java index 2805b41662..9a8712f85c 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/ObjectDocumentDeserializer.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/ObjectDocumentDeserializer.java @@ -19,9 +19,9 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.IOException; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -30,6 +30,7 @@ public class ObjectDocumentDeserializer extends DocumentDeserializerBase private final UntypedObjectDeserializer fallbackDeserializer = new UntypedObjectDeserializer(null, null); + private final boolean lazy; public ObjectDocumentDeserializer( DocumentOperationExecutor operationExecutor, DocumentFactory documentFactory, boolean lazy) { @@ -37,8 +38,6 @@ public ObjectDocumentDeserializer( this.lazy = lazy; } - private final boolean lazy; - @Override public Object deserializeDocumentReference( DocumentReferenceModel reference, DeserializationContext ctx) throws IOException { diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/StringDocumentDeserializer.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/StringDocumentDeserializer.java index 061152f86d..00342db119 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/StringDocumentDeserializer.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/deserializer/StringDocumentDeserializer.java @@ -19,9 +19,9 @@ import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.deser.std.StringDeserializer; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.IOException; public class StringDocumentDeserializer extends DocumentDeserializerBase { diff --git a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/serializer/DocumentSerializer.java b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/serializer/DocumentSerializer.java index 984ef9aaaa..2ed8be28fa 100644 --- a/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/serializer/DocumentSerializer.java +++ b/connector-sdk/jackson-datatype-document/src/main/java/io/camunda/connector/document/annotation/jackson/serializer/DocumentSerializer.java @@ -19,8 +19,8 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; +import io.camunda.document.Document; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.IOException; public class DocumentSerializer extends JsonSerializer { diff --git a/connector-sdk/jackson-datatype-document/src/test/java/io/camunda/connector/document/jackson/DocumentDeserializationTest.java b/connector-sdk/jackson-datatype-document/src/test/java/io/camunda/connector/document/jackson/DocumentDeserializationTest.java index 04c6c74488..a440bd53f2 100644 --- a/connector-sdk/jackson-datatype-document/src/test/java/io/camunda/connector/document/jackson/DocumentDeserializationTest.java +++ b/connector-sdk/jackson-datatype-document/src/test/java/io/camunda/connector/document/jackson/DocumentDeserializationTest.java @@ -24,12 +24,12 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel.CamundaDocumentReferenceModel; import io.camunda.connector.document.annotation.jackson.JacksonModuleDocument; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -52,8 +52,6 @@ public class DocumentDeserializationTest { private ObjectMapper objectMapper; - public record TargetTypeDocument(Document document) {} - @BeforeEach public void initialize() { objectMapper = @@ -70,8 +68,6 @@ void targetTypeDocument() { assertEquals(ref, result.document.reference()); } - public record TargetTypeByteArray(byte[] document) {} - @Test void targetTypeByteArray() { var contentString = "Hello World"; @@ -81,8 +77,6 @@ void targetTypeByteArray() { assertEquals(contentString, new String(result.document)); } - public record TargetTypeInputStream(InputStream document) {} - @Test void targetTypeInputStream() throws IOException { var contentString = "Hello World"; @@ -92,8 +86,6 @@ void targetTypeInputStream() throws IOException { assertEquals(contentString, new String(result.document.readAllBytes())); } - public record TargetTypeObject(Object document) {} - @Test void targetTypeObject() { var ref = createDocumentMock("Hello World"); @@ -140,4 +132,12 @@ private DocumentReferenceModel createDocumentMock(String content) { when((factory.resolve(ref))).thenReturn(document); return ref; } + + public record TargetTypeDocument(Document document) {} + + public record TargetTypeByteArray(byte[] document) {} + + public record TargetTypeInputStream(InputStream document) {} + + public record TargetTypeObject(Object document) {} } diff --git a/connector-sdk/jackson-datatype-document/src/test/java/io/camunda/connector/document/jackson/DocumentSerializationTest.java b/connector-sdk/jackson-datatype-document/src/test/java/io/camunda/connector/document/jackson/DocumentSerializationTest.java index 3a2d4941b6..b9d1172729 100644 --- a/connector-sdk/jackson-datatype-document/src/test/java/io/camunda/connector/document/jackson/DocumentSerializationTest.java +++ b/connector-sdk/jackson-datatype-document/src/test/java/io/camunda/connector/document/jackson/DocumentSerializationTest.java @@ -22,11 +22,11 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.operation.DocumentOperationExecutor; import io.camunda.connector.document.annotation.jackson.DocumentReferenceModel.CamundaDocumentReferenceModel; import io.camunda.connector.document.annotation.jackson.JacksonModuleDocument; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.operation.DocumentOperationExecutor; import java.util.Map; import java.util.Optional; import org.json.JSONException; @@ -44,8 +44,6 @@ public class DocumentSerializationTest { .registerModule(new JacksonModuleDocument(factory, operationExecutor)) .registerModule(new Jdk8Module()); - record SourceTypeDocument(Document document) {} - @Test void sourceTypeDocument() throws JsonProcessingException, JSONException { var ref = new CamundaDocumentReferenceModel("test", "test", Map.of(), Optional.empty()); @@ -66,4 +64,6 @@ void sourceTypeDocument() throws JsonProcessingException, JSONException { """; JSONAssert.assertEquals(expectedResult, result, true); } + + record SourceTypeDocument(Document document) {} } diff --git a/connector-sdk/pom.xml b/connector-sdk/pom.xml index 8bc1d84ee8..5c2b2de326 100644 --- a/connector-sdk/pom.xml +++ b/connector-sdk/pom.xml @@ -20,6 +20,7 @@ core validation test + document feel-wrapper jackson-datatype-feel jackson-datatype-document diff --git a/connector-sdk/test/src/main/java/io/camunda/connector/test/inbound/InboundConnectorContextBuilder.java b/connector-sdk/test/src/main/java/io/camunda/connector/test/inbound/InboundConnectorContextBuilder.java index 17581d7f58..6697bb92fe 100644 --- a/connector-sdk/test/src/main/java/io/camunda/connector/test/inbound/InboundConnectorContextBuilder.java +++ b/connector-sdk/test/src/main/java/io/camunda/connector/test/inbound/InboundConnectorContextBuilder.java @@ -19,9 +19,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.store.DocumentCreationRequest; import io.camunda.connector.api.inbound.Activity; import io.camunda.connector.api.inbound.CorrelationResult; import io.camunda.connector.api.inbound.CorrelationResult.Success; @@ -36,11 +33,14 @@ import io.camunda.connector.api.secret.SecretProvider; import io.camunda.connector.api.validation.ValidationProvider; import io.camunda.connector.runtime.core.AbstractConnectorContext; -import io.camunda.connector.runtime.core.document.DocumentFactoryImpl; -import io.camunda.connector.runtime.core.document.InMemoryDocumentStore; import io.camunda.connector.runtime.core.inbound.InboundConnectorElement; import io.camunda.connector.runtime.core.inbound.InboundConnectorReportingContext; import io.camunda.connector.test.ConnectorContextTestUtil; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.factory.DocumentFactoryImpl; +import io.camunda.document.store.DocumentCreationRequest; +import io.camunda.document.store.InMemoryDocumentStore; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -63,7 +63,8 @@ public class InboundConnectorContextBuilder { protected CorrelationResult result; - protected DocumentFactory documentFactory = new DocumentFactoryImpl(new InMemoryDocumentStore()); + protected DocumentFactory documentFactory = + new DocumentFactoryImpl(InMemoryDocumentStore.INSTANCE); public static InboundConnectorContextBuilder create() { return new InboundConnectorContextBuilder(); @@ -199,16 +200,21 @@ public TestInboundConnectorContext build() { return new TestInboundConnectorContext(secretProvider, validationProvider, result); } + /** + * @return the {@link io.camunda.connector.api.inbound.InboundIntermediateConnectorContext} + * including all previously defined properties + */ + public TestInboundIntermediateConnectorContext buildIntermediateConnectorContext() { + return new TestInboundIntermediateConnectorContext(secretProvider, validationProvider); + } + public class TestInboundConnectorContext extends AbstractConnectorContext implements InboundConnectorContext, InboundConnectorReportingContext { private final List correlatedEvents = new ArrayList<>(); - - private Health health = Health.unknown(); - private final String propertiesWithSecrets; - private final CorrelationResult result; + private Health health = Health.unknown(); protected TestInboundConnectorContext( SecretProvider secretProvider, @@ -326,14 +332,6 @@ public List connectorElements() { } } - /** - * @return the {@link io.camunda.connector.api.inbound.InboundIntermediateConnectorContext} - * including all previously defined properties - */ - public TestInboundIntermediateConnectorContext buildIntermediateConnectorContext() { - return new TestInboundIntermediateConnectorContext(secretProvider, validationProvider); - } - public class TestInboundIntermediateConnectorContext extends TestInboundConnectorContext implements InboundIntermediateConnectorContext { diff --git a/connector-sdk/test/src/main/java/io/camunda/connector/test/outbound/OutboundConnectorContextBuilder.java b/connector-sdk/test/src/main/java/io/camunda/connector/test/outbound/OutboundConnectorContextBuilder.java index d7aa59af90..f9b63a785c 100644 --- a/connector-sdk/test/src/main/java/io/camunda/connector/test/outbound/OutboundConnectorContextBuilder.java +++ b/connector-sdk/test/src/main/java/io/camunda/connector/test/outbound/OutboundConnectorContextBuilder.java @@ -19,18 +19,18 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import io.camunda.connector.api.document.Document; -import io.camunda.connector.api.document.DocumentFactory; -import io.camunda.connector.api.document.store.DocumentCreationRequest; import io.camunda.connector.api.json.ConnectorsObjectMapperSupplier; import io.camunda.connector.api.outbound.JobContext; import io.camunda.connector.api.outbound.OutboundConnectorContext; import io.camunda.connector.api.secret.SecretProvider; import io.camunda.connector.api.validation.ValidationProvider; import io.camunda.connector.runtime.core.AbstractConnectorContext; -import io.camunda.connector.runtime.core.document.DocumentFactoryImpl; -import io.camunda.connector.runtime.core.document.InMemoryDocumentStore; import io.camunda.connector.test.ConnectorContextTestUtil; +import io.camunda.document.Document; +import io.camunda.document.factory.DocumentFactory; +import io.camunda.document.factory.DocumentFactoryImpl; +import io.camunda.document.store.DocumentCreationRequest; +import io.camunda.document.store.InMemoryDocumentStore; import java.util.HashMap; import java.util.Map; @@ -38,18 +38,14 @@ public class OutboundConnectorContextBuilder { protected final Map secrets = new HashMap<>(); + protected final Map headers = new HashMap<>(); protected SecretProvider secretProvider = secrets::get; - protected ValidationProvider validationProvider; - protected Map variables; - - protected final Map headers = new HashMap<>(); - + protected DocumentFactory documentFactory = + new DocumentFactoryImpl(InMemoryDocumentStore.INSTANCE); private ObjectMapper objectMapper = ConnectorsObjectMapperSupplier.getCopy(); - protected DocumentFactory documentFactory = new DocumentFactoryImpl(new InMemoryDocumentStore()); - /** * @return a new instance of the {@link OutboundConnectorContextBuilder} */ diff --git a/parent/pom.xml b/parent/pom.xml index 146adf220c..e7bc6bd052 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -269,6 +269,12 @@ limitations under the License. ${project.version} + + io.camunda.connector + connector-document + ${project.version} + + io.camunda zeebe-client-java