Replace Eclipselink with Hibernate 29/133129/4
authorliamfallon <liam.fallon@est.tech>
Thu, 2 Feb 2023 14:43:12 +0000 (14:43 +0000)
committerliamfallon <liam.fallon@est.tech>
Tue, 7 Feb 2023 09:17:33 +0000 (09:17 +0000)
Issue-ID: POLICY-4533
Change-Id: I77a6c44c96013963e141265758629cae83e49876
Signed-off-by: liamfallon <liam.fallon@est.tech>
33 files changed:
models-dao/src/main/java/org/onap/policy/models/dao/impl/DefaultPfDao.java
models-dao/src/test/java/org/onap/policy/models/dao/EntityTest.java
models-dao/src/test/resources/META-INF/persistence.xml
models-interactions/model-impl/aai/pom.xml
models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/AaiCqResponse.java
models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/XmlElementFieldNamingStrategy.java [new file with mode: 0644]
models-interactions/model-impl/guard/src/main/java/org/onap/policy/guard/OperationsHistory.java
models-pap/src/main/java/org/onap/policy/models/pap/persistence/concepts/JpaPolicyAudit.java
models-pap/src/test/resources/META-INF/persistence.xml
models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpStatistics.java
models-pdp/src/test/java/org/onap/policy/models/pdp/persistence/provider/PdpProviderTest.java
models-pdp/src/test/resources/META-INF/persistence.xml
models-provider/src/main/java/org/onap/policy/models/provider/impl/ModelsProvider.java
models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java
models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyToscaPersistenceTest.java
models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyTypePersistenceTest.java
models-provider/src/test/java/org/onap/policy/models/provider/revisionhierarchy/HierarchyFetchTest.java
models-provider/src/test/resources/META-INF/persistence.xml
models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaEntityType.java
models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaModel.java
models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaNodeTemplate.java
models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaNodeType.java
models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaServiceTemplate.java
models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaTopologyTemplate.java
models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaWithTypeAndStringProperties.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderNodeTemplateTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProviderTest.java
models-tosca/src/test/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaServiceTemplateProviderTest.java
models-tosca/src/test/resources/META-INF/persistence.xml
pom.xml

index 22c5c53..13a4eea 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
  * ================================================================================
@@ -113,16 +113,16 @@ public class DefaultPfDao implements PfDao {
         if (daoParameters == null || daoParameters.getPersistenceUnit() == null) {
             LOGGER.error("Policy Framework persistence unit parameter not set");
             throw new PfModelException(Response.Status.INTERNAL_SERVER_ERROR,
-                    "Policy Framework persistence unit parameter not set");
+                "Policy Framework persistence unit parameter not set");
         }
 
         LOGGER.debug("Creating Policy Framework persistence unit \"{}\" . . .", daoParameters.getPersistenceUnit());
         try {
             emf = Persistence.createEntityManagerFactory(daoParameters.getPersistenceUnit(),
-                    daoParameters.getJdbcProperties());
+                daoParameters.getJdbcProperties());
         } catch (final Exception ex) {
             String errorMessage = "Creation of Policy Framework persistence unit \""
-                    + daoParameters.getPersistenceUnit() + "\" failed";
+                + daoParameters.getPersistenceUnit() + "\" failed";
             LOGGER.warn(errorMessage);
             throw new PfModelException(Response.Status.INTERNAL_SERVER_ERROR, errorMessage, ex);
         }
@@ -138,7 +138,7 @@ public class DefaultPfDao implements PfDao {
         if (emf == null) {
             LOGGER.warn("Policy Framework DAO has not been initialized");
             throw new PfModelRuntimeException(Response.Status.INTERNAL_SERVER_ERROR,
-                    "Policy Framework DAO has not been initialized");
+                "Policy Framework DAO has not been initialized");
         }
 
         return emf.createEntityManager();
