This is an automated email from the ASF dual-hosted git repository.

mikexue pushed a commit to branch eventmesh-function
in repository https://gitbox.apache.org/repos/asf/eventmesh.git


The following commit(s) were added to refs/heads/eventmesh-function by this 
push:
     new 02bcd35ed EventMesh function admin (#4853)
02bcd35ed is described below

commit 02bcd35ed0c5631b41b7a103c7ce0e65a60b7bcd
Author: sodaRyCN <[email protected]>
AuthorDate: Fri Apr 19 10:26:03 2024 +0800

    EventMesh function admin (#4853)
    
    * own
    
    * dependency
    
    * finish registry
    
    * init
---
 build.gradle                                       |   7 +-
 eventmesh-admin-server/build.gradle                |  11 +-
 .../apache/eventmesh/admin/server/AdminServer.java |   3 +-
 .../apache/eventmesh/admin/server/HeartBeat.java   |   2 +
 .../eventmesh/admin/server/web/GrpcServer.java     |  19 +
 .../eventmesh/admin/server/web/HttpServer.java     |   9 +
 .../web/generated/AdminBiStreamServiceGrpc.java    | 263 +++++++
 .../server/web/generated/AdminServiceGrpc.java     | 279 +++++++
 .../common/grpc/EventMeshAdminService.java         |  77 ++
 .../org/apache/eventmesh/common/grpc/Metadata.java | 841 +++++++++++++++++++++
 .../eventmesh/common/grpc/MetadataOrBuilder.java   |  53 ++
 .../org/apache/eventmesh/common/grpc/Payload.java  | 793 +++++++++++++++++++
 .../eventmesh/common/grpc/PayloadOrBuilder.java    |  37 +
 13 files changed, 2389 insertions(+), 5 deletions(-)

diff --git a/build.gradle b/build.gradle
index 98619ed84..f55ef5acf 100644
--- a/build.gradle
+++ b/build.gradle
@@ -529,7 +529,7 @@ subprojects {
             dependency "com.mebigfatguy.fb-contrib:fb-contrib:7.6.0"
             dependency "com.jayway.jsonpath:json-path:2.7.0"
 
-            dependency 
"org.springframework.boot:spring-boot-starter-web:2.7.10"
+            dependency 
"org.springframework.boot:spring-boot-starter-web:2.7.12"
             dependency "io.openmessaging:registry-server:0.0.1"
 
             dependency "org.junit.jupiter:junit-jupiter:5.6.0"
@@ -574,9 +574,12 @@ subprojects {
             dependency "software.amazon.awssdk:s3:2.20.29"
             dependency "com.github.rholder:guava-retrying:2.0.0"
 
-            dependency 
"org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.2"
+            dependency 
"org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.1"
             dependency "com.alibaba:druid-spring-boot-starter:1.2.22"
             dependency 
"org.springframework.boot:spring-boot-starter-jetty:2.7.10"
+
+            dependency "com.mysql:mysql-connector-j:8.0.33"
+
         }
     }
 }
diff --git a/eventmesh-admin-server/build.gradle 
b/eventmesh-admin-server/build.gradle
index 63ed5a456..9d8e2b99f 100644
--- a/eventmesh-admin-server/build.gradle
+++ b/eventmesh-admin-server/build.gradle
@@ -3,14 +3,23 @@ dependencies {
        implementation project(":eventmesh-common")
        implementation "com.alibaba.nacos:nacos-client"
        implementation ("org.springframework.boot:spring-boot-starter-web") {
-               exclude group: "org.springframework.boot" ,module: 
"spring-boot-starter-tomcat"
+               exclude group: "org.springframework.boot", module: 
"spring-boot-starter-tomcat"
        }
        implementation 'org.springframework.boot:spring-boot-starter-jetty'
+       implementation "io.grpc:grpc-core"
+       implementation "io.grpc:grpc-protobuf"
+       implementation "io.grpc:grpc-stub"
+
 
        implementation "org.mybatis.spring.boot:mybatis-spring-boot-starter"
        // 
https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter
        implementation "com.alibaba:druid-spring-boot-starter"
+       runtimeOnly 'com.mysql:mysql-connector-j'
        compileOnly 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
 }
 
+configurations.implementation  {
+       exclude group: "org.springframework.boot", module: 
"spring-boot-starter-logging"
+}
+
diff --git 
a/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/AdminServer.java
 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/AdminServer.java
index a00182361..cdffdd21a 100644
--- 
a/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/AdminServer.java
+++ 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/AdminServer.java
@@ -2,9 +2,8 @@ package com.apache.eventmesh.admin.server;
 
 import 
com.apache.eventmesh.admin.server.registry.EventMeshAdminServerRegisterInfo;
 import com.apache.eventmesh.admin.server.registry.RegistryService;
-import org.apache.eventmesh.common.utils.PagedList;
-
 import com.apache.eventmesh.admin.server.task.Task;
+import org.apache.eventmesh.common.utils.PagedList;
 
 public class AdminServer implements Admin {
 
diff --git 
a/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/HeartBeat.java
 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/HeartBeat.java
index b8a28c4bd..568b7ff31 100644
--- 
a/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/HeartBeat.java
+++ 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/HeartBeat.java
@@ -2,7 +2,9 @@ package com.apache.eventmesh.admin.server;
 
 import com.apache.eventmesh.admin.server.task.JobState;
 import com.apache.eventmesh.admin.server.task.Position;
+import lombok.Data;
 
+@Data
 public class HeartBeat {
     private String address;
     private String reportedTimeStamp;
diff --git 
a/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/GrpcServer.java
 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/GrpcServer.java
new file mode 100644
index 000000000..f237b8f77
--- /dev/null
+++ 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/GrpcServer.java
@@ -0,0 +1,19 @@
+package com.apache.eventmesh.admin.server.web;
+
+import com.apache.eventmesh.admin.server.ComponentLifeCycle;
+import 
com.apache.eventmesh.admin.server.web.generated.AdminBiStreamServiceGrpc;
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class GrpcServer extends 
AdminBiStreamServiceGrpc.AdminBiStreamServiceImplBase implements 
ComponentLifeCycle {
+
+    @Override
+    public void start() {
+
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+}
diff --git 
a/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/HttpServer.java
 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/HttpServer.java
new file mode 100644
index 000000000..681d613f3
--- /dev/null
+++ 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/HttpServer.java
@@ -0,0 +1,9 @@
+package com.apache.eventmesh.admin.server.web;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/eventmesh/admin")
+public class HttpServer {
+}
diff --git 
a/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/generated/AdminBiStreamServiceGrpc.java
 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/generated/AdminBiStreamServiceGrpc.java
new file mode 100644
index 000000000..2a10de9ac
--- /dev/null
+++ 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/generated/AdminBiStreamServiceGrpc.java
@@ -0,0 +1,263 @@
+package com.apache.eventmesh.admin.server.web.generated;
+
+import org.apache.eventmesh.common.grpc.EventMeshAdminService;
+import org.apache.eventmesh.common.grpc.Payload;
+
+import static io.grpc.MethodDescriptor.generateFullMethodName;
+
+/**
+ */
[email protected](
+    value = "by gRPC proto compiler (version 1.40.0)",
+    comments = "Source: event_mesh_admin_service.proto")
[email protected]
+public final class AdminBiStreamServiceGrpc {
+
+  private AdminBiStreamServiceGrpc() {}
+
+  public static final String SERVICE_NAME = "AdminBiStreamService";
+
+  // Static method descriptors that strictly reflect the proto.
+  private static volatile io.grpc.MethodDescriptor<Payload,
+      Payload> getInvokeBiStreamMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "invokeBiStream",
+      requestType = Payload.class,
+      responseType = Payload.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING)
+  public static io.grpc.MethodDescriptor<Payload,
+      Payload> getInvokeBiStreamMethod() {
+    io.grpc.MethodDescriptor<Payload, Payload> getInvokeBiStreamMethod;
+    if ((getInvokeBiStreamMethod = 
AdminBiStreamServiceGrpc.getInvokeBiStreamMethod) == null) {
+      synchronized (AdminBiStreamServiceGrpc.class) {
+        if ((getInvokeBiStreamMethod = 
AdminBiStreamServiceGrpc.getInvokeBiStreamMethod) == null) {
+          AdminBiStreamServiceGrpc.getInvokeBiStreamMethod = 
getInvokeBiStreamMethod =
+              io.grpc.MethodDescriptor.<Payload, Payload>newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, 
"invokeBiStream"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+                  Payload.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+                  Payload.getDefaultInstance()))
+              .setSchemaDescriptor(new 
AdminBiStreamServiceMethodDescriptorSupplier("invokeBiStream"))
+              .build();
+        }
+      }
+    }
+    return getInvokeBiStreamMethod;
+  }
+
+  /**
+   * Creates a new async stub that supports all call types for the service
+   */
+  public static AdminBiStreamServiceStub newStub(io.grpc.Channel channel) {
+    io.grpc.stub.AbstractStub.StubFactory<AdminBiStreamServiceStub> factory =
+      new io.grpc.stub.AbstractStub.StubFactory<AdminBiStreamServiceStub>() {
+        @Override
+        public AdminBiStreamServiceStub newStub(io.grpc.Channel channel, 
io.grpc.CallOptions callOptions) {
+          return new AdminBiStreamServiceStub(channel, callOptions);
+        }
+      };
+    return AdminBiStreamServiceStub.newStub(factory, channel);
+  }
+
+  /**
+   * Creates a new blocking-style stub that supports unary and streaming 
output calls on the service
+   */
+  public static AdminBiStreamServiceBlockingStub newBlockingStub(
+      io.grpc.Channel channel) {
+    io.grpc.stub.AbstractStub.StubFactory<AdminBiStreamServiceBlockingStub> 
factory =
+      new 
io.grpc.stub.AbstractStub.StubFactory<AdminBiStreamServiceBlockingStub>() {
+        @Override
+        public AdminBiStreamServiceBlockingStub newStub(io.grpc.Channel 
channel, io.grpc.CallOptions callOptions) {
+          return new AdminBiStreamServiceBlockingStub(channel, callOptions);
+        }
+      };
+    return AdminBiStreamServiceBlockingStub.newStub(factory, channel);
+  }
+
+  /**
+   * Creates a new ListenableFuture-style stub that supports unary calls on 
the service
+   */
+  public static AdminBiStreamServiceFutureStub newFutureStub(
+      io.grpc.Channel channel) {
+    io.grpc.stub.AbstractStub.StubFactory<AdminBiStreamServiceFutureStub> 
factory =
+      new 
io.grpc.stub.AbstractStub.StubFactory<AdminBiStreamServiceFutureStub>() {
+        @Override
+        public AdminBiStreamServiceFutureStub newStub(io.grpc.Channel channel, 
io.grpc.CallOptions callOptions) {
+          return new AdminBiStreamServiceFutureStub(channel, callOptions);
+        }
+      };
+    return AdminBiStreamServiceFutureStub.newStub(factory, channel);
+  }
+
+  /**
+   */
+  public static abstract class AdminBiStreamServiceImplBase implements 
io.grpc.BindableService {
+
+    /**
+     */
+    public io.grpc.stub.StreamObserver<Payload> invokeBiStream(
+        io.grpc.stub.StreamObserver<Payload> responseObserver) {
+      return 
io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall(getInvokeBiStreamMethod(),
 responseObserver);
+    }
+
+    @Override public final io.grpc.ServerServiceDefinition bindService() {
+      return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+          .addMethod(
+            getInvokeBiStreamMethod(),
+            io.grpc.stub.ServerCalls.asyncBidiStreamingCall(
+              new MethodHandlers<
+                Payload,
+                Payload>(
+                  this, METHODID_INVOKE_BI_STREAM)))
+          .build();
+    }
+  }
+
+  /**
+   */
+  public static final class AdminBiStreamServiceStub extends 
io.grpc.stub.AbstractAsyncStub<AdminBiStreamServiceStub> {
+    private AdminBiStreamServiceStub(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @Override
+    protected AdminBiStreamServiceStub build(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      return new AdminBiStreamServiceStub(channel, callOptions);
+    }
+
+    /**
+     */
+    public io.grpc.stub.StreamObserver<Payload> invokeBiStream(
+        io.grpc.stub.StreamObserver<Payload> responseObserver) {
+      return io.grpc.stub.ClientCalls.asyncBidiStreamingCall(
+          getChannel().newCall(getInvokeBiStreamMethod(), getCallOptions()), 
responseObserver);
+    }
+  }
+
+  /**
+   */
+  public static final class AdminBiStreamServiceBlockingStub extends 
io.grpc.stub.AbstractBlockingStub<AdminBiStreamServiceBlockingStub> {
+    private AdminBiStreamServiceBlockingStub(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @Override
+    protected AdminBiStreamServiceBlockingStub build(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      return new AdminBiStreamServiceBlockingStub(channel, callOptions);
+    }
+  }
+
+  /**
+   */
+  public static final class AdminBiStreamServiceFutureStub extends 
io.grpc.stub.AbstractFutureStub<AdminBiStreamServiceFutureStub> {
+    private AdminBiStreamServiceFutureStub(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @Override
+    protected AdminBiStreamServiceFutureStub build(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      return new AdminBiStreamServiceFutureStub(channel, callOptions);
+    }
+  }
+
+  private static final int METHODID_INVOKE_BI_STREAM = 0;
+
+  private static final class MethodHandlers<Req, Resp> implements
+      io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
+    private final AdminBiStreamServiceImplBase serviceImpl;
+    private final int methodId;
+
+    MethodHandlers(AdminBiStreamServiceImplBase serviceImpl, int methodId) {
+      this.serviceImpl = serviceImpl;
+      this.methodId = methodId;
+    }
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> 
responseObserver) {
+      switch (methodId) {
+        default:
+          throw new AssertionError();
+      }
+    }
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public io.grpc.stub.StreamObserver<Req> invoke(
+        io.grpc.stub.StreamObserver<Resp> responseObserver) {
+      switch (methodId) {
+        case METHODID_INVOKE_BI_STREAM:
+          return (io.grpc.stub.StreamObserver<Req>) serviceImpl.invokeBiStream(
+              (io.grpc.stub.StreamObserver<Payload>) responseObserver);
+        default:
+          throw new AssertionError();
+      }
+    }
+  }
+
+  private static abstract class AdminBiStreamServiceBaseDescriptorSupplier
+      implements io.grpc.protobuf.ProtoFileDescriptorSupplier, 
io.grpc.protobuf.ProtoServiceDescriptorSupplier {
+    AdminBiStreamServiceBaseDescriptorSupplier() {}
+
+    @Override
+    public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
+      return EventMeshAdminService.getDescriptor();
+    }
+
+    @Override
+    public com.google.protobuf.Descriptors.ServiceDescriptor 
getServiceDescriptor() {
+      return getFileDescriptor().findServiceByName("AdminBiStreamService");
+    }
+  }
+
+  private static final class AdminBiStreamServiceFileDescriptorSupplier
+      extends AdminBiStreamServiceBaseDescriptorSupplier {
+    AdminBiStreamServiceFileDescriptorSupplier() {}
+  }
+
+  private static final class AdminBiStreamServiceMethodDescriptorSupplier
+      extends AdminBiStreamServiceBaseDescriptorSupplier
+      implements io.grpc.protobuf.ProtoMethodDescriptorSupplier {
+    private final String methodName;
+
+    AdminBiStreamServiceMethodDescriptorSupplier(String methodName) {
+      this.methodName = methodName;
+    }
+
+    @Override
+    public com.google.protobuf.Descriptors.MethodDescriptor 
getMethodDescriptor() {
+      return getServiceDescriptor().findMethodByName(methodName);
+    }
+  }
+
+  private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
+
+  public static io.grpc.ServiceDescriptor getServiceDescriptor() {
+    io.grpc.ServiceDescriptor result = serviceDescriptor;
+    if (result == null) {
+      synchronized (AdminBiStreamServiceGrpc.class) {
+        result = serviceDescriptor;
+        if (result == null) {
+          serviceDescriptor = result = 
io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
+              .setSchemaDescriptor(new 
AdminBiStreamServiceFileDescriptorSupplier())
+              .addMethod(getInvokeBiStreamMethod())
+              .build();
+        }
+      }
+    }
+    return result;
+  }
+}
diff --git 
a/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/generated/AdminServiceGrpc.java
 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/generated/AdminServiceGrpc.java
new file mode 100644
index 000000000..61b418e90
--- /dev/null
+++ 
b/eventmesh-admin-server/src/main/java/com/apache/eventmesh/admin/server/web/generated/AdminServiceGrpc.java
@@ -0,0 +1,279 @@
+package com.apache.eventmesh.admin.server.web.generated;
+
+import org.apache.eventmesh.common.grpc.EventMeshAdminService;
+import org.apache.eventmesh.common.grpc.Payload;
+
+import static io.grpc.MethodDescriptor.generateFullMethodName;
+
+/**
+ */
[email protected](
+    value = "by gRPC proto compiler (version 1.40.0)",
+    comments = "Source: event_mesh_admin_service.proto")
[email protected]
+public final class AdminServiceGrpc {
+
+  private AdminServiceGrpc() {}
+
+  public static final String SERVICE_NAME = "AdminService";
+
+  // Static method descriptors that strictly reflect the proto.
+  private static volatile io.grpc.MethodDescriptor<Payload,
+      Payload> getInvokeMethod;
+
+  @io.grpc.stub.annotations.RpcMethod(
+      fullMethodName = SERVICE_NAME + '/' + "invoke",
+      requestType = Payload.class,
+      responseType = Payload.class,
+      methodType = io.grpc.MethodDescriptor.MethodType.UNARY)
+  public static io.grpc.MethodDescriptor<Payload,
+      Payload> getInvokeMethod() {
+    io.grpc.MethodDescriptor<Payload, Payload> getInvokeMethod;
+    if ((getInvokeMethod = AdminServiceGrpc.getInvokeMethod) == null) {
+      synchronized (AdminServiceGrpc.class) {
+        if ((getInvokeMethod = AdminServiceGrpc.getInvokeMethod) == null) {
+          AdminServiceGrpc.getInvokeMethod = getInvokeMethod =
+              io.grpc.MethodDescriptor.<Payload, Payload>newBuilder()
+              .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+              .setFullMethodName(generateFullMethodName(SERVICE_NAME, 
"invoke"))
+              .setSampledToLocalTracing(true)
+              .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+                  Payload.getDefaultInstance()))
+              .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+                  Payload.getDefaultInstance()))
+              .setSchemaDescriptor(new 
AdminServiceMethodDescriptorSupplier("invoke"))
+              .build();
+        }
+      }
+    }
+    return getInvokeMethod;
+  }
+
+  /**
+   * Creates a new async stub that supports all call types for the service
+   */
+  public static AdminServiceStub newStub(io.grpc.Channel channel) {
+    io.grpc.stub.AbstractStub.StubFactory<AdminServiceStub> factory =
+      new io.grpc.stub.AbstractStub.StubFactory<AdminServiceStub>() {
+        @Override
+        public AdminServiceStub newStub(io.grpc.Channel channel, 
io.grpc.CallOptions callOptions) {
+          return new AdminServiceStub(channel, callOptions);
+        }
+      };
+    return AdminServiceStub.newStub(factory, channel);
+  }
+
+  /**
+   * Creates a new blocking-style stub that supports unary and streaming 
output calls on the service
+   */
+  public static AdminServiceBlockingStub newBlockingStub(
+      io.grpc.Channel channel) {
+    io.grpc.stub.AbstractStub.StubFactory<AdminServiceBlockingStub> factory =
+      new io.grpc.stub.AbstractStub.StubFactory<AdminServiceBlockingStub>() {
+        @Override
+        public AdminServiceBlockingStub newStub(io.grpc.Channel channel, 
io.grpc.CallOptions callOptions) {
+          return new AdminServiceBlockingStub(channel, callOptions);
+        }
+      };
+    return AdminServiceBlockingStub.newStub(factory, channel);
+  }
+
+  /**
+   * Creates a new ListenableFuture-style stub that supports unary calls on 
the service
+   */
+  public static AdminServiceFutureStub newFutureStub(
+      io.grpc.Channel channel) {
+    io.grpc.stub.AbstractStub.StubFactory<AdminServiceFutureStub> factory =
+      new io.grpc.stub.AbstractStub.StubFactory<AdminServiceFutureStub>() {
+        @Override
+        public AdminServiceFutureStub newStub(io.grpc.Channel channel, 
io.grpc.CallOptions callOptions) {
+          return new AdminServiceFutureStub(channel, callOptions);
+        }
+      };
+    return AdminServiceFutureStub.newStub(factory, channel);
+  }
+
+  /**
+   */
+  public static abstract class AdminServiceImplBase implements 
io.grpc.BindableService {
+
+    /**
+     */
+    public void invoke(Payload request,
+        io.grpc.stub.StreamObserver<Payload> responseObserver) {
+      io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getInvokeMethod(), 
responseObserver);
+    }
+
+    @Override public final io.grpc.ServerServiceDefinition bindService() {
+      return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+          .addMethod(
+            getInvokeMethod(),
+            io.grpc.stub.ServerCalls.asyncUnaryCall(
+              new MethodHandlers<
+                Payload,
+                Payload>(
+                  this, METHODID_INVOKE)))
+          .build();
+    }
+  }
+
+  /**
+   */
+  public static final class AdminServiceStub extends 
io.grpc.stub.AbstractAsyncStub<AdminServiceStub> {
+    private AdminServiceStub(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @Override
+    protected AdminServiceStub build(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      return new AdminServiceStub(channel, callOptions);
+    }
+
+    /**
+     */
+    public void invoke(Payload request,
+        io.grpc.stub.StreamObserver<Payload> responseObserver) {
+      io.grpc.stub.ClientCalls.asyncUnaryCall(
+          getChannel().newCall(getInvokeMethod(), getCallOptions()), request, 
responseObserver);
+    }
+  }
+
+  /**
+   */
+  public static final class AdminServiceBlockingStub extends 
io.grpc.stub.AbstractBlockingStub<AdminServiceBlockingStub> {
+    private AdminServiceBlockingStub(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @Override
+    protected AdminServiceBlockingStub build(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      return new AdminServiceBlockingStub(channel, callOptions);
+    }
+
+    /**
+     */
+    public Payload invoke(Payload request) {
+      return io.grpc.stub.ClientCalls.blockingUnaryCall(
+          getChannel(), getInvokeMethod(), getCallOptions(), request);
+    }
+  }
+
+  /**
+   */
+  public static final class AdminServiceFutureStub extends 
io.grpc.stub.AbstractFutureStub<AdminServiceFutureStub> {
+    private AdminServiceFutureStub(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @Override
+    protected AdminServiceFutureStub build(
+        io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
+      return new AdminServiceFutureStub(channel, callOptions);
+    }
+
+    /**
+     */
+    public com.google.common.util.concurrent.ListenableFuture<Payload> invoke(
+        Payload request) {
+      return io.grpc.stub.ClientCalls.futureUnaryCall(
+          getChannel().newCall(getInvokeMethod(), getCallOptions()), request);
+    }
+  }
+
+  private static final int METHODID_INVOKE = 0;
+
+  private static final class MethodHandlers<Req, Resp> implements
+      io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
+    private final AdminServiceImplBase serviceImpl;
+    private final int methodId;
+
+    MethodHandlers(AdminServiceImplBase serviceImpl, int methodId) {
+      this.serviceImpl = serviceImpl;
+      this.methodId = methodId;
+    }
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> 
responseObserver) {
+      switch (methodId) {
+        case METHODID_INVOKE:
+          serviceImpl.invoke((Payload) request,
+              (io.grpc.stub.StreamObserver<Payload>) responseObserver);
+          break;
+        default:
+          throw new AssertionError();
+      }
+    }
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public io.grpc.stub.StreamObserver<Req> invoke(
+        io.grpc.stub.StreamObserver<Resp> responseObserver) {
+      switch (methodId) {
+        default:
+          throw new AssertionError();
+      }
+    }
+  }
+
+  private static abstract class AdminServiceBaseDescriptorSupplier
+      implements io.grpc.protobuf.ProtoFileDescriptorSupplier, 
io.grpc.protobuf.ProtoServiceDescriptorSupplier {
+    AdminServiceBaseDescriptorSupplier() {}
+
+    @Override
+    public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
+      return EventMeshAdminService.getDescriptor();
+    }
+
+    @Override
+    public com.google.protobuf.Descriptors.ServiceDescriptor 
getServiceDescriptor() {
+      return getFileDescriptor().findServiceByName("AdminService");
+    }
+  }
+
+  private static final class AdminServiceFileDescriptorSupplier
+      extends AdminServiceBaseDescriptorSupplier {
+    AdminServiceFileDescriptorSupplier() {}
+  }
+
+  private static final class AdminServiceMethodDescriptorSupplier
+      extends AdminServiceBaseDescriptorSupplier
+      implements io.grpc.protobuf.ProtoMethodDescriptorSupplier {
+    private final String methodName;
+
+    AdminServiceMethodDescriptorSupplier(String methodName) {
+      this.methodName = methodName;
+    }
+
+    @Override
+    public com.google.protobuf.Descriptors.MethodDescriptor 
getMethodDescriptor() {
+      return getServiceDescriptor().findMethodByName(methodName);
+    }
+  }
+
+  private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
+
+  public static io.grpc.ServiceDescriptor getServiceDescriptor() {
+    io.grpc.ServiceDescriptor result = serviceDescriptor;
+    if (result == null) {
+      synchronized (AdminServiceGrpc.class) {
+        result = serviceDescriptor;
+        if (result == null) {
+          serviceDescriptor = result = 
io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
+              .setSchemaDescriptor(new AdminServiceFileDescriptorSupplier())
+              .addMethod(getInvokeMethod())
+              .build();
+        }
+      }
+    }
+    return result;
+  }
+}
diff --git 
a/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/EventMeshAdminService.java
 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/EventMeshAdminService.java
