From 50c14dd04d504314e17f384ab67a7ff61d9c3e05 Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Sun, 29 Oct 2017 21:12:36 +0800 Subject: [PATCH] Naming module and zookeeper provider in cluster module test successful. --- apm-collector/apm-collector-boot/pom.xml | 9 ++++ .../src/main/resources/application.yml | 10 ++-- .../apm/collector/cluster/ClusterModule.java | 3 +- .../redis/ClusterModuleRedisProvider.java | 2 - .../ClusterModuleStandaloneProvider.java | 2 - .../ClusterModuleZookeeperProvider.java | 3 -- .../zookeeper/ClusterZKDataMonitor.java | 5 +- ...ZookeeperModuleRegistrationGetService.java | 31 ------------ .../collector/server/jetty/JettyServer.java | 4 ++ .../main/resources/application-default.yml | 10 ++-- .../apm/collector/naming/NamingModule.java | 5 +- .../NamingHandlerRegisterService.java} | 8 ++-- .../collector-naming-jetty-provider/pom.xml | 12 +---- .../jetty/NamingModuleJettyProvider.java | 39 +++++++-------- .../jetty/handler/AgentGRPCNamingHandler.java | 48 ------------------- .../handler/AgentJettyNamingHandler.java | 47 ------------------ .../NamingJettyHandlerRegisterService.java} | 19 +++++--- apm-collector/apm-collector-naming/pom.xml | 10 ++++ .../collector-ui-jetty-provider/pom.xml | 5 ++ .../ui/jetty/UIModuleJettyProvider.java | 17 ++++++- .../handler/naming}/UIJettyNamingHandler.java | 14 ++++-- .../naming/UIJettyNamingListener.java} | 23 ++++++--- 22 files changed, 122 insertions(+), 204 deletions(-) delete mode 100644 apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/service/ZookeeperModuleRegistrationGetService.java rename apm-collector/{apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/service/ModuleRegistrationGetService.java => apm-collector-naming/collector-naming-define/src/main/java/org/skywalking/apm/collector/naming/service/NamingHandlerRegisterService.java} (78%) delete mode 100644 apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/AgentGRPCNamingHandler.java delete mode 100644 apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/AgentJettyNamingHandler.java rename apm-collector/{apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/service/StandaloneModuleRegistrationGetService.java => apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/service/NamingJettyHandlerRegisterService.java} (56%) rename apm-collector/{apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler => apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/naming}/UIJettyNamingHandler.java (79%) rename apm-collector/{apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/service/RedisModuleRegistrationGetService.java => apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/naming/UIJettyNamingListener.java} (54%) diff --git a/apm-collector/apm-collector-boot/pom.xml b/apm-collector/apm-collector-boot/pom.xml index eb8dcd9f76..203f41651e 100644 --- a/apm-collector/apm-collector-boot/pom.xml +++ b/apm-collector/apm-collector-boot/pom.xml @@ -72,10 +72,19 @@ ${project.version} + + + org.skywalking + collector-naming-jetty-provider + ${project.version} + + + org.skywalking collector-ui-jetty-provider ${project.version} + \ No newline at end of file diff --git a/apm-collector/apm-collector-boot/src/main/resources/application.yml b/apm-collector/apm-collector-boot/src/main/resources/application.yml index fa6855ba0f..b7d1af13f5 100644 --- a/apm-collector/apm-collector-boot/src/main/resources/application.yml +++ b/apm-collector/apm-collector-boot/src/main/resources/application.yml @@ -2,11 +2,11 @@ cluster: zookeeper: hostPort: localhost:2181 sessionTimeout: 100000 -#agent_server: -# jetty: -# host: localhost -# port: 10800 -# context_path: / +naming: + jetty: + host: localhost + port: 10800 + context_path: / #agent_stream: # grpc: # host: localhost diff --git a/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/ClusterModule.java b/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/ClusterModule.java index 30a2df87b0..97ab7fedf0 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/ClusterModule.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/ClusterModule.java @@ -20,7 +20,6 @@ package org.skywalking.apm.collector.cluster; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; -import org.skywalking.apm.collector.cluster.service.ModuleRegistrationGetService; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.Service; @@ -36,6 +35,6 @@ public class ClusterModule extends Module { } @Override public Class[] services() { - return new Class[] {ModuleListenerService.class, ModuleRegisterService.class, ModuleRegistrationGetService.class}; + return new Class[] {ModuleListenerService.class, ModuleRegisterService.class}; } } diff --git a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterModuleRedisProvider.java b/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterModuleRedisProvider.java index de7c9ee493..90c342fcd4 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterModuleRedisProvider.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterModuleRedisProvider.java @@ -21,7 +21,6 @@ package org.skywalking.apm.collector.cluster.redis; import java.util.Properties; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.redis.service.RedisModuleRegisterService; -import org.skywalking.apm.collector.cluster.redis.service.RedisModuleRegistrationGetService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleProvider; @@ -42,7 +41,6 @@ public class ClusterModuleRedisProvider extends ModuleProvider { @Override public void prepare(Properties config) throws ServiceNotProvidedException { this.registerServiceImplementation(ModuleRegisterService.class, new RedisModuleRegisterService()); - this.registerServiceImplementation(ModuleRegisterService.class, new RedisModuleRegistrationGetService()); } @Override public void start(Properties config) throws ServiceNotProvidedException { diff --git a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterModuleStandaloneProvider.java b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterModuleStandaloneProvider.java index 5cf77c26f8..9b3f07fd94 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterModuleStandaloneProvider.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterModuleStandaloneProvider.java @@ -22,7 +22,6 @@ import java.util.Properties; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; import org.skywalking.apm.collector.cluster.standalone.service.StandaloneModuleRegisterService; -import org.skywalking.apm.collector.cluster.standalone.service.StandaloneModuleRegistrationGetService; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; @@ -42,7 +41,6 @@ public class ClusterModuleStandaloneProvider extends ModuleProvider { @Override public void prepare(Properties config) throws ServiceNotProvidedException { this.registerServiceImplementation(ModuleRegisterService.class, new StandaloneModuleRegisterService()); - this.registerServiceImplementation(ModuleRegisterService.class, new StandaloneModuleRegistrationGetService()); } @Override public void start(Properties config) throws ServiceNotProvidedException { diff --git a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java index 658291556a..c4cfb68cff 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterModuleZookeeperProvider.java @@ -24,10 +24,8 @@ import org.skywalking.apm.collector.client.zookeeper.ZookeeperClientException; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; -import org.skywalking.apm.collector.cluster.service.ModuleRegistrationGetService; import org.skywalking.apm.collector.cluster.zookeeper.service.ZookeeperModuleListenerService; import org.skywalking.apm.collector.cluster.zookeeper.service.ZookeeperModuleRegisterService; -import org.skywalking.apm.collector.cluster.zookeeper.service.ZookeeperModuleRegistrationGetService; import org.skywalking.apm.collector.core.CollectorException; import org.skywalking.apm.collector.core.UnexpectedException; import org.skywalking.apm.collector.core.module.Module; @@ -67,7 +65,6 @@ public class ClusterModuleZookeeperProvider extends ModuleProvider { this.registerServiceImplementation(ModuleListenerService.class, new ZookeeperModuleListenerService(dataMonitor)); this.registerServiceImplementation(ModuleRegisterService.class, new ZookeeperModuleRegisterService(dataMonitor)); - this.registerServiceImplementation(ModuleRegistrationGetService.class, new ZookeeperModuleRegistrationGetService()); } @Override public void start(Properties config) throws ServiceNotProvidedException { diff --git a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java index 5c7c47db66..87c21d8098 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataMonitor.java @@ -33,7 +33,6 @@ import org.skywalking.apm.collector.client.Client; import org.skywalking.apm.collector.client.ClientException; import org.skywalking.apm.collector.client.zookeeper.ZookeeperClient; import org.skywalking.apm.collector.client.zookeeper.ZookeeperClientException; -import org.skywalking.apm.collector.client.zookeeper.util.PathUtils; import org.skywalking.apm.collector.cluster.ClusterModuleListener; import org.skywalking.apm.collector.cluster.ClusterNodeExistException; import org.skywalking.apm.collector.cluster.DataMonitor; @@ -130,7 +129,7 @@ public class ClusterZKDataMonitor implements DataMonitor, Watcher { } @Override public void addListener(ClusterModuleListener listener) { - String path = PathUtils.convertKey2Path(listener.path()); + String path = BASE_CATALOG + listener.path(); logger.info("listener path: {}", path); listeners.put(path, listener); } @@ -140,7 +139,7 @@ public class ClusterZKDataMonitor implements DataMonitor, Watcher { } @Override public ClusterModuleListener getListener(String path) { - path = PathUtils.convertKey2Path(path); + path = BASE_CATALOG + path; return listeners.get(path); } diff --git a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/service/ZookeeperModuleRegistrationGetService.java b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/service/ZookeeperModuleRegistrationGetService.java deleted file mode 100644 index 852b76e6c7..0000000000 --- a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/service/ZookeeperModuleRegistrationGetService.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2017, OpenSkywalking Organization All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Project repository: https://github.com/OpenSkywalking/skywalking - */ - -package org.skywalking.apm.collector.cluster.zookeeper.service; - -import java.util.Set; -import org.skywalking.apm.collector.cluster.service.ModuleRegistrationGetService; - -/** - * @author peng-yongsheng - */ -public class ZookeeperModuleRegistrationGetService implements ModuleRegistrationGetService { - @Override public Set get(String path) { - return null; - } -} diff --git a/apm-collector/apm-collector-component/server-component/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java b/apm-collector/apm-collector-component/server-component/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java index fa9c63ba19..6f8a5c2e94 100644 --- a/apm-collector/apm-collector-component/server-component/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java +++ b/apm-collector/apm-collector-component/server-component/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java @@ -22,6 +22,7 @@ import java.net.InetSocketAddress; import javax.servlet.http.HttpServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; +import org.eclipse.jetty.servlet.ServletMapping; import org.skywalking.apm.collector.server.Server; import org.skywalking.apm.collector.server.ServerException; import org.skywalking.apm.collector.server.ServerHandler; @@ -73,6 +74,9 @@ public class JettyServer implements Server { @Override public void start() throws ServerException { try { + for (ServletMapping servletMapping : servletContextHandler.getServletHandler().getServletMappings()) { + logger.info("jetty servlet mappings: {} register by {}", servletMapping.getPathSpecs(), servletMapping.getServletName()); + } server.start(); } catch (Exception e) { throw new JettyServerException(e.getMessage(), e); diff --git a/apm-collector/apm-collector-core/src/main/resources/application-default.yml b/apm-collector/apm-collector-core/src/main/resources/application-default.yml index dfe95482dc..176be726b7 100644 --- a/apm-collector/apm-collector-core/src/main/resources/application-default.yml +++ b/apm-collector/apm-collector-core/src/main/resources/application-default.yml @@ -2,11 +2,11 @@ cluster: h2: hostPort: localhost:2181 sessionTimeout: 100000 -#agent_server: -# jetty: -# host: localhost -# port: 10800 -# context_path: / +naming: + jetty: + host: localhost + port: 10800 + context_path: / #agent_stream: # grpc: # host: localhost diff --git a/apm-collector/apm-collector-naming/collector-naming-define/src/main/java/org/skywalking/apm/collector/naming/NamingModule.java b/apm-collector/apm-collector-naming/collector-naming-define/src/main/java/org/skywalking/apm/collector/naming/NamingModule.java index 460ca0ad84..1116d94eba 100644 --- a/apm-collector/apm-collector-naming/collector-naming-define/src/main/java/org/skywalking/apm/collector/naming/NamingModule.java +++ b/apm-collector/apm-collector-naming/collector-naming-define/src/main/java/org/skywalking/apm/collector/naming/NamingModule.java @@ -20,19 +20,20 @@ package org.skywalking.apm.collector.naming; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.Service; +import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; /** * @author peng-yongsheng */ public class NamingModule extends Module { - public static final String NAME = "Naming"; + public static final String NAME = "naming"; @Override public String name() { return NAME; } @Override public Class[] services() { - return new Class[0]; + return new Class[] {NamingHandlerRegisterService.class}; } } diff --git a/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/service/ModuleRegistrationGetService.java b/apm-collector/apm-collector-naming/collector-naming-define/src/main/java/org/skywalking/apm/collector/naming/service/NamingHandlerRegisterService.java similarity index 78% rename from apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/service/ModuleRegistrationGetService.java rename to apm-collector/apm-collector-naming/collector-naming-define/src/main/java/org/skywalking/apm/collector/naming/service/NamingHandlerRegisterService.java index 6577ed310c..4384321bb4 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-define/src/main/java/org/skywalking/apm/collector/cluster/service/ModuleRegistrationGetService.java +++ b/apm-collector/apm-collector-naming/collector-naming-define/src/main/java/org/skywalking/apm/collector/naming/service/NamingHandlerRegisterService.java @@ -16,14 +16,14 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.cluster.service; +package org.skywalking.apm.collector.naming.service; -import java.util.Set; import org.skywalking.apm.collector.core.module.Service; +import org.skywalking.apm.collector.server.ServerHandler; /** * @author peng-yongsheng */ -public interface ModuleRegistrationGetService extends Service { - Set get(String path); +public interface NamingHandlerRegisterService extends Service { + void register(ServerHandler namingHandler); } diff --git a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml index 5f77c1dedb..4bae8bbced 100644 --- a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml +++ b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml @@ -38,17 +38,7 @@ org.skywalking - collector-cluster-define - ${project.version} - - - org.skywalking - collector-server-manager-define - ${project.version} - - - org.skywalking - server-component + collector-jetty-manager-define ${project.version} diff --git a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/NamingModuleJettyProvider.java b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/NamingModuleJettyProvider.java index 5580a25a8d..7d2be4f79a 100644 --- a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/NamingModuleJettyProvider.java +++ b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/NamingModuleJettyProvider.java @@ -18,20 +18,21 @@ package org.skywalking.apm.collector.naming.jetty; +import java.util.ArrayList; +import java.util.List; import java.util.Properties; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleNotFoundException; import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; +import org.skywalking.apm.collector.jetty.manager.JettyManagerModule; +import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService; import org.skywalking.apm.collector.naming.NamingModule; -import org.skywalking.apm.collector.naming.jetty.handler.AgentGRPCNamingHandler; -import org.skywalking.apm.collector.naming.jetty.handler.AgentJettyNamingHandler; -import org.skywalking.apm.collector.naming.jetty.handler.UIJettyNamingHandler; +import org.skywalking.apm.collector.naming.jetty.service.NamingJettyHandlerRegisterService; +import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; import org.skywalking.apm.collector.server.Server; -import org.skywalking.apm.collector.server.manager.ServerManagerModule; -import org.skywalking.apm.collector.server.manager.service.JettyServerConfig; -import org.skywalking.apm.collector.server.manager.service.JettyServerManagerService; +import org.skywalking.apm.collector.server.ServerHandler; /** * @author peng-yongsheng @@ -41,9 +42,10 @@ public class NamingModuleJettyProvider extends ModuleProvider { private static final String HOST = "host"; private static final String PORT = "port"; private static final String CONTEXT_PATH = "context_path"; + private final List handlers = new ArrayList<>(); @Override public String name() { - return "Jetty"; + return "jetty"; } @Override public Class module() { @@ -51,33 +53,28 @@ public class NamingModuleJettyProvider extends ModuleProvider { } @Override public void prepare(Properties config) throws ServiceNotProvidedException { + this.registerServiceImplementation(NamingHandlerRegisterService.class, new NamingJettyHandlerRegisterService(handlers)); + } + + @Override public void start(Properties config) throws ServiceNotProvidedException { String host = config.getProperty(HOST); - String port = config.getProperty(PORT); + Integer port = (Integer)config.get(PORT); String contextPath = config.getProperty(CONTEXT_PATH); - JettyServerConfig serverConfig = new JettyServerConfig(host, Integer.valueOf(port), contextPath); try { - JettyServerManagerService managerService = getManager().find(ServerManagerModule.NAME).getService(JettyServerManagerService.class); - Server jettyServer = managerService.getElseCreateServer(serverConfig); - jettyServer.addHandler(new AgentGRPCNamingHandler()); - jettyServer.addHandler(new AgentJettyNamingHandler()); - jettyServer.addHandler(new UIJettyNamingHandler()); - -// ModuleRegistrationGetService registrationGetService = getManager().find(ClusterModule.NAME).getService(ModuleRegistrationGetService.class); + JettyManagerService managerService = getManager().find(JettyManagerModule.NAME).getService(JettyManagerService.class); + Server jettyServer = managerService.getElseCreateServer(host, port, contextPath); + handlers.forEach(jettyServer::addHandler); } catch (ModuleNotFoundException e) { throw new ServiceNotProvidedException(e.getMessage()); } } - @Override public void start(Properties config) throws ServiceNotProvidedException { - - } - @Override public void notifyAfterCompleted() throws ServiceNotProvidedException { } @Override public String[] requiredModules() { - return new String[] {ServerManagerModule.NAME, ClusterModule.NAME}; + return new String[] {JettyManagerModule.NAME, ClusterModule.NAME}; } } diff --git a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/AgentGRPCNamingHandler.java b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/AgentGRPCNamingHandler.java deleted file mode 100644 index 746945c3ff..0000000000 --- a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/AgentGRPCNamingHandler.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2017, OpenSkywalking Organization All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Project repository: https://github.com/OpenSkywalking/skywalking - */ - -package org.skywalking.apm.collector.naming.jetty.handler; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import javax.servlet.http.HttpServletRequest; -import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; -import org.skywalking.apm.collector.server.jetty.JettyHandler; - -/** - * @author peng-yongsheng - */ -public class AgentGRPCNamingHandler extends JettyHandler { - - @Override public String pathSpec() { - return "/agentstream/grpc"; - } - - @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { -// ModuleManager -// ClusterModuleRegistrationReader reader = CollectorContextHelper.INSTANCE.getClusterModuleContext().getReader(); -// Set servers = reader.read(AgentStreamGRPCDataListener.PATH); - JsonArray serverArray = new JsonArray(); -// servers.forEach(serverArray::add); - return serverArray; - } - - @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { - throw new UnsupportedOperationException(); - } -} diff --git a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/AgentJettyNamingHandler.java b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/AgentJettyNamingHandler.java deleted file mode 100644 index 6470335d25..0000000000 --- a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/AgentJettyNamingHandler.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2017, OpenSkywalking Organization All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Project repository: https://github.com/OpenSkywalking/skywalking - */ - -package org.skywalking.apm.collector.naming.jetty.handler; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import javax.servlet.http.HttpServletRequest; -import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; -import org.skywalking.apm.collector.server.jetty.JettyHandler; - -/** - * @author peng-yongsheng - */ -public class AgentJettyNamingHandler extends JettyHandler { - - @Override public String pathSpec() { - return "/agentstream/jetty"; - } - - @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { -// ClusterModuleRegistrationReader reader = CollectorContextHelper.INSTANCE.getClusterModuleContext().getReader(); -// Set servers = reader.read(AgentStreamJettyDataListener.PATH); - JsonArray serverArray = new JsonArray(); -// servers.forEach(serverArray::add); - return serverArray; - } - - @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { - throw new UnsupportedOperationException(); - } -} diff --git a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/service/StandaloneModuleRegistrationGetService.java b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/service/NamingJettyHandlerRegisterService.java similarity index 56% rename from apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/service/StandaloneModuleRegistrationGetService.java rename to apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/service/NamingJettyHandlerRegisterService.java index 5dd3edc712..d3b4134b7c 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/service/StandaloneModuleRegistrationGetService.java +++ b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/service/NamingJettyHandlerRegisterService.java @@ -16,17 +16,24 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.cluster.standalone.service; +package org.skywalking.apm.collector.naming.jetty.service; -import java.util.Set; -import org.skywalking.apm.collector.cluster.service.ModuleRegistrationGetService; +import java.util.List; +import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; +import org.skywalking.apm.collector.server.ServerHandler; /** * @author peng-yongsheng */ -public class StandaloneModuleRegistrationGetService implements ModuleRegistrationGetService { +public class NamingJettyHandlerRegisterService implements NamingHandlerRegisterService { - @Override public Set get(String path) { - return null; + private final List handlers; + + public NamingJettyHandlerRegisterService(List handlers) { + this.handlers = handlers; + } + + @Override public void register(ServerHandler namingHandler) { + handlers.add(namingHandler); } } diff --git a/apm-collector/apm-collector-naming/pom.xml b/apm-collector/apm-collector-naming/pom.xml index 4762a9e86d..32543586b0 100644 --- a/apm-collector/apm-collector-naming/pom.xml +++ b/apm-collector/apm-collector-naming/pom.xml @@ -22,5 +22,15 @@ apm-collector-core ${project.version} + + org.skywalking + collector-cluster-define + ${project.version} + + + org.skywalking + server-component + ${project.version} + \ No newline at end of file diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml index 2dda893673..f390e6cdd0 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml @@ -46,5 +46,10 @@ collector-jetty-manager-define ${project.version} + + org.skywalking + collector-naming-define + ${project.version} + \ No newline at end of file diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java index 238b80fa9f..7ec1c23bb2 100644 --- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/UIModuleJettyProvider.java @@ -20,6 +20,7 @@ package org.skywalking.apm.collector.ui.jetty; import java.util.Properties; import org.skywalking.apm.collector.cluster.ClusterModule; +import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleNotFoundException; @@ -27,21 +28,26 @@ import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; import org.skywalking.apm.collector.jetty.manager.JettyManagerModule; import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService; +import org.skywalking.apm.collector.naming.NamingModule; +import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; import org.skywalking.apm.collector.server.Server; import org.skywalking.apm.collector.ui.UIModule; import org.skywalking.apm.collector.ui.jetty.handler.application.ApplicationsGetHandler; +import org.skywalking.apm.collector.ui.jetty.handler.naming.UIJettyNamingHandler; +import org.skywalking.apm.collector.ui.jetty.handler.naming.UIJettyNamingListener; /** * @author peng-yongsheng */ public class UIModuleJettyProvider extends ModuleProvider { + public static final String NAME = "jetty"; private static final String HOST = "host"; private static final String PORT = "port"; private static final String CONTEXT_PATH = "context_path"; @Override public String name() { - return "jetty"; + return NAME; } @Override public Class module() { @@ -62,6 +68,13 @@ public class UIModuleJettyProvider extends ModuleProvider { ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); moduleRegisterService.register(UIModule.NAME, this.name(), new UIModuleRegistration(host, port, contextPath)); + + UIJettyNamingListener namingListener = new UIJettyNamingListener(); + ModuleListenerService moduleListenerService = getManager().find(ClusterModule.NAME).getService(ModuleListenerService.class); + moduleListenerService.addListener(namingListener); + + NamingHandlerRegisterService namingHandlerRegisterService = getManager().find(NamingModule.NAME).getService(NamingHandlerRegisterService.class); + namingHandlerRegisterService.register(new UIJettyNamingHandler(namingListener)); } catch (ModuleNotFoundException e) { throw new ServiceNotProvidedException(e.getMessage()); } @@ -72,6 +85,6 @@ public class UIModuleJettyProvider extends ModuleProvider { } @Override public String[] requiredModules() { - return new String[] {ClusterModule.NAME, JettyManagerModule.NAME}; + return new String[] {ClusterModule.NAME, JettyManagerModule.NAME, NamingModule.NAME}; } } diff --git a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/UIJettyNamingHandler.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/naming/UIJettyNamingHandler.java similarity index 79% rename from apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/UIJettyNamingHandler.java rename to apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/naming/UIJettyNamingHandler.java index 2171b477ca..7c9c40f6a9 100644 --- a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/src/main/java/org/skywalking/apm/collector/naming/jetty/handler/UIJettyNamingHandler.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/naming/UIJettyNamingHandler.java @@ -16,10 +16,11 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.naming.jetty.handler; +package org.skywalking.apm.collector.ui.jetty.handler.naming; import com.google.gson.JsonArray; import com.google.gson.JsonElement; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; @@ -29,15 +30,20 @@ import org.skywalking.apm.collector.server.jetty.JettyHandler; */ public class UIJettyNamingHandler extends JettyHandler { + private final UIJettyNamingListener namingListener; + + public UIJettyNamingHandler(UIJettyNamingListener namingListener) { + this.namingListener = namingListener; + } + @Override public String pathSpec() { return "/ui/jetty"; } @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { -// ClusterModuleRegistrationReader reader = CollectorContextHelper.INSTANCE.getClusterModuleContext().getReader(); -// Set servers = reader.read(UIJettyDataListener.PATH); + Set servers = namingListener.getAddresses(); JsonArray serverArray = new JsonArray(); -// servers.forEach(serverArray::add); + servers.forEach(serverArray::add); return serverArray; } diff --git a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/service/RedisModuleRegistrationGetService.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/naming/UIJettyNamingListener.java similarity index 54% rename from apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/service/RedisModuleRegistrationGetService.java rename to apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/naming/UIJettyNamingListener.java index 1428291b95..4ba20cc7cc 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/src/main/java/org/skywalking/apm/collector/cluster/redis/service/RedisModuleRegistrationGetService.java +++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/naming/UIJettyNamingListener.java @@ -16,17 +16,28 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.cluster.redis.service; +package org.skywalking.apm.collector.ui.jetty.handler.naming; -import java.util.Set; -import org.skywalking.apm.collector.cluster.service.ModuleRegistrationGetService; +import org.skywalking.apm.collector.cluster.ClusterModuleListener; +import org.skywalking.apm.collector.ui.UIModule; +import org.skywalking.apm.collector.ui.jetty.UIModuleJettyProvider; /** * @author peng-yongsheng */ -public class RedisModuleRegistrationGetService implements ModuleRegistrationGetService { +public class UIJettyNamingListener extends ClusterModuleListener { + + public static final String PATH = "/" + UIModule.NAME + "/" + UIModuleJettyProvider.NAME; + + @Override public String path() { + return PATH; + } + + @Override public void serverJoinNotify(String serverAddress) { + + } + + @Override public void serverQuitNotify(String serverAddress) { - @Override public Set get(String path) { - return null; } } -- GitLab