Skip to content

Commit

Permalink
fix: Remove cycling dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
juherr committed Aug 29, 2023
1 parent 9e5950f commit de29db8
Show file tree
Hide file tree
Showing 10 changed files with 80 additions and 63 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,13 @@
import de.rwth.idsg.steve.ocpp.task.UnlockConnectorTask;
import de.rwth.idsg.steve.ocpp.task.UpdateFirmwareTask;
import de.rwth.idsg.steve.ocpp.ws.ChargePointServiceInvoker;
import de.rwth.idsg.steve.ocpp.ws.SessionContextStore;
import de.rwth.idsg.steve.ocpp.ws.ocpp12.Ocpp12TypeStore;
import de.rwth.idsg.steve.ocpp.ws.ocpp12.Ocpp12WebSocketEndpoint;
import de.rwth.idsg.steve.ocpp.ws.pipeline.OutgoingCallPipeline;
import de.rwth.idsg.steve.repository.dto.ChargePointSelect;
import ocpp.cp._2010._08.ChargePointService;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

/**
Expand All @@ -47,8 +49,8 @@ public class ChargePointService12_InvokerImpl implements ChargePointService12_In
private final ChargePointServiceInvoker wsHelper;
private final ClientProviderWithCache<ChargePointService> soapHelper;

public ChargePointService12_InvokerImpl(OutgoingCallPipeline pipeline, Ocpp12WebSocketEndpoint endpoint, ClientProvider clientProvider) {
this.wsHelper = new ChargePointServiceInvoker(pipeline, endpoint, Ocpp12TypeStore.INSTANCE);
public ChargePointService12_InvokerImpl(OutgoingCallPipeline pipeline, @Qualifier("sessionContextStore12") SessionContextStore sessionContextStore, ClientProvider clientProvider) {
this.wsHelper = new ChargePointServiceInvoker(pipeline, sessionContextStore, Ocpp12TypeStore.INSTANCE);
this.soapHelper = new ClientProviderWithCache<>(clientProvider);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,13 @@
import de.rwth.idsg.steve.ocpp.task.UnlockConnectorTask;
import de.rwth.idsg.steve.ocpp.task.UpdateFirmwareTask;
import de.rwth.idsg.steve.ocpp.ws.ChargePointServiceInvoker;
import de.rwth.idsg.steve.ocpp.ws.SessionContextStore;
import de.rwth.idsg.steve.ocpp.ws.ocpp15.Ocpp15TypeStore;
import de.rwth.idsg.steve.ocpp.ws.ocpp15.Ocpp15WebSocketEndpoint;
import de.rwth.idsg.steve.ocpp.ws.pipeline.OutgoingCallPipeline;
import de.rwth.idsg.steve.repository.dto.ChargePointSelect;
import ocpp.cp._2012._06.ChargePointService;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

/**
Expand All @@ -53,8 +55,8 @@ public class ChargePointService15_InvokerImpl implements ChargePointService15_In
private final ChargePointServiceInvoker wsHelper;
private final ClientProviderWithCache<ChargePointService> soapHelper;

public ChargePointService15_InvokerImpl(OutgoingCallPipeline pipeline, Ocpp15WebSocketEndpoint endpoint, ClientProvider clientProvider) {
this.wsHelper = new ChargePointServiceInvoker(pipeline, endpoint, Ocpp15TypeStore.INSTANCE);
public ChargePointService15_InvokerImpl(OutgoingCallPipeline pipeline, @Qualifier("sessionContextStore15") SessionContextStore sessionContextStore, ClientProvider clientProvider) {
this.wsHelper = new ChargePointServiceInvoker(pipeline, sessionContextStore, Ocpp15TypeStore.INSTANCE);
this.soapHelper = new ClientProviderWithCache<>(clientProvider);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@
import de.rwth.idsg.steve.ocpp.soap.ClientProviderWithCache;
import de.rwth.idsg.steve.ocpp.task.*;
import de.rwth.idsg.steve.ocpp.ws.ChargePointServiceInvoker;
import de.rwth.idsg.steve.ocpp.ws.SessionContextStore;
import de.rwth.idsg.steve.ocpp.ws.ocpp16.Ocpp16TypeStore;
import de.rwth.idsg.steve.ocpp.ws.ocpp16.Ocpp16WebSocketEndpoint;
import de.rwth.idsg.steve.ocpp.ws.pipeline.OutgoingCallPipeline;
import de.rwth.idsg.steve.repository.dto.ChargePointSelect;
import ocpp.cp._2015._10.ChargePointService;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

/**
Expand All @@ -39,8 +41,8 @@ public class ChargePointService16_InvokerImpl implements ChargePointService16_In
private final ChargePointServiceInvoker wsHelper;
private final ClientProviderWithCache<ChargePointService> soapHelper;

public ChargePointService16_InvokerImpl(OutgoingCallPipeline pipeline, Ocpp16WebSocketEndpoint endpoint, ClientProvider clientProvider) {
this.wsHelper = new ChargePointServiceInvoker(pipeline, endpoint, Ocpp16TypeStore.INSTANCE);
public ChargePointService16_InvokerImpl(OutgoingCallPipeline pipeline, @Qualifier("sessionContextStore16") SessionContextStore sessionContextStore, ClientProvider clientProvider) {
this.wsHelper = new ChargePointServiceInvoker(pipeline, sessionContextStore, Ocpp16TypeStore.INSTANCE);
this.soapHelper = new ClientProviderWithCache<>(clientProvider);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,17 +60,18 @@ public abstract class AbstractWebSocketEndpoint extends ConcurrentWebSocketHandl
private final ScheduledExecutorService service;
private final OcppServerRepository ocppServerRepository;
private final FutureResponseContextStore futureResponseContextStore;
private final SessionContextStore sessionContextStore = new SessionContextStore();
private final SessionContextStore sessionContextStore;
private final List<Consumer<String>> connectedCallbackList = new ArrayList<>();
private final List<Consumer<String>> disconnectedCallbackList = new ArrayList<>();
private final Object sessionContextLock = new Object();

private final IncomingPipeline pipeline;

public AbstractWebSocketEndpoint(ScheduledExecutorService service, OcppServerRepository ocppServerRepository, FutureResponseContextStore futureResponseContextStore, ApplicationEventPublisher applicationEventPublisher, AbstractCallHandler server, AbstractTypeStore store) {
public AbstractWebSocketEndpoint(ScheduledExecutorService service, OcppServerRepository ocppServerRepository, FutureResponseContextStore futureResponseContextStore, ApplicationEventPublisher applicationEventPublisher, AbstractCallHandler server, AbstractTypeStore store, SessionContextStore sessionContextStore) {
this.service = service;
this.ocppServerRepository = ocppServerRepository;
this.futureResponseContextStore = futureResponseContextStore;
this.sessionContextStore = sessionContextStore;
Deserializer deserializer = new Deserializer(futureResponseContextStore, store);
this.pipeline = new IncomingPipeline(deserializer, server);

Expand Down Expand Up @@ -195,28 +196,7 @@ protected String getChargeBoxId(WebSocketSession session) {
return (String) session.getAttributes().get(CHARGEBOX_ID_KEY);
}

protected void registerConnectedCallback(Consumer<String> consumer) {
connectedCallbackList.add(consumer);
}

protected void registerDisconnectedCallback(Consumer<String> consumer) {
disconnectedCallbackList.add(consumer);
}

public List<String> getChargeBoxIdList() {
return sessionContextStore.getChargeBoxIdList();
}

public int getNumberOfChargeBoxes() {
return sessionContextStore.getNumberOfChargeBoxes();
}

public Map<String, Deque<SessionContext>> getACopy() {
return sessionContextStore.getACopy();
}

public WebSocketSession getSession(String chargeBoxId) {
return sessionContextStore.getSession(chargeBoxId);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
public class ChargePointServiceInvoker {

private final OutgoingCallPipeline outgoingCallPipeline;
private final AbstractWebSocketEndpoint endpoint;
private final SessionContextStore sessionContextStore;
private final TypeStore typeStore;

/**
Expand Down Expand Up @@ -76,7 +76,7 @@ private void run(String chargeBoxId, CommunicationTask task) {

FutureResponseContext frc = new FutureResponseContext(task, pair.getResponseClass());

CommunicationContext context = new CommunicationContext(endpoint.getSession(chargeBoxId), chargeBoxId);
CommunicationContext context = new CommunicationContext(sessionContextStore.getSession(chargeBoxId), chargeBoxId);
context.setOutgoingMessage(call);
context.setFutureResponseContext(frc);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package de.rwth.idsg.steve.ocpp.ws;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SessionContextStoreFactory {

@Bean
@Qualifier("sessionContextStore12")
public SessionContextStore sessionContextStore12() {
return new SessionContextStore();
}

@Bean
@Qualifier("sessionContextStore15")
public SessionContextStore sessionContextStore15() {
return new SessionContextStore();
}

@Bean
@Qualifier("sessionContextStore16")
public SessionContextStore sessionContextStore16() {
return new SessionContextStore();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import de.rwth.idsg.steve.ocpp.ws.AbstractTypeStore;
import de.rwth.idsg.steve.ocpp.ws.AbstractWebSocketEndpoint;
import de.rwth.idsg.steve.ocpp.ws.FutureResponseContextStore;
import de.rwth.idsg.steve.ocpp.ws.SessionContextStore;
import de.rwth.idsg.steve.ocpp.ws.pipeline.AbstractCallHandler;
import de.rwth.idsg.steve.ocpp.ws.pipeline.Deserializer;
import de.rwth.idsg.steve.ocpp.ws.pipeline.IncomingPipeline;
Expand All @@ -41,6 +42,7 @@
import ocpp.cs._2010._08.StartTransactionRequest;
import ocpp.cs._2010._08.StatusNotificationRequest;
import ocpp.cs._2010._08.StopTransactionRequest;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;

Expand All @@ -53,8 +55,8 @@
@Component
public class Ocpp12WebSocketEndpoint extends AbstractWebSocketEndpoint {

public Ocpp12WebSocketEndpoint(ScheduledExecutorService service, OcppServerRepository ocppServerRepository, FutureResponseContextStore futureResponseContextStore, ApplicationEventPublisher applicationEventPublisher, CentralSystemService12_SoapServer server) {
super(service, ocppServerRepository, futureResponseContextStore, applicationEventPublisher, new Ocpp12CallHandler(server), Ocpp12TypeStore.INSTANCE);
public Ocpp12WebSocketEndpoint(ScheduledExecutorService service, OcppServerRepository ocppServerRepository, FutureResponseContextStore futureResponseContextStore, ApplicationEventPublisher applicationEventPublisher, CentralSystemService12_SoapServer server, @Qualifier("sessionContextStore12") SessionContextStore sessionContextStore) {
super(service, ocppServerRepository, futureResponseContextStore, applicationEventPublisher, new Ocpp12CallHandler(server), Ocpp12TypeStore.INSTANCE, sessionContextStore);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import de.rwth.idsg.steve.ocpp.soap.CentralSystemService15_SoapServer;
import de.rwth.idsg.steve.ocpp.ws.AbstractWebSocketEndpoint;
import de.rwth.idsg.steve.ocpp.ws.FutureResponseContextStore;
import de.rwth.idsg.steve.ocpp.ws.SessionContextStore;
import de.rwth.idsg.steve.ocpp.ws.pipeline.AbstractCallHandler;
import de.rwth.idsg.steve.ocpp.ws.pipeline.Deserializer;
import de.rwth.idsg.steve.ocpp.ws.pipeline.IncomingPipeline;
Expand All @@ -40,6 +41,7 @@
import ocpp.cs._2012._06.StartTransactionRequest;
import ocpp.cs._2012._06.StatusNotificationRequest;
import ocpp.cs._2012._06.StopTransactionRequest;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;

Expand All @@ -51,8 +53,8 @@
*/
@Component
public class Ocpp15WebSocketEndpoint extends AbstractWebSocketEndpoint {
public Ocpp15WebSocketEndpoint(ScheduledExecutorService service, OcppServerRepository ocppServerRepository, FutureResponseContextStore futureResponseContextStore, ApplicationEventPublisher applicationEventPublisher, CentralSystemService15_SoapServer server) {
super(service, ocppServerRepository, futureResponseContextStore, applicationEventPublisher, new Ocpp15CallHandler(server), Ocpp15TypeStore.INSTANCE);
public Ocpp15WebSocketEndpoint(ScheduledExecutorService service, OcppServerRepository ocppServerRepository, FutureResponseContextStore futureResponseContextStore, ApplicationEventPublisher applicationEventPublisher, CentralSystemService15_SoapServer server, @Qualifier("sessionContextStore15") SessionContextStore sessionContextStore) {
super(service, ocppServerRepository, futureResponseContextStore, applicationEventPublisher, new Ocpp15CallHandler(server), Ocpp15TypeStore.INSTANCE, sessionContextStore);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import de.rwth.idsg.steve.ocpp.soap.CentralSystemService16_SoapServer;
import de.rwth.idsg.steve.ocpp.ws.AbstractWebSocketEndpoint;
import de.rwth.idsg.steve.ocpp.ws.FutureResponseContextStore;
import de.rwth.idsg.steve.ocpp.ws.SessionContextStore;
import de.rwth.idsg.steve.ocpp.ws.pipeline.AbstractCallHandler;
import de.rwth.idsg.steve.ocpp.ws.pipeline.Deserializer;
import de.rwth.idsg.steve.ocpp.ws.pipeline.IncomingPipeline;
Expand All @@ -40,6 +41,7 @@
import ocpp.cs._2015._10.StartTransactionRequest;
import ocpp.cs._2015._10.StatusNotificationRequest;
import ocpp.cs._2015._10.StopTransactionRequest;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;

Expand All @@ -51,8 +53,8 @@
*/
@Component
public class Ocpp16WebSocketEndpoint extends AbstractWebSocketEndpoint {
public Ocpp16WebSocketEndpoint(ScheduledExecutorService service, OcppServerRepository ocppServerRepository, FutureResponseContextStore futureResponseContextStore, ApplicationEventPublisher applicationEventPublisher, CentralSystemService16_SoapServer server) {
super(service, ocppServerRepository, futureResponseContextStore, applicationEventPublisher, new Ocpp16CallHandler(server), Ocpp16TypeStore.INSTANCE);
public Ocpp16WebSocketEndpoint(ScheduledExecutorService service, OcppServerRepository ocppServerRepository, FutureResponseContextStore futureResponseContextStore, ApplicationEventPublisher applicationEventPublisher, CentralSystemService16_SoapServer server, @Qualifier("sessionContextStore16") SessionContextStore sessionContextStore) {
super(service, ocppServerRepository, futureResponseContextStore, applicationEventPublisher, new Ocpp16CallHandler(server), Ocpp16TypeStore.INSTANCE, sessionContextStore);
}

@Override
Expand Down
Loading

0 comments on commit de29db8

Please sign in to comment.