]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ee/src/org/argeo/cms/websocket/server/StatusHandler.java
Add content type to package servlet
[lgpl/argeo-commons.git] / org.argeo.cms.ee / src / org / argeo / cms / websocket / server / StatusHandler.java
1 package org.argeo.cms.websocket.server;
2
3 import java.io.IOException;
4 import java.nio.charset.StandardCharsets;
5 import java.util.Arrays;
6 import java.util.HashSet;
7 import java.util.List;
8 import java.util.Set;
9 import java.util.StringJoiner;
10
11 import org.argeo.api.cms.CmsState;
12 import org.argeo.cms.CmsDeployProperty;
13
14 import com.sun.net.httpserver.HttpExchange;
15 import com.sun.net.httpserver.HttpHandler;
16
17 public class StatusHandler implements WebsocketEndpoints, HttpHandler {
18 private CmsState cmsState;
19
20 @Override
21 public Set<Class<?>> getEndPoints() {
22 Set<Class<?>> res = new HashSet<>();
23 res.add(PingEndpoint.class);
24 res.add(EventEndpoint.class);
25 res.add(TestEndpoint.class);
26 return res;
27 }
28
29 @Override
30 public void handle(HttpExchange exchange) throws IOException {
31
32 StringJoiner sb = new StringJoiner("\n");
33 CmsDeployProperty[] deployProperties = CmsDeployProperty.values();
34 Arrays.sort(deployProperties, (o1, o2) -> o1.name().compareTo(o2.name()));
35 for (CmsDeployProperty deployProperty : deployProperties) {
36 List<String> values = cmsState.getDeployProperties(deployProperty.getProperty());
37 for (int i = 0; i < values.size(); i++) {
38 String value = values.get(i);
39 if (value != null) {
40 String line = deployProperty.getProperty() + (i == 0 ? "" : "." + i) + "=" + value;
41 sb.add(line);
42 }
43 }
44 }
45
46 byte[] msg = sb.toString().getBytes(StandardCharsets.UTF_8);
47 exchange.sendResponseHeaders(200, msg.length);
48 exchange.getResponseBody().write(msg);
49 }
50
51 public void setCmsState(CmsState cmsState) {
52 this.cmsState = cmsState;
53 }
54
55 }