Skip to content

Commit

Permalink
Merge pull request #2910 from xwm1992/admin-start-fix
Browse files Browse the repository at this point in the history
[ISSUE #2909] Fix dashboard admin startup
  • Loading branch information
qqeasonchen authored Jan 11, 2023
2 parents 5e83bb4 + 20b4491 commit 10dd4f5
Show file tree
Hide file tree
Showing 17 changed files with 215 additions and 145 deletions.
2 changes: 1 addition & 1 deletion eventmesh-runtime/conf/eventmesh.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
###############################EVNETMESH-runtime ENV#################################
eventMesh.server.idc=DEFAULT
eventMesh.server.env=PRD
eventMesh.server.provide.protocols=HTTP
eventMesh.server.provide.protocols=HTTP,TCP,GRPC
eventMesh.server.cluster=COMMON
eventMesh.server.name=EVENTMESH-runtime
eventMesh.sysid=0000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,33 @@
package org.apache.eventmesh.runtime.admin.controller;

import org.apache.eventmesh.admin.rocketmq.controller.AdminController;
import org.apache.eventmesh.runtime.admin.handler.ConfigurationHandler;
import org.apache.eventmesh.runtime.admin.handler.DeleteWebHookConfigHandler;
import org.apache.eventmesh.runtime.admin.handler.EventHandler;
import org.apache.eventmesh.runtime.admin.handler.GrpcClientHandler;
import org.apache.eventmesh.runtime.admin.handler.HTTPClientHandler;
import org.apache.eventmesh.runtime.admin.handler.InsertWebHookConfigHandler;
import org.apache.eventmesh.runtime.admin.handler.MetricsHandler;
import org.apache.eventmesh.runtime.admin.handler.QueryRecommendEventMeshHandler;
import org.apache.eventmesh.runtime.admin.handler.QueryWebHookConfigByIdHandler;
import org.apache.eventmesh.runtime.admin.handler.QueryWebHookConfigByManufacturerHandler;
import org.apache.eventmesh.runtime.admin.handler.RedirectClientByIpPortHandler;
import org.apache.eventmesh.runtime.admin.handler.RedirectClientByPathHandler;
import org.apache.eventmesh.runtime.admin.handler.RedirectClientBySubSystemHandler;
import org.apache.eventmesh.runtime.admin.handler.RegistryHandler;
import org.apache.eventmesh.runtime.admin.handler.RejectAllClientHandler;
import org.apache.eventmesh.runtime.admin.handler.RejectClientByIpPortHandler;
import org.apache.eventmesh.runtime.admin.handler.RejectClientBySubSystemHandler;
import org.apache.eventmesh.runtime.admin.handler.ShowClientBySystemHandler;
import org.apache.eventmesh.runtime.admin.handler.ShowClientHandler;
import org.apache.eventmesh.runtime.admin.handler.ShowListenClientByTopicHandler;
import org.apache.eventmesh.runtime.admin.handler.TCPClientHandler;
import org.apache.eventmesh.runtime.admin.handler.TopicHandler;
import org.apache.eventmesh.runtime.admin.handler.UpdateWebHookConfigHandler;
import org.apache.eventmesh.runtime.boot.EventMeshGrpcServer;
import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer;
import org.apache.eventmesh.runtime.boot.EventMeshTCPServer;
import org.apache.eventmesh.runtime.registry.Registry;
import org.apache.eventmesh.webhook.admin.AdminWebHookConfigOperationManage;
import org.apache.eventmesh.webhook.api.WebHookConfigOperation;

Expand All @@ -55,11 +66,24 @@ public class ClientManageController {

private final EventMeshTCPServer eventMeshTCPServer;

private final transient EventMeshHTTPServer eventMeshHTTPServer;

private final transient EventMeshGrpcServer eventMeshGrpcServer;

private final transient Registry eventMeshRegistry;

@Setter
private AdminWebHookConfigOperationManage adminWebHookConfigOperationManage;

public ClientManageController(EventMeshTCPServer eventMeshTCPServer) {
public ClientManageController(EventMeshTCPServer eventMeshTCPServer,
EventMeshHTTPServer eventMeshHTTPServer,
EventMeshGrpcServer eventMeshGrpcServer,
Registry eventMeshRegistry) {
this.eventMeshTCPServer = eventMeshTCPServer;
this.eventMeshHTTPServer = eventMeshHTTPServer;
this.eventMeshGrpcServer = eventMeshGrpcServer;
this.eventMeshRegistry = eventMeshRegistry;

}


Expand All @@ -70,8 +94,9 @@ public void start() throws IOException {
HttpHandlerManager httpHandlerManager = new HttpHandlerManager();

//todo Optimized for automatic injection
initClientHandler(eventMeshTCPServer, httpHandlerManager);

initClientHandler(eventMeshTCPServer, eventMeshHTTPServer,
eventMeshGrpcServer, eventMeshRegistry, httpHandlerManager);

httpHandlerManager.registerHttpHandler(server);
AdminController adminController = new AdminController();
adminController.run(server);
Expand All @@ -80,7 +105,11 @@ public void start() throws IOException {
logger.info("ClientManageController start success, port:{}", port);
}

private void initClientHandler(EventMeshTCPServer eventMeshTCPServer, HttpHandlerManager httpHandlerManager) {
private void initClientHandler(EventMeshTCPServer eventMeshTCPServer,
EventMeshHTTPServer eventMeshHTTPServer,
EventMeshGrpcServer eventMeshGrpcServer,
Registry eventMeshRegistry,
HttpHandlerManager httpHandlerManager) {
new ShowClientHandler(eventMeshTCPServer, httpHandlerManager);
new ShowClientBySystemHandler(eventMeshTCPServer, httpHandlerManager);
new RejectAllClientHandler(eventMeshTCPServer, httpHandlerManager);
Expand All @@ -91,6 +120,17 @@ private void initClientHandler(EventMeshTCPServer eventMeshTCPServer, HttpHandle
new RedirectClientByIpPortHandler(eventMeshTCPServer, httpHandlerManager);
new ShowListenClientByTopicHandler(eventMeshTCPServer, httpHandlerManager);
new QueryRecommendEventMeshHandler(eventMeshTCPServer, httpHandlerManager);
new TCPClientHandler(eventMeshTCPServer, httpHandlerManager);
new HTTPClientHandler(eventMeshHTTPServer, httpHandlerManager);
new GrpcClientHandler(eventMeshGrpcServer, httpHandlerManager);
new ConfigurationHandler(
eventMeshTCPServer.getEventMeshTCPConfiguration(),
eventMeshHTTPServer.getEventMeshHttpConfiguration(),
eventMeshGrpcServer.getEventMeshGrpcConfiguration(), httpHandlerManager);
new MetricsHandler(eventMeshHTTPServer, eventMeshTCPServer, httpHandlerManager);
new TopicHandler(eventMeshTCPServer.getEventMeshTCPConfiguration().getEventMeshConnectorPluginType(), httpHandlerManager);
new EventHandler(eventMeshTCPServer.getEventMeshTCPConfiguration().getEventMeshConnectorPluginType(), httpHandlerManager);
new RegistryHandler(eventMeshRegistry, httpHandlerManager);

if (Objects.nonNull(adminWebHookConfigOperationManage.getWebHookConfigOperation())) {
WebHookConfigOperation webHookConfigOperation = adminWebHookConfigOperationManage.getWebHookConfigOperation();
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@

package org.apache.eventmesh.runtime.admin.handler;

import org.apache.eventmesh.runtime.admin.controller.HttpHandlerManager;
import org.apache.eventmesh.runtime.admin.response.Error;
import org.apache.eventmesh.runtime.admin.response.GetConfigurationResponse;
import org.apache.eventmesh.runtime.admin.utils.JsonUtils;
import org.apache.eventmesh.runtime.common.EventHttpHandler;
import org.apache.eventmesh.runtime.configuration.EventMeshGrpcConfiguration;
import org.apache.eventmesh.runtime.configuration.EventMeshHTTPConfiguration;
import org.apache.eventmesh.runtime.configuration.EventMeshTCPConfiguration;
Expand All @@ -33,23 +35,25 @@
import org.slf4j.LoggerFactory;

import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;

/**
* The config handler
*/
public class ConfigurationHandler implements HttpHandler {
@EventHttpHandler(path = "/configuration")
public class ConfigurationHandler extends AbstractHttpHandler {
private static final Logger logger = LoggerFactory.getLogger(ConfigurationHandler.class);

private final EventMeshTCPConfiguration eventMeshTCPConfiguration;
private final EventMeshHTTPConfiguration eventMeshHTTPConfiguration;
private final EventMeshGrpcConfiguration eventMeshGrpcConfiguration;

public ConfigurationHandler(
EventMeshTCPConfiguration eventMeshTCPConfiguration,
EventMeshHTTPConfiguration eventMeshHTTPConfiguration,
EventMeshGrpcConfiguration eventMeshGrpcConfiguration
EventMeshTCPConfiguration eventMeshTCPConfiguration,
EventMeshHTTPConfiguration eventMeshHTTPConfiguration,
EventMeshGrpcConfiguration eventMeshGrpcConfiguration,
HttpHandlerManager httpHandlerManager
) {
super(httpHandlerManager);
this.eventMeshTCPConfiguration = eventMeshTCPConfiguration;
this.eventMeshHTTPConfiguration = eventMeshHTTPConfiguration;
this.eventMeshGrpcConfiguration = eventMeshGrpcConfiguration;
Expand Down Expand Up @@ -79,24 +83,24 @@ void get(HttpExchange httpExchange) throws IOException {

try {
GetConfigurationResponse getConfigurationResponse = new GetConfigurationResponse(
eventMeshTCPConfiguration.getSysID(),
eventMeshTCPConfiguration.getNamesrvAddr(),
eventMeshTCPConfiguration.getEventMeshEnv(),
eventMeshTCPConfiguration.getEventMeshIDC(),
eventMeshTCPConfiguration.getEventMeshCluster(),
eventMeshTCPConfiguration.getEventMeshServerIp(),
eventMeshTCPConfiguration.getEventMeshName(),
eventMeshTCPConfiguration.getEventMeshWebhookOrigin(),
eventMeshTCPConfiguration.isEventMeshServerSecurityEnable(),
eventMeshTCPConfiguration.isEventMeshServerRegistryEnable(),
// TCP Configuration
eventMeshTCPConfiguration.eventMeshTcpServerPort,
// HTTP Configuration
eventMeshHTTPConfiguration.httpServerPort,
eventMeshHTTPConfiguration.eventMeshServerUseTls,
// gRPC Configuration
eventMeshGrpcConfiguration.grpcServerPort,
eventMeshGrpcConfiguration.eventMeshServerUseTls
eventMeshTCPConfiguration.getSysID(),
eventMeshTCPConfiguration.getNamesrvAddr(),
eventMeshTCPConfiguration.getEventMeshEnv(),
eventMeshTCPConfiguration.getEventMeshIDC(),
eventMeshTCPConfiguration.getEventMeshCluster(),
eventMeshTCPConfiguration.getEventMeshServerIp(),
eventMeshTCPConfiguration.getEventMeshName(),
eventMeshTCPConfiguration.getEventMeshWebhookOrigin(),
eventMeshTCPConfiguration.isEventMeshServerSecurityEnable(),
eventMeshTCPConfiguration.isEventMeshServerRegistryEnable(),
// TCP Configuration
eventMeshTCPConfiguration.eventMeshTcpServerPort,
// HTTP Configuration
eventMeshHTTPConfiguration.httpServerPort,
eventMeshHTTPConfiguration.eventMeshServerUseTls,
// gRPC Configuration
eventMeshGrpcConfiguration.grpcServerPort,
eventMeshGrpcConfiguration.eventMeshServerUseTls
);

String result = JsonUtils.toJson(getConfigurationResponse);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@

package org.apache.eventmesh.runtime.admin.handler;

import org.apache.eventmesh.runtime.admin.controller.HttpHandlerManager;
import org.apache.eventmesh.runtime.admin.response.Error;
import org.apache.eventmesh.runtime.admin.utils.HttpExchangeUtils;
import org.apache.eventmesh.runtime.admin.utils.JsonUtils;
import org.apache.eventmesh.runtime.common.EventHttpHandler;
import org.apache.eventmesh.runtime.core.plugin.MQAdminWrapper;

import java.io.IOException;
Expand All @@ -40,19 +42,21 @@
import io.cloudevents.jackson.JsonFormat;

import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;

/**
* The event handler
*/
public class EventHandler implements HttpHandler {
@EventHttpHandler(path = "/event")
public class EventHandler extends AbstractHttpHandler {
private static final Logger logger = LoggerFactory.getLogger(ConfigurationHandler.class);

private final MQAdminWrapper admin;

public EventHandler(
String connectorPluginType
String connectorPluginType,
HttpHandlerManager httpHandlerManager
) {
super(httpHandlerManager);
admin = new MQAdminWrapper(connectorPluginType);
try {
admin.init(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@

package org.apache.eventmesh.runtime.admin.handler;

import org.apache.eventmesh.runtime.admin.controller.HttpHandlerManager;
import org.apache.eventmesh.runtime.admin.request.DeleteGrpcClientRequest;
import org.apache.eventmesh.runtime.admin.response.Error;
import org.apache.eventmesh.runtime.admin.response.GetClientResponse;
import org.apache.eventmesh.runtime.admin.utils.HttpExchangeUtils;
import org.apache.eventmesh.runtime.admin.utils.JsonUtils;
import org.apache.eventmesh.runtime.boot.EventMeshGrpcServer;
import org.apache.eventmesh.runtime.common.EventHttpHandler;
import org.apache.eventmesh.runtime.core.protocol.grpc.consumer.ConsumerManager;
import org.apache.eventmesh.runtime.core.protocol.grpc.consumer.consumergroup.ConsumerGroupClient;

Expand All @@ -45,14 +47,16 @@
/**
* The client handler
*/
public class GrpcClientHandler implements HttpHandler {
@EventHttpHandler(path = "/client/grpc")
public class GrpcClientHandler extends AbstractHttpHandler {
private static final Logger logger = LoggerFactory.getLogger(TCPClientHandler.class);

private final EventMeshGrpcServer eventMeshGrpcServer;

public GrpcClientHandler(
EventMeshGrpcServer eventMeshGrpcServer
EventMeshGrpcServer eventMeshGrpcServer, HttpHandlerManager httpHandlerManager
) {
super(httpHandlerManager);
this.eventMeshGrpcServer = eventMeshGrpcServer;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@

package org.apache.eventmesh.runtime.admin.handler;

import org.apache.eventmesh.runtime.admin.controller.HttpHandlerManager;
import org.apache.eventmesh.runtime.admin.request.DeleteHTTPClientRequest;
import org.apache.eventmesh.runtime.admin.response.Error;
import org.apache.eventmesh.runtime.admin.response.GetClientResponse;
import org.apache.eventmesh.runtime.admin.utils.HttpExchangeUtils;
import org.apache.eventmesh.runtime.admin.utils.JsonUtils;
import org.apache.eventmesh.runtime.boot.EventMeshHTTPServer;
import org.apache.eventmesh.runtime.common.EventHttpHandler;
import org.apache.eventmesh.runtime.core.protocol.http.processor.inf.Client;

import java.io.IOException;
Expand All @@ -43,14 +45,16 @@
/**
* The client handler
*/
public class HTTPClientHandler implements HttpHandler {
@EventHttpHandler(path = "/client/http")
public class HTTPClientHandler extends AbstractHttpHandler {
private static final Logger logger = LoggerFactory.getLogger(HTTPClientHandler.class);

private final EventMeshHTTPServer eventMeshHTTPServer;

public HTTPClientHandler(
EventMeshHTTPServer eventMeshHTTPServer
EventMeshHTTPServer eventMeshHTTPServer, HttpHandlerManager httpHandlerManager
) {
super(httpHandlerManager);
this.eventMeshHTTPServer = eventMeshHTTPServer;
}

Expand Down
Loading

0 comments on commit 10dd4f5

Please sign in to comment.