summaryrefslogtreecommitdiffstats
path: root/examples/examples-periodic
diff options
context:
space:
mode:
Diffstat (limited to 'examples/examples-periodic')
-rw-r--r--examples/examples-periodic/pom.xml74
-rw-r--r--examples/examples-periodic/src/main/resources/logic/OutputTask.js26
-rw-r--r--examples/examples-periodic/src/main/resources/logic/PeriodicTask.js44
-rw-r--r--examples/examples-periodic/src/main/resources/policy/PeriodicPolicyModel.apex83
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
+