diff options
Diffstat (limited to 'examples/examples-periodic')
4 files changed, 227 insertions, 0 deletions
diff --git a/examples/examples-periodic/pom.xml b/examples/examples-periodic/pom.xml new file mode 100644 index 000000000..ed0e5b19f --- /dev/null +++ b/examples/examples-periodic/pom.xml @@ -0,0 +1,74 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2018 Ericsson. 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. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.policy.apex-pdp.examples</groupId> + <artifactId>examples</artifactId> + <version>2.0.0-SNAPSHOT</version> + </parent> + + <artifactId>examples-periodic</artifactId> + <name>${project.artifactId}</name> + <description>APEX periodic event example</description> + + <properties> + <policymodel.name>PeriodicPolicyModel</policymodel.name> + <apex-domains-periodic-dir>${project.basedir}/src</apex-domains-periodic-dir> + </properties> + + <dependencies> + <dependency> + <groupId>org.onap.policy.apex-pdp.auth</groupId> + <artifactId>cli-editor</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + + <build> + <plugins> + <!-- Generate the APEX Policy JSON from the APEX CLI command --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <executions> + <execution> + <id>generate-policy</id> + <phase>compile</phase> + <goals> + <goal>java</goal> + </goals> + <configuration> + <mainClass>org.onap.policy.apex.auth.clieditor.ApexCLIEditorMain</mainClass> + <classpathScope>compile</classpathScope> + <arguments> + <argument>--command-file=${project.basedir}/src/main/resources/policy/${policymodel.name}.apex</argument> + <argument>--output-model-file=${project.build.directory}/classes/${policymodel.name}.json</argument> + <argument>--log-file=${project.build.directory}/${policymodel.name}_policygeneration.log</argument> + <argument>--working-dir=${project.basedir}</argument> + </arguments> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project>
\ No newline at end of file diff --git a/examples/examples-periodic/src/main/resources/logic/OutputTask.js b/examples/examples-periodic/src/main/resources/logic/OutputTask.js new file mode 100644 index 000000000..0e44653c1 --- /dev/null +++ b/examples/examples-periodic/src/main/resources/logic/OutputTask.js @@ -0,0 +1,26 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +executor.logger.info(executor.subject.id); +executor.logger.info(executor.inFields); + +executor.logger.info(executor.outFields); + +var returnValue = executor.TRUE;
\ No newline at end of file diff --git a/examples/examples-periodic/src/main/resources/logic/PeriodicTask.js b/examples/examples-periodic/src/main/resources/logic/PeriodicTask.js new file mode 100644 index 000000000..18dbcda0e --- /dev/null +++ b/examples/examples-periodic/src/main/resources/logic/PeriodicTask.js @@ -0,0 +1,44 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +executor.logger.info(executor.subject.id); +executor.logger.info(executor.inFields); + +var eventList = executor.subject.getOutFieldSchemaHelper("EventList").createNewInstance(); + +var eventType = Java.type("org.onap.policy.apex.service.engine.event.ApexEvent"); + +for (i = 0; i < 5; i++) { + var event = new eventType("InputEvent", "0.0.1", "org.onap.policy.apex.periodic", "APEX", "APEX"); + + var par0 = "Hello: " + i; + var par1 = "Goodbye: " + i; + + event.put("Par0", par0); + event.put("Par1", par1); + + eventList.add(event); +} + +executor.outFields.put("EventList", eventList); + +executor.logger.info(executor.outFields); + +var returnValue = executor.TRUE;
\ No newline at end of file diff --git a/examples/examples-periodic/src/main/resources/policy/PeriodicPolicyModel.apex b/examples/examples-periodic/src/main/resources/policy/PeriodicPolicyModel.apex new file mode 100644 index 000000000..22a07f5f5 --- /dev/null +++ b/examples/examples-periodic/src/main/resources/policy/PeriodicPolicyModel.apex @@ -0,0 +1,83 @@ +#------------------------------------------------------------------------------- +# ============LICENSE_START======================================================= +# Copyright (C) 2016-2018 Ericsson. 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. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= +#------------------------------------------------------------------------------- + +model create name=PeriodicPolicyModel + +schema create name=SimpleLongType flavour=Java schema=java.lang.Long +schema create name=SimpleStringType flavour=Java schema=java.lang.String +schema create name=EventListType flavour=Java schema=org.onap.policy.apex.service.engine.event.ApexEventList + +event create name=PERIODIC_EVENT nameSpace=org.onap.policy.apex.periodic source=APEX target=APEX +event parameter create name=PERIODIC_EVENT parName=PERIODIC_DELAY schemaName=SimpleLongType +event parameter create name=PERIODIC_EVENT parName=PERIODIC_FIRST_TIME schemaName=SimpleLongType +event parameter create name=PERIODIC_EVENT parName=PERIODIC_LAST_TIME schemaName=SimpleLongType +event parameter create name=PERIODIC_EVENT parName=PERIODIC_CURRENT_TIME schemaName=SimpleLongType +event parameter create name=PERIODIC_EVENT parName=PERIODIC_EVENT_COUNT schemaName=SimpleLongType + +event create name=EventListEvent nameSpace=org.onap.policy.apex.periodic source=APEX target=APEX +event parameter create name=EventListEvent parName=EventList schemaName=EventListType + +event create name=InputEvent nameSpace=org.onap.policy.apex.periodic source=APEX target=APEX +event parameter create name=InputEvent parName=Par0 schemaName=SimpleStringType +event parameter create name=InputEvent parName=Par1 schemaName=SimpleStringType + +event create name=OutputEvent nameSpace=org.onap.policy.apex.periodic source=APEX target=APEX +event parameter create name=OutputEvent parName=Par0 schemaName=SimpleStringType +event parameter create name=OutputEvent parName=Par1 schemaName=SimpleStringType + +task create name=PeriodicTask +task inputfield create name=PeriodicTask fieldName=PERIODIC_DELAY schemaName=SimpleLongType +task inputfield create name=PeriodicTask fieldName=PERIODIC_FIRST_TIME schemaName=SimpleLongType +task inputfield create name=PeriodicTask fieldName=PERIODIC_LAST_TIME schemaName=SimpleLongType +task inputfield create name=PeriodicTask fieldName=PERIODIC_CURRENT_TIME schemaName=SimpleLongType +task inputfield create name=PeriodicTask fieldName=PERIODIC_EVENT_COUNT schemaName=SimpleLongType + +task outputfield create name=PeriodicTask fieldName=EventList schemaName=EventListType + +task logic create name=PeriodicTask logicFlavour=JAVASCRIPT logic=LS +#MACROFILE:"src/main/resources/logic/PeriodicTask.js" +LE + +task create name=OutputTask +task inputfield create name=OutputTask fieldName=Par0 schemaName=SimpleStringType +task inputfield create name=OutputTask fieldName=Par1 schemaName=SimpleStringType + +task outputfield create name=OutputTask fieldName=Par0 schemaName=SimpleStringType +task outputfield create name=OutputTask fieldName=Par1 schemaName=SimpleStringType + +task logic create name=OutputTask logicFlavour=JAVASCRIPT logic=LS +#MACROFILE:"src/main/resources/logic/OutputTask.js" +LE + +policy create name=PeriodicPolicy template=freestyle firstState=PeriodicState + +policy state create name=PeriodicPolicy stateName=PeriodicState triggerName=PERIODIC_EVENT defaultTaskName=PeriodicTask +policy state output create name=PeriodicPolicy stateName=PeriodicState outputName=PeriodicOutput eventName=EventListEvent +policy state taskref create name=PeriodicPolicy stateName=PeriodicState taskName=PeriodicTask outputType=DIRECT outputName=PeriodicOutput + + +policy create name=OutputPolicy template=freestyle firstState=OutputState + +policy state create name=OutputPolicy stateName=OutputState triggerName=InputEvent defaultTaskName=OutputTask +policy state output create name=OutputPolicy stateName=OutputState outputName=OutputOutput eventName=OutputEvent +policy state taskref create name=OutputPolicy stateName=OutputState taskName=OutputTask outputType=DIRECT outputName=OutputOutput + +validate + |