[Minor] Fixed constructors to work with Strolch

This commit is contained in:
Robert von Burg 2022-01-19 19:41:33 +01:00
parent 1e0ae26830
commit ff548a36db
4 changed files with 14 additions and 11 deletions

View File

@ -56,6 +56,7 @@ public abstract class PlcExecutionPolicy extends SimpleExecution
super.handleStopped(); super.handleStopped();
} }
@Override
protected void toExecuted() throws Exception { protected void toExecuted() throws Exception {
stop(); stop();
getController().toExecuted(this.actionLoc); getController().toExecuted(this.actionLoc);

View File

@ -3,19 +3,19 @@ package li.strolch.plc.rest.ws;
import javax.websocket.EndpointConfig; import javax.websocket.EndpointConfig;
import javax.websocket.Session; import javax.websocket.Session;
import li.strolch.agent.api.ComponentContainer;
import li.strolch.agent.api.ObserverHandler; import li.strolch.agent.api.ObserverHandler;
import li.strolch.agent.api.StrolchAgent;
import li.strolch.websocket.WebSocketClient; import li.strolch.websocket.WebSocketClient;
import li.strolch.websocket.WebSocketObserverHandler; import li.strolch.websocket.WebSocketObserverHandler;
public class PlcWebSocketClient extends WebSocketClient { public class PlcWebSocketClient extends WebSocketClient {
public PlcWebSocketClient(ComponentContainer container, Session session, EndpointConfig config) { public PlcWebSocketClient(StrolchAgent agent, Session session, EndpointConfig config) {
super(container, session, config); super(agent, session, config);
} }
@Override @Override
protected WebSocketObserverHandler getWebSocketObserverHandler(ObserverHandler observerHandler) { protected WebSocketObserverHandler getWebSocketObserverHandler(String realm, ObserverHandler observerHandler) {
return new PlcWebSocketObserverHandler(observerHandler, this); return new PlcWebSocketObserverHandler(this.agent, realm, observerHandler, this);
} }
} }

View File

@ -7,14 +7,16 @@ import java.util.Set;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import li.strolch.agent.api.ObserverHandler; import li.strolch.agent.api.ObserverHandler;
import li.strolch.agent.api.StrolchAgent;
import li.strolch.model.StrolchRootElement; import li.strolch.model.StrolchRootElement;
import li.strolch.websocket.WebSocketClient; import li.strolch.websocket.WebSocketClient;
import li.strolch.websocket.WebSocketObserverHandler; import li.strolch.websocket.WebSocketObserverHandler;
public class PlcWebSocketObserverHandler extends WebSocketObserverHandler { public class PlcWebSocketObserverHandler extends WebSocketObserverHandler {
public PlcWebSocketObserverHandler(ObserverHandler observerHandler, WebSocketClient client) { public PlcWebSocketObserverHandler(StrolchAgent agent, String realmName, ObserverHandler observerHandler,
super(observerHandler, client); WebSocketClient client) {
super(agent, realmName, observerHandler, client);
} }
@Override @Override

View File

@ -4,18 +4,18 @@ import javax.websocket.*;
import javax.websocket.server.ServerEndpoint; import javax.websocket.server.ServerEndpoint;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import li.strolch.agent.api.ComponentContainer; import li.strolch.agent.api.StrolchAgent;
import li.strolch.rest.RestfulStrolchComponent; import li.strolch.rest.RestfulStrolchComponent;
@ServerEndpoint("/websocket/plc/observer") @ServerEndpoint("/websocket/plc/observer")
public class WebSocketEndpoint { public class WebSocketEndpoint {
private ConcurrentHashMap<Session, PlcWebSocketClient> clientMap = new ConcurrentHashMap<>(); private final ConcurrentHashMap<Session, PlcWebSocketClient> clientMap = new ConcurrentHashMap<>();
@OnOpen @OnOpen
public void onOpen(Session session, EndpointConfig config) { public void onOpen(Session session, EndpointConfig config) {
ComponentContainer container = RestfulStrolchComponent.getInstance().getContainer(); StrolchAgent agent = RestfulStrolchComponent.getInstance().getAgent();
PlcWebSocketClient updateClient = new PlcWebSocketClient(container, session, config); PlcWebSocketClient updateClient = new PlcWebSocketClient(agent, session, config);
this.clientMap.put(session, updateClient); this.clientMap.put(session, updateClient);
session.addMessageHandler(updateClient); session.addMessageHandler(updateClient);
} }