Changes to support multiple outputs from a state 07/122107/8
authora.sreekumar <ajith.sreekumar@bell.ca>
Tue, 22 Jun 2021 14:55:46 +0000 (15:55 +0100)
committera.sreekumar <ajith.sreekumar@bell.ca>
Mon, 28 Jun 2021 09:36:48 +0000 (10:36 +0100)
commit926646d8e5e86e680a119360f93d7bdb46c89435
tree7ff431e59672b19f658faed87c80b4d147253c9c
parent63637d939697451d3ac63216d938780a157ff895
Changes to support multiple outputs from a state

This review addresses two main changes:
1) inputFields and outputFields are not tied to task definition anymore.
   Instead inputEvent and outputEvents associated to a task is populated
   as part of the policy state definition, as the state definition have
   the information anyway.
   - Clean up of the usage of inputFields and outputFields in task
     definition will happen in a future review
   - inputFields and outputFields defined in task definition in
     policies until honolulu will not make the policy invalid as the
     changes are done in backward compatible way.
2) Multiple output events can come out of a final state now.
   - Define another policy state output with the relevant eventName in
     the command file
   - In the task logic, create a map to store the fields of the relevant
     outputEvent, and then just call
     "executor.addFieldsToOutput(<the_map_of_fields>)"
     These 2 steps are enough to send multiple events to relevant
     components as per the apex configuration.

Change-Id: Id88ca402704106404f529e595e1a76f6bf167876
Issue-ID: POLICY-3336
Signed-off-by: a.sreekumar <ajith.sreekumar@bell.ca>
47 files changed:
auth/cli-codegen/src/test/java/org/onap/policy/apex/auth/clicodegen/CodeGeneratorCliEditorTest.java
auth/cli-editor/src/test/java/org/onap/policy/apex/auth/clieditor/CommandLineEditorEventsContextTest.java
auth/cli-editor/src/test/resources/tosca/PolicyModel.json
auth/cli-editor/src/test/resources/tosca/ToscaPolicyOutput_compare.json
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/StateMachineHandler.java
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateExecutor.java
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateMachineExecutor.java
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/StateOutput.java
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/TaskExecutor.java
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/AxTaskFacade.java
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/executor/context/TaskExecutionContext.java
core/core-engine/src/test/java/org/onap/policy/apex/core/engine/engine/impl/DummySmExecutor.java
core/core-engine/src/test/java/org/onap/policy/apex/core/engine/executor/DummyTaskExecutor.java
core/core-engine/src/test/java/org/onap/policy/apex/core/engine/executor/StateMachineExecutorTest.java
core/core-engine/src/test/java/org/onap/policy/apex/core/engine/executor/TaskExecutorTest.java
core/core-engine/src/test/java/org/onap/policy/apex/core/engine/executor/context/AxTaskFacadeTest.java
core/core-engine/src/test/java/org/onap/policy/apex/core/engine/executor/context/TaskExecutionContextTest.java
examples/examples-grpc/src/main/resources/examples/config/APEXgRPC/ApexConfig.json
examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/CDSResponseStatusEvent.json [new file with mode: 0644]
examples/examples-grpc/src/main/resources/examples/events/APEXgRPC/LogEvent.json
examples/examples-grpc/src/main/resources/logic/ResponseTask.js
examples/examples-grpc/src/main/resources/policy/APEXgRPCPolicy.apex
examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/GrpcTestRestSimEndpoint.java
examples/examples-grpc/src/test/java/org/onap/policy/apex/examples/grpc/TestApexGrpcExample.java
model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ApexModelImpl.java
model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/PolicyFacade.java
model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxPolicyModel.java
model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateOutput.java
model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxTask.java
model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/handling/PolicyAnalyser.java
model/policy-model/src/test/java/org/onap/policy/apex/model/policymodel/concepts/PolicyModelTest.java
model/policy-model/src/test/java/org/onap/policy/apex/model/policymodel/concepts/StateOutputTest.java
model/policy-model/src/test/java/org/onap/policy/apex/model/policymodel/concepts/TasksTest.java
model/policy-model/src/test/java/org/onap/policy/apex/model/policymodel/handling/SupportApexPolicyModelCreator.java
plugins/plugins-executor/plugins-executor-java/src/main/java/org/onap/policy/apex/plugins/executor/java/JavaTaskExecutor.java
plugins/plugins-executor/plugins-executor-java/src/test/java/org/onap/policy/apex/plugins/executor/java/JavaTaskExecutorTest.java
plugins/plugins-executor/plugins-executor-javascript/src/main/java/org/onap/policy/apex/plugins/executor/javascript/JavascriptTaskExecutor.java
plugins/plugins-executor/plugins-executor-javascript/src/test/java/org/onap/policy/apex/plugins/executor/javascript/JavascriptTaskExecutorTest.java
plugins/plugins-executor/plugins-executor-jruby/src/main/java/org/onap/policy/apex/plugins/executor/jruby/JrubyTaskExecutor.java
plugins/plugins-executor/plugins-executor-jruby/src/test/java/org/onap/policy/apex/plugins/executor/jruby/JrubyTaskExecutorTest.java
plugins/plugins-executor/plugins-executor-mvel/src/main/java/org/onap/policy/apex/plugins/executor/mvel/MvelTaskExecutor.java
plugins/plugins-executor/plugins-executor-mvel/src/test/java/org/onap/policy/apex/plugins/executor/mvel/MvelTaskExecutorTest.java
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/dummyclasses/DummyTaskExecutor.java
services/services-onappf/src/test/java/org/onap/policy/apex/services/onappf/parameters/dummyclasses/DummyTaskExecutor.java
tools/model-generator/src/main/java/org/onap/policy/apex/tools/model/generator/model2cli/Model2Cli.java
tools/model-generator/src/main/java/org/onap/policy/apex/tools/model/generator/model2event/Model2JsonEventSchema.java