Skip to content

Commit f1bdf46

Browse files
convert EndpointInfo into a normal DTO, read host and scheme from request
1 parent dc5507f commit f1bdf46

File tree

5 files changed

+30
-92
lines changed

5 files changed

+30
-92
lines changed

src/main/java/de/rwth/idsg/steve/JettyServer.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
*/
1919
package de.rwth.idsg.steve;
2020

21-
import de.rwth.idsg.steve.web.dto.EndpointInfo;
2221
import lombok.extern.slf4j.Slf4j;
2322
import org.eclipse.jetty.http.HttpScheme;
2423
import org.eclipse.jetty.http.HttpVersion;
@@ -185,11 +184,11 @@ public boolean isStarted() {
185184
public void populateEndpointInfo() {
186185
List<String> list = getConnectorPathList();
187186

188-
EndpointInfo info = EndpointInfo.INSTANCE;
189-
190-
info.getWebInterface().setData(buildList(list, false));
191-
info.getOcppSoap().setData(buildList(list, false));
192-
info.getOcppWebSocket().setData(buildList(list, true));
187+
// EndpointInfo info = EndpointInfo.INSTANCE;
188+
//
189+
// info.getWebInterface().setData(buildList(list, false));
190+
// info.getOcppSoap().setData(buildList(list, false));
191+
// info.getOcppWebSocket().setData(buildList(list, true));
193192
}
194193

195194
private List<String> getConnectorPathList() {

src/main/java/de/rwth/idsg/steve/web/controller/AboutSettingsController.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,17 @@
2323
import de.rwth.idsg.steve.repository.SettingsRepository;
2424
import de.rwth.idsg.steve.service.MailService;
2525
import de.rwth.idsg.steve.service.ReleaseCheckService;
26-
import de.rwth.idsg.steve.web.dto.WebEndpointInfo;
26+
import de.rwth.idsg.steve.web.dto.EndpointInfo;
2727
import de.rwth.idsg.steve.web.dto.SettingsForm;
2828
import lombok.RequiredArgsConstructor;
2929
import org.joda.time.DateTime;
3030
import org.joda.time.DateTimeZone;
31+
import org.springframework.http.HttpHeaders;
3132
import org.springframework.stereotype.Controller;
3233
import org.springframework.ui.Model;
3334
import org.springframework.validation.BindingResult;
3435
import org.springframework.web.bind.annotation.ModelAttribute;
36+
import org.springframework.web.bind.annotation.RequestHeader;
3537
import org.springframework.web.bind.annotation.RequestMapping;
3638
import org.springframework.web.bind.annotation.RequestMethod;
3739

@@ -68,18 +70,16 @@ public class AboutSettingsController {
6870
// -------------------------------------------------------------------------
6971

7072
@RequestMapping(value = ABOUT_PATH, method = RequestMethod.GET)
71-
public String getAbout(HttpServletRequest request, Model model) {
72-
WebEndpointInfo info = new WebEndpointInfo();
73-
info.getOcppSoap().setUrlPrefix("http", request.getServerName());
74-
info.getOcppWebSocket().setUrlPrefix("ws", request.getServerName());
73+
public String getAbout(Model model, @RequestHeader(HttpHeaders.HOST) String host, HttpServletRequest request) {
74+
String scheme = request.getScheme();
7575

7676
model.addAttribute("version", CONFIG.getSteveVersion());
7777
model.addAttribute("db", genericRepository.getDBVersion());
7878
model.addAttribute("logFile", logController.getLogFilePath());
7979
model.addAttribute("systemTime", DateTime.now());
8080
model.addAttribute("systemTimeZone", DateTimeZone.getDefault());
8181
model.addAttribute("releaseReport", releaseCheckService.check());
82-
model.addAttribute("endpointInfo", info);
82+
model.addAttribute("endpointInfo", EndpointInfo.fromRequest(scheme, host));
8383
return "about";
8484
}
8585

src/main/java/de/rwth/idsg/steve/web/dto/EndpointInfo.java

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -18,43 +18,29 @@
1818
*/
1919
package de.rwth.idsg.steve.web.dto;
2020

21+
import lombok.Builder;
2122
import lombok.Getter;
2223
import lombok.ToString;
2324

24-
import java.util.Collections;
25-
import java.util.List;
26-
import java.util.stream.Collectors;
27-
2825
/**
2926
* @author Sevket Goekay <[email protected]>
27+
* @author Michael Heimpold <[email protected]>
3028
* @since 06.08.2018
3129
*/
3230
@Getter
3331
@ToString
34-
public enum EndpointInfo {
35-
INSTANCE;
36-
37-
private final ItemsWithInfo webInterface = new ItemsWithInfo("Access the web interface using", "/manager/home");
38-
private final ItemsWithInfo ocppSoap = new ItemsWithInfo("SOAP endpoint for OCPP", "/services/CentralSystemService");
39-
private final ItemsWithInfo ocppWebSocket = new ItemsWithInfo("WebSocket/JSON endpoint for OCPP", "/websocket/CentralSystemService/(chargeBoxId)");
32+
@Builder
33+
public class EndpointInfo {
4034

41-
@Getter
42-
@ToString
43-
public static class ItemsWithInfo {
44-
private final String info;
45-
private final String dataElementPostFix;
46-
private List<String> data;
35+
private final String ocppSoap;
36+
private final String ocppWebSocket;
4737

48-
private ItemsWithInfo(String info, String dataElementPostFix) {
49-
this.info = info;
50-
this.dataElementPostFix = dataElementPostFix;
51-
this.data = Collections.emptyList();
52-
}
38+
public static EndpointInfo fromRequest(String httpScheme, String host) {
39+
String webSocketScheme = httpScheme.equals("https") ? "wss" : "ws";
5340

54-
public synchronized void setData(List<String> data) {
55-
this.data = data.stream()
56-
.map(s -> s + dataElementPostFix)
57-
.collect(Collectors.toList());
58-
}
41+
return EndpointInfo.builder()
42+
.ocppSoap(httpScheme + "://" + host + "/services/CentralSystemService")
43+
.ocppWebSocket(webSocketScheme + "://" + host + "/websocket/CentralSystemService/(chargeBoxId)")
44+
.build();
5945
}
6046
}

src/main/java/de/rwth/idsg/steve/web/dto/WebEndpointInfo.java

Lines changed: 0 additions & 47 deletions
This file was deleted.

src/main/resources/webapp/WEB-INF/views/about.jsp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@
3636
<tr><td>System Time:</td><td>${systemTime}</td></tr>
3737
<tr><td>System Time Zone:</td><td>${systemTimeZone}</td></tr>
3838
</table>
39-
<section><span>Endpoint Info</span></section>
39+
<section><span>Endpoint Info</span></section>
4040
<table class="userInputFullPage">
4141
<tr>
42-
<td>${endpointInfo.ocppSoap.info}:</td>
43-
<td>${endpointInfo.ocppSoap.url}</td>
42+
<td>SOAP endpoint for OCPP:</td>
43+
<td>${endpointInfo.ocppSoap}</td>
4444
<tr>
45-
<td>${endpointInfo.ocppWebSocket.info}:</td>
46-
<td>${endpointInfo.ocppWebSocket.url}</td>
45+
<td>WebSocket/JSON endpoint for OCPP:</td>
46+
<td>${endpointInfo.ocppWebSocket}</td>
47+
</tr>
4748
</tr>
48-
</tr>
4949
</table>
5050
</div>
51-
<%@ include file="00-footer.jsp" %>
51+
<%@ include file="00-footer.jsp" %>

0 commit comments

Comments
 (0)