From 7d498e2e0d51a2ff13da14b9ce55c62fa63f851d Mon Sep 17 00:00:00 2001 From: kaibocai <89094811+kaibocai@users.noreply.github.com> Date: Wed, 24 Aug 2022 09:34:11 -0500 Subject: [PATCH 1/5] middleware support for java worker --- .../azure/functions/middleware/FunctionWorkerChain.java | 8 ++++++++ .../functions/middleware/FunctionWorkerMiddleware.java | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java create mode 100644 src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java diff --git a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java new file mode 100644 index 0000000..32294f7 --- /dev/null +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java @@ -0,0 +1,8 @@ +package com.microsoft.azure.functions.middleware; + +import com.microsoft.azure.functions.ExecutionContext; + +@FunctionalInterface +public interface FunctionWorkerChain { + public void doNext(ExecutionContext context); +} diff --git a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java new file mode 100644 index 0000000..3eacfb7 --- /dev/null +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java @@ -0,0 +1,8 @@ +package com.microsoft.azure.functions.middleware; + +import com.microsoft.azure.functions.ExecutionContext; + +@FunctionalInterface +public interface FunctionWorkerMiddleware { + public void invoke (ExecutionContext context, FunctionWorkerChain next); +} From 90e94cfd85231d2fa1c6cb6a49826474cec76cf7 Mon Sep 17 00:00:00 2001 From: kaibocai <89094811+kaibocai@users.noreply.github.com> Date: Fri, 2 Sep 2022 14:05:01 -0700 Subject: [PATCH 2/5] remove FunctionalInterface --- .../azure/functions/middleware/FunctionWorkerChain.java | 1 - .../azure/functions/middleware/FunctionWorkerMiddleware.java | 1 - 2 files changed, 2 deletions(-) diff --git a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java index 32294f7..9bb2513 100644 --- a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java @@ -2,7 +2,6 @@ import com.microsoft.azure.functions.ExecutionContext; -@FunctionalInterface public interface FunctionWorkerChain { public void doNext(ExecutionContext context); } diff --git a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java index 3eacfb7..40da271 100644 --- a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java @@ -2,7 +2,6 @@ import com.microsoft.azure.functions.ExecutionContext; -@FunctionalInterface public interface FunctionWorkerMiddleware { public void invoke (ExecutionContext context, FunctionWorkerChain next); } From d9938ecd384128c4932e0b049c4edaea4419e057 Mon Sep 17 00:00:00 2001 From: kaibocai <89094811+kaibocai@users.noreply.github.com> Date: Fri, 2 Sep 2022 14:49:45 -0700 Subject: [PATCH 3/5] throw exception in method signature --- .../azure/functions/middleware/FunctionWorkerChain.java | 2 +- .../azure/functions/middleware/FunctionWorkerMiddleware.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java index 9bb2513..fc154fc 100644 --- a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java @@ -3,5 +3,5 @@ import com.microsoft.azure.functions.ExecutionContext; public interface FunctionWorkerChain { - public void doNext(ExecutionContext context); + public void doNext(ExecutionContext context) throws Exception; } diff --git a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java index 40da271..d7d0f37 100644 --- a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java @@ -3,5 +3,5 @@ import com.microsoft.azure.functions.ExecutionContext; public interface FunctionWorkerMiddleware { - public void invoke (ExecutionContext context, FunctionWorkerChain next); + public void invoke (ExecutionContext context, FunctionWorkerChain next) throws Exception; } From 9ba2bcbb782b9447221041c21111054d77df53cf Mon Sep 17 00:00:00 2001 From: kaibocai <89094811+kaibocai@users.noreply.github.com> Date: Wed, 7 Sep 2022 10:59:47 -0700 Subject: [PATCH 4/5] execution context update for function middleware support --- .../microsoft/azure/functions/ExecutionContext.java | 12 ++++++++++++ .../functions/middleware/FunctionWorkerChain.java | 7 ++++++- .../middleware/FunctionWorkerMiddleware.java | 7 ++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/microsoft/azure/functions/ExecutionContext.java b/src/main/java/com/microsoft/azure/functions/ExecutionContext.java index 7874d10..3cc712c 100644 --- a/src/main/java/com/microsoft/azure/functions/ExecutionContext.java +++ b/src/main/java/com/microsoft/azure/functions/ExecutionContext.java @@ -6,6 +6,8 @@ package com.microsoft.azure.functions; +import java.lang.reflect.Parameter; +import java.util.Map; import java.util.logging.Logger; /** @@ -50,5 +52,15 @@ default TraceContext getTraceContext() { default RetryContext getRetryContext() { return null; } + + Object getReturnValue(); + + Map getParamInfoMap(); + + void setInputArgument(String key, Object value); + + Map getArgumentPayloadMap(); + + void setImplicitOutput(Object value); } diff --git a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java index fc154fc..b71741f 100644 --- a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java @@ -1,7 +1,12 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + */ package com.microsoft.azure.functions.middleware; import com.microsoft.azure.functions.ExecutionContext; public interface FunctionWorkerChain { - public void doNext(ExecutionContext context) throws Exception; + void doNext(ExecutionContext context) throws Exception; } diff --git a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java index d7d0f37..ffdb51a 100644 --- a/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java @@ -1,7 +1,12 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + */ package com.microsoft.azure.functions.middleware; import com.microsoft.azure.functions.ExecutionContext; public interface FunctionWorkerMiddleware { - public void invoke (ExecutionContext context, FunctionWorkerChain next) throws Exception; + void invoke(ExecutionContext context, FunctionWorkerChain next) throws Exception; } From d813457dff46b28017c1959fdf5ff42adabe118e Mon Sep 17 00:00:00 2001 From: kaibocai <89094811+kaibocai@users.noreply.github.com> Date: Wed, 7 Sep 2022 19:05:48 -0700 Subject: [PATCH 5/5] update method name --- .../java/com/microsoft/azure/functions/ExecutionContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/microsoft/azure/functions/ExecutionContext.java b/src/main/java/com/microsoft/azure/functions/ExecutionContext.java index 3cc712c..cd2c532 100644 --- a/src/main/java/com/microsoft/azure/functions/ExecutionContext.java +++ b/src/main/java/com/microsoft/azure/functions/ExecutionContext.java @@ -61,6 +61,6 @@ default RetryContext getRetryContext() { Map getArgumentPayloadMap(); - void setImplicitOutput(Object value); + void setMiddlewareOutput(Object value); }