From 365b0aded74fc43e739a640dde24274254ce55e4 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 23 Jan 2025 13:22:13 +0100 Subject: [PATCH] fix(document-handling): Get document by reference including hash (#3871) --- .../runtime/core/outbound/JobHandlerContext.java | 15 --------------- .../connector/runtime/core/secret/SecretUtil.java | 2 +- .../inbound/InboundConnectorDiscoveryTest.java | 2 +- .../runtime/core/outbound/JobBuilder.java | 2 +- .../outbound/OutboundConnectorDiscoveryTest.java | 2 +- .../connector/runtime/core/testutil/TestUtil.java | 2 +- .../reference/CamundaDocumentReferenceImpl.java | 15 +++++++++++++++ .../document/reference/DocumentReference.java | 3 ++- .../document/store/CamundaDocumentStoreImpl.java | 2 +- .../jackson/DocumentReferenceModel.java | 15 +++++++++++++++ 10 files changed, 38 insertions(+), 22 deletions(-) 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 9766dc55ab..7d80254355 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 @@ -30,9 +30,7 @@ import io.camunda.connector.runtime.core.AbstractConnectorContext; 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.Objects; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,19 +64,6 @@ public JobHandlerContext( this.jobContext = new ActivatedJobContext(job, this::getJsonReplacedWithSecrets); } - public JobHandlerContext( - final ActivatedJob job, - final SecretProvider secretProvider, - final ValidationProvider validationProvider, - final ObjectMapper objectMapper) { - this( - job, - secretProvider, - validationProvider, - new DocumentFactoryImpl(InMemoryDocumentStore.INSTANCE), - objectMapper); - } - @Override public T bindVariables(Class cls) { var mappedObject = mapJson(cls); diff --git a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/secret/SecretUtil.java b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/secret/SecretUtil.java index 3cc093248a..58a928631a 100644 --- a/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/secret/SecretUtil.java +++ b/connector-runtime/connector-runtime-core/src/main/java/io/camunda/connector/runtime/core/secret/SecretUtil.java @@ -67,7 +67,7 @@ private static String replaceSecretsWithoutParentheses( private static String resolveSecretValue( Function secretReplacer, Matcher matcher) { var secretName = matcher.group("secret").trim(); - if (!secretName.isBlank() && !secretName.isEmpty()) { + if (!secretName.isBlank()) { var result = secretReplacer.apply(secretName); if (result != null) { return result; diff --git a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/inbound/InboundConnectorDiscoveryTest.java b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/inbound/InboundConnectorDiscoveryTest.java index 1ca73fa10d..c82b66ca9d 100644 --- a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/inbound/InboundConnectorDiscoveryTest.java +++ b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/inbound/InboundConnectorDiscoveryTest.java @@ -16,7 +16,7 @@ */ package io.camunda.connector.runtime.core.inbound; -import static io.camunda.connector.runtime.core.util.TestUtil.withEnvVars; +import static io.camunda.connector.runtime.core.testutil.TestUtil.withEnvVars; import io.camunda.connector.runtime.core.config.InboundConnectorConfiguration; import java.util.List; diff --git a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/outbound/JobBuilder.java b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/outbound/JobBuilder.java index f07101a677..ce79760dcd 100644 --- a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/outbound/JobBuilder.java +++ b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/outbound/JobBuilder.java @@ -166,7 +166,7 @@ public void execute(ConnectorJobHandler connectorJobHandler) { public static class JobResult { - private Map variables; + private final Map variables; private String errorCode; private String errorMessage; private int retries; diff --git a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/outbound/OutboundConnectorDiscoveryTest.java b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/outbound/OutboundConnectorDiscoveryTest.java index b7e1ca7d31..13a3b0f034 100644 --- a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/outbound/OutboundConnectorDiscoveryTest.java +++ b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/outbound/OutboundConnectorDiscoveryTest.java @@ -16,7 +16,7 @@ */ package io.camunda.connector.runtime.core.outbound; -import static io.camunda.connector.runtime.core.util.TestUtil.withEnvVars; +import static io.camunda.connector.runtime.core.testutil.TestUtil.withEnvVars; import io.camunda.connector.runtime.core.config.OutboundConnectorConfiguration; import java.util.Arrays; diff --git a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/testutil/TestUtil.java b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/testutil/TestUtil.java index 290d606908..d9ec253516 100644 --- a/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/testutil/TestUtil.java +++ b/connector-runtime/connector-runtime-core/src/test/java/io/camunda/connector/runtime/core/testutil/TestUtil.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.camunda.connector.runtime.core.util; +package io.camunda.connector.runtime.core.testutil; import java.util.concurrent.Callable; import uk.org.webcompere.systemstubs.environment.EnvironmentVariables; diff --git a/connector-sdk/document/src/main/java/io/camunda/document/reference/CamundaDocumentReferenceImpl.java b/connector-sdk/document/src/main/java/io/camunda/document/reference/CamundaDocumentReferenceImpl.java index 23c9f8abf8..82ee398e87 100644 --- a/connector-sdk/document/src/main/java/io/camunda/document/reference/CamundaDocumentReferenceImpl.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/reference/CamundaDocumentReferenceImpl.java @@ -26,4 +26,19 @@ public record CamundaDocumentReferenceImpl( public CamundaDocumentReferenceImpl(DocumentReferenceResponse response) { this(response.getStoreId(), response.getDocumentId(), response.getMetadata()); } + + @Override + public String getDocumentId() { + return documentId; + } + + @Override + public String getStoreId() { + return storeId; + } + + @Override + public DocumentMetadata getMetadata() { + return metadata; + } } diff --git a/connector-sdk/document/src/main/java/io/camunda/document/reference/DocumentReference.java b/connector-sdk/document/src/main/java/io/camunda/document/reference/DocumentReference.java index a52b3698e3..ac33ca6a7c 100644 --- a/connector-sdk/document/src/main/java/io/camunda/document/reference/DocumentReference.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/reference/DocumentReference.java @@ -17,10 +17,11 @@ package io.camunda.document.reference; import io.camunda.client.api.response.DocumentMetadata; +import io.camunda.client.api.response.DocumentReferenceResponse; public interface DocumentReference { - interface CamundaDocumentReference extends DocumentReference { + interface CamundaDocumentReference extends DocumentReference, DocumentReferenceResponse { String storeId(); String documentId(); diff --git a/connector-sdk/document/src/main/java/io/camunda/document/store/CamundaDocumentStoreImpl.java b/connector-sdk/document/src/main/java/io/camunda/document/store/CamundaDocumentStoreImpl.java index 1c3e012320..11cfc2fc85 100644 --- a/connector-sdk/document/src/main/java/io/camunda/document/store/CamundaDocumentStoreImpl.java +++ b/connector-sdk/document/src/main/java/io/camunda/document/store/CamundaDocumentStoreImpl.java @@ -52,7 +52,7 @@ public CamundaDocumentReference createDocument(DocumentCreationRequest request) @Override public InputStream getDocumentContent(CamundaDocumentReference reference) { return camundaClient - .newDocumentContentGetRequest(reference.documentId()) + .newDocumentContentGetRequest(reference) .storeId(reference.storeId()) .send() .join(); 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 1546a39953..74aef3c266 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 @@ -123,6 +123,21 @@ record CamundaDocumentReferenceModel( private String documentType() { return "camunda"; } + + @Override + public String getDocumentId() { + return documentId; + } + + @Override + public String getStoreId() { + return storeId; + } + + @Override + public DocumentMetadata getMetadata() { + return metadata; + } } record ExternalDocumentReferenceModel(String url, Optional operation)