X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=rapp-manager-models%2Fsrc%2Fmain%2Fjava%2Fcom%2Foransc%2Frappmanager%2Fmodels%2Fstatemachine%2FRappInstanceStateMachine.java;h=b776df75185de8f45b05e8394245e0f26d7d4af0;hb=f14562f10f7dd6ed770f2d1232add6b24eb85b91;hp=4e10ac09bf6a6593e18364b72818be2d4aa7675a;hpb=a071d6befe8d38a5e589dffbbf1dc3904ff3aa79;p=nonrtric%2Fplt%2Frappmanager.git diff --git a/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/statemachine/RappInstanceStateMachine.java b/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/statemachine/RappInstanceStateMachine.java index 4e10ac0..b776df7 100755 --- a/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/statemachine/RappInstanceStateMachine.java +++ b/rapp-manager-models/src/main/java/com/oransc/rappmanager/models/statemachine/RappInstanceStateMachine.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START====================================================================== * Copyright (C) 2023 Nordix Foundation. All rights reserved. + * Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. * =============================================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,9 +28,11 @@ import java.util.UUID; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.messaging.support.MessageBuilder; import org.springframework.statemachine.StateMachine; import org.springframework.statemachine.config.StateMachineFactory; import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; @Service @RequiredArgsConstructor @@ -43,13 +46,18 @@ public class RappInstanceStateMachine { public void onboardRappInstance(UUID rappInstanceId) { StateMachine stateMachine = stateMachineFactory.getStateMachine(rappInstanceId); stateMachineMap.put(rappInstanceId, stateMachine); - stateMachine.start(); + stateMachine.startReactively().subscribe(); } public void sendRappInstanceEvent(RappInstance rappInstance, RappEvent rappEvent) { logger.info("Sending rapp instance event {} for {}", rappEvent.name(), rappInstance.getRappInstanceId()); logger.debug("State machine map is {}", stateMachineMap); - stateMachineMap.get(rappInstance.getRappInstanceId()).sendEvent(rappEvent); + stateMachineMap.get(rappInstance.getRappInstanceId()).getExtendedState().getVariables() + .put("sme", rappInstance.isSMEEnabled()); + stateMachineMap.get(rappInstance.getRappInstanceId()).getExtendedState().getVariables() + .put("dme", rappInstance.isDMEEnabled()); + stateMachineMap.get(rappInstance.getRappInstanceId()) + .sendEvent(Mono.just(MessageBuilder.withPayload(rappEvent).build())).subscribe(); } public RappInstanceState getRappInstanceState(UUID rappInstanceId) { @@ -57,7 +65,7 @@ public class RappInstanceStateMachine { } public void deleteRappInstance(RappInstance rappInstance) { - stateMachineMap.get(rappInstance.getRappInstanceId()).stop(); + stateMachineMap.get(rappInstance.getRappInstanceId()).stopReactively().subscribe(); stateMachineMap.remove(rappInstance.getRappInstanceId()); } }