Skip to content

Commit 3687d10

Browse files
committed
change AsynFunction to OpenFunction
Signed-off-by: wanjunlei <[email protected]>
1 parent e3703de commit 3687d10

File tree

7 files changed

+29
-26
lines changed

7 files changed

+29
-26
lines changed

functions-framework-api/src/main/java/dev/openfunction/functions/AsyncFunction.java renamed to functions-framework-api/src/main/java/dev/openfunction/functions/OpenFunction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
package dev.openfunction.functions;
1818

1919
@FunctionalInterface
20-
public interface AsyncFunction {
20+
public interface OpenFunction {
2121

2222
/**
2323
* Called to service an incoming event. This interface is implemented by user code to provide the
24-
* action for a given asynchronous function.
24+
* action for a given function.
2525
*
2626
* @param context context
2727
* @param payload incoming event

functions-framework-invoker/src/main/java/dev/openfunction/invoker/runtime/AsynchronousRuntime.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,27 +43,27 @@ public final class AsynchronousRuntime implements Runtime {
4343

4444
private RuntimeContext runtimeContext;
4545

46-
private final AsyncFunction function;
46+
private final OpenFunction function;
4747

4848
private final Service service;
4949

50-
private AsynchronousRuntime(AsyncFunction function) {
50+
private AsynchronousRuntime(OpenFunction function) {
5151
this.function = function;
5252
service = new Service();
5353
}
5454

5555
public static AsynchronousRuntime forClass(Class<?> functionClass) {
56-
if (!AsyncFunction.class.isAssignableFrom(functionClass)) {
56+
if (!OpenFunction.class.isAssignableFrom(functionClass)) {
5757
throw new RuntimeException(
5858
"Class "
5959
+ functionClass.getName()
6060
+ " does not implement "
61-
+ HttpFunction.class.getName());
61+
+ OpenFunction.class.getName());
6262
}
6363

6464
try {
65-
Class<? extends AsyncFunction> asyncHttpFunctionClass = functionClass.asSubclass(AsyncFunction.class);
66-
return new AsynchronousRuntime(asyncHttpFunctionClass.getConstructor().newInstance());
65+
Class<? extends OpenFunction> openFunctionClass = functionClass.asSubclass(OpenFunction.class);
66+
return new AsynchronousRuntime(openFunctionClass.getConstructor().newInstance());
6767
} catch (ReflectiveOperationException e) {
6868
throw new RuntimeException(
6969
"Could not construct an instance of " + functionClass.getName(), e);

functions-framework-invoker/src/main/java/dev/openfunction/invoker/runtime/SynchronizeRuntime.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616

1717
package dev.openfunction.invoker.runtime;
1818

19-
import dev.openfunction.functions.AsyncFunction;
2019
import dev.openfunction.functions.CloudEventFunction;
2120
import dev.openfunction.functions.HttpFunction;
21+
import dev.openfunction.functions.OpenFunction;
2222
import dev.openfunction.functions.Out;
2323
import dev.openfunction.invoker.context.RuntimeContext;
2424
import dev.openfunction.invoker.context.UserContext;
@@ -54,7 +54,7 @@ public class SynchronizeRuntime extends HttpServlet implements Runtime {
5454

5555
private CloudEventFunction cloudEventFunction;
5656

57-
private AsyncFunction asyncFunction;
57+
private OpenFunction openFunction;
5858

5959
private RuntimeContext runtimeContext;
6060

@@ -69,17 +69,14 @@ private SynchronizeRuntime(CloudEventFunction cloudEventFunction) {
6969
EventFormatProvider.getInstance().registerFormat(new JsonEventFormat());
7070
}
7171

72-
private SynchronizeRuntime(AsyncFunction asyncFunction) {
73-
this.asyncFunction = asyncFunction;
74-
daprClient = new DaprClientBuilder().build();
75-
daprClient.waitForSidecar(WaitDaprSidecarTimeout);
72+
private SynchronizeRuntime(OpenFunction openFunction) {
73+
this.openFunction = openFunction;
7674
}
7775

7876
/**
7977
* Makes a {@link SynchronizeRuntime} for the given class.
8078
*
8179
* @param functionClass function class
82-
*
8380
* @return {@link SynchronizeRuntime}
8481
*/
8582
public static SynchronizeRuntime forClass(Class<?> functionClass) {
@@ -93,10 +90,10 @@ public static SynchronizeRuntime forClass(Class<?> functionClass) {
9390
Class<? extends CloudEventFunction> cloudEventFunctionClass = functionClass.asSubclass(CloudEventFunction.class);
9491
CloudEventFunction cloudEventFunction = cloudEventFunctionClass.getConstructor().newInstance();
9592
return new SynchronizeRuntime(cloudEventFunction);
96-
} else if (AsyncFunction.class.isAssignableFrom(functionClass)) {
97-
Class<? extends AsyncFunction> asyncFunctionClass = functionClass.asSubclass(AsyncFunction.class);
98-
AsyncFunction asyncFunction = asyncFunctionClass.getConstructor().newInstance();
99-
return new SynchronizeRuntime(asyncFunction);
93+
} else if (OpenFunction.class.isAssignableFrom(functionClass)) {
94+
Class<? extends OpenFunction> asyncFunctionClass = functionClass.asSubclass(OpenFunction.class);
95+
OpenFunction openFunction = asyncFunctionClass.getConstructor().newInstance();
96+
return new SynchronizeRuntime(openFunction);
10097
}
10198
} catch (ReflectiveOperationException e) {
10299
throw new Error("Could not construct an instance of " + functionClass.getName(), e);
@@ -151,9 +148,9 @@ public void service(HttpServletRequest req, HttpServletResponse res) {
151148
}
152149

153150
respImpl.getOutputStream().write(userContext.getOut().getData().array());
154-
} else if (asyncFunction != null) {
151+
} else if (openFunction != null) {
155152
userContext.executePrePlugins();
156-
Out out = asyncFunction.accept(userContext, Arrays.toString(reqImpl.getInputStream().readAllBytes()));
153+
Out out = openFunction.accept(userContext, Arrays.toString(reqImpl.getInputStream().readAllBytes()));
157154
userContext.setOut(out);
158155
userContext.executePostPlugins();
159156

@@ -196,6 +193,12 @@ public void service(HttpServletRequest req, HttpServletResponse res) {
196193
public void start(RuntimeContext ctx) throws Exception {
197194

198195
runtimeContext = ctx;
196+
// create dapr client when dapr sidecar enabled.
197+
if (System.getProperty("dapr.http.port") != null || System.getProperty("dapr.grpc.port") != null) {
198+
daprClient = new DaprClientBuilder().build();
199+
daprClient.waitForSidecar(Runtime.WaitDaprSidecarTimeout);
200+
}
201+
199202
Server server = new Server(ctx.getPort());
200203

201204
ServletContextHandler servletContextHandler = new ServletContextHandler();

samples/src/main/java/dev/openfunction/samples/AsyncFunctionImpl.java renamed to samples/src/main/java/dev/openfunction/samples/OpenFunctionImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616

1717
package dev.openfunction.samples;
1818

19-
import dev.openfunction.functions.AsyncFunction;
19+
import dev.openfunction.functions.OpenFunction;
2020
import dev.openfunction.functions.Context;
2121
import dev.openfunction.functions.Out;
2222

23-
public class AsyncFunctionImpl implements AsyncFunction {
23+
public class OpenFunctionImpl implements OpenFunction {
2424

2525
@Override
2626
public Out accept(Context context, String payload) throws Exception {

samples/src/main/resources/function/binding-function.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spec:
1616
build:
1717
builder: openfunctiondev/builder-java:v2-11
1818
env:
19-
FUNC_NAME: "dev.openfunction.samples.AsyncFunctionImpl"
19+
FUNC_NAME: "dev.openfunction.samples.OpenFunctionImpl"
2020
FUNC_CLEAR_SOURCE: "true"
2121
srcRepo:
2222
url: "https://github.com/wanjunlei/functions-framework-java.git"

samples/src/main/resources/function/http-with-output.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ spec:
1717
build:
1818
builder: openfunctiondev/builder-java:v2-17
1919
env:
20-
FUNC_NAME: "dev.openfunction.samples.HttpFunctionImpl"
20+
FUNC_NAME: "dev.openfunction.samples.OpenFunctionImpl"
2121
FUNC_CLEAR_SOURCE: "true"
2222
srcRepo:
2323
url: "https://github.com/wanjunlei/functions-framework-java.git"

samples/src/main/resources/function/subcreibe-function.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spec:
1616
build:
1717
builder: openfunctiondev/builder-java:v2-16
1818
env:
19-
FUNC_NAME: "dev.openfunction.samples.AsyncFunctionImpl"
19+
FUNC_NAME: "dev.openfunction.samples.OpenFunctionImpl"
2020
FUNC_CLEAR_SOURCE: "true"
2121
# Use FUNC_GOPROXY to set the goproxy
2222
# FUNC_GOPROXY: "https://goproxy.cn"

0 commit comments

Comments
 (0)