new file mode 100644
index 000000000..3c2e81217
--- /dev/null
+++ 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/EventMeshAdminService.java
@@ -0,0 +1,77 @@
+package org.apache.eventmesh.common.grpc;// Generated by the protocol buffer 
compiler.  DO NOT EDIT!
+// source: event_mesh_admin_service.proto
+
+public final class EventMeshAdminService {
+  private EventMeshAdminService() {}
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistryLite registry) {
+  }
+
+  public static void registerAllExtensions(
+      com.google.protobuf.ExtensionRegistry registry) {
+    registerAllExtensions(
+        (com.google.protobuf.ExtensionRegistryLite) registry);
+  }
+  static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Metadata_descriptor;
+  static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Metadata_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Metadata_HeadersEntry_descriptor;
+  static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Metadata_HeadersEntry_fieldAccessorTable;
+  static final com.google.protobuf.Descriptors.Descriptor
+    internal_static_Payload_descriptor;
+  static final 
+    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internal_static_Payload_fieldAccessorTable;
+
+  public static com.google.protobuf.Descriptors.FileDescriptor
+      getDescriptor() {
+    return descriptor;
+  }
+  private static  com.google.protobuf.Descriptors.FileDescriptor
+      descriptor;
+  static {
+    String[] descriptorData = {
+      "\n\036event_mesh_admin_service.proto\032\031google" +
+      "/protobuf/any.proto\"q\n\010Metadata\022\014\n\004type\030" +
+      "\003 \001(\t\022\'\n\007headers\030\007 \003(\0132\026.Metadata.Header" 
+
+      "sEntry\032.\n\014HeadersEntry\022\013\n\003key\030\001 
\001(\t\022\r\n\005v" +
+      "alue\030\002 
\001(\t:\0028\001\"J\n\007Payload\022\033\n\010metadata\030\002 " +
+      "\001(\0132\t.Metadata\022\"\n\004body\030\003 \001(\0132\024.google.pr" 
+
+      "otobuf.Any2B\n\024AdminBiStreamService\022*\n\016in" +
+      "vokeBiStream\022\010.Payload\032\010.Payload\"\000(\0010\00124" +
+      "\n\014AdminService\022$\n\014invokeStream\022\010.Payload" +
+      "\032\010.Payload\"\000B\002P\001b\006proto3"
+    };
+    descriptor = com.google.protobuf.Descriptors.FileDescriptor
+      .internalBuildGeneratedFileFrom(descriptorData,
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
+          com.google.protobuf.AnyProto.getDescriptor(),
+        });
+    internal_static_Metadata_descriptor =
+      getDescriptor().getMessageTypes().get(0);
+    internal_static_Metadata_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Metadata_descriptor,
+        new String[] { "Type", "Headers", });
+    internal_static_Metadata_HeadersEntry_descriptor =
+      internal_static_Metadata_descriptor.getNestedTypes().get(0);
+    internal_static_Metadata_HeadersEntry_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Metadata_HeadersEntry_descriptor,
+        new String[] { "Key", "Value", });
+    internal_static_Payload_descriptor =
+      getDescriptor().getMessageTypes().get(1);
+    internal_static_Payload_fieldAccessorTable = new
+      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+        internal_static_Payload_descriptor,
+        new String[] { "Metadata", "Body", });
+    com.google.protobuf.AnyProto.getDescriptor();
+  }
+
+  // @@protoc_insertion_point(outer_class_scope)
+}
diff --git 
a/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/Metadata.java 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/Metadata.java
new file mode 100644
index 000000000..6361ee252
--- /dev/null
+++ 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/Metadata.java
@@ -0,0 +1,841 @@
+package org.apache.eventmesh.common.grpc;// Generated by the protocol buffer 
compiler.  DO NOT EDIT!
+// source: event_mesh_admin_service.proto
+
+/**
+ * Protobuf type {@code Metadata}
+ */
+public final class Metadata extends
+    com.google.protobuf.GeneratedMessageV3 implements
+    // @@protoc_insertion_point(message_implements:Metadata)
+        MetadataOrBuilder {
+private static final long serialVersionUID = 0L;
+  // Use Metadata.newBuilder() to construct.
+  private Metadata(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+  private Metadata() {
+    type_ = "";
+  }
+
+  @Override
+  @SuppressWarnings({"unused"})
+  protected Object newInstance(
+      UnusedPrivateParameter unused) {
+    return new Metadata();
+  }
+
+  @Override
+  public final com.google.protobuf.UnknownFieldSet
+  getUnknownFields() {
+    return this.unknownFields;
+  }
+  private Metadata(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new NullPointerException();
+    }
+    int mutable_bitField0_ = 0;
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 26: {
+            String s = input.readStringRequireUtf8();
+
+            type_ = s;
+            break;
+          }
+          case 58: {
+            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
+              headers_ = com.google.protobuf.MapField.newMapField(
+                  HeadersDefaultEntryHolder.defaultEntry);
+              mutable_bitField0_ |= 0x00000001;
+            }
+            com.google.protobuf.MapEntry<String, String>
+            headers__ = input.readMessage(
+                HeadersDefaultEntryHolder.defaultEntry.getParserForType(), 
extensionRegistry);
+            headers_.getMutableMap().put(
+                headers__.getKey(), headers__.getValue());
+            break;
+          }
+          default: {
+            if (!parseUnknownField(
+                input, unknownFields, extensionRegistry, tag)) {
+              done = true;
+            }
+            break;
+          }
+        }
+      }
+    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+      throw e.setUnfinishedMessage(this);
+    } catch (java.io.IOException e) {
+      throw new com.google.protobuf.InvalidProtocolBufferException(
+          e).setUnfinishedMessage(this);
+    } finally {
+      this.unknownFields = unknownFields.build();
+      makeExtensionsImmutable();
+    }
+  }
+  public static final com.google.protobuf.Descriptors.Descriptor
+      getDescriptor() {
+    return EventMeshAdminService.internal_static_Metadata_descriptor;
+  }
+
+  @SuppressWarnings({"rawtypes"})
+  @Override
+  protected com.google.protobuf.MapField internalGetMapField(
+      int number) {
+    switch (number) {
+      case 7:
+        return internalGetHeaders();
+      default:
+        throw new RuntimeException(
+            "Invalid map field number: " + number);
+    }
+  }
+  @Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return EventMeshAdminService.internal_static_Metadata_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            Metadata.class, Builder.class);
+  }
+
+  public static final int TYPE_FIELD_NUMBER = 3;
+  private volatile Object type_;
+  /**
+   * <code>string type = 3;</code>
+   * @return The type.
+   */
+  @Override
+  public String getType() {
+    Object ref = type_;
+    if (ref instanceof String) {
+      return (String) ref;
+    } else {
+      com.google.protobuf.ByteString bs = 
+          (com.google.protobuf.ByteString) ref;
+      String s = bs.toStringUtf8();
+      type_ = s;
+      return s;
+    }
+  }
+  /**
+   * <code>string type = 3;</code>
+   * @return The bytes for type.
+   */
+  @Override
+  public com.google.protobuf.ByteString
+      getTypeBytes() {
+    Object ref = type_;
+    if (ref instanceof String) {
+      com.google.protobuf.ByteString b = 
+          com.google.protobuf.ByteString.copyFromUtf8(
+              (String) ref);
+      type_ = b;
+      return b;
+    } else {
+      return (com.google.protobuf.ByteString) ref;
+    }
+  }
+
+  public static final int HEADERS_FIELD_NUMBER = 7;
+  private static final class HeadersDefaultEntryHolder {
+    static final com.google.protobuf.MapEntry<
+        String, String> defaultEntry =
+            com.google.protobuf.MapEntry
+            .<String, String>newDefaultInstance(
+                
EventMeshAdminService.internal_static_Metadata_HeadersEntry_descriptor, 
+                com.google.protobuf.WireFormat.FieldType.STRING,
+                "",
+                com.google.protobuf.WireFormat.FieldType.STRING,
+                "");
+  }
+  private com.google.protobuf.MapField<
+      String, String> headers_;
+  private com.google.protobuf.MapField<String, String>
+  internalGetHeaders() {
+    if (headers_ == null) {
+      return com.google.protobuf.MapField.emptyMapField(
+          HeadersDefaultEntryHolder.defaultEntry);
+    }
+    return headers_;
+  }
+
+  public int getHeadersCount() {
+    return internalGetHeaders().getMap().size();
+  }
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+
+  @Override
+  public boolean containsHeaders(
+      String key) {
+    if (key == null) { throw new NullPointerException(); }
+    return internalGetHeaders().getMap().containsKey(key);
+  }
+  /**
+   * Use {@link #getHeadersMap()} instead.
+   */
+  @Override
+  @Deprecated
+  public java.util.Map<String, String> getHeaders() {
+    return getHeadersMap();
+  }
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+  @Override
+
+  public java.util.Map<String, String> getHeadersMap() {
+    return internalGetHeaders().getMap();
+  }
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+  @Override
+
+  public String getHeadersOrDefault(
+      String key,
+      String defaultValue) {
+    if (key == null) { throw new NullPointerException(); }
+    java.util.Map<String, String> map =
+        internalGetHeaders().getMap();
+    return map.containsKey(key) ? map.get(key) : defaultValue;
+  }
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+  @Override
+
+  public String getHeadersOrThrow(
+      String key) {
+    if (key == null) { throw new NullPointerException(); }
+    java.util.Map<String, String> map =
+        internalGetHeaders().getMap();
+    if (!map.containsKey(key)) {
+      throw new IllegalArgumentException();
+    }
+    return map.get(key);
+  }
+
+  private byte memoizedIsInitialized = -1;
+  @Override
+  public final boolean isInitialized() {
+    byte isInitialized = memoizedIsInitialized;
+    if (isInitialized == 1) return true;
+    if (isInitialized == 0) return false;
+
+    memoizedIsInitialized = 1;
+    return true;
+  }
+
+  @Override
+  public void writeTo(com.google.protobuf.CodedOutputStream output)
+                      throws java.io.IOException {
+    if (!getTypeBytes().isEmpty()) {
+      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, type_);
+    }
+    com.google.protobuf.GeneratedMessageV3
+      .serializeStringMapTo(
+        output,
+        internalGetHeaders(),
+        HeadersDefaultEntryHolder.defaultEntry,
+        7);
+    unknownFields.writeTo(output);
+  }
+
+  @Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (!getTypeBytes().isEmpty()) {
+      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, 
type_);
+    }
+    for (java.util.Map.Entry<String, String> entry
+         : internalGetHeaders().getMap().entrySet()) {
+      com.google.protobuf.MapEntry<String, String>
+      headers__ = HeadersDefaultEntryHolder.defaultEntry.newBuilderForType()
+          .setKey(entry.getKey())
+          .setValue(entry.getValue())
+          .build();
+      size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(7, headers__);
+    }
+    size += unknownFields.getSerializedSize();
+    memoizedSize = size;
+    return size;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    if (obj == this) {
+     return true;
+    }
+    if (!(obj instanceof Metadata)) {
+      return super.equals(obj);
+    }
+    Metadata other = (Metadata) obj;
+
+    if (!getType()
+        .equals(other.getType())) return false;
+    if (!internalGetHeaders().equals(
+        other.internalGetHeaders())) return false;
+    if (!unknownFields.equals(other.unknownFields)) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    if (memoizedHashCode != 0) {
+      return memoizedHashCode;
+    }
+    int hash = 41;
+    hash = (19 * hash) + getDescriptor().hashCode();
+    hash = (37 * hash) + TYPE_FIELD_NUMBER;
+    hash = (53 * hash) + getType().hashCode();
+    if (!internalGetHeaders().getMap().isEmpty()) {
+      hash = (37 * hash) + HEADERS_FIELD_NUMBER;
+      hash = (53 * hash) + internalGetHeaders().hashCode();
+    }
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static Metadata parseFrom(
+      java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static Metadata parseFrom(
+      java.nio.ByteBuffer data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static Metadata parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static Metadata parseFrom(
+      com.google.protobuf.ByteString data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static Metadata parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static Metadata parseFrom(
+      byte[] data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static Metadata parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input);
+  }
+  public static Metadata parseFrom(
+      java.io.InputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input, extensionRegistry);
+  }
+  public static Metadata parseDelimitedFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseDelimitedWithIOException(PARSER, input);
+  }
+  public static Metadata parseDelimitedFrom(
+      java.io.InputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+  }
+  public static Metadata parseFrom(
+      com.google.protobuf.CodedInputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input);
+  }
+  public static Metadata parseFrom(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input, extensionRegistry);
+  }
+
+  @Override
+  public Builder newBuilderForType() { return newBuilder(); }
+  public static Builder newBuilder() {
+    return DEFAULT_INSTANCE.toBuilder();
+  }
+  public static Builder newBuilder(Metadata prototype) {
+    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+  }
+  @Override
+  public Builder toBuilder() {
+    return this == DEFAULT_INSTANCE
+        ? new Builder() : new Builder().mergeFrom(this);
+  }
+
+  @Override
+  protected Builder newBuilderForType(
+      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+    Builder builder = new Builder(parent);
+    return builder;
+  }
+  /**
+   * Protobuf type {@code Metadata}
+   */
+  public static final class Builder extends
+      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+      // @@protoc_insertion_point(builder_implements:Metadata)
+          MetadataOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return EventMeshAdminService.internal_static_Metadata_descriptor;
+    }
+
+    @SuppressWarnings({"rawtypes"})
+    protected com.google.protobuf.MapField internalGetMapField(
+        int number) {
+      switch (number) {
+        case 7:
+          return internalGetHeaders();
+        default:
+          throw new RuntimeException(
+              "Invalid map field number: " + number);
+      }
+    }
+    @SuppressWarnings({"rawtypes"})
+    protected com.google.protobuf.MapField internalGetMutableMapField(
+        int number) {
+      switch (number) {
+        case 7:
+          return internalGetMutableHeaders();
+        default:
+          throw new RuntimeException(
+              "Invalid map field number: " + number);
+      }
+    }
+    @Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return EventMeshAdminService.internal_static_Metadata_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Metadata.class, Builder.class);
+    }
+
+    // Construct using Metadata.newBuilder()
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
+
+    private Builder(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      super(parent);
+      maybeForceBuilderInitialization();
+    }
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3
+              .alwaysUseFieldBuilders) {
+      }
+    }
+    @Override
+    public Builder clear() {
+      super.clear();
+      type_ = "";
+
+      internalGetMutableHeaders().clear();
+      return this;
+    }
+
+    @Override
+    public com.google.protobuf.Descriptors.Descriptor
+        getDescriptorForType() {
+      return EventMeshAdminService.internal_static_Metadata_descriptor;
+    }
+
+    @Override
+    public Metadata getDefaultInstanceForType() {
+      return Metadata.getDefaultInstance();
+    }
+
+    @Override
+    public Metadata build() {
+      Metadata result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @Override
+    public Metadata buildPartial() {
+      Metadata result = new Metadata(this);
+      int from_bitField0_ = bitField0_;
+      result.type_ = type_;
+      result.headers_ = internalGetHeaders();
+      result.headers_.makeImmutable();
+      onBuilt();
+      return result;
+    }
+
+    @Override
+    public Builder clone() {
+      return super.clone();
+    }
+    @Override
+    public Builder setField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        Object value) {
+      return super.setField(field, value);
+    }
+    @Override
+    public Builder clearField(
+        com.google.protobuf.Descriptors.FieldDescriptor field) {
+      return super.clearField(field);
+    }
+    @Override
+    public Builder clearOneof(
+        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+      return super.clearOneof(oneof);
+    }
+    @Override
+    public Builder setRepeatedField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        int index, Object value) {
+      return super.setRepeatedField(field, index, value);
+    }
+    @Override
+    public Builder addRepeatedField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        Object value) {
+      return super.addRepeatedField(field, value);
+    }
+    @Override
+    public Builder mergeFrom(com.google.protobuf.Message other) {
+      if (other instanceof Metadata) {
+        return mergeFrom((Metadata)other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(Metadata other) {
+      if (other == Metadata.getDefaultInstance()) return this;
+      if (!other.getType().isEmpty()) {
+        type_ = other.type_;
+        onChanged();
+      }
+      internalGetMutableHeaders().mergeFrom(
+          other.internalGetHeaders());
+      this.mergeUnknownFields(other.unknownFields);
+      onChanged();
+      return this;
+    }
+
+    @Override
+    public final boolean isInitialized() {
+      return true;
+    }
+
+    @Override
+    public Builder mergeFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      Metadata parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage = (Metadata) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+    private int bitField0_;
+
+    private Object type_ = "";
+    /**
+     * <code>string type = 3;</code>
+     * @return The type.
+     */
+    public String getType() {
+      Object ref = type_;
+      if (!(ref instanceof String)) {
+        com.google.protobuf.ByteString bs =
+            (com.google.protobuf.ByteString) ref;
+        String s = bs.toStringUtf8();
+        type_ = s;
+        return s;
+      } else {
+        return (String) ref;
+      }
+    }
+    /**
+     * <code>string type = 3;</code>
+     * @return The bytes for type.
+     */
+    public com.google.protobuf.ByteString
+        getTypeBytes() {
+      Object ref = type_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8(
+                (String) ref);
+        type_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
+    /**
+     * <code>string type = 3;</code>
+     * @param value The type to set.
+     * @return This builder for chaining.
+     */
+    public Builder setType(
+        String value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  
+      type_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <code>string type = 3;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearType() {
+      
+      type_ = getDefaultInstance().getType();
+      onChanged();
+      return this;
+    }
+    /**
+     * <code>string type = 3;</code>
+     * @param value The bytes for type to set.
+     * @return This builder for chaining.
+     */
+    public Builder setTypeBytes(
+        com.google.protobuf.ByteString value) {
+      if (value == null) {
+    throw new NullPointerException();
+  }
+  checkByteStringIsUtf8(value);
+      
+      type_ = value;
+      onChanged();
+      return this;
+    }
+
+    private com.google.protobuf.MapField<
+        String, String> headers_;
+    private com.google.protobuf.MapField<String, String>
+    internalGetHeaders() {
+      if (headers_ == null) {
+        return com.google.protobuf.MapField.emptyMapField(
+            HeadersDefaultEntryHolder.defaultEntry);
+      }
+      return headers_;
+    }
+    private com.google.protobuf.MapField<String, String>
+    internalGetMutableHeaders() {
+      onChanged();;
+      if (headers_ == null) {
+        headers_ = com.google.protobuf.MapField.newMapField(
+            HeadersDefaultEntryHolder.defaultEntry);
+      }
+      if (!headers_.isMutable()) {
+        headers_ = headers_.copy();
+      }
+      return headers_;
+    }
+
+    public int getHeadersCount() {
+      return internalGetHeaders().getMap().size();
+    }
+    /**
+     * <code>map&lt;string, string&gt; headers = 7;</code>
+     */
+
+    @Override
+    public boolean containsHeaders(
+        String key) {
+      if (key == null) { throw new NullPointerException(); }
+      return internalGetHeaders().getMap().containsKey(key);
+    }
+    /**
+     * Use {@link #getHeadersMap()} instead.
+     */
+    @Override
+    @Deprecated
+    public java.util.Map<String, String> getHeaders() {
+      return getHeadersMap();
+    }
+    /**
+     * <code>map&lt;string, string&gt; headers = 7;</code>
+     */
+    @Override
+
+    public java.util.Map<String, String> getHeadersMap() {
+      return internalGetHeaders().getMap();
+    }
+    /**
+     * <code>map&lt;string, string&gt; headers = 7;</code>
+     */
+    @Override
+
+    public String getHeadersOrDefault(
+        String key,
+        String defaultValue) {
+      if (key == null) { throw new NullPointerException(); }
+      java.util.Map<String, String> map =
+          internalGetHeaders().getMap();
+      return map.containsKey(key) ? map.get(key) : defaultValue;
+    }
+    /**
+     * <code>map&lt;string, string&gt; headers = 7;</code>
+     */
+    @Override
+
+    public String getHeadersOrThrow(
+        String key) {
+      if (key == null) { throw new NullPointerException(); }
+      java.util.Map<String, String> map =
+          internalGetHeaders().getMap();
+      if (!map.containsKey(key)) {
+        throw new IllegalArgumentException();
+      }
+      return map.get(key);
+    }
+
+    public Builder clearHeaders() {
+      internalGetMutableHeaders().getMutableMap()
+          .clear();
+      return this;
+    }
+    /**
+     * <code>map&lt;string, string&gt; headers = 7;</code>
+     */
+
+    public Builder removeHeaders(
+        String key) {
+      if (key == null) { throw new NullPointerException(); }
+      internalGetMutableHeaders().getMutableMap()
+          .remove(key);
+      return this;
+    }
+    /**
+     * Use alternate mutation accessors instead.
+     */
+    @Deprecated
+    public java.util.Map<String, String>
+    getMutableHeaders() {
+      return internalGetMutableHeaders().getMutableMap();
+    }
+    /**
+     * <code>map&lt;string, string&gt; headers = 7;</code>
+     */
+    public Builder putHeaders(
+        String key,
+        String value) {
+      if (key == null) { throw new NullPointerException(); }
+      if (value == null) { throw new NullPointerException(); }
+      internalGetMutableHeaders().getMutableMap()
+          .put(key, value);
+      return this;
+    }
+    /**
+     * <code>map&lt;string, string&gt; headers = 7;</code>
+     */
+
+    public Builder putAllHeaders(
+        java.util.Map<String, String> values) {
+      internalGetMutableHeaders().getMutableMap()
+          .putAll(values);
+      return this;
+    }
+    @Override
+    public final Builder setUnknownFields(
+        final com.google.protobuf.UnknownFieldSet unknownFields) {
+      return super.setUnknownFields(unknownFields);
+    }
+
+    @Override
+    public final Builder mergeUnknownFields(
+        final com.google.protobuf.UnknownFieldSet unknownFields) {
+      return super.mergeUnknownFields(unknownFields);
+    }
+
+
+    // @@protoc_insertion_point(builder_scope:Metadata)
+  }
+
+  // @@protoc_insertion_point(class_scope:Metadata)
+  private static final Metadata DEFAULT_INSTANCE;
+  static {
+    DEFAULT_INSTANCE = new Metadata();
+  }
+
+  public static Metadata getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<Metadata>
+      PARSER = new com.google.protobuf.AbstractParser<Metadata>() {
+    @Override
+    public Metadata parsePartialFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return new Metadata(input, extensionRegistry);
+    }
+  };
+
+  public static com.google.protobuf.Parser<Metadata> parser() {
+    return PARSER;
+  }
+
+  @Override
+  public com.google.protobuf.Parser<Metadata> getParserForType() {
+    return PARSER;
+  }
+
+  @Override
+  public Metadata getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+
+}
+
diff --git 
a/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/MetadataOrBuilder.java
 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/MetadataOrBuilder.java
new file mode 100644
index 000000000..efed0c02a
--- /dev/null
+++ 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/MetadataOrBuilder.java
@@ -0,0 +1,53 @@
+package org.apache.eventmesh.common.grpc;// Generated by the protocol buffer 
compiler.  DO NOT EDIT!
+// source: event_mesh_admin_service.proto
+
+public interface MetadataOrBuilder extends
+    // @@protoc_insertion_point(interface_extends:Metadata)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   * <code>string type = 3;</code>
+   * @return The type.
+   */
+  String getType();
+  /**
+   * <code>string type = 3;</code>
+   * @return The bytes for type.
+   */
+  com.google.protobuf.ByteString
+      getTypeBytes();
+
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+  int getHeadersCount();
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+  boolean containsHeaders(
+      String key);
+  /**
+   * Use {@link #getHeadersMap()} instead.
+   */
+  @Deprecated
+  java.util.Map<String, String>
+  getHeaders();
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+  java.util.Map<String, String>
+  getHeadersMap();
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+
+  String getHeadersOrDefault(
+      String key,
+      String defaultValue);
+  /**
+   * <code>map&lt;string, string&gt; headers = 7;</code>
+   */
+
+  String getHeadersOrThrow(
+      String key);
+}
diff --git 
a/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/Payload.java 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/Payload.java
new file mode 100644
index 000000000..a23fcc978
--- /dev/null
+++ 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/Payload.java
@@ -0,0 +1,793 @@
+package org.apache.eventmesh.common.grpc;// Generated by the protocol buffer 
compiler.  DO NOT EDIT!
+// source: event_mesh_admin_service.proto
+
+/**
+ * Protobuf type {@code Payload}
+ */
+public final class Payload extends
+    com.google.protobuf.GeneratedMessageV3 implements
+    // @@protoc_insertion_point(message_implements:Payload)
+    PayloadOrBuilder {
+private static final long serialVersionUID = 0L;
+  // Use Payload.newBuilder() to construct.
+  private Payload(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+    super(builder);
+  }
+  private Payload() {
+  }
+
+  @Override
+  @SuppressWarnings({"unused"})
+  protected Object newInstance(
+      UnusedPrivateParameter unused) {
+    return new Payload();
+  }
+
+  @Override
+  public final com.google.protobuf.UnknownFieldSet
+  getUnknownFields() {
+    return this.unknownFields;
+  }
+  private Payload(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    this();
+    if (extensionRegistry == null) {
+      throw new NullPointerException();
+    }
+    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+        com.google.protobuf.UnknownFieldSet.newBuilder();
+    try {
+      boolean done = false;
+      while (!done) {
+        int tag = input.readTag();
+        switch (tag) {
+          case 0:
+            done = true;
+            break;
+          case 18: {
+            Metadata.Builder subBuilder = null;
+            if (metadata_ != null) {
+              subBuilder = metadata_.toBuilder();
+            }
+            metadata_ = input.readMessage(Metadata.parser(), 
extensionRegistry);
+            if (subBuilder != null) {
+              subBuilder.mergeFrom(metadata_);
+              metadata_ = subBuilder.buildPartial();
+            }
+
+            break;
+          }
+          case 26: {
+            com.google.protobuf.Any.Builder subBuilder = null;
+            if (body_ != null) {
+              subBuilder = body_.toBuilder();
+            }
+            body_ = input.readMessage(com.google.protobuf.Any.parser(), 
extensionRegistry);
+            if (subBuilder != null) {
+              subBuilder.mergeFrom(body_);
+              body_ = subBuilder.buildPartial();
+            }
+
+            break;
+          }
+          default: {
+            if (!parseUnknownField(
+                input, unknownFields, extensionRegistry, tag)) {
+              done = true;
+            }
+            break;
+          }
+        }
+      }
+    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+      throw e.setUnfinishedMessage(this);
+    } catch (java.io.IOException e) {
+      throw new com.google.protobuf.InvalidProtocolBufferException(
+          e).setUnfinishedMessage(this);
+    } finally {
+      this.unknownFields = unknownFields.build();
+      makeExtensionsImmutable();
+    }
+  }
+  public static final com.google.protobuf.Descriptors.Descriptor
+      getDescriptor() {
+    return EventMeshAdminService.internal_static_Payload_descriptor;
+  }
+
+  @Override
+  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+      internalGetFieldAccessorTable() {
+    return EventMeshAdminService.internal_static_Payload_fieldAccessorTable
+        .ensureFieldAccessorsInitialized(
+            Payload.class, Builder.class);
+  }
+
+  public static final int METADATA_FIELD_NUMBER = 2;
+  private Metadata metadata_;
+  /**
+   * <code>.Metadata metadata = 2;</code>
+   * @return Whether the metadata field is set.
+   */
+  @Override
+  public boolean hasMetadata() {
+    return metadata_ != null;
+  }
+  /**
+   * <code>.Metadata metadata = 2;</code>
+   * @return The metadata.
+   */
+  @Override
+  public Metadata getMetadata() {
+    return metadata_ == null ? Metadata.getDefaultInstance() : metadata_;
+  }
+  /**
+   * <code>.Metadata metadata = 2;</code>
+   */
+  @Override
+  public MetadataOrBuilder getMetadataOrBuilder() {
+    return getMetadata();
+  }
+
+  public static final int BODY_FIELD_NUMBER = 3;
+  private com.google.protobuf.Any body_;
+  /**
+   * <code>.google.protobuf.Any body = 3;</code>
+   * @return Whether the body field is set.
+   */
+  @Override
+  public boolean hasBody() {
+    return body_ != null;
+  }
+  /**
+   * <code>.google.protobuf.Any body = 3;</code>
+   * @return The body.
+   */
+  @Override
+  public com.google.protobuf.Any getBody() {
+    return body_ == null ? com.google.protobuf.Any.getDefaultInstance() : 
body_;
+  }
+  /**
+   * <code>.google.protobuf.Any body = 3;</code>
+   */
+  @Override
+  public com.google.protobuf.AnyOrBuilder getBodyOrBuilder() {
+    return getBody();
+  }
+
+  private byte memoizedIsInitialized = -1;
+  @Override
+  public final boolean isInitialized() {
+    byte isInitialized = memoizedIsInitialized;
+    if (isInitialized == 1) return true;
+    if (isInitialized == 0) return false;
+
+    memoizedIsInitialized = 1;
+    return true;
+  }
+
+  @Override
+  public void writeTo(com.google.protobuf.CodedOutputStream output)
+                      throws java.io.IOException {
+    if (metadata_ != null) {
+      output.writeMessage(2, getMetadata());
+    }
+    if (body_ != null) {
+      output.writeMessage(3, getBody());
+    }
+    unknownFields.writeTo(output);
+  }
+
+  @Override
+  public int getSerializedSize() {
+    int size = memoizedSize;
+    if (size != -1) return size;
+
+    size = 0;
+    if (metadata_ != null) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeMessageSize(2, getMetadata());
+    }
+    if (body_ != null) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeMessageSize(3, getBody());
+    }
+    size += unknownFields.getSerializedSize();
+    memoizedSize = size;
+    return size;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    if (obj == this) {
+     return true;
+    }
+    if (!(obj instanceof Payload)) {
+      return super.equals(obj);
+    }
+    Payload other = (Payload) obj;
+
+    if (hasMetadata() != other.hasMetadata()) return false;
+    if (hasMetadata()) {
+      if (!getMetadata()
+          .equals(other.getMetadata())) return false;
+    }
+    if (hasBody() != other.hasBody()) return false;
+    if (hasBody()) {
+      if (!getBody()
+          .equals(other.getBody())) return false;
+    }
+    if (!unknownFields.equals(other.unknownFields)) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    if (memoizedHashCode != 0) {
+      return memoizedHashCode;
+    }
+    int hash = 41;
+    hash = (19 * hash) + getDescriptor().hashCode();
+    if (hasMetadata()) {
+      hash = (37 * hash) + METADATA_FIELD_NUMBER;
+      hash = (53 * hash) + getMetadata().hashCode();
+    }
+    if (hasBody()) {
+      hash = (37 * hash) + BODY_FIELD_NUMBER;
+      hash = (53 * hash) + getBody().hashCode();
+    }
+    hash = (29 * hash) + unknownFields.hashCode();
+    memoizedHashCode = hash;
+    return hash;
+  }
+
+  public static Payload parseFrom(
+      java.nio.ByteBuffer data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static Payload parseFrom(
+      java.nio.ByteBuffer data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static Payload parseFrom(
+      com.google.protobuf.ByteString data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static Payload parseFrom(
+      com.google.protobuf.ByteString data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static Payload parseFrom(byte[] data)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data);
+  }
+  public static Payload parseFrom(
+      byte[] data,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws com.google.protobuf.InvalidProtocolBufferException {
+    return PARSER.parseFrom(data, extensionRegistry);
+  }
+  public static Payload parseFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input);
+  }
+  public static Payload parseFrom(
+      java.io.InputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input, extensionRegistry);
+  }
+  public static Payload parseDelimitedFrom(java.io.InputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseDelimitedWithIOException(PARSER, input);
+  }
+  public static Payload parseDelimitedFrom(
+      java.io.InputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+  }
+  public static Payload parseFrom(
+      com.google.protobuf.CodedInputStream input)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input);
+  }
+  public static Payload parseFrom(
+      com.google.protobuf.CodedInputStream input,
+      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+      throws java.io.IOException {
+    return com.google.protobuf.GeneratedMessageV3
+        .parseWithIOException(PARSER, input, extensionRegistry);
+  }
+
+  @Override
+  public Builder newBuilderForType() { return newBuilder(); }
+  public static Builder newBuilder() {
+    return DEFAULT_INSTANCE.toBuilder();
+  }
+  public static Builder newBuilder(Payload prototype) {
+    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+  }
+  @Override
+  public Builder toBuilder() {
+    return this == DEFAULT_INSTANCE
+        ? new Builder() : new Builder().mergeFrom(this);
+  }
+
+  @Override
+  protected Builder newBuilderForType(
+      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+    Builder builder = new Builder(parent);
+    return builder;
+  }
+  /**
+   * Protobuf type {@code Payload}
+   */
+  public static final class Builder extends
+      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+      // @@protoc_insertion_point(builder_implements:Payload)
+      PayloadOrBuilder {
+    public static final com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return EventMeshAdminService.internal_static_Payload_descriptor;
+    }
+
+    @Override
+    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return EventMeshAdminService.internal_static_Payload_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              Payload.class, Builder.class);
+    }
+
+    // Construct using Payload.newBuilder()
+    private Builder() {
+      maybeForceBuilderInitialization();
+    }
+
+    private Builder(
+        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+      super(parent);
+      maybeForceBuilderInitialization();
+    }
+    private void maybeForceBuilderInitialization() {
+      if (com.google.protobuf.GeneratedMessageV3
+              .alwaysUseFieldBuilders) {
+      }
+    }
+    @Override
+    public Builder clear() {
+      super.clear();
+      if (metadataBuilder_ == null) {
+        metadata_ = null;
+      } else {
+        metadata_ = null;
+        metadataBuilder_ = null;
+      }
+      if (bodyBuilder_ == null) {
+        body_ = null;
+      } else {
+        body_ = null;
+        bodyBuilder_ = null;
+      }
+      return this;
+    }
+
+    @Override
+    public com.google.protobuf.Descriptors.Descriptor
+        getDescriptorForType() {
+      return EventMeshAdminService.internal_static_Payload_descriptor;
+    }
+
+    @Override
+    public Payload getDefaultInstanceForType() {
+      return Payload.getDefaultInstance();
+    }
+
+    @Override
+    public Payload build() {
+      Payload result = buildPartial();
+      if (!result.isInitialized()) {
+        throw newUninitializedMessageException(result);
+      }
+      return result;
+    }
+
+    @Override
+    public Payload buildPartial() {
+      Payload result = new Payload(this);
+      if (metadataBuilder_ == null) {
+        result.metadata_ = metadata_;
+      } else {
+        result.metadata_ = metadataBuilder_.build();
+      }
+      if (bodyBuilder_ == null) {
+        result.body_ = body_;
+      } else {
+        result.body_ = bodyBuilder_.build();
+      }
+      onBuilt();
+      return result;
+    }
+
+    @Override
+    public Builder clone() {
+      return super.clone();
+    }
+    @Override
+    public Builder setField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        Object value) {
+      return super.setField(field, value);
+    }
+    @Override
+    public Builder clearField(
+        com.google.protobuf.Descriptors.FieldDescriptor field) {
+      return super.clearField(field);
+    }
+    @Override
+    public Builder clearOneof(
+        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+      return super.clearOneof(oneof);
+    }
+    @Override
+    public Builder setRepeatedField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        int index, Object value) {
+      return super.setRepeatedField(field, index, value);
+    }
+    @Override
+    public Builder addRepeatedField(
+        com.google.protobuf.Descriptors.FieldDescriptor field,
+        Object value) {
+      return super.addRepeatedField(field, value);
+    }
+    @Override
+    public Builder mergeFrom(com.google.protobuf.Message other) {
+      if (other instanceof Payload) {
+        return mergeFrom((Payload)other);
+      } else {
+        super.mergeFrom(other);
+        return this;
+      }
+    }
+
+    public Builder mergeFrom(Payload other) {
+      if (other == Payload.getDefaultInstance()) return this;
+      if (other.hasMetadata()) {
+        mergeMetadata(other.getMetadata());
+      }
+      if (other.hasBody()) {
+        mergeBody(other.getBody());
+      }
+      this.mergeUnknownFields(other.unknownFields);
+      onChanged();
+      return this;
+    }
+
+    @Override
+    public final boolean isInitialized() {
+      return true;
+    }
+
+    @Override
+    public Builder mergeFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws java.io.IOException {
+      Payload parsedMessage = null;
+      try {
+        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+        parsedMessage = (Payload) e.getUnfinishedMessage();
+        throw e.unwrapIOException();
+      } finally {
+        if (parsedMessage != null) {
+          mergeFrom(parsedMessage);
+        }
+      }
+      return this;
+    }
+
+    private Metadata metadata_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+        Metadata, Metadata.Builder, MetadataOrBuilder> metadataBuilder_;
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     * @return Whether the metadata field is set.
+     */
+    public boolean hasMetadata() {
+      return metadataBuilder_ != null || metadata_ != null;
+    }
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     * @return The metadata.
+     */
+    public Metadata getMetadata() {
+      if (metadataBuilder_ == null) {
+        return metadata_ == null ? Metadata.getDefaultInstance() : metadata_;
+      } else {
+        return metadataBuilder_.getMessage();
+      }
+    }
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     */
+    public Builder setMetadata(Metadata value) {
+      if (metadataBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        metadata_ = value;
+        onChanged();
+      } else {
+        metadataBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     */
+    public Builder setMetadata(
+        Metadata.Builder builderForValue) {
+      if (metadataBuilder_ == null) {
+        metadata_ = builderForValue.build();
+        onChanged();
+      } else {
+        metadataBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     */
+    public Builder mergeMetadata(Metadata value) {
+      if (metadataBuilder_ == null) {
+        if (metadata_ != null) {
+          metadata_ =
+            Metadata.newBuilder(metadata_).mergeFrom(value).buildPartial();
+        } else {
+          metadata_ = value;
+        }
+        onChanged();
+      } else {
+        metadataBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     */
+    public Builder clearMetadata() {
+      if (metadataBuilder_ == null) {
+        metadata_ = null;
+        onChanged();
+      } else {
+        metadata_ = null;
+        metadataBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     */
+    public Metadata.Builder getMetadataBuilder() {
+      
+      onChanged();
+      return getMetadataFieldBuilder().getBuilder();
+    }
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     */
+    public MetadataOrBuilder getMetadataOrBuilder() {
+      if (metadataBuilder_ != null) {
+        return metadataBuilder_.getMessageOrBuilder();
+      } else {
+        return metadata_ == null ?
+            Metadata.getDefaultInstance() : metadata_;
+      }
+    }
+    /**
+     * <code>.Metadata metadata = 2;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+        Metadata, Metadata.Builder, MetadataOrBuilder> 
+        getMetadataFieldBuilder() {
+      if (metadataBuilder_ == null) {
+        metadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+            Metadata, Metadata.Builder, MetadataOrBuilder>(
+                getMetadata(),
+                getParentForChildren(),
+                isClean());
+        metadata_ = null;
+      }
+      return metadataBuilder_;
+    }
+
+    private com.google.protobuf.Any body_;
+    private com.google.protobuf.SingleFieldBuilderV3<
+        com.google.protobuf.Any, com.google.protobuf.Any.Builder, 
com.google.protobuf.AnyOrBuilder> bodyBuilder_;
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     * @return Whether the body field is set.
+     */
+    public boolean hasBody() {
+      return bodyBuilder_ != null || body_ != null;
+    }
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     * @return The body.
+     */
+    public com.google.protobuf.Any getBody() {
+      if (bodyBuilder_ == null) {
+        return body_ == null ? com.google.protobuf.Any.getDefaultInstance() : 
body_;
+      } else {
+        return bodyBuilder_.getMessage();
+      }
+    }
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     */
+    public Builder setBody(com.google.protobuf.Any value) {
+      if (bodyBuilder_ == null) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        body_ = value;
+        onChanged();
+      } else {
+        bodyBuilder_.setMessage(value);
+      }
+
+      return this;
+    }
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     */
+    public Builder setBody(
+        com.google.protobuf.Any.Builder builderForValue) {
+      if (bodyBuilder_ == null) {
+        body_ = builderForValue.build();
+        onChanged();
+      } else {
+        bodyBuilder_.setMessage(builderForValue.build());
+      }
+
+      return this;
+    }
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     */
+    public Builder mergeBody(com.google.protobuf.Any value) {
+      if (bodyBuilder_ == null) {
+        if (body_ != null) {
+          body_ =
+            
com.google.protobuf.Any.newBuilder(body_).mergeFrom(value).buildPartial();
+        } else {
+          body_ = value;
+        }
+        onChanged();
+      } else {
+        bodyBuilder_.mergeFrom(value);
+      }
+
+      return this;
+    }
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     */
+    public Builder clearBody() {
+      if (bodyBuilder_ == null) {
+        body_ = null;
+        onChanged();
+      } else {
+        body_ = null;
+        bodyBuilder_ = null;
+      }
+
+      return this;
+    }
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     */
+    public com.google.protobuf.Any.Builder getBodyBuilder() {
+      
+      onChanged();
+      return getBodyFieldBuilder().getBuilder();
+    }
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     */
+    public com.google.protobuf.AnyOrBuilder getBodyOrBuilder() {
+      if (bodyBuilder_ != null) {
+        return bodyBuilder_.getMessageOrBuilder();
+      } else {
+        return body_ == null ?
+            com.google.protobuf.Any.getDefaultInstance() : body_;
+      }
+    }
+    /**
+     * <code>.google.protobuf.Any body = 3;</code>
+     */
+    private com.google.protobuf.SingleFieldBuilderV3<
+        com.google.protobuf.Any, com.google.protobuf.Any.Builder, 
com.google.protobuf.AnyOrBuilder> 
+        getBodyFieldBuilder() {
+      if (bodyBuilder_ == null) {
+        bodyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+            com.google.protobuf.Any, com.google.protobuf.Any.Builder, 
com.google.protobuf.AnyOrBuilder>(
+                getBody(),
+                getParentForChildren(),
+                isClean());
+        body_ = null;
+      }
+      return bodyBuilder_;
+    }
+    @Override
+    public final Builder setUnknownFields(
+        final com.google.protobuf.UnknownFieldSet unknownFields) {
+      return super.setUnknownFields(unknownFields);
+    }
+
+    @Override
+    public final Builder mergeUnknownFields(
+        final com.google.protobuf.UnknownFieldSet unknownFields) {
+      return super.mergeUnknownFields(unknownFields);
+    }
+
+
+    // @@protoc_insertion_point(builder_scope:Payload)
+  }
+
+  // @@protoc_insertion_point(class_scope:Payload)
+  private static final Payload DEFAULT_INSTANCE;
+  static {
+    DEFAULT_INSTANCE = new Payload();
+  }
+
+  public static Payload getDefaultInstance() {
+    return DEFAULT_INSTANCE;
+  }
+
+  private static final com.google.protobuf.Parser<Payload>
+      PARSER = new com.google.protobuf.AbstractParser<Payload>() {
+    @Override
+    public Payload parsePartialFrom(
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
+      return new Payload(input, extensionRegistry);
+    }
+  };
+
+  public static com.google.protobuf.Parser<Payload> parser() {
+    return PARSER;
+  }
+
+  @Override
+  public com.google.protobuf.Parser<Payload> getParserForType() {
+    return PARSER;
+  }
+
+  @Override
+  public Payload getDefaultInstanceForType() {
+    return DEFAULT_INSTANCE;
+  }
+
+}
+
diff --git 
a/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/PayloadOrBuilder.java
 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/PayloadOrBuilder.java
new file mode 100644
index 000000000..77c968020
--- /dev/null
+++ 
b/eventmesh-common/src/main/java/org/apache/eventmesh/common/grpc/PayloadOrBuilder.java
@@ -0,0 +1,37 @@
+package org.apache.eventmesh.common.grpc;// Generated by the protocol buffer 
compiler.  DO NOT EDIT!
+// source: event_mesh_admin_service.proto
+
+public interface PayloadOrBuilder extends
+    // @@protoc_insertion_point(interface_extends:Payload)
+    com.google.protobuf.MessageOrBuilder {
+
+  /**
+   * <code>.Metadata metadata = 2;</code>
+   * @return Whether the metadata field is set.
+   */
+  boolean hasMetadata();
+  /**
+   * <code>.Metadata metadata = 2;</code>
+   * @return The metadata.
+   */
+  Metadata getMetadata();
+  /**
+   * <code>.Metadata metadata = 2;</code>
+   */
+  MetadataOrBuilder getMetadataOrBuilder();
+
+  /**
+   * <code>.google.protobuf.Any body = 3;</code>
+   * @return Whether the body field is set.
+   */
+  boolean hasBody();
+  /**
+   * <code>.google.protobuf.Any body = 3;</code>
+   * @return The body.
+   */
+  com.google.protobuf.Any getBody();
+  /**
+   * <code>.google.protobuf.Any body = 3;</code>
+   */
+  com.google.protobuf.AnyOrBuilder getBodyOrBuilder();
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to