6060
6161import java .util .ArrayList ;
6262import java .util .List ;
63+ import java .util .concurrent .ScheduledExecutorService ;
6364import java .util .function .Consumer ;
6465import java .util .stream .Collectors ;
6566
7677public class ChargePointService15_Client {
7778 private static final OcppVersion VERSION = OcppVersion .V_15 ;
7879
80+ @ Autowired private ScheduledExecutorService executorService ;
7981 @ Autowired private UserRepository userRepository ;
8082 @ Autowired private UserService userService ;
8183 @ Autowired private ReservationRepository reservationRepository ;
@@ -323,7 +325,7 @@ public int sendLocalList(SendLocalListParams params) {
323325 * Executes the requests
324326 */
325327 private void execute (List <ChargePointSelect > list , Consumer <ChargePointSelect > consumer ) {
326- list .stream ().forEach (consumer );
328+ executorService . execute (() -> list .stream ().forEach (consumer ) );
327329 }
328330
329331 // -------------------------------------------------------------------------
@@ -334,10 +336,10 @@ public int remoteStartTransaction(RemoteStartTransactionParams params) {
334336 RemoteStartTransactionRequest req = this .prepareRemoteStartTransaction (params );
335337 List <ChargePointSelect > list = params .getChargePointSelectList ();
336338 RequestTask task = new RequestTask (VERSION , req , list );
337-
338339 ChargePointSelect c = list .get (0 );
339- RemoteStartTransactionResponseHandler handler = new RemoteStartTransactionResponseHandler (task , c .getChargeBoxId ());
340- dispatcher .remoteStartTransaction (c , req , handler );
340+
341+ execute (() -> dispatcher .remoteStartTransaction (c , req ,
342+ new RemoteStartTransactionResponseHandler (task , c .getChargeBoxId ())));
341343
342344 return requestTaskStore .add (task );
343345 }
@@ -346,10 +348,10 @@ public int remoteStopTransaction(RemoteStopTransactionParams params) {
346348 RemoteStopTransactionRequest req = this .prepareRemoteStopTransaction (params );
347349 List <ChargePointSelect > list = params .getChargePointSelectList ();
348350 RequestTask task = new RequestTask (VERSION , req , list );
349-
350351 ChargePointSelect c = list .get (0 );
351- RemoteStopTransactionResponseHandler handler = new RemoteStopTransactionResponseHandler (task , c .getChargeBoxId ());
352- dispatcher .remoteStopTransaction (c , req , handler );
352+
353+ execute (() -> dispatcher .remoteStopTransaction (c , req ,
354+ new RemoteStopTransactionResponseHandler (task , c .getChargeBoxId ())));
353355
354356 return requestTaskStore .add (task );
355357 }
@@ -358,10 +360,10 @@ public int unlockConnector(UnlockConnectorParams params) {
358360 UnlockConnectorRequest req = this .prepareUnlockConnector (params );
359361 List <ChargePointSelect > list = params .getChargePointSelectList ();
360362 RequestTask task = new RequestTask (VERSION , req , list );
361-
362363 ChargePointSelect c = list .get (0 );
363- UnlockConnectorResponseHandler handler = new UnlockConnectorResponseHandler (task , c .getChargeBoxId ());
364- dispatcher .unlockConnector (c , req , handler );
364+
365+ execute (() -> dispatcher .unlockConnector (c , req ,
366+ new UnlockConnectorResponseHandler (task , c .getChargeBoxId ())));
365367
366368 return requestTaskStore .add (task );
367369 }
@@ -379,9 +381,10 @@ public int reserveNow(ReserveNowParams params) {
379381
380382 ReserveNowRequest req = this .prepareReserveNow (params , reservationId );
381383 RequestTask task = new RequestTask (VERSION , req , list );
382- ReserveNowResponseHandler handler = new ReserveNowResponseHandler (task , chargeBoxId ,
383- reservationRepository , reservationId );
384- dispatcher .reserveNow (c , req , handler );
384+
385+ execute (() -> dispatcher .reserveNow (c , req ,
386+ new ReserveNowResponseHandler (task , chargeBoxId ,
387+ reservationRepository , reservationId )));
385388
386389 return requestTaskStore .add (task );
387390 }
@@ -390,13 +393,19 @@ public int cancelReservation(CancelReservationParams params) {
390393 CancelReservationRequest req = this .prepareCancelReservation (params );
391394 List <ChargePointSelect > list = params .getChargePointSelectList ();
392395 RequestTask task = new RequestTask (VERSION , req , list );
393-
394396 ChargePointSelect c = list .get (0 );
395- CancelReservationResponseHandler handler =
397+
398+ execute (() -> dispatcher .cancelReservation (c , req ,
396399 new CancelReservationResponseHandler (task , c .getChargeBoxId (),
397- reservationRepository , params .getReservationId ());
398- dispatcher .cancelReservation (c , req , handler );
399-
400+ reservationRepository , params .getReservationId ())));
401+
400402 return requestTaskStore .add (task );
401403 }
404+
405+ /**
406+ * Executes the requests for single charge point invocation
407+ */
408+ private void execute (Runnable r ) {
409+ executorService .execute (r );
410+ }
402411}
0 commit comments