Move model base classes outside feature-lifecycle

So, it can be used in drools-application without
a feature dependency.

Issue-ID: POLICY-2360
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
Change-Id: I1cf75bdd8739c35ea9b590896b177a519363e3d5
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerCustomSerializer.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerCustomSerializer.java
index bda7748..d7956b4 100644
--- a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerCustomSerializer.java
+++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerCustomSerializer.java
@@ -22,12 +22,12 @@
 
 import com.google.gson.annotations.SerializedName;
 import java.io.Serializable;
+import lombok.Builder;
 import lombok.Data;
-import lombok.experimental.SuperBuilder;
 
 
 @Data
-@SuperBuilder
+@Builder
 public class ControllerCustomSerializer implements Serializable {
     private static final long serialVersionUID = 1505345574249332514L;
 
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerProperties.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerProperties.java
index 0ed6d33..692b179 100644
--- a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerProperties.java
+++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerProperties.java
@@ -24,8 +24,8 @@
 import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
+import lombok.Builder;
 import lombok.Data;
-import lombok.experimental.SuperBuilder;
 
 
 /**
@@ -33,7 +33,7 @@
  */
 
 @Data
-@SuperBuilder
+@Builder
 public class ControllerProperties implements Serializable {
     private static final long serialVersionUID = 1259434187110418986L;
 
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSerialization.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSerialization.java
index 77a5e93..8daaa31 100644
--- a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSerialization.java
+++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSerialization.java
@@ -22,12 +22,12 @@
 
 import com.google.gson.annotations.SerializedName;
 import java.io.Serializable;
+import lombok.Builder;
 import lombok.Data;
-import lombok.experimental.SuperBuilder;
 
 
 @Data
-@SuperBuilder
+@Builder
 public class ControllerSerialization implements Serializable {
 
     @SerializedName("eventClass")
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSinkTopic.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSinkTopic.java
index acb4fb0..ecd66a3 100644
--- a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSinkTopic.java
+++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSinkTopic.java
@@ -23,8 +23,8 @@
 import com.google.gson.annotations.SerializedName;
 import java.io.Serializable;
 import java.util.List;
+import lombok.Builder;
 import lombok.Data;
-import lombok.experimental.SuperBuilder;
 
 
 /**
@@ -32,7 +32,7 @@
  */
 
 @Data
-@SuperBuilder
+@Builder
 public class ControllerSinkTopic implements Serializable {
     private static final long serialVersionUID = 8770353732981476267L;
 
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSourceTopic.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSourceTopic.java
index ffad9cf..0934401 100644
--- a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSourceTopic.java
+++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/controller/ControllerSourceTopic.java
@@ -22,8 +22,8 @@
 
 import java.io.Serializable;
 import java.util.List;
+import lombok.Builder;
 import lombok.Data;
-import lombok.experimental.SuperBuilder;
 
 
 /**
@@ -31,7 +31,7 @@
  */
 
 @Data
-@SuperBuilder
+@Builder
 public class ControllerSourceTopic implements Serializable {
     private static final long serialVersionUID = -1732598566914643612L;
 
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java b/policy-management/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java
similarity index 96%
rename from feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java
rename to policy-management/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java
index a023466..4b1a1cb 100644
--- a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java
+++ b/policy-management/src/main/java/org/onap/policy/drools/domain/models/DroolsPolicy.java
@@ -22,10 +22,12 @@
 
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 
 @Data
 @SuperBuilder
+@NoArgsConstructor
 public abstract class DroolsPolicy {
     @SerializedName("type")
     protected String type;
diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/Metadata.java b/policy-management/src/main/java/org/onap/policy/drools/domain/models/Metadata.java
similarity index 100%
rename from feature-lifecycle/src/main/java/org/onap/policy/drools/domain/models/Metadata.java
rename to policy-management/src/main/java/org/onap/policy/drools/domain/models/Metadata.java
diff --git a/policy-management/src/test/java/org/onap/policy/drools/domain/models/DroolsPolicyTest.java b/policy-management/src/test/java/org/onap/policy/drools/domain/models/DroolsPolicyTest.java
new file mode 100644
index 0000000..22edbb4
--- /dev/null
+++ b/policy-management/src/test/java/org/onap/policy/drools/domain/models/DroolsPolicyTest.java
@@ -0,0 +1,52 @@
+/*
+ * ============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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.drools.domain.models;
+
+import com.openpojo.reflection.impl.PojoClassFactory;
+import com.openpojo.validation.Validator;
+import com.openpojo.validation.ValidatorBuilder;
+import com.openpojo.validation.test.impl.GetterTester;
+import com.openpojo.validation.test.impl.SetterTester;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+import org.junit.Test;
+
+public class DroolsPolicyTest {
+
+    @Data
+    @SuperBuilder
+    @NoArgsConstructor
+    public static class DerivedDomainPolicy extends DroolsPolicy implements Serializable {
+        private static final long serialVersionUID = -1027974819756498893L;
+    }
+
+    @Test
+    public void testPackage() {
+        /* validate model pojos */
+        Validator validator = ValidatorBuilder.create()
+                                      .with(new SetterTester(), new GetterTester()).build();
+
+        validator.validate(PojoClassFactory.getPojoClass(DerivedDomainPolicy.class));
+    }
+
+}
\ No newline at end of file