diff --git a/src/main/java/com/microsoft/azure/functions/ExecutionContext.java b/src/main/java/com/microsoft/azure/functions/ExecutionContext.java index 7874d10..af5e127 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,19 @@ default TraceContext getTraceContext() { default RetryContext getRetryContext() { return null; } + + Map getParameterMap(); + + Map getParameterPayloadMap(); + + void setMiddlewareInput(String key, Object value); + + Object getReturnValue(); + + void setMiddlewareOutput(Object value); + + void setFunctionInstance(Object functionInstance); + + Class getContainingClass(); } 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..b71741f --- /dev/null +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerChain.java @@ -0,0 +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 { + 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 new file mode 100644 index 0000000..ffdb51a --- /dev/null +++ b/src/main/java/com/microsoft/azure/functions/middleware/FunctionWorkerMiddleware.java @@ -0,0 +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 { + void invoke(ExecutionContext context, FunctionWorkerChain next) throws Exception; +}