summaryrefslogtreecommitdiffstats
path: root/model/event-model/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'model/event-model/src/test')
-rw-r--r--model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestEventModel.java89
-rw-r--r--model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestEvents.java298
-rw-r--r--model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestField.java136
-rw-r--r--model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/handling/TestApexEventModel.java184
-rw-r--r--model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/handling/TestApexEventModelCreator.java309
-rw-r--r--model/event-model/src/test/resources/META-INF/persistence.xml56
-rw-r--r--model/event-model/src/test/resources/logback-test.xml74
7 files changed, 1146 insertions, 0 deletions
diff --git a/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestEventModel.java b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestEventModel.java
new file mode 100644
index 000000000..dbff0666d
--- /dev/null
+++ b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestEventModel.java
@@ -0,0 +1,89 @@
+/*-
+ * ============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=========================================================
+ */
+
+package org.onap.policy.apex.model.eventmodel.concepts;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEventModel;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
+
+/**
+ * @author Liam Fallon (liam.fallon@ericsson.com)
+ */
+public class TestEventModel {
+
+ @Test
+ public void testEventModel() {
+ assertNotNull(new AxEventModel());
+ assertNotNull(new AxEventModel(new AxArtifactKey()));
+ assertNotNull(
+ new AxEventModel(new AxArtifactKey(), new AxContextSchemas(), new AxKeyInformation(), new AxEvents()));
+
+ final AxArtifactKey modelKey = new AxArtifactKey("ModelKey", "0.0.1");
+ final AxArtifactKey schemasKey = new AxArtifactKey("SchemasKey", "0.0.1");
+ final AxArtifactKey eventsKey = new AxArtifactKey("EventsKey", "0.0.1");
+ final AxArtifactKey keyInfoKey = new AxArtifactKey("SchemasKey", "0.0.1");
+ final AxEventModel model = new AxEventModel(modelKey, new AxContextSchemas(schemasKey),
+ new AxKeyInformation(keyInfoKey), new AxEvents(eventsKey));
+ model.register();
+
+ model.clean();
+ assertNotNull(model);
+ assertEquals("AxEventModel:(AxEventModel:(key=AxArtifactKey:(nam", model.toString().substring(0, 50));
+
+ final AxEventModel clonedModel = new AxEventModel(model);
+
+ assertFalse(model.hashCode() == 0);
+
+ assertTrue(model.equals(model));
+ assertTrue(model.equals(clonedModel));
+ assertFalse(model.equals("Hello"));
+ assertFalse(model.equals(new AxEventModel(new AxArtifactKey())));
+ assertFalse(model.equals(new AxEventModel(modelKey, new AxContextSchemas(), new AxKeyInformation(keyInfoKey),
+ new AxEvents(eventsKey))));
+ assertFalse(model.equals(new AxEventModel(modelKey, new AxContextSchemas(schemasKey), new AxKeyInformation(),
+ new AxEvents(eventsKey))));
+ assertFalse(model.equals(new AxEventModel(modelKey, new AxContextSchemas(schemasKey),
+ new AxKeyInformation(keyInfoKey), new AxEvents())));
+ assertTrue(model.equals(new AxEventModel(modelKey, new AxContextSchemas(schemasKey),
+ new AxKeyInformation(keyInfoKey), new AxEvents(eventsKey))));
+
+ assertEquals(0, model.compareTo(model));
+ assertEquals(0, model.compareTo(clonedModel));
+ assertNotEquals(0, model.compareTo(new AxArtifactKey()));
+ assertNotEquals(0, model.compareTo(new AxEventModel(modelKey, new AxContextSchemas(),
+ new AxKeyInformation(keyInfoKey), new AxEvents(eventsKey))));
+ assertNotEquals(0, model.compareTo(new AxEventModel(modelKey, new AxContextSchemas(schemasKey),
+ new AxKeyInformation(), new AxEvents(eventsKey))));
+ assertNotEquals(0, model.compareTo(new AxEventModel(modelKey, new AxContextSchemas(schemasKey),
+ new AxKeyInformation(keyInfoKey), new AxEvents())));
+ assertEquals(0, model.compareTo(new AxEventModel(modelKey, new AxContextSchemas(schemasKey),
+ new AxKeyInformation(keyInfoKey), new AxEvents(eventsKey))));
+ }
+}
diff --git a/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestEvents.java b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestEvents.java
new file mode 100644
index 000000000..5456dfad8
--- /dev/null
+++ b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestEvents.java
@@ -0,0 +1,298 @@
+/*-
+ * ============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=========================================================
+ */
+
+package org.onap.policy.apex.model.eventmodel.concepts;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import org.junit.Test;
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
+import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
+import org.onap.policy.apex.model.eventmodel.concepts.AxField;
+
+/**
+ * @author Liam Fallon (liam.fallon@ericsson.com)
+ */
+public class TestEvents {
+
+ @Test
+ public void testEvents() {
+ final TreeMap<String, AxField> parameterMap = new TreeMap<>();
+ final TreeMap<String, AxField> parameterMapEmpty = new TreeMap<>();
+
+ assertNotNull(new AxEvent());
+ assertNotNull(new AxEvent(new AxArtifactKey()));
+ assertNotNull(new AxEvent(new AxArtifactKey(), "namespace"));
+ assertNotNull(new AxEvent(new AxArtifactKey(), "namespace", "source", "target"));
+ assertNotNull(new AxEvent(new AxArtifactKey(), "namespace", "source", "target"));
+ assertNotNull(new AxEvent(new AxArtifactKey(), "namespace", "source", "target", parameterMap));
+
+ final AxEvent event = new AxEvent();
+
+ final AxArtifactKey eventKey = new AxArtifactKey("EventName", "0.0.1");
+ event.setKey(eventKey);
+ assertEquals("EventName:0.0.1", event.getKey().getID());
+ assertEquals("EventName:0.0.1", event.getKeys().get(0).getID());
+
+ event.setNameSpace("namespace");
+ assertEquals("namespace", event.getNameSpace());
+
+ event.setSource("source");
+ assertEquals("source", event.getSource());
+
+ event.setTarget("target");
+ assertEquals("target", event.getTarget());
+
+ event.setParameterMap(parameterMap);
+ assertEquals(0, event.getParameterMap().size());
+
+ final AxField eventField =
+ new AxField(new AxReferenceKey(eventKey, "Field0"), new AxArtifactKey("Field0Schema", "0.0.1"));
+ event.getParameterMap().put(eventField.getKey().getLocalName(), eventField);
+ assertEquals(1, event.getParameterMap().size());
+
+ final AxField eventFieldBadParent =
+ new AxField(new AxReferenceKey(new AxArtifactKey("OtherEvent", "0.0.01"), "Field0"),
+ new AxArtifactKey("Field0Schema", "0.0.1"));
+
+ final AxArtifactKey newEventKey = new AxArtifactKey("NewEventName", "0.0.1");
+ event.setKey(newEventKey);
+ assertEquals("NewEventName:0.0.1", event.getKey().getID());
+ assertEquals("NewEventName:0.0.1", event.getKeys().get(0).getID());
+ assertEquals("NewEventName:0.0.1",
+ event.getParameterMap().get("Field0").getKey().getParentArtifactKey().getID());
+ event.setKey(eventKey);
+ assertEquals("EventName:0.0.1", event.getKey().getID());
+ assertEquals("EventName:0.0.1", event.getKeys().get(0).getID());
+
+ assertTrue("Field0", event.getFields().contains(eventField));
+ assertTrue(event.hasFields(new TreeSet<AxField>(parameterMap.values())));
+
+ AxValidationResult result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(AxValidationResult.ValidationResult.VALID, result.getValidationResult());
+
+ event.setKey(AxArtifactKey.getNullKey());
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ event.setKey(eventKey);
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ event.setNameSpace("");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.WARNING, result.getValidationResult());
+
+ event.setNameSpace("namespace");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ event.setSource("");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
+
+ event.setSource("source");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ event.setTarget("");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
+
+ event.setTarget("target");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ event.getParameterMap().put(AxKey.NULL_KEY_NAME, null);
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ event.getParameterMap().remove(AxKey.NULL_KEY_NAME);
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ event.getParameterMap().put("NullField", null);
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ event.getParameterMap().remove("NullField");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ event.getParameterMap().put("NullField", eventField);
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ event.getParameterMap().remove("NullField");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ event.getParameterMap().put("BadParent", eventFieldBadParent);
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ event.getParameterMap().remove("BadParent");
+ result = new AxValidationResult();
+ result = event.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ event.clean();
+ event.afterUnmarshal(null, null);
+
+ final AxEvent clonedEvent = new AxEvent(event);
+ assertEquals("AxEvent:(key=AxArtifactKey:(name=EventName,version=0.0.1),nameSpace=namespace",
+ clonedEvent.toString().substring(0, 77));
+
+ assertFalse(event.hashCode() == 0);
+
+ assertTrue(event.equals(event));
+ assertTrue(event.equals(clonedEvent));
+ assertFalse(event.equals(null));
+ assertFalse(event.equals("Hello"));
+ assertFalse(
+ event.equals(new AxEvent(AxArtifactKey.getNullKey(), "namespace", "source", "target", parameterMap)));
+ assertFalse(event.equals(new AxEvent(eventKey, "namespace1", "source", "target", parameterMap)));
+ assertFalse(event.equals(new AxEvent(eventKey, "namespace", "source2", "target", parameterMap)));
+ assertFalse(event.equals(new AxEvent(eventKey, "namespace", "source", "target3", parameterMap)));
+ assertFalse(event.equals(new AxEvent(eventKey, "namespace", "source", "target", parameterMapEmpty)));
+ assertTrue(event.equals(new AxEvent(eventKey, "namespace", "source", "target", parameterMap)));
+
+ assertEquals(0, event.compareTo(event));
+ assertEquals(0, event.compareTo(clonedEvent));
+ assertNotEquals(0, event.compareTo(new AxArtifactKey()));
+ assertNotEquals(0, event.compareTo(null));
+ assertNotEquals(0, event
+ .compareTo(new AxEvent(AxArtifactKey.getNullKey(), "namespace", "source", "target", parameterMap)));
+ assertNotEquals(0, event.compareTo(new AxEvent(eventKey, "namespace1", "source", "target", parameterMap)));
+ assertNotEquals(0, event.compareTo(new AxEvent(eventKey, "namespace", "source2", "target", parameterMap)));
+ assertNotEquals(0, event.compareTo(new AxEvent(eventKey, "namespace", "source", "target3", parameterMap)));
+ assertNotEquals(0, event.compareTo(new AxEvent(eventKey, "namespace", "source", "target", parameterMapEmpty)));
+ assertEquals(0, event.compareTo(new AxEvent(eventKey, "namespace", "source", "target", parameterMap)));
+
+ assertNotNull(event.getKeys());
+
+ final AxEvents events = new AxEvents();
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ // Invalid, no events in event map
+ events.setKey(new AxArtifactKey("EventsKey", "0.0.1"));
+ assertEquals("EventsKey:0.0.1", events.getKey().getID());
+
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ events.getEventMap().put(eventKey, event);
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ events.getEventMap().put(AxArtifactKey.getNullKey(), null);
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ events.getEventMap().remove(AxArtifactKey.getNullKey());
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ events.getEventMap().put(new AxArtifactKey("NullValueKey", "0.0.1"), null);
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ events.getEventMap().remove(new AxArtifactKey("NullValueKey", "0.0.1"));
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ events.getEventMap().put(new AxArtifactKey("BadEventKey", "0.0.1"), event);
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ events.getEventMap().remove(new AxArtifactKey("BadEventKey", "0.0.1"));
+ result = new AxValidationResult();
+ result = events.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ events.clean();
+ events.afterUnmarshal(null, null);
+
+ final AxEvents clonedEvents = new AxEvents(events);
+ assertEquals("AxEvents:(key=AxArtifactKey:(name=EventsKey,version=0.0.1),e",
+ clonedEvents.toString().substring(0, 60));
+
+ assertFalse(events.hashCode() == 0);
+
+ assertTrue(events.equals(events));
+ assertTrue(events.equals(clonedEvents));
+ assertFalse(events.equals(null));
+ assertFalse(events.equals("Hello"));
+ assertFalse(events.equals(new AxEvents(new AxArtifactKey())));
+
+ assertEquals(0, events.compareTo(events));
+ assertEquals(0, events.compareTo(clonedEvents));
+ assertNotEquals(0, events.compareTo(null));
+ assertNotEquals(0, events.compareTo(new AxArtifactKey()));
+ assertNotEquals(0, events.compareTo(new AxEvents(new AxArtifactKey())));
+
+ clonedEvents.get(eventKey).setSource("AnotherSource");
+ assertNotEquals(0, events.compareTo(clonedEvents));
+
+ assertEquals(events.getKey(), events.getKeys().get(0));
+
+ assertEquals("EventName", events.get("EventName").getKey().getName());
+ assertEquals("EventName", events.get("EventName", "0.0.1").getKey().getName());
+ assertEquals(1, events.getAll("EventName", "0.0.1").size());
+ assertEquals(0, events.getAll("NonExistantEventsName").size());
+ }
+}
diff --git a/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestField.java b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestField.java
new file mode 100644
index 000000000..11b8b745e
--- /dev/null
+++ b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/concepts/TestField.java
@@ -0,0 +1,136 @@
+/*-
+ * ============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=========================================================
+ */
+
+package org.onap.policy.apex.model.eventmodel.concepts;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
+import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult;
+import org.onap.policy.apex.model.eventmodel.concepts.AxField;
+import org.onap.policy.apex.model.eventmodel.concepts.AxInputField;
+import org.onap.policy.apex.model.eventmodel.concepts.AxOutputField;
+
+/**
+ * @author Liam Fallon (liam.fallon@ericsson.com)
+ */
+public class TestField {
+
+ @Test
+ public void testField() {
+ assertNotNull(new AxField());
+ assertNotNull(new AxField(new AxReferenceKey()));
+ assertNotNull(new AxField(new AxReferenceKey(), new AxArtifactKey()));
+ assertNotNull(new AxField(new AxReferenceKey(), new AxArtifactKey(), false));
+ assertNotNull(new AxField("LocalName", new AxArtifactKey(), false));
+ assertNotNull(new AxField("LocalName", new AxArtifactKey()));
+ assertNotNull(new AxField("LocalName", new AxArtifactKey(), false));
+
+ assertNotNull(new AxInputField());
+ assertNotNull(new AxInputField(new AxReferenceKey()));
+ assertNotNull(new AxInputField(new AxReferenceKey(), new AxArtifactKey()));
+ assertNotNull(new AxInputField(new AxReferenceKey(), new AxArtifactKey(), true));
+ assertNotNull(new AxInputField("LocalName", new AxArtifactKey()));
+ assertNotNull(new AxInputField(new AxInputField()));
+
+ assertNotNull(new AxOutputField());
+ assertNotNull(new AxOutputField(new AxReferenceKey()));
+ assertNotNull(new AxOutputField(new AxReferenceKey(), new AxArtifactKey()));
+ assertNotNull(new AxOutputField(new AxReferenceKey(), new AxArtifactKey(), false));
+ assertNotNull(new AxOutputField("LocalName", new AxArtifactKey()));
+ assertNotNull(new AxOutputField(new AxOutputField()));
+
+ final AxField field = new AxField();
+
+ final AxReferenceKey fieldKey = new AxReferenceKey("FieldName", "0.0.1", "PLN", "LN");
+ field.setKey(fieldKey);
+ assertEquals("FieldName:0.0.1:PLN:LN", field.getKey().getID());
+ assertEquals("FieldName:0.0.1:PLN:LN", field.getKeys().get(0).getID());
+
+ final AxArtifactKey schemaKey = new AxArtifactKey("SchemaName", "0.0.1");
+ field.setSchema(schemaKey);
+ assertEquals("SchemaName:0.0.1", field.getSchema().getID());
+
+ assertEquals(false, field.getOptional());
+ field.setOptional(true);
+ assertEquals(true, field.getOptional());
+
+ AxValidationResult result = new AxValidationResult();
+ result = field.validate(result);
+ assertEquals(AxValidationResult.ValidationResult.VALID, result.getValidationResult());
+
+ field.setKey(AxReferenceKey.getNullKey());
+ result = new AxValidationResult();
+ result = field.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ field.setKey(fieldKey);
+ result = new AxValidationResult();
+ result = field.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ field.setSchema(AxArtifactKey.getNullKey());
+ result = new AxValidationResult();
+ result = field.validate(result);
+ assertEquals(ValidationResult.INVALID, result.getValidationResult());
+
+ field.setSchema(schemaKey);
+ result = new AxValidationResult();
+ result = field.validate(result);
+ assertEquals(ValidationResult.VALID, result.getValidationResult());
+
+ field.clean();
+
+ final AxField clonedField = new AxField(field);
+ assertEquals(
+ "AxField:(key=AxReferenceKey:(parentKeyName=FieldName,parentKeyVersion=0.0.1,parentLocalName=PLN,localName=LN),fieldSchemaKey=AxArtifactKey:(name=SchemaName,version=0.0.1),optional=true)",
+ clonedField.toString());
+
+ assertFalse(field.hashCode() == 0);
+
+ assertTrue(field.equals(field));
+ assertTrue(field.equals(clonedField));
+ assertFalse(field.equals(null));
+ assertFalse(field.equals("Hello"));
+ assertFalse(field.equals(new AxField(AxReferenceKey.getNullKey(), AxArtifactKey.getNullKey(), false)));
+ assertFalse(field.equals(new AxField(fieldKey, AxArtifactKey.getNullKey(), false)));
+ assertFalse(field.equals(new AxField(fieldKey, schemaKey, false)));
+ assertTrue(field.equals(new AxField(fieldKey, schemaKey, true)));
+
+ assertEquals(0, field.compareTo(field));
+ assertEquals(0, field.compareTo(clonedField));
+ assertNotEquals(0, field.compareTo(new AxArtifactKey()));
+ assertNotEquals(0, field.compareTo(null));
+ assertNotEquals(0,
+ field.compareTo(new AxField(AxReferenceKey.getNullKey(), AxArtifactKey.getNullKey(), false)));
+ assertNotEquals(0, field.compareTo(new AxField(fieldKey, AxArtifactKey.getNullKey(), false)));
+ assertNotEquals(0, field.compareTo(new AxField(fieldKey, schemaKey, false)));
+ assertEquals(0, field.compareTo(new AxField(fieldKey, schemaKey, true)));
+
+ assertNotNull(field.getKeys());
+ }
+}
diff --git a/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/handling/TestApexEventModel.java b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/handling/TestApexEventModel.java
new file mode 100644
index 000000000..ee2638a54
--- /dev/null
+++ b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/handling/TestApexEventModel.java
@@ -0,0 +1,184 @@
+/*-
+ * ============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=========================================================
+ */
+
+package org.onap.policy.apex.model.eventmodel.handling;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.sql.Connection;
+import java.sql.DriverManager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
+import org.onap.policy.apex.model.basicmodel.dao.DAOParameters;
+import org.onap.policy.apex.model.basicmodel.test.TestApexModel;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEventModel;
+
+public class TestApexEventModel {
+ private Connection connection;
+ TestApexModel<AxEventModel> testApexModel;
+
+ @Before
+ public void setup() throws Exception {
+ Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
+ connection = DriverManager.getConnection("jdbc:derby:memory:apex_test;create=true");
+
+ testApexModel = new TestApexModel<AxEventModel>(AxEventModel.class, new TestApexEventModelCreator());
+ }
+
+ @After
+ public void teardown() throws Exception {
+ connection.close();
+ new File("derby.log").delete();
+ }
+
+ @Test
+ public void testModelValid() throws Exception {
+ final AxValidationResult result = testApexModel.testApexModelValid();
+ assertTrue(result.toString().equals(VALID_MODEL_STRING));
+ }
+
+ @Test
+ public void testApexModelVaidateObservation() throws Exception {
+ final AxValidationResult result = testApexModel.testApexModelVaidateObservation();
+ assertTrue(result.toString().equals(OBSERVATION_MODEL_STRING));
+ }
+
+ @Test
+ public void testApexModelVaidateWarning() throws Exception {
+ final AxValidationResult result = testApexModel.testApexModelVaidateWarning();
+ assertTrue(result.toString().equals(WARNING_MODEL_STRING));
+ }
+
+ @Test
+ public void testModelVaidateInvalidModel() throws Exception {
+ final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel();
+ assertTrue(result.toString().equals(INVALID_MODEL_STRING));
+ }
+
+ @Test
+ public void testModelVaidateMalstructured() throws Exception {
+ final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured();
+ assertTrue(result.toString().equals(INVALID_MODEL_MALSTRUCTURED_STRING));
+ }
+
+ @Test
+ public void testModelWriteReadXML() throws Exception {
+ testApexModel.testApexModelWriteReadXML();
+ }
+
+ @Test
+ public void testModelWriteReadJSON() throws Exception {
+ testApexModel.testApexModelWriteReadJSON();
+ }
+
+ @Test
+ public void testModelWriteReadJPA() throws Exception {
+ final DAOParameters daoParameters = new DAOParameters();
+ daoParameters.setPluginClass("org.onap.policy.apex.model.basicmodel.dao.impl.DefaultApexDao");
+ daoParameters.setPersistenceUnit("DAOTest");
+
+ testApexModel.testApexModelWriteReadJPA(daoParameters);
+ }
+
+ private static final String VALID_MODEL_STRING = "***validation of model successful***";
+
+ private static final String OBSERVATION_MODEL_STRING = "\n"
+ + "***observations noted during validation of model***\n"
+ + "AxArtifactKey:(name=event0,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event0,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "AxArtifactKey:(name=event2,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event2,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "********************************";
+
+ private static final String WARNING_MODEL_STRING = "\n" + "***warnings issued during validation of model***\n"
+ + "AxArtifactKey:(name=event0,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
+ + "AxArtifactKey:(name=event0,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event0,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "AxArtifactKey:(name=event2,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
+ + "AxArtifactKey:(name=event2,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event2,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "********************************";
+
+ private static final String INVALID_MODEL_STRING = "\n" + "***validation of model failed***\n"
+ + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation:INVALID:keyInfoMap may not be empty\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=smallEventModel,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=Schemas,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=BigIntType,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=BooleanType,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=IntType,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=MapType,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=SetType,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=StringType,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=smallEventMap,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=event0,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par0)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par2)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par3)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par4)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par5)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par6)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:duplicate key AxArtifactKey:(name=event1,version=0.0.1) found\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:duplicate key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar) found\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
+ + "AxArtifactKey:(name=event0,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event0,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:INVALID:parent key on parameter field AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar) does not equal event key\n"
+ + "AxArtifactKey:(name=smallEventMap,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvents:INVALID:key on event entry key AxArtifactKey:(name=event2,version=0.0.1) does not equal event value key AxArtifactKey:(name=event1,version=0.0.1)\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:INVALID:parent key on parameter field AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar) does not equal event key\n"
+ + "********************************";
+
+ private static final String INVALID_MODEL_MALSTRUCTURED_STRING = "\n" + "***validation of model failed***\n"
+ + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation:INVALID:keyInfoMap may not be empty\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=smallEventModel,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=Schemas,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=SetType,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=smallEventMap,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event1,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:duplicate key AxArtifactKey:(name=event1,version=0.0.1) found\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:duplicate key AxReferenceKey:(parentKeyName=event1,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar) found\n"
+ + "AxArtifactKey:(name=smallEventModel,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:key information not found for parent key of key AxReferenceKey:(parentKeyName=event1,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "AxArtifactKey:(name=smallEventMap,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvents:INVALID:key on event entry key AxArtifactKey:(name=event2,version=0.0.1) does not equal event value key AxArtifactKey:(name=event1,version=0.0.1)\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
+ + "AxArtifactKey:(name=event1,version=0.0.1):org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
+ + "********************************";
+}
diff --git a/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/handling/TestApexEventModelCreator.java b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/handling/TestApexEventModelCreator.java
new file mode 100644
index 000000000..039d2305b
--- /dev/null
+++ b/model/event-model/src/test/java/org/onap/policy/apex/model/eventmodel/handling/TestApexEventModelCreator.java
@@ -0,0 +1,309 @@
+/*-
+ * ============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=========================================================
+ */
+
+package org.onap.policy.apex.model.eventmodel.handling;
+
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation;
+import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
+import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
+import org.onap.policy.apex.model.basicmodel.test.TestApexModelCreator;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
+import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEventModel;
+import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
+import org.onap.policy.apex.model.eventmodel.concepts.AxField;
+
+public class TestApexEventModelCreator implements TestApexModelCreator<AxEventModel> {
+
+ @Override
+ public AxEventModel getModel() {
+ final AxContextSchema axSchema0 =
+ new AxContextSchema(new AxArtifactKey("BooleanType", "0.0.1"), "Java", "java.lang.Boolean");
+ final AxContextSchema axSchema1 =
+ new AxContextSchema(new AxArtifactKey("IntType", "0.0.1"), "Java", "java.lang.Integer");
+ final AxContextSchema axSchema2 =
+ new AxContextSchema(new AxArtifactKey("StringType", "0.0.1"), "Java", "java.lang.String");
+ final AxContextSchema axSchema3 = new AxContextSchema(new AxArtifactKey("KeyType", "0.0.1"), "Java",
+ "org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey");
+ final AxContextSchema axSchema4 = new AxContextSchema(new AxArtifactKey("MapType", "0.0.1"), "Java",
+ "org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation");
+ final AxContextSchema axSchema5 =
+ new AxContextSchema(new AxArtifactKey("BigIntType", "0.0.1"), "Java", "java.math.BigInteger");
+ final AxContextSchema axSchema6 = new AxContextSchema(new AxArtifactKey("ModelType", "0.0.1"), "Java",
+ "org.onap.policy.apex.model.basicmodel.concepts.AxModel");
+
+ final AxContextSchemas dataTypes = new AxContextSchemas(new AxArtifactKey("Schemas", "0.0.1"));
+ dataTypes.getSchemasMap().put(axSchema0.getKey(), axSchema0);
+ dataTypes.getSchemasMap().put(axSchema1.getKey(), axSchema1);
+ dataTypes.getSchemasMap().put(axSchema2.getKey(), axSchema2);
+ dataTypes.getSchemasMap().put(axSchema3.getKey(), axSchema3);
+ dataTypes.getSchemasMap().put(axSchema4.getKey(), axSchema4);
+ dataTypes.getSchemasMap().put(axSchema5.getKey(), axSchema5);
+ dataTypes.getSchemasMap().put(axSchema6.getKey(), axSchema6);
+
+ final AxEvents eventMap = new AxEvents(new AxArtifactKey("smallEventMap", "0.0.1"));
+
+ final AxEvent event0 = new AxEvent(new AxArtifactKey("event0", "0.0.1"),
+ "org.onap.policy.apex.model.eventmodel.events", "Source", "Target");
+ event0.getParameterMap().put("par0",
+ new AxField(new AxReferenceKey(event0.getKey(), "par0"), axSchema0.getKey()));
+ event0.getParameterMap().put("par1",
+ new AxField(new AxReferenceKey(event0.getKey(), "par1"), axSchema1.getKey()));
+ event0.getParameterMap().put("par2",
+ new AxField(new AxReferenceKey(event0.getKey(), "par2"), axSchema2.getKey()));
+ event0.getParameterMap().put("par3",
+ new AxField(new AxReferenceKey(event0.getKey(), "par3"), axSchema6.getKey()));
+ event0.getParameterMap().put("par4",
+ new AxField(new AxReferenceKey(event0.getKey(), "par4"), axSchema4.getKey()));
+ event0.getParameterMap().put("par5",
+ new AxField(new AxReferenceKey(event0.getKey(), "par5"), axSchema5.getKey()));
+ event0.getParameterMap().put("par6",
+ new AxField(new AxReferenceKey(event0.getKey(), "par6"), axSchema5.getKey()));
+ eventMap.getEventMap().put(event0.getKey(), event0);
+
+ final AxEvent event1 = new AxEvent(new AxArtifactKey("event1", "0.0.1"),
+ "org.onap.policy.apex.model.eventmodel.events", "Source", "Target");
+ event1.getParameterMap().put("theOnlyPar",
+ new AxField(new AxReferenceKey(event1.getKey(), "theOnlyPar"), axSchema3.getKey()));
+ eventMap.getEventMap().put(event1.getKey(), event1);
+
+ final AxEvent event2 = new AxEvent(new AxArtifactKey("event2", "0.0.1"),
+ "org.onap.policy.apex.model.eventmodel.events", "Source", "Target");
+ eventMap.getEventMap().put(event2.getKey(), event2);
+
+ final AxKeyInformation keyInformation = new AxKeyInformation(new AxArtifactKey("KeyInfoMapKey", "0.0.1"));
+
+ final AxEventModel eventModel =
+ new AxEventModel(new AxArtifactKey("EventModel", "0.0.1"), dataTypes, keyInformation, eventMap);
+ keyInformation.generateKeyInfo(eventModel);
+
+ eventModel.validate(new AxValidationResult());
+ return eventModel;
+ }
+
+ @Override
+ public AxEventModel getInvalidModel() {
+ final AxContextSchema axSchema0 =
+ new AxContextSchema(new AxArtifactKey("BooleanType", "0.0.1"), "Java", "java.lang.Zoolean");
+ final AxContextSchema axSchema1 =
+ new AxContextSchema(new AxArtifactKey("IntType", "0.0.1"), "Java", "java.lang.Integer");
+ final AxContextSchema axSchema2 =
+ new AxContextSchema(new AxArtifactKey("StringType", "0.0.1"), "Java", "java.lang.String");
+ final AxContextSchema axSchema3 =
+ new AxContextSchema(new AxArtifactKey("SetType", "0.0.1"), "Java", "java.util.Set");
+ final AxContextSchema axSchema4 =
+ new AxContextSchema(new AxArtifactKey("MapType", "0.0.1"), "Java", "java.util.Map");
+ final AxContextSchema axSchema5 =
+ new AxContextSchema(new AxArtifactKey("BigIntType", "0.0.1"), "Java", "java.math.BigInteger");
+
+ final AxContextSchemas dataTypes = new AxContextSchemas(new AxArtifactKey("Schemas", "0.0.1"));
+ dataTypes.getSchemasMap().put(axSchema0.getKey(), axSchema0);
+ dataTypes.getSchemasMap().put(axSchema1.getKey(), axSchema1);
+ dataTypes.getSchemasMap().put(axSchema2.getKey(), axSchema2);
+ dataTypes.getSchemasMap().put(axSchema3.getKey(), axSchema3);
+ dataTypes.getSchemasMap().put(axSchema4.getKey(), axSchema4);
+ dataTypes.getSchemasMap().put(axSchema5.getKey(), axSchema5);
+
+ final AxEvents eventMap = new AxEvents(new AxArtifactKey("smallEventMap", "0.0.1"));
+
+ final AxEvent event0 =
+ new AxEvent(new AxArtifactKey("event0", "0.0.1"), "org.onap.policy.apex.model.eventmodel.events");
+ event0.getParameterMap().put("par0",
+ new AxField(new AxReferenceKey(event0.getKey(), "par0"), axSchema0.getKey()));
+ event0.getParameterMap().put("par1",
+ new AxField(new AxReferenceKey(event0.getKey(), "par1"), axSchema1.getKey()));
+ event0.getParameterMap().put("par2",
+ new AxField(new AxReferenceKey(event0.getKey(), "par2"), axSchema2.getKey()));
+ event0.getParameterMap().put("par3",
+ new AxField(new AxReferenceKey(event0.getKey(), "par3"), axSchema3.getKey()));
+ event0.getParameterMap().put("par4",
+ new AxField(new AxReferenceKey(event0.getKey(), "par4"), axSchema4.getKey()));
+ event0.getParameterMap().put("par5",
+ new AxField(new AxReferenceKey(event0.getKey(), "par5"), axSchema5.getKey()));
+ event0.getParameterMap().put("par6",
+ new AxField(new AxReferenceKey(event0.getKey(), "par6"), axSchema5.getKey()));
+ eventMap.getEventMap().put(event0.getKey(), event0);
+
+ final AxEvent event1 =
+ new AxEvent(new AxArtifactKey("event1", "0.0.1"), "org.onap.policy.apex.model.eventmodel.events");
+ event1.getParameterMap().put("theOnlyPar",
+ new AxField(new AxReferenceKey(event0.getKey(), "theOnlyPar"), axSchema3.getKey()));
+ eventMap.getEventMap().put(event1.getKey(), event1);
+
+ final AxEvent event2 =
+ new AxEvent(new AxArtifactKey("event2", "0.0.1"), "org.onap.policy.apex.model.eventmodel.events");
+ eventMap.getEventMap().put(event2.getKey(), event1);
+
+ final AxKeyInformation keyInformation = new AxKeyInformation(new AxArtifactKey("KeyInfoMapKey", "0.0.1"));
+
+ final AxEventModel eventModel =
+ new AxEventModel(new AxArtifactKey("smallEventModel", "0.0.1"), dataTypes, keyInformation, eventMap);
+
+ return eventModel;
+ }
+
+ @Override
+ public AxEventModel getMalstructuredModel() {
+ final AxContextSchema axSchema3 =
+ new AxContextSchema(new AxArtifactKey("SetType", "0.0.1"), "Java", "java.util.Set");
+ final AxContextSchemas dataTypes = new AxContextSchemas(new AxArtifactKey("Schemas", "0.0.1"));
+ dataTypes.getSchemasMap().put(axSchema3.getKey(), axSchema3);
+
+ final AxEvents eventMap = new AxEvents(new AxArtifactKey("smallEventMap", "0.0.1"));
+
+ final AxEvent event1 =
+ new AxEvent(new AxArtifactKey("event1", "0.0.1"), "org.onap.policy.apex.model.eventmodel.events");
+ event1.getParameterMap().put("theOnlyPar",
+ new AxField(new AxReferenceKey(event1.getKey(), "theOnlyPar"), axSchema3.getKey()));
+ eventMap.getEventMap().put(event1.getKey(), event1);
+
+ final AxEvent event2 =
+ new AxEvent(new AxArtifactKey("event2", "0.0.1"), "org.onap.policy.apex.model.eventmodel.events");
+ eventMap.getEventMap().put(event2.getKey(), event1);
+
+ final AxKeyInformation keyInformation = new AxKeyInformation(new AxArtifactKey("KeyInfoMapKey", "0.0.1"));
+
+ final AxEventModel eventModel =
+ new AxEventModel(new AxArtifactKey("smallEventModel", "0.0.1"), dataTypes, keyInformation, eventMap);
+
+ eventModel.validate(new AxValidationResult());
+
+ return eventModel;
+ }
+
+ @Override
+ public AxEventModel getWarningModel() {
+ final AxContextSchema axSchema0 =
+ new AxContextSchema(new AxArtifactKey("BooleanType", "0.0.1"), "Java", "java.lang.Boolean");
+ final AxContextSchema axSchema1 =
+ new AxContextSchema(new AxArtifactKey("IntType", "0.0.1"), "Java", "java.lang.Integer");
+ final AxContextSchema axSchema2 =
+ new AxContextSchema(new AxArtifactKey("StringType", "0.0.1"), "Java", "java.lang.String");
+ final AxContextSchema axSchema3 =
+ new AxContextSchema(new AxArtifactKey("SetType", "0.0.1"), "Java", "java.util.Set");
+ final AxContextSchema axSchema4 =
+ new AxContextSchema(new AxArtifactKey("MapType", "0.0.1"), "Java", "java.util.Map");
+ final AxContextSchema axSchema5 =
+ new AxContextSchema(new AxArtifactKey("BigIntType", "0.0.1"), "Java", "java.math.BigInteger");
+ final AxContextSchemas dataTypes = new AxContextSchemas(new AxArtifactKey("Schemas", "0.0.1"));
+ dataTypes.getSchemasMap().put(axSchema0.getKey(), axSchema0);
+ dataTypes.getSchemasMap().put(axSchema1.getKey(), axSchema1);
+ dataTypes.getSchemasMap().put(axSchema2.getKey(), axSchema2);
+ dataTypes.getSchemasMap().put(axSchema3.getKey(), axSchema3);
+ dataTypes.getSchemasMap().put(axSchema4.getKey(), axSchema4);
+ dataTypes.getSchemasMap().put(axSchema5.getKey(), axSchema5);
+
+ final AxEvents eventMap = new AxEvents(new AxArtifactKey("smallEventMap", "0.0.1"));
+
+ final AxEvent event0 = new AxEvent(new AxArtifactKey("event0", "0.0.1"), "");
+ event0.getParameterMap().put("par0",
+ new AxField(new AxReferenceKey(event0.getKey(), "par0"), axSchema0.getKey()));
+ event0.getParameterMap().put("par1",
+ new AxField(new AxReferenceKey(event0.getKey(), "par1"), axSchema1.getKey()));
+ event0.getParameterMap().put("par2",
+ new AxField(new AxReferenceKey(event0.getKey(), "par2"), axSchema2.getKey()));
+ event0.getParameterMap().put("par3",
+ new AxField(new AxReferenceKey(event0.getKey(), "par3"), axSchema3.getKey()));
+ event0.getParameterMap().put("par4",
+ new AxField(new AxReferenceKey(event0.getKey(), "par4"), axSchema4.getKey()));
+ event0.getParameterMap().put("par5",
+ new AxField(new AxReferenceKey(event0.getKey(), "par5"), axSchema5.getKey()));
+ eventMap.getEventMap().put(event0.getKey(), event0);
+
+ final AxEvent event1 = new AxEvent(new AxArtifactKey("event1", "0.0.1"), "");
+ event1.getParameterMap().put("theOnlyPar",
+ new AxField(new AxReferenceKey(event1.getKey(), "theOnlyPar"), axSchema3.getKey()));
+ eventMap.getEventMap().put(event1.getKey(), event1);
+
+ final AxEvent event2 = new AxEvent(new AxArtifactKey("event2", "0.0.1"), "");
+ eventMap.getEventMap().put(event2.getKey(), event2);
+
+ final AxKeyInformation keyInformation = new AxKeyInformation(new AxArtifactKey("KeyInfoMapKey", "0.0.1"));
+
+ final AxEventModel eventModel =
+ new AxEventModel(new AxArtifactKey("smallEventModel", "0.0.1"), dataTypes, keyInformation, eventMap);
+ eventModel.getKeyInformation().generateKeyInfo(eventModel);
+ eventModel.validate(new AxValidationResult());
+
+ return eventModel;
+ }
+
+ @Override
+ public AxEventModel getObservationModel() {
+ final AxContextSchema axSchema0 =
+ new AxContextSchema(new AxArtifactKey("BooleanType", "0.0.1"), "Java", "java.lang.Boolean");
+ final AxContextSchema axSchema1 =
+ new AxContextSchema(new AxArtifactKey("IntType", "0.0.1"), "Java", "java.lang.Integer");
+ final AxContextSchema axSchema2 =
+ new AxContextSchema(new AxArtifactKey("StringType", "0.0.1"), "Java", "java.lang.String");
+ final AxContextSchema axSchema3 =
+ new AxContextSchema(new AxArtifactKey("SetType", "0.0.1"), "Java", "java.util.Set");
+ final AxContextSchema axSchema4 =
+ new AxContextSchema(new AxArtifactKey("MapType", "0.0.1"), "Java", "java.util.Map");
+ final AxContextSchema axSchema5 =
+ new AxContextSchema(new AxArtifactKey("BigIntType", "0.0.1"), "Java", "java.math.BigInteger");
+ final AxContextSchemas schemas = new AxContextSchemas(new AxArtifactKey("Schemas", "0.0.1"));
+ schemas.getSchemasMap().put(axSchema0.getKey(), axSchema0);
+ schemas.getSchemasMap().put(axSchema1.getKey(), axSchema1);
+ schemas.getSchemasMap().put(axSchema2.getKey(), axSchema2);
+ schemas.getSchemasMap().put(axSchema3.getKey(), axSchema3);
+ schemas.getSchemasMap().put(axSchema4.getKey(), axSchema4);
+ schemas.getSchemasMap().put(axSchema5.getKey(), axSchema5);
+
+ final AxEvents eventMap = new AxEvents(new AxArtifactKey("smallEventMap", "0.0.1"));
+
+ final AxEvent event0 =
+ new AxEvent(new AxArtifactKey("event0", "0.0.1"), "org.onap.policy.apex.model.eventmodel.events");
+ event0.getParameterMap().put("par0",
+ new AxField(new AxReferenceKey(event0.getKey(), "par0"), axSchema0.getKey()));
+ event0.getParameterMap().put("par1",
+ new AxField(new AxReferenceKey(event0.getKey(), "par1"), axSchema1.getKey()));
+ event0.getParameterMap().put("par2",
+ new AxField(new AxReferenceKey(event0.getKey(), "par2"), axSchema2.getKey()));
+ event0.getParameterMap().put("par3",
+ new AxField(new AxReferenceKey(event0.getKey(), "par3"), axSchema3.getKey()));
+ event0.getParameterMap().put("par4",
+ new AxField(new AxReferenceKey(event0.getKey(), "par4"), axSchema4.getKey()));
+ event0.getParameterMap().put("par5",
+ new AxField(new AxReferenceKey(event0.getKey(), "par5"), axSchema5.getKey()));
+ eventMap.getEventMap().put(event0.getKey(), event0);
+
+ final AxEvent event1 =
+ new AxEvent(new AxArtifactKey("event1", "0.0.1"), "org.onap.policy.apex.model.eventmodel.events");
+ event1.getParameterMap().put("theOnlyPar",
+ new AxField(new AxReferenceKey(event1.getKey(), "theOnlyPar"), axSchema3.getKey()));
+ eventMap.getEventMap().put(event1.getKey(), event1);
+
+ final AxEvent event2 =
+ new AxEvent(new AxArtifactKey("event2", "0.0.1"), "org.onap.policy.apex.model.eventmodel.events");
+ eventMap.getEventMap().put(event2.getKey(), event2);
+
+ final AxKeyInformation keyInformation = new AxKeyInformation(new AxArtifactKey("KeyInfoMapKey", "0.0.1"));
+
+ final AxEventModel eventModel =
+ new AxEventModel(new AxArtifactKey("smallEventModel", "0.0.1"), schemas, keyInformation, eventMap);
+ eventModel.getKeyInformation().generateKeyInfo(eventModel);
+ eventModel.validate(new AxValidationResult());
+
+ return eventModel;
+ }
+}
diff --git a/model/event-model/src/test/resources/META-INF/persistence.xml b/model/event-model/src/test/resources/META-INF/persistence.xml
new file mode 100644
index 000000000..db32612ab
--- /dev/null
+++ b/model/event-model/src/test/resources/META-INF/persistence.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============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=========================================================
+-->
+
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
+ <persistence-unit name="DAOTest" transaction-type="RESOURCE_LOCAL">
+ <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+
+ <class>org.onap.policy.apex.model.basicmodel.dao.converters.CDATAConditioner</class>
+ <class>org.onap.policy.apex.model.basicmodel.dao.converters.UUID2String</class>
+ <class>org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey</class>
+ <class>org.onap.policy.apex.model.basicmodel.concepts.AxConcept</class>
+ <class>org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo</class>
+ <class>org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation</class>
+ <class>org.onap.policy.apex.model.basicmodel.concepts.AxModel</class>
+ <class>org.onap.policy.apex.model.basicmodel.concepts.TestEntity</class>
+ <class>org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema</class>
+ <class>org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas</class>
+ <class>org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbum</class>
+ <class>org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbums</class>
+ <class>org.onap.policy.apex.model.contextmodel.concepts.AxContextModel</class>
+ <class>org.onap.policy.apex.model.eventmodel.concepts.AxField</class>
+ <class>org.onap.policy.apex.model.eventmodel.concepts.AxInputField</class>
+ <class>org.onap.policy.apex.model.eventmodel.concepts.AxOutputField</class>
+ <class>org.onap.policy.apex.model.eventmodel.concepts.AxEvent</class>
+ <class>org.onap.policy.apex.model.eventmodel.concepts.AxEvents</class>
+ <class>org.onap.policy.apex.model.eventmodel.concepts.AxEventModel</class>
+
+ <properties>
+ <property name="javax.persistence.jdbc.url" value="jdbc:derby:memory:apex_test" />
+ <property name="javax.persistence.target-database" value="Derby" />
+ <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
+
+ <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
+ <property name="eclipselink.ddl-generation.output-mode" value="database" />
+ <property name="eclipselink.logging.level" value="INFO" />
+ </properties>
+ </persistence-unit>
+</persistence>
diff --git a/model/event-model/src/test/resources/logback-test.xml b/model/event-model/src/test/resources/logback-test.xml
new file mode 100644
index 000000000..dfafb04d9
--- /dev/null
+++ b/model/event-model/src/test/resources/logback-test.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ============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=========================================================
+-->
+
+<configuration>
+
+ <contextName>Apex</contextName>
+ <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
+ <property name="LOG_DIR" value="${java.io.tmpdir}/apex_logging/" />
+
+ <!-- USE FOR STD OUT ONLY -->
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <Pattern>%d %contextName [%t] %level %logger{36} - %msg%n</Pattern>
+ </encoder>
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="STDOUT" />
+ </root>
+
+ <logger name="org.infinispan" level="INFO" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="org.apache.zookeeper.ClientCnxn" level="OFF" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="org.onap.policy.apex.core" level="TRACE" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+ <file>${LOG_DIR}/apex.log</file>
+ <encoder>
+ <pattern>%d %-5relative [procId=${processId}] [%thread] %-5level
+ %logger{26} - %msg %n %ex{full}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="CTXT_FILE" class="ch.qos.logback.core.FileAppender">
+ <file>${LOG_DIR}/apex_ctxt.log</file>
+ <encoder>
+ <pattern>%d %-5relative [procId=${processId}] [%thread] %-5level
+ %logger{26} - %msg %n %ex{full}</pattern>
+ </encoder>
+ </appender>
+
+ <logger name="org.onap.policy.apex.core.context.impl.monitoring" level="TRACE" additivity="false">
+ <appender-ref ref="CTXT_FILE" />
+ </logger>
+
+ <logger name="org.onap.policy.apex.core.context" level="INFO" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+</configuration>