@@ -190,7 +190,7 @@ public class DefaultPfDao implements PfDao {
         try {
             // @formatter:off
             mg.getTransaction().begin();
-            mg.createQuery(setQueryTable(DELETE_BY_CONCEPT_KEY, someClass), someClass)
+            mg.createQuery(setQueryTable(DELETE_BY_CONCEPT_KEY, someClass))
                 .setParameter(NAME,    key.getName())
                 .setParameter(VERSION, key.getVersion())
                 .executeUpdate();
@@ -210,7 +210,7 @@ public class DefaultPfDao implements PfDao {
         try {
             // @formatter:off
             mg.getTransaction().begin();
-            mg.createQuery(setQueryTable(DELETE_BY_REFERENCE_KEY, someClass), someClass)
+            mg.createQuery(setQueryTable(DELETE_BY_REFERENCE_KEY, someClass))
                 .setParameter(PARENT_NAME,    key.getParentKeyName())
                 .setParameter(PARENT_VERSION, key.getParentKeyVersion())
                 .setParameter(LOCAL_NAME,     key.getLocalName())
@@ -231,7 +231,7 @@ public class DefaultPfDao implements PfDao {
         try {
             // @formatter:off
             mg.getTransaction().begin();
-            mg.createQuery(setQueryTable(DELETE_BY_TIMESTAMP_KEY, someClass), someClass)
+            mg.createQuery(setQueryTable(DELETE_BY_TIMESTAMP_KEY, someClass))
                     .setParameter(NAME,    key.getName())
                     .setParameter(VERSION, key.getVersion())
                     .setParameter(TIMESTAMP, key.getTimeStamp())
@@ -288,7 +288,7 @@ public class DefaultPfDao implements PfDao {
             // @formatter:off
             mg.getTransaction().begin();
             for (final PfConceptKey key : keys) {
-                deletedCount += mg.createQuery(setQueryTable(DELETE_BY_CONCEPT_KEY, someClass), someClass)
+                deletedCount += mg.createQuery(setQueryTable(DELETE_BY_CONCEPT_KEY, someClass))
                     .setParameter(NAME,    key.getName())
                     .setParameter(VERSION, key.getVersion())
                     .executeUpdate();
@@ -303,7 +303,7 @@ public class DefaultPfDao implements PfDao {
 
     @Override
     public <T extends PfConcept> int deleteByReferenceKey(final Class<T> someClass,
-            final Collection<PfReferenceKey> keys) {
+        final Collection<PfReferenceKey> keys) {
         if (keys == null || keys.isEmpty()) {
             return 0;
         }
@@ -313,7 +313,7 @@ public class DefaultPfDao implements PfDao {
             // @formatter:off
             mg.getTransaction().begin();
             for (final PfReferenceKey key : keys) {
-                deletedCount += mg.createQuery(setQueryTable(DELETE_BY_REFERENCE_KEY, someClass), someClass)
+                deletedCount += mg.createQuery(setQueryTable(DELETE_BY_REFERENCE_KEY, someClass))
                     .setParameter(PARENT_NAME,    key.getParentKeyName())
                     .setParameter(PARENT_VERSION, key.getParentKeyVersion())
                     .setParameter(LOCAL_NAME,     key.getLocalName())
@@ -332,7 +332,7 @@ public class DefaultPfDao implements PfDao {
         final var mg = getEntityManager();
         try {
             mg.getTransaction().begin();
-            mg.createQuery(setQueryTable(DELETE_FROM_TABLE, someClass), someClass).executeUpdate();
+            mg.createQuery(setQueryTable(DELETE_FROM_TABLE, someClass)).executeUpdate();
             mg.getTransaction().commit();
         } finally {
             mg.close();
@@ -341,7 +341,7 @@ public class DefaultPfDao implements PfDao {
 
     @Override
     public <T extends PfConcept> List<T> getFiltered(final Class<T> someClass, final String name,
-            final String version) {
+        final String version) {
         if (name == null) {
             return getAll(someClass);
         }
@@ -362,8 +362,8 @@ public class DefaultPfDao implements PfDao {
         try {
             PfFilter filter = new PfFilterFactory().createFilter(someClass);
             var filterQueryString = SELECT_FROM_TABLE
-                            + filter.genWhereClause(filterParams)
-                            + filter.genOrderClause(filterParams);
+                + filter.genWhereClause(filterParams)
+                + filter.genOrderClause(filterParams);
 
             TypedQuery<T> query = mg.createQuery(setQueryTable(filterQueryString, someClass), someClass);
             filter.setParams(query, filterParams);
@@ -457,7 +457,7 @@ public class DefaultPfDao implements PfDao {
             }
 
             return mg.createQuery(query, someClass).setMaxResults(numRecords)
-                    .getResultList();
+                .getResultList();
         } finally {
             mg.close();
         }
@@ -567,8 +567,8 @@ public class DefaultPfDao implements PfDao {
              * The invoking code only passes well-known classes into this method, thus
              * disabling the sonar about SQL injection.
              */
-            size = mg.createQuery("SELECT COUNT(c) FROM " + someClass.getSimpleName() + " c", Long.class)   // NOSONAR
-                    .getSingleResult();
+            size = mg.createQuery("SELECT COUNT(c) FROM " + someClass.getSimpleName() + " c", Long.class) // NOSONAR
+                .getSingleResult();
         } finally {
             mg.close();
         }
@@ -595,13 +595,13 @@ public class DefaultPfDao implements PfDao {
      * @return the single unique result
      */
     private <T extends PfConcept> T getSingleResult(final Class<T> someClass, final String searchFilter,
-                    List<T> resultList) {
+        List<T> resultList) {
         if (resultList == null || resultList.isEmpty()) {
             return null;
         }
         if (resultList.size() > 1) {
             throw new IllegalArgumentException("More than one result was returned query on " + someClass
-                    + " with filter " + searchFilter + ": " + resultList);
+                + " with filter " + searchFilter + ": " + resultList);
         }
         return resultList.get(0);
     }
index 65d2286..e5f40eb 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
  * ================================================================================
@@ -38,7 +38,6 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.UUID;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.junit.After;
 import org.junit.Test;
 import org.onap.policy.models.base.PfConceptKey;
@@ -85,10 +84,10 @@ public class EntityTest {
 
         Properties jdbcProperties = new Properties();
         // @formatter:off
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER,   "org.h2.Driver");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL,      "jdbc:h2:mem:EntityTest");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER,     "sa");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "");
+        jdbcProperties.setProperty("javax.persistence.jdbc.driver",   "org.h2.Driver");
+        jdbcProperties.setProperty("javax.persistence.jdbc.url",      "jdbc:h2:mem:EntityTest");
+        jdbcProperties.setProperty("javax.persistence.jdbc.user",     "sa");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "");
         // @formatter:on
 
         daoParameters.setJdbcProperties(jdbcProperties);
@@ -145,6 +144,14 @@ public class EntityTest {
         daoParameters.setPluginClass(DefaultPfDao.class.getName());
         daoParameters.setPersistenceUnit("DaoTest");
 
+        Properties jdbcProperties = new Properties();
+        jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+        jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:mem:EntityTest");
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "sa");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "");
+
+        daoParameters.setJdbcProperties(jdbcProperties);
+
         pfDao = new PfDaoFactory().createPfDao(daoParameters);
         pfDao.init(daoParameters);
 
index d324ae0..5148f05 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-   Copyright (C) 2019-2021 Nordix Foundation.
+   Copyright (C) 2019-2021,2023 Nordix Foundation.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
@@ -21,8 +21,6 @@
 
 <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.models.dao.converters.CDataConditioner</class>
         <class>org.onap.policy.models.dao.converters.Uuid2String</class>
         <class>org.onap.policy.models.base.PfConceptKey</class>
         <class>org.onap.policy.models.dao.DummyReferenceTimestampEntity</class>
 
         <properties>
-            <property name="eclipselink.target-database" value="MySQL" />
-            <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" />
-
-            <property name="eclipselink.logging.level" value="ALL" />
-            <property name="eclipselink.logging.level.jpa" value="ALL" />
-            <property name="eclipselink.logging.level.ddl" value="ALL" />
-            <property name="eclipselink.logging.level.connection" value="ALL" />
-            <property name="eclipselink.logging.level.sql" value="ALL" />
-            <property name="eclipselink.logging.level.transaction" value="ALL" />
-            <property name="eclipselink.logging.level.sequencing" value="ALL" />
-            <property name="eclipselink.logging.level.server" value="ALL" />
-            <property name="eclipselink.logging.level.query" value="ALL" />
-            <property name="eclipselink.logging.level.properties" value="ALL" />
+            <property name="javax.persistence.schema-generation.database.action" value="drop-and-create" />
+            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
+            <property name="hibernate.show_sql" value="false" />
         </properties>
     </persistence-unit>
 </persistence>
index de82e9b..5f40129 100644 (file)
             <artifactId>rest</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <dependency>
-            <groupId>javax.xml.bind</groupId>
-            <artifactId>jaxb-api</artifactId>
-        </dependency>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
index d638c9d..7a6eb68 100644 (file)
@@ -3,6 +3,7 @@
  *
  * ================================================================================
  * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2023 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.policy.aai;
 
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
 import com.google.gson.annotations.SerializedName;
 import java.io.Serializable;
-import java.io.StringReader;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.transform.stream.StreamSource;
-import org.eclipse.persistence.jaxb.JAXBContextFactory;
-import org.eclipse.persistence.jaxb.JAXBContextProperties;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.onap.aai.domain.yang.CloudRegion;
@@ -44,8 +39,6 @@ import org.onap.aai.domain.yang.ServiceInstance;
 import org.onap.aai.domain.yang.Tenant;
 import org.onap.aai.domain.yang.VfModule;
 import org.onap.aai.domain.yang.Vserver;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class AaiCqResponse implements Serializable {
     private static final long serialVersionUID = 1L;
@@ -53,46 +46,21 @@ public class AaiCqResponse implements Serializable {
     public static final String OPERATION = "CustomQuery";
     private static final String GENERIC_VNF = "generic-vnf";
     private static final String VF_MODULE = "vf-module";
-    private static final Logger LOGGER = LoggerFactory.getLogger(AaiCqResponse.class);
-    private static JAXBContext jaxbContext;
-
-    // JABX initial stuff
-    static {
-        Map<String, Object> properties = new HashMap<>();
-        properties.put(JAXBContextProperties.MEDIA_TYPE, "application/json");
-        properties.put(JAXBContextProperties.JSON_INCLUDE_ROOT, false);
-        // Define JAXB context
-        try {
-            // @formatter:off
-            jaxbContext = JAXBContextFactory.createContext(new Class[] {
-                Vserver.class,
-                GenericVnf.class,
-                VfModule.class,
-                CloudRegion.class,
-                ServiceInstance.class,
-                Tenant.class,
-                ModelVer.class
-            }, properties);
-            // @formatter:on
-
-            // verify that we can create an unmarshaller
-            jaxbContext.createUnmarshaller();
-
-        } catch (JAXBException e) {
-            LOGGER.error("Could not initialize JAXBContext", e);
-            LOGGER.info("Problem initiatlizing JAXBContext", e);
-        }
-    }
 
     @SerializedName("results")
     private List<Serializable> inventoryResponseItems = new LinkedList<>();
 
+    private final Gson gson;
+
     /**
      * Constructor creates a custom query response from a valid json string.
      *
      * @param jsonString A&AI Custom Query response JSON string
      */
     public AaiCqResponse(String jsonString) {
+        gson = new GsonBuilder()
+            .setFieldNamingStrategy(new XmlElementFieldNamingStrategy())
+            .create();
 
         // Read JSON String and add all AaiObjects
         var responseObj = new JSONObject(jsonString);
@@ -118,11 +86,10 @@ public class AaiCqResponse implements Serializable {
 
             // Create the StreamSource by creating StringReader using the
             // JSON input
-            var json = new StreamSource(
-                    new StringReader(resultObject.getJSONObject("vserver").toString()));
+            var json = resultObject.getJSONObject("vserver").toString();
 
             // Getting the vserver pojo again from the json
-            var vserver = this.getAaiObject(json, Vserver.class);
+            var vserver = gson.fromJson(json, Vserver.class);
             this.inventoryResponseItems.add(vserver);
         }
     }
@@ -131,12 +98,10 @@ public class AaiCqResponse implements Serializable {
         if (resultObject.has(GENERIC_VNF)) {
             // Create the StreamSource by creating StringReader using the
             // JSON input
-            var json = new StreamSource(
-                    new StringReader(resultObject.getJSONObject(GENERIC_VNF).toString()));
+            var json = resultObject.getJSONObject(GENERIC_VNF).toString();
 
             // Getting the generic vnf pojo again from the json
-            var genericVnf = this.getAaiObject(json, GenericVnf.class);
-
+            var genericVnf = gson.fromJson(json, GenericVnf.class);
             this.inventoryResponseItems.add(genericVnf);
         }
     }
@@ -146,12 +111,10 @@ public class AaiCqResponse implements Serializable {
 
             // Create the StreamSource by creating StringReader using the
             // JSON input
-            var json = new StreamSource(
-                    new StringReader(resultObject.getJSONObject("service-instance").toString()));
+            var json = resultObject.getJSONObject("service-instance").toString();
 
             // Getting the employee pojo again from the json
-            var serviceInstance = this.getAaiObject(json, ServiceInstance.class);
-
+            var serviceInstance = gson.fromJson(json, ServiceInstance.class);
             this.inventoryResponseItems.add(serviceInstance);
         }
     }
@@ -160,12 +123,10 @@ public class AaiCqResponse implements Serializable {
         if (resultObject.has(VF_MODULE)) {
             // Create the StreamSource by creating StringReader using the
             // JSON input
-            var json = new StreamSource(
-                    new StringReader(resultObject.getJSONObject(VF_MODULE).toString()));
+            var json = resultObject.getJSONObject(VF_MODULE).toString();
 
             // Getting the vf module pojo again from the json
-            var vfModule = this.getAaiObject(json, VfModule.class);
-
+            var vfModule = gson.fromJson(json, VfModule.class);
             this.inventoryResponseItems.add(vfModule);
         }
     }
@@ -174,12 +135,10 @@ public class AaiCqResponse implements Serializable {
         if (resultObject.has("cloud-region")) {
             // Create the StreamSource by creating StringReader using the
             // JSON input
-            var json = new StreamSource(
-                    new StringReader(resultObject.getJSONObject("cloud-region").toString()));
+            var json = resultObject.getJSONObject("cloud-region").toString();
 
             // Getting the cloud region pojo again from the json
-            var cloudRegion = this.getAaiObject(json, CloudRegion.class);
-
+            var cloudRegion = gson.fromJson(json, CloudRegion.class);
             this.inventoryResponseItems.add(cloudRegion);
         }
     }
@@ -188,12 +147,10 @@ public class AaiCqResponse implements Serializable {
         if (resultObject.has("tenant")) {
             // Create the StreamSource by creating StringReader using the
             // JSON input
-            var json = new StreamSource(
-                    new StringReader(resultObject.getJSONObject("tenant").toString()));
+            var json = resultObject.getJSONObject("tenant").toString();
 
             // Getting the tenant pojo again from the json
-            var tenant = this.getAaiObject(json, Tenant.class);
-
+            var tenant = gson.fromJson(json, Tenant.class);
             this.inventoryResponseItems.add(tenant);
         }
     }
@@ -202,25 +159,14 @@ public class AaiCqResponse implements Serializable {
         if (resultObject.has("model-ver")) {
             // Create the StreamSource by creating StringReader using the
             // JSON input
-            var json = new StreamSource(
-                    new StringReader(resultObject.getJSONObject("model-ver").toString()));
+            var json = resultObject.getJSONObject("model-ver").toString();
 
             // Getting the ModelVer pojo again from the json
-            var modelVer = this.getAaiObject(json, ModelVer.class);
-
+            var modelVer = gson.fromJson(json, ModelVer.class);
             this.inventoryResponseItems.add(modelVer);
         }
     }
 
-    private <T> T getAaiObject(StreamSource json, final Class<T> classOfResponse) {
-        try {
-            return jaxbContext.createUnmarshaller().unmarshal(json, classOfResponse).getValue();
-        } catch (JAXBException e) {
-            LOGGER.error("JAXBCOntext error", e);
-            return null;
-        }
-    }
-
     public List<Serializable> getInventoryResponseItems() {
         return inventoryResponseItems;
     }
@@ -374,7 +320,7 @@ public class AaiCqResponse implements Serializable {
             // Iterate through all the vfModules of that generic Vnf
             for (VfModule vfMod : genVnf.getVfModules().getVfModule()) {
                 if (vfMod.getModelInvariantId() != null
-                        && vfMod.getModelInvariantId().equals(vfModuleModelInvariantId)) {
+                    && vfMod.getModelInvariantId().equals(vfModuleModelInvariantId)) {
                     return genVnf;
                 }
             }
@@ -608,12 +554,12 @@ public class AaiCqResponse implements Serializable {
         var count = 0;
         for (VfModule vfModule : vfModuleList) {
             if (vfModule.getModelCustomizationId() == null || vfModule.getModelInvariantId() == null
-                    || vfModule.getModelVersionId() == null) {
+                || vfModule.getModelVersionId() == null) {
                 continue;
             }
 
             if (vfModule.getModelCustomizationId().equals(custId) && vfModule.getModelInvariantId().equals(invId)
-                    && vfModule.getModelVersionId().equals(verId)) {
+                && vfModule.getModelVersionId().equals(verId)) {
                 count = count + 1;
             }
         }
diff --git a/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/XmlElementFieldNamingStrategy.java b/models-interactions/model-impl/aai/src/main/java/org/onap/policy/aai/XmlElementFieldNamingStrategy.java
new file mode 100644 (file)
index 0000000..fa12362
--- /dev/null
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2023 Nordix Foundation.
+ * ================================================================================
+ * 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.aai;
+
+import com.google.gson.FieldNamingStrategy;
+import java.lang.reflect.Field;
+import javax.xml.bind.annotation.XmlElement;
+
+public class XmlElementFieldNamingStrategy implements FieldNamingStrategy {
+    @Override
+    public String translateName(Field field) {
+        XmlElement annotatedFieldName = field.getAnnotation(XmlElement.class);
+
+        if (annotatedFieldName != null) {
+            return annotatedFieldName.name();
+        } else {
+            return field.getName();
+        }
+    }
+}
\ No newline at end of file
index 2ec1f34..aee57f1 100644 (file)
@@ -3,7 +3,7 @@
  * ONAP
  * ================================================================================
  * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2021 Nordix Foundation.
+ * Modifications Copyright (C) 2021,2023 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,9 +28,11 @@ import java.util.Date;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.Index;
 import javax.persistence.Table;
+import javax.persistence.TableGenerator;
 import lombok.Data;
 
 @Entity
@@ -44,7 +46,13 @@ public class OperationsHistory implements Serializable {
     private static final long serialVersionUID = -551420180714993577L;
 
     @Id
-    @GeneratedValue
+    @GeneratedValue(strategy = GenerationType.TABLE, generator = "opHistoryIdGen")
+    @TableGenerator(
+        name = "opHistoryIdGen",
+        table = "ophistory_id_sequence",
+        pkColumnName = "SEQ_NAME",
+        valueColumnName = "SEQ_COUNT",
+        pkColumnValue = "SEQ_GEN")
     @Column(name = "id")
     private Long id;
 
index e2f8972..4b7fde4 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
+ *  Copyright (C) 2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2021-2022 Bell Canada. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -77,7 +77,7 @@ public class JpaPolicyAudit extends PfConcept implements PfAuthorative<PolicyAud
     @GeneratedValue(strategy = GenerationType.TABLE, generator = "auditIdGen")
     @TableGenerator(
         name = "auditIdGen",
-        table = "sequence",
+        table = "audit_sequence",
         pkColumnName = "SEQ_NAME",
         valueColumnName = "SEQ_COUNT",
         pkColumnValue = "SEQ_GEN")
index fcab08f..a009e63 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-   Copyright (C) 2021 Nordix Foundation.
+   Copyright (C) 2021,2023 Nordix Foundation.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
 
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
     <persistence-unit name="ToscaConceptTest" transaction-type="RESOURCE_LOCAL">
-        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-
         <class>org.onap.policy.models.pap.persistence.concepts.JpaPolicyAudit</class>
 
         <properties>
-            <property name="eclipselink.target-database" value="MySQL" />
-            <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" />
-
-            <!--property name="eclipselink.logging.level" value="ALL" />
-            <property name="eclipselink.logging.level.jpa" value="ALL" />
-            <property name="eclipselink.logging.level.ddl" value="ALL" />
-            <property name="eclipselink.logging.level.connection" value="ALL" />
-            <property name="eclipselink.logging.level.sql" value="ALL" />
-            <property name="eclipselink.logging.level.transaction" value="ALL" />
-            <property name="eclipselink.logging.level.sequencing" value="ALL" />
-            <property name="eclipselink.logging.level.server" value="ALL" />
-            <property name="eclipselink.logging.level.query" value="ALL" />
-            <property name="eclipselink.logging.level.properties" value="ALL" /-->
+            <property name="javax.persistence.schema-generation.database.action" value="drop-and-create" />
+            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
+            <property name="hibernate.show_sql" value="false" />
         </properties>
     </persistence-unit>
 </persistence>
index 7eb4e7c..57a8ec9 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP Policy Model
  * ================================================================================
- * Copyright (C) 2019-2021 Nordix Foundation.
+ * Copyright (C) 2019-2021,2023 Nordix Foundation.
  * Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
  * Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
  * ================================================================================
@@ -35,6 +35,7 @@ import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.Index;
 import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
 import javax.persistence.Table;
@@ -46,7 +47,6 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NonNull;
 import org.apache.commons.lang3.builder.CompareToBuilder;
-import org.eclipse.persistence.annotations.Index;
 import org.onap.policy.common.parameters.BeanValidationResult;
 import org.onap.policy.common.parameters.ValidationStatus;
 import org.onap.policy.common.parameters.annotations.Pattern;
@@ -64,10 +64,16 @@ import org.onap.policy.models.pdp.concepts.PdpStatistics;
  *
  */
 @Entity
-@Table(name = "PdpStatistics")
-@Index(name = "IDXTSIDX1", columnNames = {
-    "timeStamp", "name", "version"
-})
+@Table(
+    name = "PdpStatistics",
+    indexes = {
+        @Index(
+            name = "IDXTSIDX1",
+            columnList = "timeStamp,name,version",
+            unique = true
+            )
+    }
+)
 @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
 @Data
 @AllArgsConstructor
@@ -80,7 +86,7 @@ public class JpaPdpStatistics extends PfConcept implements PfAuthorative<PdpStat
     @GeneratedValue(strategy = GenerationType.TABLE, generator = "statisticsIdGen")
     @TableGenerator(
         name = "statisticsIdGen",
-        table = "sequence",
+        table = "statistics_sequence",
         pkColumnName = "SEQ_NAME",
         valueColumnName = "SEQ_COUNT",
         pkColumnValue = "SEQ_GEN")
index 2f12acb..80c906e 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -32,7 +32,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -81,7 +80,6 @@ public class PdpProviderTest {
     private StandardCoder standardCoder;
     private PdpPolicyStatusBuilder statusBuilder;
 
-
     /**
      * Set up the DAO towards the database.
      *
@@ -95,15 +93,15 @@ public class PdpProviderTest {
         daoParameters.setPersistenceUnit("ToscaConceptTest");
 
         Properties jdbcProperties = new Properties();
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "policy");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "P01icY");
 
         if (System.getProperty("USE-MARIADB") != null) {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.mariadb.jdbc.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:mariadb://localhost:3306/policy");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/policy");
         } else {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:h2:mem:PdpProviderTest");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:mem:PdpProviderTest");
         }
 
         daoParameters.setJdbcProperties(jdbcProperties);
@@ -128,7 +126,7 @@ public class PdpProviderTest {
         ToscaConceptIdentifier policyType = new ToscaConceptIdentifier("MyPolicyType", "1.2.4");
 
         statusBuilder = PdpPolicyStatus.builder().deploy(true).pdpType("MyPdpType").policy(MY_POLICY)
-                        .policyType(policyType).state(State.SUCCESS);
+            .policyType(policyType).state(State.SUCCESS);
     }
 
     @After
@@ -234,7 +232,7 @@ public class PdpProviderTest {
         assertThatThrownBy(() -> {
             new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups());
         }).hasMessageContaining("PDP group").hasMessageContaining("pdpGroupState")
-                        .hasMessageContaining(Validated.IS_NULL);
+            .hasMessageContaining(Validated.IS_NULL);
     }
 
     @Test
@@ -300,7 +298,7 @@ public class PdpProviderTest {
         assertThatThrownBy(() -> {
             new PdpProvider().updatePdpGroups(pfDao, pdpGroups0.getGroups());
         }).hasMessageContaining("PDP group").hasMessageContaining("pdpGroupState")
-                    .hasMessageContaining(Validated.IS_NULL);
+            .hasMessageContaining(Validated.IS_NULL);
     }
 
     @Test
@@ -407,7 +405,7 @@ public class PdpProviderTest {
         assertThatThrownBy(() -> {
             new PdpProvider().updatePdpSubGroup(pfDao, PDP_GROUP0, existingSubGroup);
         }).hasMessageContaining("PDP sub group").hasMessageContaining("desiredInstanceCount")
-                        .hasMessageContaining("below the minimum value");
+            .hasMessageContaining("below the minimum value");
         existingSubGroup.setDesiredInstanceCount(10);
     }
 
@@ -498,9 +496,9 @@ public class PdpProviderTest {
 
         List<PdpGroup> afterUpdatePdpGroups = new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0);
         assertEquals(PdpState.TEST,
-                afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getPdpState());
+            afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getPdpState());
         assertEquals(PdpHealthStatus.TEST_IN_PROGRESS,
-                afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getHealthy());
+            afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getHealthy());
 
         existingPdp.setMessage("");
         assertThatThrownBy(() -> {
@@ -693,12 +691,12 @@ public class PdpProviderTest {
         }).hasMessageContaining("policy").hasMessageContaining("null");
 
         assertThat(new PdpProvider().getAllPolicyStatus(pfDao, new ToscaConceptIdentifierOptVersion("somePdp", null)))
-                        .isEmpty();
+            .isEmpty();
 
         PdpProvider provider = loadDeployments();
         assertThat(provider.getAllPolicyStatus(pfDao, new ToscaConceptIdentifierOptVersion(MY_POLICY))).hasSize(2);
         assertThat(provider.getAllPolicyStatus(pfDao, new ToscaConceptIdentifierOptVersion(MY_POLICY.getName(), null)))
-                        .hasSize(3);
+            .hasSize(3);
     }
 
     @Test
@@ -722,7 +720,7 @@ public class PdpProviderTest {
         PdpProvider prov = new PdpProvider();
 
         assertThatThrownBy(() -> prov.cudPolicyStatus(null, List.of(), List.of(), List.of()))
-                        .hasMessageMatching(DAO_IS_NULL);
+            .hasMessageMatching(DAO_IS_NULL);
 
         // null collections should be OK
         assertThatCode(() -> prov.cudPolicyStatus(pfDao, null, null, null)).doesNotThrowAnyException();
index 7d4e589..e683bca 100644 (file)
@@ -1,29 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-   Copyright (C) 2019, 2021 Nordix Foundation.
+   Copyright (C) 2019,2021,2023 Nordix Foundation.
    Modifications Copyright (C) 2021 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=========================================================
 -->
 
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
     <persistence-unit name="ToscaConceptTest" transaction-type="RESOURCE_LOCAL">
-        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-
         <class>org.onap.policy.models.dao.converters.CDataConditioner</class>
         <class>org.onap.policy.models.dao.converters.Uuid2String</class>
         <class>org.onap.policy.models.base.PfConceptKey</class>
         <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaProperty</class>
 
         <properties>
-            <property name="eclipselink.target-database" value="MySQL" />
-            <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" />
-
-            <!--property name="eclipselink.logging.level" value="ALL" />
-            <property name="eclipselink.logging.level.jpa" value="ALL" />
-            <property name="eclipselink.logging.level.ddl" value="ALL" />
-            <property name="eclipselink.logging.level.connection" value="ALL" />
-            <property name="eclipselink.logging.level.sql" value="ALL" />
-            <property name="eclipselink.logging.level.transaction" value="ALL" />
-            <property name="eclipselink.logging.level.sequencing" value="ALL" />
-            <property name="eclipselink.logging.level.server" value="ALL" />
-            <property name="eclipselink.logging.level.query" value="ALL" />
-            <property name="eclipselink.logging.level.properties" value="ALL" /-->
+            <property name="javax.persistence.schema-generation.database.action" value="drop-and-create" />
+            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
+            <property name="hibernate.show_sql" value="false" />
         </properties>
     </persistence-unit>
 </persistence>
index 36c762e..d90847f 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2021 Nordix Foundation.
+ *  Copyright (C) 2021,2023 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,7 +24,6 @@ import java.util.Properties;
 import javax.ws.rs.core.Response;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.dao.DaoParameters;
 import org.onap.policy.models.dao.PfDao;
@@ -48,13 +47,14 @@ public final class ModelsProvider {
 
         // @formatter:off
         var jdbcProperties = new Properties();
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER,   parameters.getDatabaseDriver());
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL,      parameters.getDatabaseUrl());
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER,     parameters.getDatabaseUser());
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, parameters.getDatabasePassword());
-        jdbcProperties.setProperty(PersistenceUnitProperties.TARGET_DATABASE,
-                        (parameters.getDatabaseType() == null ? "MySQL" : parameters.getDatabaseType()));
-        // @formatter:on
+        jdbcProperties.setProperty("javax.persistence.jdbc.driver",   parameters.getDatabaseDriver());
+        jdbcProperties.setProperty("javax.persistence.jdbc.url",      parameters.getDatabaseUrl());
+        jdbcProperties.setProperty("javax.persistence.jdbc.user",     parameters.getDatabaseUser());
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", parameters.getDatabasePassword());
+        jdbcProperties.setProperty("hibernate.dialect",
+            (parameters.getDatabaseType() == null
+                ? "org.hibernate.dialect.MariaDBDialect"
+                    : parameters.getDatabaseType()));        // @formatter:on
 
         daoParameters.setJdbcProperties(jdbcProperties);
 
index ff3dae8..6cf56cb 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2022 Nordix Foundation.
+ *  Copyright (C) 2019-2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2020, 2022 Bell Canada. All rights reserved.
  * ================================================================================
@@ -90,6 +90,7 @@ public class DatabasePolicyModelsProviderTest {
         parameters.setDatabaseUser("policy");
         parameters.setDatabasePassword("P01icY");
         parameters.setPersistenceUnit("ToscaConceptTest");
+        parameters.setDatabaseType("org.hibernate.dialect.H2Dialect");
     }
 
     /**
@@ -110,20 +111,23 @@ public class DatabasePolicyModelsProviderTest {
 
         databaseProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
 
+        final String savedDatabaseUrl = parameters.getDatabaseUrl();
         parameters.setDatabaseUrl("jdbc://www.acmecorp.nonexist");
 
         databaseProvider.close();
-        databaseProvider.init();
+        assertThatThrownBy(() -> {
+            databaseProvider.init();
+        }).hasMessageContaining("could not create Data Access Object (DAO)");
 
         databaseProvider.close();
 
-        parameters.setDatabaseUrl("jdbc:h2:mem:DatabasePolicyModelsProviderTest");
+        parameters.setDatabaseUrl(savedDatabaseUrl);
 
+        final String savedPersistenceUnit = parameters.getPersistenceUnit();
         parameters.setPersistenceUnit("WileECoyote");
 
         assertThatThrownBy(databaseProvider::init).hasMessageContaining("could not create Data Access Object (DAO)");
-
-        parameters.setPersistenceUnit("ToscaConceptTest");
+        parameters.setPersistenceUnit(savedPersistenceUnit);
 
         databaseProvider.init();
         databaseProvider.close();
index c39eeb3..1f99316 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
@@ -81,9 +81,11 @@ public class PolicyToscaPersistenceTest {
         if (System.getProperty("USE-MARIADB") != null) {
             parameters.setDatabaseDriver("org.mariadb.jdbc.Driver");
             parameters.setDatabaseUrl("jdbc:mariadb://localhost:3306/policy");
+            parameters.setDatabaseType("org.hibernate.dialect.MariaDBDialect");
         } else {
             parameters.setDatabaseDriver("org.h2.Driver");
             parameters.setDatabaseUrl("jdbc:h2:mem:PolicyToscaPersistenceTest");
+            parameters.setDatabaseType("org.hibernate.dialect.H2Dialect");
         }
 
         parameters.setDatabaseUser("policy");
index 786563a..978a303 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
@@ -66,9 +66,11 @@ public class PolicyTypePersistenceTest {
         if (System.getProperty("USE-MARIADB") != null) {
             parameters.setDatabaseDriver("org.mariadb.jdbc.Driver");
             parameters.setDatabaseUrl("jdbc:mariadb://localhost:3306/policy");
+            parameters.setDatabaseType("org.hibernate.dialect.MariaDBDialect");
         } else {
             parameters.setDatabaseDriver("org.h2.Driver");
-            parameters.setDatabaseUrl("jdbc:h2:mem:PolicyTypePersistenceTest");
+            parameters.setDatabaseUrl("jdbc:h2:mem:PolicyToscaPersistenceTest");
+            parameters.setDatabaseType("org.hibernate.dialect.H2Dialect");
         }
 
         parameters.setDatabaseUser("policy");
index c55325e..2d2723f 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2020-2021 Nordix Foundation.
+ *  Copyright (C) 2020-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
@@ -55,6 +55,7 @@ public class HierarchyFetchTest {
         parameters.setDatabaseUser("policy");
         parameters.setDatabasePassword("P01icY");
         parameters.setPersistenceUnit("ToscaConceptTest");
+        parameters.setDatabaseType("org.hibernate.dialect.H2Dialect");
     }
 
     /**
@@ -95,29 +96,28 @@ public class HierarchyFetchTest {
         assertEquals(1, fetchedServiceTemplate.getPolicyTypes().size());
         ToscaPolicyType fetchedPolicyType = fetchedServiceTemplate.getPolicyTypes().values().iterator().next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0",
-                "3.0.0", fetchedServiceTemplate, 3);
-
+            "3.0.0", fetchedServiceTemplate, 3);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0", "1.0.0");
         assertOldDataTypesAreReturned(fetchedServiceTemplate);
         assertEquals(1, fetchedServiceTemplate.getPolicyTypes().size());
         fetchedPolicyType = fetchedServiceTemplate.getPolicyTypes().values().iterator().next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0",
-                "1.0.0", fetchedServiceTemplate, 1);
+            "1.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0", "1.1.0");
         assertOldDataTypesAreReturned(fetchedServiceTemplate);
         assertEquals(1, fetchedServiceTemplate.getPolicyTypes().size());
         fetchedPolicyType = fetchedServiceTemplate.getPolicyTypes().values().iterator().next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0",
-                "2.0.0", fetchedServiceTemplate, 1);
+            "2.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0", "1.2.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
         assertEquals(1, fetchedServiceTemplate.getPolicyTypes().size());
         fetchedPolicyType = fetchedServiceTemplate.getPolicyTypes().values().iterator().next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0",
-                "3.0.0", fetchedServiceTemplate, 1);
+            "3.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1", null);
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -128,7 +128,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1",
-                "3.0.0", fetchedServiceTemplate, 3);
+            "3.0.0", fetchedServiceTemplate, 3);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1", "1.0.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -138,7 +138,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1",
-                "1.0.0", fetchedServiceTemplate, 1);
+            "1.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1", "1.1.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -148,7 +148,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1",
-                "2.0.0", fetchedServiceTemplate, 1);
+            "2.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1", "1.2.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -158,7 +158,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1",
-                "3.0.0", fetchedServiceTemplate, 1);
+            "3.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1.2", null);
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -170,7 +170,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2",
-                "3.0.0", fetchedServiceTemplate, 3);
+            "3.0.0", fetchedServiceTemplate, 3);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1.2", "1.0.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -182,7 +182,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2",
-                "1.0.0", fetchedServiceTemplate, 1);
+            "1.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1.2", "1.1.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -194,7 +194,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2",
-                "2.0.0", fetchedServiceTemplate, 1);
+            "2.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1.2", "1.2.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -206,7 +206,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2",
-                "3.0.0", fetchedServiceTemplate, 1);
+            "3.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1.2.3", null);
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -220,7 +220,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2.3",
-                "3.0.0", fetchedServiceTemplate, 3);
+            "3.0.0", fetchedServiceTemplate, 3);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1.2.3", "1.0.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -234,7 +234,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2.3",
-                "1.0.0", fetchedServiceTemplate, 1);
+            "1.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1.2.3", "1.1.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -248,7 +248,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2.3",
-                "2.0.0", fetchedServiceTemplate, 1);
+            "2.0.0", fetchedServiceTemplate, 1);
 
         fetchedServiceTemplate = databaseProvider.getPolicies("onap.policies.PolicyLevel0.1.2.3", "1.2.0");
         assertLatestDataTypesAreReturned(fetchedServiceTemplate);
@@ -262,7 +262,7 @@ public class HierarchyFetchTest {
         checkNameVersion(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2", "3.0.0");
         fetchedPolicyType = fetchedPolicyTypeIterator.next();
         checkEqualsPolicyType(fetchedPolicyType, "onap.policies.PolicyTypeLevel0.1.2.3",
-                "3.0.0", fetchedServiceTemplate, 1);
+            "3.0.0", fetchedServiceTemplate, 1);
 
         databaseProvider.close();
     }
@@ -273,7 +273,7 @@ public class HierarchyFetchTest {
     }
 
     private void checkEqualsPolicyType(ToscaPolicyType fetchedPolicyType, String name, String ver,
-            ToscaServiceTemplate fetchedServiceTemplate, int policies) {
+        ToscaServiceTemplate fetchedServiceTemplate, int policies) {
         checkNameVersion(fetchedPolicyType, name, ver);
         assertEquals(policies, countReturnedPolicies(fetchedServiceTemplate));
     }
index 3b4d956..8247f08 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-   Copyright (C) 2019-2021 Nordix Foundation.
+   Copyright (C) 2019-2021,2023 Nordix Foundation.
    Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,8 +22,6 @@
 
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
     <persistence-unit name="ToscaConceptTest" transaction-type="RESOURCE_LOCAL">
-        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-
         <class>org.onap.policy.models.base.PfConceptKey</class>
         <class>org.onap.policy.models.dao.converters.CDataConditioner</class>
         <class>org.onap.policy.models.dao.converters.Uuid2String</class>
         <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaTrigger</class>
 
         <properties>
-            <property name="eclipselink.target-database" value="MySQL" />
-            <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" />
-
-            <!-- property name="eclipselink.logging.level" value="ALL" />
-            <property name="eclipselink.logging.level.jpa" value="ALL" />
-            <property name="eclipselink.logging.level.ddl" value="ALL" />
-            <property name="eclipselink.logging.level.connection" value="ALL" />
-            <property name="eclipselink.logging.level.sql" value="ALL" />
-            <property name="eclipselink.logging.level.transaction" value="ALL" />
-            <property name="eclipselink.logging.level.sequencing" value="ALL" />
-            <property name="eclipselink.logging.level.server" value="ALL" />
-            <property name="eclipselink.logging.level.query" value="ALL" />
-            <property name="eclipselink.logging.level.properties" value="ALL" /-->
+            <property name="javax.persistence.schema-generation.database.action" value="drop-and-create" />
+            <property name="hibernate.enable_lazy_load_no_trans" value="true" />
+            <property name="hibernate.show_sql" value="false" />
         </properties>
     </persistence-unit>
 </persistence>
index 14c8ca4..b9acde2 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020,2022 Nordix Foundation.
+ *  Copyright (C) 2019-2020,2022-2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,6 +26,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.TreeMap;
 import javax.persistence.AttributeOverride;
+import javax.persistence.AttributeOverrides;
 import javax.persistence.Column;
 import javax.persistence.ElementCollection;
 import javax.persistence.EmbeddedId;
@@ -67,8 +68,10 @@ public class JpaToscaEntityType<T extends ToscaEntity> extends PfConcept impleme
 
     // @formatter:off
     @Column
-    @AttributeOverride(name = "name", column = @Column(name = "derived_from_name"))
-    @AttributeOverride(name = "version", column = @Column(name = "derived_from_version"))
+    @AttributeOverrides({
+        @AttributeOverride(name = "name", column = @Column(name = "derived_from_name")),
+        @AttributeOverride(name = "version", column = @Column(name = "derived_from_version"))
+    })
     @VerifyKey
     private PfConceptKey derivedFrom;
 
index 09c406e..5f72e2b 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2020,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
  * ================================================================================
@@ -29,6 +29,7 @@ import javax.persistence.FetchType;
 import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
 import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
 import lombok.Data;
@@ -57,8 +58,10 @@ public class JpaToscaModel extends PfModel {
     private static final long serialVersionUID = 8800599637708309945L;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "serviceTemplatesName", referencedColumnName = "name")
-    @JoinColumn(name = "serviceTemplatesVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "serviceTemplatesName", referencedColumnName = "name"),
+        @JoinColumn(name = "serviceTemplatesVersion", referencedColumnName = "version")
+    })
     @Valid
     private JpaToscaServiceTemplates serviceTemplates;
 
index bd1dfd4..0a5f0c6 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- * Copyright (C) 2020-2021 Nordix Foundation.
+ * Copyright (C) 2020-2021,2023 Nordix Foundation.
  * Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,6 +31,7 @@ import javax.persistence.FetchType;
 import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
 import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
 import javax.ws.rs.core.Response;
@@ -63,14 +64,18 @@ public class JpaToscaNodeTemplate extends JpaToscaWithTypeAndStringProperties<To
 
     // formatter:off
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "requirementsName", referencedColumnName = "name")
-    @JoinColumn(name = "requirementsVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "requirementsName", referencedColumnName = "name"),
+        @JoinColumn(name = "requirementsVersion", referencedColumnName = "version")
+    })
     @Valid
     private JpaToscaRequirements requirements;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "capabilitiesName", referencedColumnName = "name")
-    @JoinColumn(name = "capabilitiesVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "capabilitiesName", referencedColumnName = "name"),
+        @JoinColumn(name = "capabilitiesVersion", referencedColumnName = "version")
+    })
     @Valid
     private JpaToscaCapabilityAssignments capabilities;
     // @formatter:on
index 512abb7..f295acc 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- * Copyright (C) 2020 Nordix Foundation.
+ * Copyright (C) 2020,2023 Nordix Foundation.
  * Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,6 +28,7 @@ import javax.persistence.FetchType;
 import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
 import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
 import lombok.Data;
@@ -58,8 +59,10 @@ public class JpaToscaNodeType extends JpaToscaWithToscaProperties<ToscaNodeType>
 
     // formatter:off
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "requirementsName", referencedColumnName = "name")
-    @JoinColumn(name = "requirementsVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "requirementsName", referencedColumnName = "name"),
+        @JoinColumn(name = "requirementsVersion", referencedColumnName = "version")
+    })
     // @formatter:on
     @Valid
     private JpaToscaRequirements requirements;
index 769b623..109f1f0 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,6 +34,7 @@ import javax.persistence.FetchType;
 import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
 import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
 import lombok.Data;
@@ -78,45 +79,57 @@ public class JpaToscaServiceTemplate extends JpaToscaEntityType<ToscaServiceTemp
     private String toscaDefinitionsVersion;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "dataTypesName",    referencedColumnName = "name")
-    @JoinColumn(name = "dataTypesVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "dataTypesName",    referencedColumnName = "name"),
+        @JoinColumn(name = "dataTypesVersion", referencedColumnName = "version")
+    })
     @SerializedName("data_types")
     @Valid
     private JpaToscaDataTypes dataTypes;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "capabilityTypesName",    referencedColumnName = "name")
-    @JoinColumn(name = "capabilityTypesVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "capabilityTypesName",    referencedColumnName = "name"),
+        @JoinColumn(name = "capabilityTypesVersion", referencedColumnName = "version")
+    })
     @SerializedName("capability_types")
     @Valid
     private JpaToscaCapabilityTypes capabilityTypes;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "relationshipTypesName",    referencedColumnName = "name")
-    @JoinColumn(name = "relationshipTypesVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "relationshipTypesName",    referencedColumnName = "name"),
+        @JoinColumn(name = "relationshipTypesVersion", referencedColumnName = "version")
+    })
     @SerializedName("relationship_types")
     @Valid
     private JpaToscaRelationshipTypes relationshipTypes;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "nodeTypesName",    referencedColumnName = "name")
-    @JoinColumn(name = "nodeTypesVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "nodeTypesName",    referencedColumnName = "name"),
+        @JoinColumn(name = "nodeTypesVersion", referencedColumnName = "version")
+    })
     @SerializedName("node_types")
     @Valid
     private JpaToscaNodeTypes nodeTypes;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "policyTypesName",    referencedColumnName = "name")
-    @JoinColumn(name = "policyTypesVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "policyTypesName",    referencedColumnName = "name"),
+        @JoinColumn(name = "policyTypesVersion", referencedColumnName = "version")
+    })
     @SerializedName("policy_types")
     @Valid
     private JpaToscaPolicyTypes policyTypes;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "topologyTemplateParentKeyName",    referencedColumnName = "parentKeyName")
-    @JoinColumn(name = "topologyTemplateParentKeyVersion", referencedColumnName = "parentKeyVersion")
-    @JoinColumn(name = "topologyTemplateParentLocalName",  referencedColumnName = "parentLocalName")
-    @JoinColumn(name = "topologyTemplateLocalName",        referencedColumnName = "localName")
+    @JoinColumns({
+        @JoinColumn(name = "topologyTemplateParentKeyName",    referencedColumnName = "parentKeyName"),
+        @JoinColumn(name = "topologyTemplateParentKeyVersion", referencedColumnName = "parentKeyVersion"),
+        @JoinColumn(name = "topologyTemplateParentLocalName",  referencedColumnName = "parentLocalName"),
+        @JoinColumn(name = "topologyTemplateLocalName",        referencedColumnName = "localName")
+    })
     @SerializedName("topology_template")
     @Valid
     private JpaToscaTopologyTemplate topologyTemplate;
index af6f512..629e14a 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Copyright (C) 2019-2020,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -35,6 +35,7 @@ import javax.persistence.FetchType;
 import javax.persistence.Inheritance;
 import javax.persistence.InheritanceType;
 import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
 import javax.persistence.Lob;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
@@ -86,15 +87,20 @@ public class JpaToscaTopologyTemplate extends PfConcept implements PfAuthorative
     private Map<@NotNull String, @NotNull @Valid JpaToscaParameter> inputs;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "nodeTemplatesName", referencedColumnName = "name")
-    @JoinColumn(name = "nodeTemplatessVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "nodeTemplatesName", referencedColumnName = "name"),
+        @JoinColumn(name = "nodeTemplatessVersion", referencedColumnName = "version")
+    })
     @SerializedName("data_types")
     @Valid
     private JpaToscaNodeTemplates nodeTemplates;
 
     @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
-    @JoinColumn(name = "policyName",    referencedColumnName = "name")
-    @JoinColumn(name = "policyVersion", referencedColumnName = "version")
+    @JoinColumns({
+        @JoinColumn(name = "policyName",    referencedColumnName = "name"),
+        @JoinColumn(name = "policyVersion", referencedColumnName = "version")
+
+    })
     // @formatter:on
     @Valid
     private JpaToscaPolicies policies;
index 55acc06..cb0ff4e 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2021 Nordix Foundation.
+ * Modifications Copyright (C) 2021,2023 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,6 +25,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import javax.persistence.AttributeOverride;
+import javax.persistence.AttributeOverrides;
 import javax.persistence.Column;
 import javax.persistence.ElementCollection;
 import javax.persistence.Lob;
@@ -56,8 +57,10 @@ public abstract class JpaToscaWithTypeAndStringProperties<T extends ToscaWithTyp
     private static final long serialVersionUID = 2785481541573683089L;
 
     @Column
-    @AttributeOverride(name = "name", column = @Column(name = "type_name"))
-    @AttributeOverride(name = "version", column = @Column(name = "type_version"))
+    @AttributeOverrides ({
+        @AttributeOverride(name = "name", column = @Column(name = "type_name")),
+        @AttributeOverride(name = "version", column = @Column(name = "type_version"))
+    })
     @VerifyKey
     @NotNull
     private PfConceptKey type;
index 63ac44a..51976d1 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2020-2021 Nordix Foundation.
+ *  Copyright (C) 2020-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -30,7 +30,6 @@ import com.google.gson.GsonBuilder;
 import java.util.List;
 import java.util.Properties;
 import org.apache.commons.lang3.ObjectUtils;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -86,18 +85,16 @@ public class AuthorativeToscaProviderGenericTest {
         daoParameters.setPersistenceUnit("ToscaConceptTest");
 
         Properties jdbcProperties = new Properties();
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
-
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "policy");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "P01icY");
         if (System.getProperty("USE-MARIADB") != null) {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.mariadb.jdbc.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:mariadb://localhost:3306/policy");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/policy");
         } else {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL,
-                            "jdbc:h2:mem:AuthorativeToscaProviderGenericTest");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url",
+                "jdbc:h2:mem:AuthorativeToscaProviderGenericTest");
         }
-
         daoParameters.setJdbcProperties(jdbcProperties);
 
         pfDao = new PfDaoFactory().createPfDao(daoParameters);
@@ -127,7 +124,7 @@ public class AuthorativeToscaProviderGenericTest {
 
         assertNotNull(toscaServiceTemplate);
         ToscaServiceTemplate createdServiceTemplate =
-                new AuthorativeToscaProvider().createServiceTemplate(pfDao, toscaServiceTemplate);
+            new AuthorativeToscaProvider().createServiceTemplate(pfDao, toscaServiceTemplate);
 
         PfConceptKey policyTypeKey = new PfConceptKey(POLICY_NO_VERSION_VERSION1);
 
@@ -137,14 +134,14 @@ public class AuthorativeToscaProviderGenericTest {
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
 
         List<ToscaServiceTemplate> gotServiceTemplateList =
-                new AuthorativeToscaProvider().getServiceTemplateList(pfDao, null, null);
+            new AuthorativeToscaProvider().getServiceTemplateList(pfDao, null, null);
 
         ToscaPolicyType gotPolicyType = gotServiceTemplateList.get(0).getPolicyTypes().get(policyTypeKey.getName());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
 
         List<ToscaPolicyType> gotPolicyTypeList =
-                new AuthorativeToscaProvider().getPolicyTypeList(pfDao, POLICY_NO_VERSION, VERSION_001);
+            new AuthorativeToscaProvider().getPolicyTypeList(pfDao, POLICY_NO_VERSION, VERSION_001);
         assertEquals(2, gotPolicyTypeList.size());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
 
@@ -161,48 +158,48 @@ public class AuthorativeToscaProviderGenericTest {
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().getPolicyTypeList(new DefaultPfDao(), POLICY_NO_VERSION,
-                VERSION_001)).hasMessageContaining("Policy Framework DAO has not been initialized");
+            VERSION_001)).hasMessageContaining("Policy Framework DAO has not been initialized");
 
         assertTrue(new AuthorativeToscaProvider().getPolicyTypeList(pfDao, "i.dont.Exist", VERSION_001).isEmpty());
 
         ToscaServiceTemplate deletedServiceTemplate =
-                new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, "Dummy", "0.0.1");
+            new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, "Dummy", "0.0.1");
         assertEquals(2, deletedServiceTemplate.getPolicyTypes().size());
     }
 
     @Test
     public void testNullParameters() throws Exception {
         assertThatThrownBy(() -> new AuthorativeToscaProvider().getServiceTemplateList(null, null, null))
-                .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+            .hasMessageMatching("^dao is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().createServiceTemplate(null, null))
-                .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+            .hasMessageMatching("^dao is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().createServiceTemplate(pfDao, null))
-                .hasMessageMatching("^serviceTemplate is marked .*on.*ull but is null$");
+            .hasMessageMatching("^serviceTemplate is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().createServiceTemplate(null, new ToscaServiceTemplate()))
-                .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+            .hasMessageMatching("^dao is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(null, null, null))
-                .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+            .hasMessageMatching("^dao is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(null, null, "0.0.1"))
-                .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+            .hasMessageMatching("^dao is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(null, "Dummy", null))
-                .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+            .hasMessageMatching("^dao is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(null, "Dummy", "0.0.1"))
-                .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+            .hasMessageMatching("^dao is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, null, null))
-                .hasMessageMatching("^name is marked .*on.*ull but is null$");
+            .hasMessageMatching("^name is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, null, "0.0.1"))
-                .hasMessageMatching("^name is marked .*on.*ull but is null$");
+            .hasMessageMatching("^name is marked .*on.*ull but is null$");
 
         assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, "Dummy", null))
-                .hasMessageMatching("^version is marked .*on.*ull but is null$");
+            .hasMessageMatching("^version is marked .*on.*ull but is null$");
     }
 }
index cc034d8..64c1647 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2022 Nordix Foundation.
+ *  Copyright (C) 2022-2023 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -29,7 +29,6 @@ import static org.junit.Assert.assertTrue;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -96,18 +95,16 @@ public class AuthorativeToscaProviderNodeTemplateTest {
         daoParameters.setPersistenceUnit("ToscaConceptTest");
 
         Properties jdbcProperties = new Properties();
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
-
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "policy");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "P01icY");
         if (System.getProperty("USE-MARIADB") != null) {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.mariadb.jdbc.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:mariadb://localhost:3306/policy");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/policy");
         } else {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL,
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url",
                 "jdbc:h2:mem:AuthorativeToscaProviderNodeTemplatesTest");
         }
-
         daoParameters.setJdbcProperties(jdbcProperties);
 
         pfDao = new PfDaoFactory().createPfDao(daoParameters);
index 250b3e2..954f21e 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -30,7 +30,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -78,18 +77,16 @@ public class AuthorativeToscaProviderPolicyTest {
         daoParameters.setPersistenceUnit("ToscaConceptTest");
 
         Properties jdbcProperties = new Properties();
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
-
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "policy");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "P01icY");
         if (System.getProperty("USE-MARIADB") != null) {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.mariadb.jdbc.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:mariadb://localhost:3306/policy");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/policy");
         } else {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL,
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url",
                             "jdbc:h2:mem:AuthorativeToscaProviderPolicyTest");
         }
-
         daoParameters.setJdbcProperties(jdbcProperties);
 
         pfDao = new PfDaoFactory().createPfDao(daoParameters);
index fff1aca..3511bc8 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,7 +31,6 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Properties;
 import org.apache.commons.lang3.ObjectUtils;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -89,18 +88,16 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         daoParameters.setPersistenceUnit("ToscaConceptTest");
 
         Properties jdbcProperties = new Properties();
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
-
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "policy");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "P01icY");
         if (System.getProperty("USE-MARIADB") != null) {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.mariadb.jdbc.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:mariadb://localhost:3306/policy");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/policy");
         } else {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL,
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url",
                             "jdbc:h2:mem:AuthorativeToscaProviderPolicyTypeTest");
         }
-
         daoParameters.setJdbcProperties(jdbcProperties);
 
         pfDao = new PfDaoFactory().createPfDao(daoParameters);
index 55cd11e..2382c5a 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Copyright (C) 2019-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -26,9 +26,10 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
+import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.Properties;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
+import java.util.TreeMap;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -46,6 +47,7 @@ import org.onap.policy.models.dao.impl.DefaultPfDao;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.onap.policy.models.tosca.authorative.provider.AuthorativeToscaProvider;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraint;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataType;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataTypes;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicies;
@@ -55,6 +57,7 @@ import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyTypes;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaProperty;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaTopologyTemplate;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaTrigger;
 import org.yaml.snakeyaml.Yaml;
 
 /**
@@ -84,15 +87,15 @@ public class SimpleToscaProviderTest {
         daoParameters.setPersistenceUnit("ToscaConceptTest");
 
         Properties jdbcProperties = new Properties();
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "policy");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "P01icY");
 
         if (System.getProperty("USE-MARIADB") != null) {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.mariadb.jdbc.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:mariadb://localhost:3306/policy");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/policy");
         } else {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:h2:mem:SimpleToscaProviderTest");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:mem:SimpleToscaProviderTest");
         }
 
         daoParameters.setJdbcProperties(jdbcProperties);
@@ -116,16 +119,19 @@ public class SimpleToscaProviderTest {
 
     @Test
     public void testCreateUpdateGetDeleteDataType() throws PfModelException {
-        JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
-
         PfConceptKey dataType0Key = new PfConceptKey("DataType0", "0.0.1");
         JpaToscaDataType dataType0 = new JpaToscaDataType();
         dataType0.setKey(dataType0Key);
+        dataType0.setConstraints(new ArrayList<JpaToscaConstraint>());
+        dataType0.setMetadata(new TreeMap<String, String>());
+        dataType0.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+
+        JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
         serviceTemplate.setDataTypes(new JpaToscaDataTypes());
         serviceTemplate.getDataTypes().getConceptMap().put(dataType0Key, dataType0);
 
         JpaToscaServiceTemplate createdServiceTemplate =
-                new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
+            new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
 
         assertEquals(1, createdServiceTemplate.getDataTypes().getConceptMap().size());
         assertEquals(dataType0, createdServiceTemplate.getDataTypes().get(dataType0Key));
@@ -134,19 +140,19 @@ public class SimpleToscaProviderTest {
         dataType0.setDescription("Updated Description");
 
         JpaToscaServiceTemplate updatedServiceTemplate =
-                new SimpleToscaProvider().updateDataTypes(pfDao, serviceTemplate);
+            new SimpleToscaProvider().updateDataTypes(pfDao, serviceTemplate);
 
         assertEquals(dataType0, updatedServiceTemplate.getDataTypes().get(dataType0Key));
         assertEquals("Updated Description", updatedServiceTemplate.getDataTypes().get(dataType0Key).getDescription());
 
         JpaToscaServiceTemplate gotServiceTemplate =
-                new SimpleToscaProvider().getDataTypes(pfDao, dataType0Key.getName(), dataType0Key.getVersion());
+            new SimpleToscaProvider().getDataTypes(pfDao, dataType0Key.getName(), dataType0Key.getVersion());
 
         assertEquals(dataType0, gotServiceTemplate.getDataTypes().get(dataType0Key));
         assertEquals("Updated Description", gotServiceTemplate.getDataTypes().get(dataType0Key).getDescription());
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deleteDataType(pfDao, new PfConceptKey("IDontExist:0.0.1")))
-                .hasMessage("data type IDontExist:0.0.1 not found");
+            .hasMessage("data type IDontExist:0.0.1 not found");
 
         JpaToscaServiceTemplate deletedServiceTemplate = new SimpleToscaProvider().deleteDataType(pfDao, dataType0Key);
 
@@ -167,7 +173,7 @@ public class SimpleToscaProviderTest {
         assertEquals("Updated Description", deletedServiceTemplate.getDataTypes().get(dataType0Key).getDescription());
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deleteDataType(pfDao, dataType0Key))
-                .hasMessage("no data types found");
+            .hasMessage("no data types found");
 
         // Create the data type again
         new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
@@ -181,9 +187,12 @@ public class SimpleToscaProviderTest {
         new SimpleToscaProvider().createPolicyTypes(pfDao, updatedServiceTemplate);
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deleteDataType(pfDao, dataType0Key))
-                .hasMessage("data type DataType0:0.0.1 is in use, it is referenced in policy type pt0:0.0.2");
+            .hasMessage("data type DataType0:0.0.1 is in use, it is referenced in policy type pt0:0.0.2");
 
         JpaToscaDataType dataType0v2 = new JpaToscaDataType(new PfConceptKey("DataType0:0.0.2"));
+        dataType0v2.setConstraints(new ArrayList<JpaToscaConstraint>());
+        dataType0v2.setMetadata(new TreeMap<String, String>());
+        dataType0v2.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
         updatedServiceTemplate.getDataTypes().getConceptMap().put(dataType0v2.getKey(), dataType0v2);
         new SimpleToscaProvider().createDataTypes(pfDao, updatedServiceTemplate);
 
@@ -193,7 +202,7 @@ public class SimpleToscaProviderTest {
         assertNull(deletedServiceTemplate.getDataTypes().get(dataType0v2.getKey()).getDescription());
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deleteDataType(pfDao, dataType0Key))
-                .hasMessage("data type DataType0:0.0.1 is in use, it is referenced in policy type pt0:0.0.2");
+            .hasMessage("data type DataType0:0.0.1 is in use, it is referenced in policy type pt0:0.0.2");
 
         JpaToscaDataType dataType1 = new JpaToscaDataType(new PfConceptKey("DataType1:0.0.3"));
         JpaToscaProperty prop1 = new JpaToscaProperty(new PfReferenceKey(dataType1.getKey(), "prop1"));
@@ -204,7 +213,7 @@ public class SimpleToscaProviderTest {
         new SimpleToscaProvider().createDataTypes(pfDao, updatedServiceTemplate);
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deleteDataType(pfDao, dataType0v2.getKey()))
-                .hasMessage("data type DataType0:0.0.2 is in use, it is referenced in data type DataType1:0.0.3");
+            .hasMessage("data type DataType0:0.0.2 is in use, it is referenced in data type DataType1:0.0.3");
     }
 
     @Test
@@ -220,11 +229,15 @@ public class SimpleToscaProviderTest {
         PfConceptKey policyType0Key = new PfConceptKey("PolicyType0", "0.0.1");
         JpaToscaPolicyType policyType0 = new JpaToscaPolicyType();
         policyType0.setKey(policyType0Key);
+        policyType0.setMetadata(new TreeMap<String, String>());
+        policyType0.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+        policyType0.setTargets(new ArrayList<PfConceptKey>());
+        policyType0.setTriggers(new ArrayList<JpaToscaTrigger>());
         serviceTemplate.setPolicyTypes(new JpaToscaPolicyTypes());
         serviceTemplate.getPolicyTypes().getConceptMap().put(policyType0Key, policyType0);
 
         JpaToscaServiceTemplate createdServiceTemplate =
-                new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
+            new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
 
         assertEquals(1, createdServiceTemplate.getPolicyTypes().getConceptMap().size());
         assertEquals(policyType0, createdServiceTemplate.getPolicyTypes().get(policyType0Key));
@@ -233,14 +246,14 @@ public class SimpleToscaProviderTest {
         policyType0.setDescription("Updated Description");
 
         JpaToscaServiceTemplate updatedServiceTemplate =
-                new SimpleToscaProvider().updatePolicyTypes(pfDao, serviceTemplate);
+            new SimpleToscaProvider().updatePolicyTypes(pfDao, serviceTemplate);
 
         assertEquals(policyType0, updatedServiceTemplate.getPolicyTypes().get(policyType0Key));
         assertEquals("Updated Description",
-                updatedServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
+            updatedServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
 
         JpaToscaServiceTemplate gotServiceTemplate =
-                new SimpleToscaProvider().getPolicyTypes(pfDao, policyType0Key.getName(), policyType0Key.getVersion());
+            new SimpleToscaProvider().getPolicyTypes(pfDao, policyType0Key.getName(), policyType0Key.getVersion());
 
         assertEquals(policyType0, gotServiceTemplate.getPolicyTypes().get(policyType0Key));
         assertEquals("Updated Description", gotServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
@@ -255,7 +268,7 @@ public class SimpleToscaProviderTest {
         new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deletePolicyType(pfDao, policyType0Key))
-                .hasMessage("policy type PolicyType0:0.0.1 is in use, it is referenced in policy type pt1:0.0.2");
+            .hasMessage("policy type PolicyType0:0.0.1 is in use, it is referenced in policy type pt1:0.0.2");
 
         serviceTemplate.setTopologyTemplate(new JpaToscaTopologyTemplate());
         serviceTemplate.getTopologyTemplate().setPolicies(new JpaToscaPolicies());
@@ -270,10 +283,10 @@ public class SimpleToscaProviderTest {
         new SimpleToscaProvider().createPolicies(pfDao, serviceTemplate);
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deletePolicyType(pfDao, policyType0Key))
-                .hasMessage("policy type PolicyType0:0.0.1 is in use, it is referenced in policy type pt1:0.0.2");
+            .hasMessage("policy type PolicyType0:0.0.1 is in use, it is referenced in policy type pt1:0.0.2");
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deletePolicyType(pfDao, pt1.getKey()))
-                .hasMessage("policy type pt1:0.0.2 is in use, it is referenced in policy p1:0.0.1");
+            .hasMessage("policy type pt1:0.0.2 is in use, it is referenced in policy p1:0.0.1");
 
         new SimpleToscaProvider().deletePolicy(pfDao, p1.getKey());
 
@@ -282,32 +295,36 @@ public class SimpleToscaProviderTest {
         new SimpleToscaProvider().deletePolicy(pfDao, p0.getKey());
 
         JpaToscaServiceTemplate deletedServiceTemplate =
-                new SimpleToscaProvider().deletePolicyType(pfDao, policyType0Key);
+            new SimpleToscaProvider().deletePolicyType(pfDao, policyType0Key);
 
         assertEquals(policyType0, deletedServiceTemplate.getPolicyTypes().get(policyType0Key));
         assertEquals("Updated Description",
-                deletedServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
+            deletedServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deletePolicyType(pfDao, policyType0Key))
-                .hasMessage("no policy types found");
+            .hasMessage("no policy types found");
 
         JpaToscaServiceTemplate newServiceTemplate =
-                new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
+            new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
         assertEquals(serviceTemplate, newServiceTemplate);
     }
 
     @Test
     public void testCreateUpdateGetDeletePolicyTypeWithDataType() throws PfModelException {
-        JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
-
         PfConceptKey policyType0Key = new PfConceptKey("PolicyType0", "0.0.1");
         JpaToscaPolicyType policyType0 = new JpaToscaPolicyType();
         policyType0.setKey(policyType0Key);
+        policyType0.setMetadata(new TreeMap<String, String>());
+        policyType0.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+        policyType0.setTargets(new ArrayList<PfConceptKey>());
+        policyType0.setTriggers(new ArrayList<JpaToscaTrigger>());
+
+        JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
         serviceTemplate.setPolicyTypes(new JpaToscaPolicyTypes());
         serviceTemplate.getPolicyTypes().getConceptMap().put(policyType0Key, policyType0);
 
         JpaToscaServiceTemplate createdServiceTemplate =
-                new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
+            new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
 
         assertEquals(policyType0, createdServiceTemplate.getPolicyTypes().get(policyType0Key));
         assertEquals(null, createdServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
@@ -315,33 +332,33 @@ public class SimpleToscaProviderTest {
         policyType0.setDescription("Updated Description");
 
         JpaToscaServiceTemplate updatedServiceTemplate =
-                new SimpleToscaProvider().updatePolicyTypes(pfDao, serviceTemplate);
+            new SimpleToscaProvider().updatePolicyTypes(pfDao, serviceTemplate);
 
         assertEquals(policyType0, updatedServiceTemplate.getPolicyTypes().get(policyType0Key));
         assertEquals("Updated Description",
-                updatedServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
+            updatedServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
 
         JpaToscaServiceTemplate gotServiceTemplate =
-                new SimpleToscaProvider().getPolicyTypes(pfDao, policyType0Key.getName(), policyType0Key.getVersion());
+            new SimpleToscaProvider().getPolicyTypes(pfDao, policyType0Key.getName(), policyType0Key.getVersion());
 
         assertEquals(policyType0, gotServiceTemplate.getPolicyTypes().get(policyType0Key));
         assertEquals("Updated Description", gotServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
 
         JpaToscaServiceTemplate deletedServiceTemplate =
-                new SimpleToscaProvider().deletePolicyType(pfDao, policyType0Key);
+            new SimpleToscaProvider().deletePolicyType(pfDao, policyType0Key);
 
         assertEquals(policyType0, deletedServiceTemplate.getPolicyTypes().get(policyType0Key));
         assertEquals("Updated Description",
-                deletedServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
+            deletedServiceTemplate.getPolicyTypes().get(policyType0Key).getDescription());
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deletePolicyType(pfDao, policyType0Key))
-                .hasMessage("no policy types found");
+            .hasMessage("no policy types found");
     }
 
     @Test
     public void testPoliciesGet() throws Exception {
         ToscaServiceTemplate toscaServiceTemplate =
-                standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
+            standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
 
         createPolicyTypes();
 
@@ -350,18 +367,18 @@ public class SimpleToscaProviderTest {
 
         assertNotNull(originalServiceTemplate);
         JpaToscaServiceTemplate createdServiceTemplate =
-                new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
+            new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
 
         assertEquals(originalServiceTemplate.getTopologyTemplate().getPolicies(),
-                createdServiceTemplate.getTopologyTemplate().getPolicies());
+            createdServiceTemplate.getTopologyTemplate().getPolicies());
 
         PfConceptKey policyKey = new PfConceptKey("onap.restart.tca:1.0.0");
 
         JpaToscaServiceTemplate gotServiceTemplate =
-                new SimpleToscaProvider().getPolicies(pfDao, policyKey.getName(), policyKey.getVersion());
+            new SimpleToscaProvider().getPolicies(pfDao, policyKey.getName(), policyKey.getVersion());
 
         assertEquals(0, originalServiceTemplate.getTopologyTemplate().getPolicies().get(policyKey)
-                .compareTo(gotServiceTemplate.getTopologyTemplate().getPolicies().get(policyKey)));
+            .compareTo(gotServiceTemplate.getTopologyTemplate().getPolicies().get(policyKey)));
 
         JpaToscaServiceTemplate deletedServiceTemplate = new SimpleToscaProvider().deletePolicy(pfDao, policyKey);
         assertEquals(1, deletedServiceTemplate.getTopologyTemplate().getPolicies().getConceptMap().size());
@@ -370,7 +387,7 @@ public class SimpleToscaProviderTest {
     @Test
     public void testPolicyCreate() throws Exception {
         ToscaServiceTemplate toscaServiceTemplate =
-                standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
+            standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
 
         createPolicyTypes();
 
@@ -379,21 +396,21 @@ public class SimpleToscaProviderTest {
 
         assertNotNull(originalServiceTemplate);
         JpaToscaServiceTemplate createdServiceTemplate =
-                new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
+            new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
 
         assertEquals(originalServiceTemplate.getTopologyTemplate().getPolicies(),
-                createdServiceTemplate.getTopologyTemplate().getPolicies());
+            createdServiceTemplate.getTopologyTemplate().getPolicies());
     }
 
     @Test
     public void testPolicyCreateTypeAndVersion() throws Exception {
         ToscaServiceTemplate toscaServiceTemplate =
-                standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
+            standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
 
         createPolicyTypes();
 
         ToscaPolicy toscaPolicy =
-                toscaServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().values().iterator().next();
+            toscaServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().values().iterator().next();
 
         JpaToscaServiceTemplate originalServiceTemplate = new JpaToscaServiceTemplate();
 
@@ -410,7 +427,7 @@ public class SimpleToscaProviderTest {
         assertThatThrownBy(() -> {
             originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
         }).hasMessage("Version not specified, the version of this TOSCA entity must be "
-                + "specified in the type_version field");
+            + "specified in the type_version field");
 
         toscaPolicy.setTypeVersion("hello");
         assertThatThrownBy(() -> {
@@ -423,7 +440,7 @@ public class SimpleToscaProviderTest {
         assertThatThrownBy(() -> {
             new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
         }).hasMessageContaining("policy type").hasMessageContaining("IDontExist:99.100.101")
-                .hasMessageContaining(Validated.NOT_FOUND);
+            .hasMessageContaining(Validated.NOT_FOUND);
 
         toscaPolicy.setType("IDontExist");
         originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
@@ -439,15 +456,15 @@ public class SimpleToscaProviderTest {
 
         originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
         JpaToscaServiceTemplate createdServiceTemplate =
-                new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
+            new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
         assertEquals(originalServiceTemplate.getTopologyTemplate().getPolicies(),
-                createdServiceTemplate.getTopologyTemplate().getPolicies());
+            createdServiceTemplate.getTopologyTemplate().getPolicies());
     }
 
     @Test
     public void testPolicyUpdate() throws Exception {
         ToscaServiceTemplate toscaServiceTemplate =
-                standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
+            standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
 
         createPolicyTypes();
 
@@ -456,7 +473,7 @@ public class SimpleToscaProviderTest {
 
         assertNotNull(originalServiceTemplate);
         JpaToscaServiceTemplate updatedServiceTemplate =
-                new SimpleToscaProvider().updatePolicies(pfDao, originalServiceTemplate);
+            new SimpleToscaProvider().updatePolicies(pfDao, originalServiceTemplate);
 
         assertEquals(originalServiceTemplate, updatedServiceTemplate);
     }
@@ -464,7 +481,7 @@ public class SimpleToscaProviderTest {
     @Test
     public void testPoliciesDelete() throws Exception {
         ToscaServiceTemplate toscaServiceTemplate =
-                standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
+            standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
 
         createPolicyTypes();
 
@@ -473,26 +490,26 @@ public class SimpleToscaProviderTest {
 
         assertNotNull(originalServiceTemplate);
         JpaToscaServiceTemplate createdServiceTemplate =
-                new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
+            new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
 
         assertEquals(originalServiceTemplate.getTopologyTemplate(), createdServiceTemplate.getTopologyTemplate());
 
         PfConceptKey policyKey = new PfConceptKey("onap.restart.tca:1.0.0");
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deletePolicy(pfDao, new PfConceptKey("IDontExist:0.0.1")))
-                .hasMessage("policy IDontExist:0.0.1 not found");
+            .hasMessage("policy IDontExist:0.0.1 not found");
 
         JpaToscaServiceTemplate deletedServiceTemplate = new SimpleToscaProvider().deletePolicy(pfDao, policyKey);
 
         assertEquals(0, originalServiceTemplate.getTopologyTemplate().getPolicies().get(policyKey)
-                .compareTo(deletedServiceTemplate.getTopologyTemplate().getPolicies().get(policyKey)));
+            .compareTo(deletedServiceTemplate.getTopologyTemplate().getPolicies().get(policyKey)));
 
         assertThatThrownBy(() -> {
             new SimpleToscaProvider().getPolicies(pfDao, policyKey.getName(), policyKey.getVersion());
         }).hasMessage("policies for onap.restart.tca:1.0.0 do not exist");
 
         assertThatThrownBy(() -> new SimpleToscaProvider().deletePolicy(pfDao, policyKey))
-                .hasMessage("no policies found");
+            .hasMessage("no policies found");
 
         new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
     }
@@ -502,21 +519,21 @@ public class SimpleToscaProviderTest {
         JpaToscaServiceTemplate testServiceTemplate = new JpaToscaServiceTemplate();
 
         assertThatThrownBy(() -> new SimpleToscaProvider().createPolicies(pfDao, testServiceTemplate))
-                .hasMessage("topology template not specified on service template");
+            .hasMessage("topology template not specified on service template");
 
         testServiceTemplate.setTopologyTemplate(new JpaToscaTopologyTemplate());
         assertThatThrownBy(() -> new SimpleToscaProvider().createPolicies(pfDao, testServiceTemplate))
-                .hasMessage("no policies specified on topology template of service template");
+            .hasMessage("no policies specified on topology template of service template");
 
         testServiceTemplate.getTopologyTemplate().setPolicies(new JpaToscaPolicies());
         assertThatThrownBy(() -> new SimpleToscaProvider().createPolicies(pfDao, testServiceTemplate))
-                .hasMessage("list of policies specified on topology template of service template is empty");
+            .hasMessage("list of policies specified on topology template of service template is empty");
     }
 
     @Test
     public void testGetServiceTemplate() throws PfModelException {
         assertThatThrownBy(() -> new SimpleToscaProvider().getServiceTemplate(pfDao))
-                .hasMessage("service template not found in database");
+            .hasMessage("service template not found in database");
     }
 
     @Test
@@ -527,8 +544,8 @@ public class SimpleToscaProviderTest {
         serviceTemplateFragment.getPolicyTypes().getConceptMap().put(badPt.getKey(), badPt);
 
         assertThatThrownBy(() -> new SimpleToscaProvider().appendToServiceTemplate(pfDao, serviceTemplateFragment))
-                .hasMessageContaining("key on concept entry").hasMessageContaining("NULL:0.0.0")
-                .hasMessageContaining(Validated.IS_A_NULL_KEY);
+            .hasMessageContaining("key on concept entry").hasMessageContaining("NULL:0.0.0")
+            .hasMessageContaining(Validated.IS_A_NULL_KEY);
     }
 
     @Test
@@ -539,8 +556,8 @@ public class SimpleToscaProviderTest {
 
         JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
         serviceTemplate.setPolicyTypes(new JpaToscaPolicyTypes());
-        JpaToscaPolicyType p0 = new JpaToscaPolicyType(new PfConceptKey("p0:0.0.1"));
-        serviceTemplate.getPolicyTypes().getConceptMap().put(p0.getKey(), p0);
+        JpaToscaPolicyType pt0 = new JpaToscaPolicyType(new PfConceptKey("p0:0.0.1"));
+        serviceTemplate.getPolicyTypes().getConceptMap().put(pt0.getKey(), pt0);
 
         new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
 
@@ -550,8 +567,11 @@ public class SimpleToscaProviderTest {
 
         serviceTemplate.setDataTypes(new JpaToscaDataTypes());
 
-        JpaToscaDataType p01 = new JpaToscaDataType(new PfConceptKey("dt0:0.0.1"));
-        serviceTemplate.getDataTypes().getConceptMap().put(p01.getKey(), p01);
+        JpaToscaDataType dt01 = new JpaToscaDataType(new PfConceptKey("dt0:0.0.1"));
+        dt01.setConstraints(new ArrayList<JpaToscaConstraint>());
+        dt01.setMetadata(new TreeMap<String, String>());
+        dt01.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+        serviceTemplate.getDataTypes().getConceptMap().put(dt01.getKey(), dt01);
 
         new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
 
@@ -559,32 +579,36 @@ public class SimpleToscaProviderTest {
             new SimpleToscaProvider().getDataTypes(pfDao, "hello", "0.0.1");
         }).hasMessageMatching("data types for hello:0.0.1 do not exist");
 
-        JpaToscaServiceTemplate gotSt = new SimpleToscaProvider().getDataTypes(pfDao, p01.getName(), p01.getVersion());
+        JpaToscaServiceTemplate gotSt =
+            new SimpleToscaProvider().getDataTypes(pfDao, dt01.getName(), dt01.getVersion());
 
-        assertEquals(p01, gotSt.getDataTypes().get(p01.getKey()));
-        assertEquals(p01, gotSt.getDataTypes().get(p01.getName()));
-        assertEquals(p01, gotSt.getDataTypes().get(p01.getName(), null));
-        assertEquals(p01, gotSt.getDataTypes().get(p01.getName(), p01.getVersion()));
+        assertEquals(dt01, gotSt.getDataTypes().get(dt01.getKey()));
+        assertEquals(dt01, gotSt.getDataTypes().get(dt01.getName()));
+        assertEquals(dt01, gotSt.getDataTypes().get(dt01.getName(), null));
+        assertEquals(dt01, gotSt.getDataTypes().get(dt01.getName(), dt01.getVersion()));
         assertEquals(1, gotSt.getDataTypes().getAll(null).size());
         assertEquals(1, gotSt.getDataTypes().getAll(null, null).size());
-        assertEquals(1, gotSt.getDataTypes().getAll(p01.getName(), null).size());
-        assertEquals(1, gotSt.getDataTypes().getAll(p01.getName(), p01.getVersion()).size());
+        assertEquals(1, gotSt.getDataTypes().getAll(dt01.getName(), null).size());
+        assertEquals(1, gotSt.getDataTypes().getAll(dt01.getName(), dt01.getVersion()).size());
 
-        JpaToscaDataType p02 = new JpaToscaDataType(new PfConceptKey("dt0:0.0.2"));
-        serviceTemplate.getDataTypes().getConceptMap().put(p02.getKey(), p02);
+        JpaToscaDataType dt02 = new JpaToscaDataType(new PfConceptKey("dt0:0.0.2"));
+        dt02.setConstraints(new ArrayList<JpaToscaConstraint>());
+        dt02.setMetadata(new TreeMap<String, String>());
+        dt02.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+        serviceTemplate.getDataTypes().getConceptMap().put(dt02.getKey(), dt02);
 
         new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
-        gotSt = new SimpleToscaProvider().getDataTypes(pfDao, p01.getName(), null);
+        gotSt = new SimpleToscaProvider().getDataTypes(pfDao, dt01.getName(), null);
 
-        assertEquals(p01, gotSt.getDataTypes().get(p01.getKey()));
-        assertEquals(p02, gotSt.getDataTypes().get(p01.getName()));
-        assertEquals(p02, gotSt.getDataTypes().get(p01.getName(), null));
-        assertEquals(p01, gotSt.getDataTypes().get(p01.getName(), p01.getVersion()));
-        assertEquals(p02, gotSt.getDataTypes().get(p01.getName(), p02.getVersion()));
+        assertEquals(dt01, gotSt.getDataTypes().get(dt01.getKey()));
+        assertEquals(dt02, gotSt.getDataTypes().get(dt01.getName()));
+        assertEquals(dt02, gotSt.getDataTypes().get(dt01.getName(), null));
+        assertEquals(dt01, gotSt.getDataTypes().get(dt01.getName(), dt01.getVersion()));
+        assertEquals(dt02, gotSt.getDataTypes().get(dt01.getName(), dt02.getVersion()));
         assertEquals(2, gotSt.getDataTypes().getAll(null).size());
         assertEquals(2, gotSt.getDataTypes().getAll(null, null).size());
-        assertEquals(2, gotSt.getDataTypes().getAll(p01.getName(), null).size());
-        assertEquals(1, gotSt.getDataTypes().getAll(p01.getName(), p02.getVersion()).size());
+        assertEquals(2, gotSt.getDataTypes().getAll(dt01.getName(), null).size());
+        assertEquals(1, gotSt.getDataTypes().getAll(dt01.getName(), dt02.getVersion()).size());
     }
 
     @Test
@@ -607,6 +631,10 @@ public class SimpleToscaProviderTest {
         serviceTemplate.setPolicyTypes(new JpaToscaPolicyTypes());
 
         JpaToscaPolicyType pt01 = new JpaToscaPolicyType(new PfConceptKey("p0:0.0.1"));
+        pt01.setMetadata(new TreeMap<String, String>());
+        pt01.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+        pt01.setTargets(new ArrayList<PfConceptKey>());
+        pt01.setTriggers(new ArrayList<JpaToscaTrigger>());
         serviceTemplate.getPolicyTypes().getConceptMap().put(pt01.getKey(), pt01);
 
         new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
@@ -616,7 +644,7 @@ public class SimpleToscaProviderTest {
         }).hasMessageMatching("policy types for hello:0.0.1 do not exist");
 
         JpaToscaServiceTemplate gotSt =
-                new SimpleToscaProvider().getPolicyTypes(pfDao, pt01.getName(), pt01.getVersion());
+            new SimpleToscaProvider().getPolicyTypes(pfDao, pt01.getName(), pt01.getVersion());
 
         assertEquals(pt01, gotSt.getPolicyTypes().get(pt01.getKey()));
         assertEquals(pt01, gotSt.getPolicyTypes().get(pt01.getName()));
@@ -628,6 +656,10 @@ public class SimpleToscaProviderTest {
         assertEquals(1, gotSt.getPolicyTypes().getAll(pt01.getName(), pt01.getVersion()).size());
 
         JpaToscaPolicyType pt02 = new JpaToscaPolicyType(new PfConceptKey("p0:0.0.2"));
+        pt02.setMetadata(new TreeMap<String, String>());
+        pt02.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+        pt02.setTargets(new ArrayList<PfConceptKey>());
+        pt02.setTriggers(new ArrayList<JpaToscaTrigger>());
         serviceTemplate.getPolicyTypes().getConceptMap().put(pt02.getKey(), pt02);
 
         new SimpleToscaProvider().createPolicyTypes(pfDao, serviceTemplate);
@@ -653,6 +685,9 @@ public class SimpleToscaProviderTest {
         JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
         serviceTemplate.setDataTypes(new JpaToscaDataTypes());
         JpaToscaDataType dt0 = new JpaToscaDataType(new PfConceptKey("dt0:0.0.1"));
+        dt0.setConstraints(new ArrayList<JpaToscaConstraint>());
+        dt0.setMetadata(new TreeMap<String, String>());
+        dt0.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
         serviceTemplate.getDataTypes().getConceptMap().put(dt0.getKey(), dt0);
 
         new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
@@ -664,6 +699,10 @@ public class SimpleToscaProviderTest {
         serviceTemplate.setPolicyTypes(new JpaToscaPolicyTypes());
 
         JpaToscaPolicyType pt01 = new JpaToscaPolicyType(new PfConceptKey("pt0:0.0.1"));
+        pt01.setMetadata(new TreeMap<String, String>());
+        pt01.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+        pt01.setTargets(new ArrayList<PfConceptKey>());
+        pt01.setTriggers(new ArrayList<JpaToscaTrigger>());
         serviceTemplate.getPolicyTypes().getConceptMap().put(pt01.getKey(), pt01);
 
         serviceTemplate.setTopologyTemplate(new JpaToscaTopologyTemplate());
@@ -671,6 +710,9 @@ public class SimpleToscaProviderTest {
 
         JpaToscaPolicy p01 = new JpaToscaPolicy(new PfConceptKey("p0:0.0.1"));
         p01.setType(pt01.getKey());
+        p01.setMetadata(new TreeMap<String, String>());
+        p01.setProperties(new LinkedHashMap<String, String>());
+        p01.setTargets(new ArrayList<PfConceptKey>());
         serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().put(p01.getKey(), p01);
 
         new SimpleToscaProvider().createPolicies(pfDao, serviceTemplate);
@@ -692,6 +734,10 @@ public class SimpleToscaProviderTest {
 
         JpaToscaPolicy p02 = new JpaToscaPolicy(new PfConceptKey("p0:0.0.2"));
         p02.setType(pt01.getKey());
+        p02.setType(pt01.getKey());
+        p02.setMetadata(new TreeMap<String, String>());
+        p02.setProperties(new LinkedHashMap<String, String>());
+        p02.setTargets(new ArrayList<PfConceptKey>());
         serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().put(p02.getKey(), p02);
 
         new SimpleToscaProvider().createPolicies(pfDao, serviceTemplate);
@@ -860,16 +906,19 @@ public class SimpleToscaProviderTest {
             new SimpleToscaProvider().deleteServiceTemplate(pfDao);
         }).hasMessage("service template not found in database");
 
-        JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
-
         PfConceptKey dataType0Key = new PfConceptKey("DataType0", "0.0.1");
         JpaToscaDataType dataType0 = new JpaToscaDataType();
         dataType0.setKey(dataType0Key);
+        dataType0.setConstraints(new ArrayList<JpaToscaConstraint>());
+        dataType0.setMetadata(new TreeMap<String, String>());
+        dataType0.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+
+        JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
         serviceTemplate.setDataTypes(new JpaToscaDataTypes());
         serviceTemplate.getDataTypes().getConceptMap().put(dataType0Key, dataType0);
 
         JpaToscaServiceTemplate createdServiceTemplate =
-                new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
+            new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
 
         assertEquals(1, createdServiceTemplate.getDataTypes().getConceptMap().size());
         assertEquals(dataType0, createdServiceTemplate.getDataTypes().get(dataType0Key));
@@ -889,11 +938,11 @@ public class SimpleToscaProviderTest {
 
     private void createPolicyTypes() throws CoderException, PfModelException {
         Object yamlObject =
-                new Yaml().load(ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.yaml"));
+            new Yaml().load(ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.yaml"));
         String yamlAsJsonString = new StandardCoder().encode(yamlObject);
 
         ToscaServiceTemplate toscaServiceTemplatePolicyType =
-                standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class);
+            standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class);
 
         assertNotNull(toscaServiceTemplatePolicyType);
         new AuthorativeToscaProvider().createPolicyTypes(pfDao, toscaServiceTemplatePolicyType);
index 016ed53..f00fa0f 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2020-2021 Nordix Foundation.
+ *  Copyright (C) 2020-2021,2023 Nordix Foundation.
  *  Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,8 +25,10 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.Properties;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
+import java.util.TreeMap;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -36,11 +38,14 @@ import org.onap.policy.models.dao.DaoParameters;
 import org.onap.policy.models.dao.PfDao;
 import org.onap.policy.models.dao.PfDaoFactory;
 import org.onap.policy.models.dao.impl.DefaultPfDao;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraint;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataType;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataTypes;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyType;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyTypes;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaProperty;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaTrigger;
 
 /**
  * Test the {@link SimpleToscaProvider} class.
@@ -66,15 +71,15 @@ public class SimpleToscaServiceTemplateProviderTest {
         daoParameters.setPersistenceUnit("ToscaConceptTest");
 
         Properties jdbcProperties = new Properties();
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
-        jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
+        jdbcProperties.setProperty("javax.persistence.jdbc.user", "policy");
+        jdbcProperties.setProperty("javax.persistence.jdbc.password", "P01icY");
 
         if (System.getProperty("USE-MARIADB") != null) {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.mariadb.jdbc.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:mariadb://localhost:3306/policy");
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/policy");
         } else {
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
-            jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL,
+            jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
+            jdbcProperties.setProperty("javax.persistence.jdbc.url",
                             "jdbc:h2:mem:SimpleToscaServiceTemplateProviderTest");
         }
 
@@ -92,6 +97,7 @@ public class SimpleToscaServiceTemplateProviderTest {
     @Test
     public void testCreateUpdateGetDeleteDataType() throws PfModelException {
         JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
+        serviceTemplate.setMetadata(new TreeMap<String, String>());
 
         JpaToscaServiceTemplate dbServiceTemplate =
             new SimpleToscaServiceTemplateProvider().write(pfDao, serviceTemplate);
@@ -106,6 +112,9 @@ public class SimpleToscaServiceTemplateProviderTest {
         PfConceptKey dataType0Key = new PfConceptKey("DataType0", "0.0.1");
         JpaToscaDataType dataType0 = new JpaToscaDataType();
         dataType0.setKey(dataType0Key);
+        dataType0.setConstraints(new ArrayList<JpaToscaConstraint>());
+        dataType0.setMetadata(new TreeMap<String, String>());
+        dataType0.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
         serviceTemplate.setDataTypes(new JpaToscaDataTypes());
         serviceTemplate.getDataTypes().getConceptMap().put(dataType0Key, dataType0);
 
@@ -135,6 +144,10 @@ public class SimpleToscaServiceTemplateProviderTest {
         JpaToscaPolicyType policyType0 = new JpaToscaPolicyType();
 
         policyType0.setKey(policyType0Key);
+        policyType0.setMetadata(new TreeMap<String, String>());
+        policyType0.setProperties(new LinkedHashMap<String, JpaToscaProperty>());
+        policyType0.setTargets(new ArrayList<PfConceptKey>());
+        policyType0.setTriggers(new ArrayList<JpaToscaTrigger>());
         serviceTemplate.setPolicyTypes(new JpaToscaPolicyTypes());
 
         serviceTemplate.getPolicyTypes().getConceptMap().put(policyType0Key, policyType0);
index 5c65fc5..922fef2 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-   Copyright (C) 2019-2021 Nordix Foundation.
+   Copyright (C) 2019-2021,2023 Nordix Foundation.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
@@ -21,8 +21,6 @@
 
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
     <persistence-unit name="ToscaConceptTest" transaction-type="RESOURCE_LOCAL">
-        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-
         <class>org.onap.policy.models.base.PfConceptKey</class>
         <class>org.onap.policy.models.dao.converters.CDataConditioner</class>
         <class>org.onap.policy.models.dao.converters.Uuid2String</class>
         <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaTrigger</class>
 
         <properties>
-            <property name="eclipselink.target-database" value="MySQL" />
-            <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" />
-
-            <!-- property name="eclipselink.logging.level" value="ALL" />
-            <property name="eclipselink.logging.level.jpa" value="ALL" />
-            <property name="eclipselink.logging.level.ddl" value="ALL" />
-            <property name="eclipselink.logging.level.connection" value="ALL" />
-            <property name="eclipselink.logging.level.sql" value="ALL" />
-            <property name="eclipselink.logging.level.transaction" value="ALL" />
-            <property name="eclipselink.logging.level.sequencing" value="ALL" />
-            <property name="eclipselink.logging.level.server" value="ALL" />
-            <property name="eclipselink.logging.level.query" value="ALL" />
-            <property name="eclipselink.logging.level.properties" value="ALL" /-->
+            <property name="javax.persistence.schema-generation.database.action" value="drop-and-create" />
+            <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
+            <property name="hibernate.show_sql" value="false" />
         </properties>
     </persistence-unit>
 </persistence>
diff --git a/pom.xml b/pom.xml
index 26df0fd..2b42f5d 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
 <!--
   ============LICENSE_START=======================================================
    Copyright (C) 2018 Ericsson. All rights reserved.
-   Copyright (C) 2019-2020, 2022 Nordix Foundation.
+   Copyright (C) 2019-2020,2022-2023 Nordix Foundation.
    Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved.
    Modifications Copyright (C) 2020 Bell Canada.
   ================================================================================
         </dependency>
 
         <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>eclipselink</artifactId>
+            <groupId>org.hibernate.javax.persistence</groupId>
+            <artifactId>hibernate-jpa-2.1-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-entitymanager</artifactId>
         </dependency>
 
         <dependency>