Copy Dbao from drools-apps to models
Drools-apps and xacml-pdp each have their own copy of Dbao. Made
a copy of it in models as a first step toward eliminating the other
copies. Also changed its package name be consistent with the other
interface package names and renamed it to OperationsHistory.
Also reordered the modules in the pom to make it alphabetical.
Issue-ID: POLICY-2581
Change-Id: I45afa680c6344eeac6b2d35c9e4f04a5ba7af431
Signed-off-by: Jim Hahn <jrh3@att.com>
diff --git a/models-interactions/model-impl/guard/pom.xml b/models-interactions/model-impl/guard/pom.xml
new file mode 100644
index 0000000..b8aeaf3
--- /dev/null
+++ b/models-interactions/model-impl/guard/pom.xml
@@ -0,0 +1,33 @@
+<!--
+ ============LICENSE_START=======================================================
+ ONAP
+ ================================================================================
+ Copyright (C) 2020 AT&T Intellectual Property. 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.
+ ============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.models.policy-models-interactions.model-impl</groupId>
+ <artifactId>model-impl</artifactId>
+ <version>2.3.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>guard</artifactId>
+
+</project>
diff --git a/models-interactions/model-impl/guard/src/main/java/org/onap/policy/guard/OperationsHistory.java b/models-interactions/model-impl/guard/src/main/java/org/onap/policy/guard/OperationsHistory.java
new file mode 100644
index 0000000..7354fff
--- /dev/null
+++ b/models-interactions/model-impl/guard/src/main/java/org/onap/policy/guard/OperationsHistory.java
@@ -0,0 +1,79 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP
+ * ================================================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. 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.guard;
+
+import java.io.Serializable;
+import java.util.Date;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Index;
+import javax.persistence.Table;
+import lombok.Data;
+
+@Entity
+@Table(name = "operationshistory",
+ indexes = {@Index(name = "operationshistory_clreqid_index", columnList = "closedLoopName,requestId"),
+ @Index(name = "operationshistory_target_index", columnList = "target,operation,actor")})
+@Data
+public class OperationsHistory implements Serializable {
+
+ private static final long serialVersionUID = -551420180714993577L;
+
+ @Id
+ @GeneratedValue
+ @Column(name = "id")
+ private Long id;
+
+ @Column(name = "closedLoopName", length = 255)
+ private String closedLoopName;
+
+ @Column(name = "requestId", length = 50)
+ private String requestId;
+
+ @Column(name = "subrequestId", length = 50)
+ private String subrequestId;
+
+ @Column(name = "actor", length = 50)
+ private String actor;
+
+ @Column(name = "operation", length = 50)
+ private String operation;
+
+ @Column(name = "target", length = 50)
+ private String target;
+
+ @Column(name = "starttime")
+ private Date starttime;
+
+ @Column(name = "outcome", length = 50)
+ private String outcome;
+
+ @Column(name = "message", length = 255)
+ private String message;
+
+ @Column(name = "endtime")
+ private Date endtime;
+
+}
diff --git a/models-interactions/model-impl/guard/src/test/java/org/onap/policy/guard/OperationsHistoryTest.java b/models-interactions/model-impl/guard/src/test/java/org/onap/policy/guard/OperationsHistoryTest.java
new file mode 100644
index 0000000..f25ab86
--- /dev/null
+++ b/models-interactions/model-impl/guard/src/test/java/org/onap/policy/guard/OperationsHistoryTest.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 AT&T Intellectual Property. 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.guard;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Date;
+import org.junit.Test;
+
+public class OperationsHistoryTest {
+
+ @Test
+ public void test() {
+ OperationsHistory dao = new OperationsHistory();
+
+ dao.setActor("my-actor");
+ dao.setClosedLoopName("cl-name");
+ Date endDate = new Date();
+ dao.setEndtime(endDate);
+ dao.setId(100L);
+ dao.setMessage("my-message");
+ dao.setOperation("my-operation");
+ dao.setOutcome("my-outcome");
+ dao.setRequestId("my-request");
+ Date startDate = new Date(endDate.getTime() - 1);
+ dao.setStarttime(startDate);
+ dao.setSubrequestId("my-sub");
+ dao.setTarget("my-target");
+
+ assertEquals("my-actor", dao.getActor());
+ assertEquals("cl-name", dao.getClosedLoopName());
+ assertEquals(endDate, dao.getEndtime());
+ assertEquals(100L, dao.getId().longValue());
+ assertEquals("my-message", dao.getMessage());
+ assertEquals("my-operation", dao.getOperation());
+ assertEquals("my-outcome", dao.getOutcome());
+ assertEquals("my-request", dao.getRequestId());
+ assertEquals(startDate, dao.getStarttime());
+ assertEquals("my-sub", dao.getSubrequestId());
+ assertEquals("my-target", dao.getTarget());
+
+ assertTrue(dao.toString().startsWith("OperationsHistory"));
+
+ int hc = dao.hashCode();
+ dao.setId(101L);
+ assertTrue(hc != dao.hashCode());
+
+ assertTrue(dao.equals(dao));
+ assertFalse(dao.equals(new OperationsHistory()));
+ }
+}
diff --git a/models-interactions/model-impl/pom.xml b/models-interactions/model-impl/pom.xml
index 326417c..1bb9b33 100644
--- a/models-interactions/model-impl/pom.xml
+++ b/models-interactions/model-impl/pom.xml
@@ -41,13 +41,14 @@
<module>aai</module>
<module>appc</module>
<module>appclcm</module>
- <module>sdnr</module>
+ <module>cds</module>
<module>events</module>
- <module>so</module>
+ <module>guard</module>
<module>rest</module>
<module>sdc</module>
- <module>vfc</module>
<module>sdnc</module>
- <module>cds</module>
+ <module>sdnr</module>
+ <module>so</module>
+ <module>vfc</module>
</modules>
</project>