The handler in UI module with jetty server start successful.
This commit is contained in:
parent
cf544f44ae
commit
bd9d21fc5b
|
|
@ -52,7 +52,7 @@ public class CollectorBootStartUp {
|
|||
}
|
||||
|
||||
try {
|
||||
Thread.sleep(10000);
|
||||
Thread.sleep(60000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,18 +18,28 @@
|
|||
|
||||
package org.skywalking.apm.collector.grpc.manager;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import org.skywalking.apm.collector.core.module.Module;
|
||||
import org.skywalking.apm.collector.core.module.ModuleProvider;
|
||||
import org.skywalking.apm.collector.core.module.ServiceNotProvidedException;
|
||||
import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerService;
|
||||
import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerServiceImpl;
|
||||
import org.skywalking.apm.collector.server.ServerException;
|
||||
import org.skywalking.apm.collector.server.grpc.GRPCServer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
public class GRPCManagerProvider extends ModuleProvider {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(GRPCManagerProvider.class);
|
||||
|
||||
private Map<String, GRPCServer> servers = new HashMap<>();
|
||||
|
||||
@Override public String name() {
|
||||
return "gRPC";
|
||||
}
|
||||
|
|
@ -39,7 +49,7 @@ public class GRPCManagerProvider extends ModuleProvider {
|
|||
}
|
||||
|
||||
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
|
||||
this.registerServiceImplementation(GRPCManagerService.class, new GRPCManagerServiceImpl());
|
||||
this.registerServiceImplementation(GRPCManagerService.class, new GRPCManagerServiceImpl(servers));
|
||||
}
|
||||
|
||||
@Override public void start(Properties config) throws ServiceNotProvidedException {
|
||||
|
|
@ -47,7 +57,13 @@ public class GRPCManagerProvider extends ModuleProvider {
|
|||
}
|
||||
|
||||
@Override public void notifyAfterCompleted() throws ServiceNotProvidedException {
|
||||
|
||||
servers.values().forEach(server -> {
|
||||
try {
|
||||
server.start();
|
||||
} catch (ServerException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override public String[] requiredModules() {
|
||||
|
|
|
|||
|
|
@ -18,17 +18,25 @@
|
|||
|
||||
package org.skywalking.apm.collector.grpc.manager.service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.skywalking.apm.collector.server.Server;
|
||||
import org.skywalking.apm.collector.server.ServerException;
|
||||
import org.skywalking.apm.collector.server.grpc.GRPCServer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
public class GRPCManagerServiceImpl implements GRPCManagerService {
|
||||
|
||||
private Map<String, GRPCServer> servers = new HashMap<>();
|
||||
private final Logger logger = LoggerFactory.getLogger(GRPCManagerServiceImpl.class);
|
||||
|
||||
private final Map<String, GRPCServer> servers;
|
||||
|
||||
public GRPCManagerServiceImpl(Map<String, GRPCServer> servers) {
|
||||
this.servers = servers;
|
||||
}
|
||||
|
||||
@Override public Server getElseCreateServer(String host, int port) {
|
||||
String id = host + String.valueOf(port);
|
||||
|
|
@ -36,6 +44,11 @@ public class GRPCManagerServiceImpl implements GRPCManagerService {
|
|||
return servers.get(id);
|
||||
} else {
|
||||
GRPCServer server = new GRPCServer(host, port);
|
||||
try {
|
||||
server.initialize();
|
||||
} catch (ServerException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
servers.put(id, server);
|
||||
return server;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,18 +18,28 @@
|
|||
|
||||
package org.skywalking.apm.collector.jetty.manager;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import org.skywalking.apm.collector.core.module.Module;
|
||||
import org.skywalking.apm.collector.core.module.ModuleProvider;
|
||||
import org.skywalking.apm.collector.core.module.ServiceNotProvidedException;
|
||||
import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService;
|
||||
import org.skywalking.apm.collector.jetty.manager.service.JettyManagerServiceImpl;
|
||||
import org.skywalking.apm.collector.server.ServerException;
|
||||
import org.skywalking.apm.collector.server.jetty.JettyServer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
public class JettyManagerProvider extends ModuleProvider {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(JettyManagerProvider.class);
|
||||
|
||||
private Map<String, JettyServer> servers = new HashMap<>();
|
||||
|
||||
@Override public String name() {
|
||||
return "jetty";
|
||||
}
|
||||
|
|
@ -39,7 +49,7 @@ public class JettyManagerProvider extends ModuleProvider {
|
|||
}
|
||||
|
||||
@Override public void prepare(Properties config) throws ServiceNotProvidedException {
|
||||
this.registerServiceImplementation(JettyManagerService.class, new JettyManagerServiceImpl());
|
||||
this.registerServiceImplementation(JettyManagerService.class, new JettyManagerServiceImpl(servers));
|
||||
}
|
||||
|
||||
@Override public void start(Properties config) throws ServiceNotProvidedException {
|
||||
|
|
@ -47,7 +57,13 @@ public class JettyManagerProvider extends ModuleProvider {
|
|||
}
|
||||
|
||||
@Override public void notifyAfterCompleted() throws ServiceNotProvidedException {
|
||||
|
||||
servers.values().forEach(server -> {
|
||||
try {
|
||||
server.start();
|
||||
} catch (ServerException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override public String[] requiredModules() {
|
||||
|
|
|
|||
|
|
@ -18,17 +18,25 @@
|
|||
|
||||
package org.skywalking.apm.collector.jetty.manager.service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.skywalking.apm.collector.server.Server;
|
||||
import org.skywalking.apm.collector.server.ServerException;
|
||||
import org.skywalking.apm.collector.server.jetty.JettyServer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
public class JettyManagerServiceImpl implements JettyManagerService {
|
||||
|
||||
private Map<String, JettyServer> servers = new HashMap<>();
|
||||
private final Logger logger = LoggerFactory.getLogger(JettyManagerServiceImpl.class);
|
||||
|
||||
private final Map<String, JettyServer> servers;
|
||||
|
||||
public JettyManagerServiceImpl(Map<String, JettyServer> servers) {
|
||||
this.servers = servers;
|
||||
}
|
||||
|
||||
@Override public Server getElseCreateServer(String host, int port, String contextPath) {
|
||||
String id = host + String.valueOf(port);
|
||||
|
|
@ -36,6 +44,11 @@ public class JettyManagerServiceImpl implements JettyManagerService {
|
|||
return servers.get(id);
|
||||
} else {
|
||||
JettyServer server = new JettyServer(host, port, contextPath);
|
||||
try {
|
||||
server.initialize();
|
||||
} catch (ServerException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
servers.put(id, server);
|
||||
return server;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import org.skywalking.apm.collector.jetty.manager.JettyManagerModule;
|
|||
import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService;
|
||||
import org.skywalking.apm.collector.server.Server;
|
||||
import org.skywalking.apm.collector.ui.UIModule;
|
||||
import org.skywalking.apm.collector.ui.jetty.handler.application.ApplicationsGetHandler;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
|
|
@ -57,6 +58,7 @@ public class UIModuleJettyProvider extends ModuleProvider {
|
|||
try {
|
||||
JettyManagerService managerService = getManager().find(JettyManagerModule.NAME).getService(JettyManagerService.class);
|
||||
Server jettyServer = managerService.getElseCreateServer(host, port, contextPath);
|
||||
jettyServer.addHandler(new ApplicationsGetHandler());
|
||||
|
||||
ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class);
|
||||
moduleRegisterService.register(UIModule.NAME, this.name(), new UIModuleRegistration(host, port, contextPath));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
* 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.ui.jetty.handler.application;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import org.skywalking.apm.collector.server.jetty.ArgumentsParseException;
|
||||
import org.skywalking.apm.collector.server.jetty.JettyHandler;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* @author peng-yongsheng
|
||||
*/
|
||||
public class ApplicationsGetHandler extends JettyHandler {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(ApplicationsGetHandler.class);
|
||||
|
||||
@Override public String pathSpec() {
|
||||
return "/applications";
|
||||
}
|
||||
|
||||
// private ApplicationService service = new ApplicationService();
|
||||
|
||||
@Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
|
||||
if (!req.getParameterMap().containsKey("startTime") || !req.getParameterMap().containsKey("endTime")) {
|
||||
throw new ArgumentsParseException("must contains startTime. endTime parameter");
|
||||
}
|
||||
|
||||
String startTimeStr = req.getParameter("startTime");
|
||||
String endTimeStr = req.getParameter("endTime");
|
||||
logger.debug("applications get start time: {}, end time: {}", startTimeStr, endTimeStr);
|
||||
|
||||
long startTime;
|
||||
try {
|
||||
startTime = Long.parseLong(startTimeStr);
|
||||
} catch (NumberFormatException e) {
|
||||
throw new ArgumentsParseException("start time must be long");
|
||||
}
|
||||
|
||||
long endTime;
|
||||
try {
|
||||
endTime = Long.parseLong(endTimeStr);
|
||||
} catch (NumberFormatException e) {
|
||||
throw new ArgumentsParseException("end time must be long");
|
||||
}
|
||||
|
||||
// return service.getApplications(startTime, endTime);
|
||||
|
||||
JsonObject result = new JsonObject();
|
||||
result.addProperty("result", "Yes");
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue