Naming module and zookeeper provider in cluster module test successful.
This commit is contained in:
parent
bd9d21fc5b
commit
50c14dd04d
|
|
@ -72,10 +72,19 @@
|
|||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<!-- jetty manager provider -->
|
||||
<!-- naming jetty provider -->
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>collector-naming-jetty-provider</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<!-- naming jetty provider -->
|
||||
<!-- ui jetty provider -->
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>collector-ui-jetty-provider</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<!-- ui jetty provider -->
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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<? extends Service>[] services() {
|
||||
return new Class[] {ModuleListenerService.class, ModuleRegisterService.class, ModuleRegistrationGetService.class};
|
||||
return new Class[] {ModuleListenerService.class, ModuleRegisterService.class};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<String> get(String path) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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<? extends Service>[] services() {
|
||||
return new Class[0];
|
||||
return new Class[] {NamingHandlerRegisterService.class};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String> get(String path);
|
||||
public interface NamingHandlerRegisterService extends Service {
|
||||
void register(ServerHandler namingHandler);
|
||||
}
|
||||
|
|
@ -38,17 +38,7 @@
|
|||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>collector-cluster-define</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>collector-server-manager-define</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>server-component</artifactId>
|
||||
<artifactId>collector-jetty-manager-define</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
|||
|
|
@ -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<ServerHandler> handlers = new ArrayList<>();
|
||||
|
||||
@Override public String name() {
|
||||
return "Jetty";
|
||||
return "jetty";
|
||||
}
|
||||
|
||||
@Override public Class<? extends Module> module() {
|
||||
|
|
@ -51,26 +53,21 @@ public class NamingModuleJettyProvider extends ModuleProvider {
|
|||
}
|
||||
|
||||
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
|
||||
String host = config.getProperty(HOST);
|
||||
String port = config.getProperty(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);
|
||||
} catch (ModuleNotFoundException e) {
|
||||
throw new ServiceNotProvidedException(e.getMessage());
|
||||
}
|
||||
this.registerServiceImplementation(NamingHandlerRegisterService.class, new NamingJettyHandlerRegisterService(handlers));
|
||||
}
|
||||
|
||||
@Override public void start(Properties config) throws ServiceNotProvidedException {
|
||||
String host = config.getProperty(HOST);
|
||||
Integer port = (Integer)config.get(PORT);
|
||||
String contextPath = config.getProperty(CONTEXT_PATH);
|
||||
|
||||
try {
|
||||
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 notifyAfterCompleted() throws ServiceNotProvidedException {
|
||||
|
|
@ -78,6 +75,6 @@ public class NamingModuleJettyProvider extends ModuleProvider {
|
|||
}
|
||||
|
||||
@Override public String[] requiredModules() {
|
||||
return new String[] {ServerManagerModule.NAME, ClusterModule.NAME};
|
||||
return new String[] {JettyManagerModule.NAME, ClusterModule.NAME};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String> 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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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<String> 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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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<String> get(String path) {
|
||||
return null;
|
||||
private final List<ServerHandler> handlers;
|
||||
|
||||
public NamingJettyHandlerRegisterService(List<ServerHandler> handlers) {
|
||||
this.handlers = handlers;
|
||||
}
|
||||
|
||||
@Override public void register(ServerHandler namingHandler) {
|
||||
handlers.add(namingHandler);
|
||||
}
|
||||
}
|
||||
|
|
@ -22,5 +22,15 @@
|
|||
<artifactId>apm-collector-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>collector-cluster-define</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>server-component</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -46,5 +46,10 @@
|
|||
<artifactId>collector-jetty-manager-define</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.skywalking</groupId>
|
||||
<artifactId>collector-naming-define</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
|
@ -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<? extends Module> 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};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String> servers = reader.read(UIJettyDataListener.PATH);
|
||||
Set<String> servers = namingListener.getAddresses();
|
||||
JsonArray serverArray = new JsonArray();
|
||||
// servers.forEach(serverArray::add);
|
||||
servers.forEach(serverArray::add);
|
||||
return serverArray;
|
||||
}
|
||||
|
||||
|
|
@ -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<String> get(String path) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue