policy routing and reorg into policy-domains

- Native Drools Controller Policy support.
- Move domain policies into the policy-domains project.
- Route legacy/compliant operational policies to one or
  all controller supporting the policy's policy type.
- Enhancements to scripts to invoke commands external
  to the container.

Issue-ID: POLICY-2388
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
Change-Id: Id41f04d10a28d2ea86bdd41334e499c28d0438ae
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
diff --git a/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json b/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json
deleted file mode 100644
index 801859b..0000000
--- a/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.Operational-1.0.0.schema.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
-    "definitions": {},
-    "$schema": "http://json-schema.org/draft-07/schema#",
-    "$id": "http://www.onap.org/policy/models/schemas/onap.policies.controlloop.Operational.schema.json",
-    "type": "object",
-    "title": "Root Schema for legacy onap.policies.controlloop.Operational policy type domain policies",
-    "required": [
-        "type",
-        "type_version",
-        "name",
-        "version",
-        "properties"
-    ],
-    "properties": {
-        "type": {
-            "$id": "#/properties/type",
-            "type": "string",
-            "title": "Policy Type",
-            "default": "onap.policies.controlloop.Operational",
-            "examples": [
-                "onap.policies.controlloop.Operational"
-            ],
-            "pattern": "^(.+)$"
-        },
-        "type_version": {
-            "$id": "#/properties/type_version",
-            "type": "string",
-            "title": "Policy Type Version",
-            "examples": [
-                "1.0.0"
-            ],
-            "pattern": "^(.+)$"
-        },
-        "version": {
-            "$id": "#/properties/version",
-            "type": "string",
-            "title": "Version",
-            "examples": [
-                "1.0.0"
-            ],
-            "pattern": "^(.+)$"
-        },
-        "name": {
-            "$id": "#/properties/name",
-            "type": "string",
-            "title": "Name",
-            "examples": [
-                "example"
-            ],
-            "pattern": "^(.+)$"
-        },
-        "metadata": {
-            "$id": "#/properties/metadata",
-            "type": "object",
-            "title": "Metadata",
-            "required": [
-                "policy-id"
-            ],
-            "properties": {
-                "policy-id": {
-                    "$id": "#/properties/metadata/properties/policy-id",
-                    "type": "string",
-                    "title": "Policy Name",
-                    "examples": [
-                        "example"
-                    ],
-                    "pattern": "^(.+)$"
-                }
-            }
-        },
-        "properties": {
-            "$id": "#/properties/properties",
-            "type": "object",
-            "title": "Properties",
-            "required": [
-                "content"
-            ],
-            "properties": {
-                "content": {
-                    "$id": "#/properties/properties/properties/content",
-                    "type": "string",
-                    "title": "Legacy policy in yaml format",
-                    "examples": [
-                        "controlLoop%3A%0A%20%20version%3A%202.0.0%0A%20%20controlLoopName%3A%20ControlLoop-vCPEv2-48f0c2c3-a172-4192-9ae3-052274181b6e%0A%20%20trigger_policy%3A%20unique-policy-id-1-restart%0A%20%20timeout%3A%203600%0A%20%20abatement%3A%20true%0A%20%0Apolicies%3A%0A%20%20-%20id%3A%20unique-policy-id-1-restart%0A%20%20%20%20name%3A%20Restart%20the%20VM%0A%20%20%20%20description%3A%0A%20%20%20%20actor%3A%20APPC%0A%20%20%20%20recipe%3A%20Restart%0A%20%20%20%20target%3A%0A%20%20%20%20%20%20type%3A%20VM%0A%20%20%20%20retry%3A%203%0A%20%20%20%20timeout%3A%201200%0A%20%20%20%20success%3A%20final_success%0A%20%20%20%20failure%3A%20final_failure%0A%20%20%20%20failure_timeout%3A%20final_failure_timeout%0A%20%20%20%20failure_retries%3A%20final_failure_retries%0A%20%20%20%20failure_exception%3A%20final_failure_exception%0A%20%20%20%20failure_guard%3A%20final_failure_guard"
-                    ],
-                    "pattern": "^(.+)$"
-                }
-            }
-        }
-    }
-}
diff --git a/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json b/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json
deleted file mode 100644
index 5d032f0..0000000
--- a/feature-lifecycle/src/test/resources/schemas/onap.policies.controlloop.operational.common.Drools-1.0.0.schema.json
+++ /dev/null
@@ -1,331 +0,0 @@
-{
-    "definitions": {},
-    "$schema": "http://json-schema.org/draft-07/schema#",
-    "$id": "http://www.onap.org/policy/models/schemas/onap.policies.controlloop.operational.common.Drools.schema.json",
-    "type": "object",
-    "title": "The Root Schema",
-    "required": [
-        "type",
-        "type_version",
-        "version",
-        "metadata",
-        "properties"
-    ],
-    "properties": {
-        "type": {
-            "$id": "#/properties/type",
-            "type": "string",
-            "title": "Policy Type",
-            "default": "onap.policies.controlloop.operational.common.Drools",
-            "examples": [
-                "onap.policies.controlloop.operational.common.Drools"
-            ],
-            "pattern": "^(.+)$"
-        },
-        "type_version": {
-            "$id": "#/properties/type_version",
-            "type": "string",
-            "title": "Policy Type Version",
-            "default": "1.0.0",
-            "examples": [
-                "1.0.0"
-            ],
-            "pattern": "^(.+)$"
-        },
-        "name": {
-            "$id": "#/properties/name",
-            "type": "string",
-            "title": "Policy Name",
-            "default": "",
-            "examples": [
-                "example"
-            ],
-            "pattern": "^(.*)$"
-        },
-        "version": {
-            "$id": "#/properties/version",
-            "type": "string",
-            "title": "Policy Version",
-            "default": "1.0.0",
-            "examples": [
-                "1.0.0"
-            ],
-            "pattern": "^(.+)$"
-        },
-        "metadata": {
-            "$id": "#/properties/metadata",
-            "type": "object",
-            "title": "Metadata",
-            "required": [
-                "policy-id"
-            ],
-            "properties": {
-                "policy-id": {
-                    "$id": "#/properties/metadata/properties/policy-id",
-                    "type": "string",
-                    "title": "Policy ID",
-                    "examples": [
-                        "operational.restart"
-                    ],
-                    "pattern": "^(.+)$"
-                }
-            }
-        },
-        "properties": {
-            "$id": "#/properties/properties",
-            "type": "object",
-            "title": "Properties",
-            "required": [
-                "id",
-                "timeout",
-                "abatement",
-                "trigger",
-                "operations",
-                "controllerName"
-            ],
-            "properties": {
-                "id": {
-                    "$id": "#/properties/properties/properties/id",
-                    "type": "string",
-                    "title": "Control Loop Name",
-                    "examples": [
-                        "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e"
-                    ],
-                    "pattern": "^(.+)$"
-                },
-                "timeout": {
-                    "$id": "#/properties/properties/properties/timeout",
-                    "type": "integer",
-                    "title": "Timeout in seconds",
-                    "minimum": 1,
-                    "default": 30,
-                    "examples": [
-                        3600
-                    ]
-                },
-                "abatement": {
-                    "$id": "#/properties/properties/properties/abatement",
-                    "type": "boolean",
-                    "title": "Abatement",
-                    "default": false,
-                    "examples": [
-                        true
-                    ]
-                },
-                "trigger": {
-                    "$id": "#/properties/properties/properties/trigger",
-                    "type": "string",
-                    "title": "Trigger Operation",
-                    "examples": [
-                        "unique-policy-id-1-restart"
-                    ],
-                    "pattern": "^(.+)$"
-                },
-                "operations": {
-                    "$id": "#/properties/properties/properties/operations",
-                    "type": "array",
-                    "title": "Operations",
-                    "items": {
-                        "$id": "#/properties/properties/properties/operations/items",
-                        "type": "object",
-                        "title": "Items",
-                        "uniqueItems": true,
-                        "required": [
-                            "id",
-                            "operation",
-                            "timeout",
-                            "retries",
-                            "success",
-                            "failure"
-                        ],
-                        "properties": {
-                            "id": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/id",
-                                "type": "string",
-                                "title": "Operation Identifier",
-                                "examples": [
-                                    "unique-policy-id-1-restart"
-                                ],
-                                "pattern": "^(.+)$"
-                            },
-                            "description": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/description",
-                                "type": "string",
-                                "title": "Description",
-                                "examples": [
-                                    "Restart the VM"
-                                ],
-                                "pattern": "^(.+)$"
-                            },
-                            "operation": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/operation",
-                                "type": "object",
-                                "title": "Operation",
-                                "required": [
-                                    "actor",
-                                    "operation",
-                                    "target"
-                                ],
-                                "properties": {
-                                    "actor": {
-                                        "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/actor",
-                                        "type": "string",
-                                        "title": "Actor",
-                                        "examples": [
-                                            "APPC"
-                                        ],
-                                        "pattern": "^(.+)$"
-                                    },
-                                    "operation": {
-                                        "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/operation",
-                                        "type": "string",
-                                        "title": "Operation Name",
-                                        "examples": [
-                                            "Restart"
-                                        ],
-                                        "pattern": "^(.+)$"
-                                    },
-                                    "target": {
-                                        "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/target",
-                                        "type": "object",
-                                        "title": "Target",
-                                        "required": [
-                                            "targetType"
-                                        ],
-                                        "properties": {
-                                            "targetType": {
-                                                "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/target/properties/targetType",
-                                                "type": "string",
-                                                "title": "Target Type",
-                                                "examples": [
-                                                    "VNF"
-                                                ],
-                                                "pattern": "^(.+)$"
-                                            },
-                                            "entityIds": {
-                                                "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/target/properties/entityIds",
-                                                "type": "object",
-                                                "title": "Arbitrary Resource Identities",
-                                                "examples": [
-                                                    "Eace933104d443b496b8.nodes.heat.vpg"
-                                                ],
-                                                "additionalProperties": {
-                                                    "type": "string",
-                                                    "pattern": "^(.+)$"
-                                                }
-                                            }
-                                        }
-                                    },
-                                    "payload": {
-                                        "$id": "#/properties/properties/properties/operations/items/properties/operation/properties/payload",
-                                        "type": "object",
-                                        "title": "Payload",
-                                        "additionalProperties": {
-                                            "type": "string",
-                                            "pattern": "^(.+)$"
-                                        }
-                                    }
-                                }
-                            },
-                            "timeout": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/timeout",
-                                "type": "integer",
-                                "title": "Operation Timeout in seconds",
-                                "default": 10,
-                                "minimum": 1,
-                                "examples": [
-                                    1200
-                                ]
-                            },
-                            "retries": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/retries",
-                                "type": "integer",
-                                "title": "Number of Retries",
-                                "default": 0,
-                                "examples": [
-                                    3
-                                ]
-                            },
-                            "success": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/success",
-                                "type": "string",
-                                "title": "Success Treatment",
-                                "default": "final_success",
-                                "examples": [
-                                    "final_success",
-                                    "unique-policy-id-2"
-                                ],
-                                "pattern": "^(.+)$"
-                            },
-                            "failure": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/failure",
-                                "type": "string",
-                                "title": "Failure Treatment",
-                                "default": "final_failure",
-                                "examples": [
-                                    "final_failure",
-                                    "unique-policy-id-2"
-                                ],
-                                "pattern": "^(.+)$"
-                            },
-                            "failure_timeout": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/failure_timeout",
-                                "type": "string",
-                                "title": "Failure Timeout Treatment",
-                                "default": "final_failure_timeout",
-                                "examples": [
-                                    "final_failure_timeout",
-                                    "unique-policy-id-2"
-                                ],
-                                "pattern": "^(.+)$"
-                            },
-                            "failure_retries": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/failure_retries",
-                                "type": "string",
-                                "title": "Failure Retry Treatment",
-                                "default": "final_failure_retries",
-                                "examples": [
-                                    "final_failure_retries",
-                                    "unique-policy-id-2"
-                                ],
-                                "pattern": "^(.+)$"
-                            },
-                            "failure_exception": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/failure_exception",
-                                "type": "string",
-                                "title": "Failure Exception Treatment",
-                                "default": "",
-                                "examples": [
-                                    "final_failure_exception",
-                                    "unique-policy-id-2"
-                                ],
-                                "pattern": "^(.+)$"
-                            },
-                            "failure_guard": {
-                                "$id": "#/properties/properties/properties/operations/items/properties/failure_guard",
-                                "type": "string",
-                                "title": "Failure Guard Treatment",
-                                "default": "final_failure_guard",
-                                "examples": [
-                                    "final_failure_guard",
-                                    "unique-policy-id-2"
-                                ],
-                                "pattern": "^(.+)$"
-                            }
-                        }
-                    }
-                },
-                "controllerName": {
-                    "$id": "#/properties/properties/properties/controllerName",
-                    "type": "string",
-                    "title": "Controller Name",
-                    "default": "",
-                    "examples": [
-                        "usecases"
-                    ],
-                    "pattern": "^(.+)$"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/feature-lifecycle/src/test/resources/example.policy.native.drools.tosca.json b/feature-lifecycle/src/test/resources/tosca-policy-native-artifact-example.json
similarity index 92%
rename from feature-lifecycle/src/test/resources/example.policy.native.drools.tosca.json
rename to feature-lifecycle/src/test/resources/tosca-policy-native-artifact-example.json
index f3f34b6..f521953 100644
--- a/feature-lifecycle/src/test/resources/example.policy.native.drools.tosca.json
+++ b/feature-lifecycle/src/test/resources/tosca-policy-native-artifact-example.json
@@ -4,7 +4,7 @@
         "policies": [
             {
                 "example": {
-                    "type": "onap.policies.native.Drools",
+                    "type": "onap.policies.native.drools.Artifact",
                     "type_version": "1.0.0",
                     "version": "1.0.0",
                     "name": "example",
diff --git a/feature-lifecycle/src/test/resources/example.policy.drools.controller.tosca.json b/feature-lifecycle/src/test/resources/tosca-policy-native-controller-example.json
similarity index 78%
rename from feature-lifecycle/src/test/resources/example.policy.drools.controller.tosca.json
rename to feature-lifecycle/src/test/resources/tosca-policy-native-controller-example.json
index f5a9151..3d71684 100644
--- a/feature-lifecycle/src/test/resources/example.policy.drools.controller.tosca.json
+++ b/feature-lifecycle/src/test/resources/tosca-policy-native-controller-example.json
@@ -4,7 +4,7 @@
         "policies": [
             {
                 "example": {
-                    "type": "onap.policies.drools.Controller",
+                    "type": "onap.policies.native.drools.Controller",
                     "type_version": "1.0.0",
                     "version": "1.0.0",
                     "name": "example",
@@ -16,14 +16,18 @@
                         "sourceTopics": [
                             {
                                 "topicName": "DCAE_TOPIC",
-                                "serialization": [
+                                "events": [
                                     {
                                         "eventClass": "org.onap.policy.controlloop.CanonicalOnset",
                                         "eventFilter": "[?($.closedLoopEventStatus == 'ONSET')]",
-                                        "customSerializer": {
+                                        "customSerialization": {
                                             "customSerializerClass": "org.onap.policy.controlloop.util.Serialization",
                                             "jsonParser": "gson"
                                         }
+                                    },
+                                    {
+                                        "eventClass": "org.onap.policy.controlloop.CanonicalAbated",
+                                        "eventFilter": "[?($.closedLoopEventStatus == 'ABATED')]"
                                     }
                                 ]
                             }
@@ -31,11 +35,11 @@
                         "sinkTopics": [
                             {
                                 "topicName": "APPC-CL",
-                                "serialization": [
+                                "events": [
                                     {
                                         "eventClass": "org.onap.policy.appc.Response",
                                         "eventFilter": "[?($.CommonHeader && $.Status)]",
-                                        "customSerializer": {
+                                        "customSerialization": {
                                             "customSerializerClass": "org.onap.policy.appc.util.Serialization",
                                             "jsonParser": "gsonPretty"
                                         }