1 package org
.argeo
.cms
.websocket
.server
;
3 import java
.io
.IOException
;
4 import java
.nio
.charset
.StandardCharsets
;
5 import java
.util
.Arrays
;
6 import java
.util
.HashSet
;
9 import java
.util
.StringJoiner
;
11 import org
.argeo
.api
.cms
.CmsState
;
12 import org
.argeo
.cms
.CmsDeployProperty
;
14 import com
.sun
.net
.httpserver
.HttpExchange
;
15 import com
.sun
.net
.httpserver
.HttpHandler
;
17 public class StatusHandler
implements WebsocketEndpoints
, HttpHandler
{
18 private CmsState cmsState
;
21 public Set
<Class
<?
>> getEndPoints() {
22 Set
<Class
<?
>> res
= new HashSet
<>();
23 res
.add(PingEndpoint
.class);
24 res
.add(EventEndpoint
.class);
29 public void handle(HttpExchange exchange
) throws IOException
{
31 StringJoiner sb
= new StringJoiner("\n");
32 CmsDeployProperty
[] deployProperties
= CmsDeployProperty
.values();
33 Arrays
.sort(deployProperties
, (o1
, o2
) -> o1
.name().compareTo(o2
.name()));
34 for (CmsDeployProperty deployProperty
: deployProperties
) {
35 List
<String
> values
= cmsState
.getDeployProperties(deployProperty
.getProperty());
36 for (int i
= 0; i
< values
.size(); i
++) {
37 String value
= values
.get(i
);
39 String line
= deployProperty
.getProperty() + (i
== 0 ?
"" : "." + i
) + "=" + value
;
45 byte[] msg
= sb
.toString().getBytes(StandardCharsets
.UTF_8
);
46 exchange
.sendResponseHeaders(200, msg
.length
);
47 exchange
.getResponseBody().write(msg
);
50 public void setCmsState(CmsState cmsState
) {
51 this.cmsState
= cmsState
;