Add naming module jetty implement.
This commit is contained in:
parent
e7f613ee45
commit
9c829a5750
|
|
@ -103,7 +103,7 @@ public abstract class Module {
|
|||
/**
|
||||
* @return providers of this module
|
||||
*/
|
||||
public final List<ModuleProvider> providers() throws ProviderNotFoundException {
|
||||
final List<ModuleProvider> providers() throws ProviderNotFoundException {
|
||||
if (loadedProviders.size() == 0) {
|
||||
throw new ProviderNotFoundException("no provider exists.");
|
||||
}
|
||||
|
|
@ -111,7 +111,7 @@ public abstract class Module {
|
|||
return loadedProviders;
|
||||
}
|
||||
|
||||
public final ModuleProvider provider() throws ProviderNotFoundException, DuplicateProviderException {
|
||||
final ModuleProvider provider() throws ProviderNotFoundException, DuplicateProviderException {
|
||||
if (loadedProviders.size() == 0) {
|
||||
throw new ProviderNotFoundException("no provider exists.");
|
||||
} else if (loadedProviders.size() > 1) {
|
||||
|
|
@ -120,4 +120,12 @@ public abstract class Module {
|
|||
|
||||
return loadedProviders.getFirst();
|
||||
}
|
||||
|
||||
public <T extends Service> T getService(Class<T> serviceType) throws ServiceNotProvidedException {
|
||||
try {
|
||||
return provider().getService(serviceType);
|
||||
} catch (ProviderNotFoundException | DuplicateProviderException e) {
|
||||
throw new ServiceNotProvidedException(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ import org.skywalking.apm.collector.core.module.instrument.ServiceInstrumentatio
|
|||
* @author wu-sheng, peng-yongsheng
|
||||
*/
|
||||
public abstract class ModuleProvider {
|
||||
protected ModuleManager manager;
|
||||
protected Module module;
|
||||
private ModuleManager manager;
|
||||
private Module module;
|
||||
private Map<Class<? extends Service>, Service> services = new HashMap<>();
|
||||
|
||||
public ModuleProvider() {
|
||||
|
|
@ -46,6 +46,10 @@ public abstract class ModuleProvider {
|
|||
this.module = module;
|
||||
}
|
||||
|
||||
protected ModuleManager getManager() {
|
||||
return manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the name of this provider.
|
||||
*/
|
||||
|
|
@ -121,7 +125,7 @@ public abstract class ModuleProvider {
|
|||
}
|
||||
}
|
||||
|
||||
public <T extends Service> T getService(Class<T> serviceType) throws ServiceNotProvidedException {
|
||||
<T extends Service> T getService(Class<T> serviceType) throws ServiceNotProvidedException {
|
||||
Service serviceImpl = services.get(serviceType);
|
||||
if (serviceImpl != null) {
|
||||
return (T)serviceImpl;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,11 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -21,17 +21,29 @@ package org.skywalking.apm.collector.naming.jetty;
|
|||
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.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.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;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
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";
|
||||
|
||||
@Override public String name() {
|
||||
return "jetty";
|
||||
return "Jetty";
|
||||
}
|
||||
|
||||
@Override public Class<? extends Module> module() {
|
||||
|
|
@ -39,6 +51,22 @@ 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());
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void start(Properties config) throws ServiceNotProvidedException {
|
||||
|
|
@ -50,6 +78,6 @@ public class NamingModuleJettyProvider extends ModuleProvider {
|
|||
}
|
||||
|
||||
@Override public String[] requiredModules() {
|
||||
return new String[] {ClusterModule.NAME};
|
||||
return new String[] {ServerManagerModule.NAME, ClusterModule.NAME};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue