Add Spring Jpa configuration 64/125464/4
authorFrancescoFioraEst <francesco.fiora@est.tech>
Thu, 28 Oct 2021 09:19:09 +0000 (10:19 +0100)
committerFrancescoFioraEst <francesco.fiora@est.tech>
Fri, 5 Nov 2021 16:56:25 +0000 (16:56 +0000)
Issue-ID: POLICY-3795
Change-Id: Ic0955f412bfcd94094c19aceb4f25be8e695099a
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
19 files changed:
models/pom.xml
packages/policy-clamp-tarball/src/main/resources/etc/ClRuntimeParameters.yaml
participant/pom.xml
runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/Application.java
runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/config/JpaConfiguration.java [new file with mode: 0644]
runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/parameters/ClRuntimeParameterGroup.java
runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandler.java
runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScanner.java
runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/supervision/comm/ControlLoopUpdatePublisher.java
runtime-controlloop/src/main/resources/META-INF/persistence.xml
runtime-controlloop/src/main/resources/application.yaml
runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/commissioning/rest/CommissioningControllerTest.java
runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/ControlLoopInstantiationProviderTest.java
runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/instantiation/rest/InstantiationControllerTest.java
runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionHandlerTest.java
runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/SupervisionScannerTest.java
runtime-controlloop/src/test/java/org/onap/policy/clamp/controlloop/runtime/supervision/comm/SupervisionMessagesTest.java
runtime-controlloop/src/test/resources/META-INF/persistence.xml
runtime-controlloop/src/test/resources/application_test.properties

index c534a16..4adf64d 100644 (file)
 
     <artifactId>policy-clamp-models</artifactId>
     <name>${project.artifactId}</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+            <version>${version.springboot}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.hibernate.common</groupId>
+                    <artifactId>common-annotations</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+
 </project>
index d399b82..a01c498 100644 (file)
@@ -6,6 +6,16 @@ spring:
   http:
     converters:
       preferred-json-mapper: gson
+  datasource:
+    url: jdbc:mariadb://${mariadb.host:mariadb}:${mariadb.port:3306}/controlloop
+    driverClassName: org.mariadb.jdbc.Driver
+    username: policy_user
+    password: policy_user
+    hikari:
+      connectionTimeout: 30000
+      idleTimeout: 600000
+      maxLifetime: 1800000
+      maximumPoolSize: 10
 
 security:
   enable-csrf: false
@@ -28,6 +38,7 @@ runtime:
     updateParameters:
       maxRetryCount: 3
       maxWaitMs: 20000
+  databasePlatform: org.eclipse.persistence.platform.database.MySQLPlatform
   databaseProviderParameters:
     name: PolicyProviderParameterGroup
     implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl
index fcfbe0c..1134239 100644 (file)
             <groupId>org.onap.policy.clamp</groupId>
             <artifactId>policy-clamp-models</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-data-jpa</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
     </dependencies>
 
index a9b45c5..3f51f1f 100644 (file)
@@ -22,16 +22,21 @@ package org.onap.policy.clamp.controlloop.runtime;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
 @EnableScheduling
 @SpringBootApplication
+@EnableJpaRepositories
 @ComponentScan({"org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider",
     "org.onap.policy.clamp.controlloop.runtime",
     "org.onap.policy.clamp.controlloop.common.rest"})
 @ConfigurationPropertiesScan("org.onap.policy.clamp.controlloop.runtime.main.parameters")
+@EntityScan({"org.onap.policy.models.tosca.simple.concepts",
+    "org.onap.policy.clamp.controlloop.models.controlloop.concepts"})
 public class Application {
 
     public static void main(String[] args) {
diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/config/JpaConfiguration.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/config/JpaConfiguration.java
new file mode 100644 (file)
index 0000000..290b74e
--- /dev/null
@@ -0,0 +1,119 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2021 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.clamp.controlloop.runtime.config;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+import org.eclipse.persistence.config.BatchWriting;
+import org.eclipse.persistence.config.PersistenceUnitProperties;
+import org.eclipse.persistence.logging.SessionLog;
+import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration;
+import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter;
+import org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.transaction.jta.JtaTransactionManager;
+
+@Configuration
+@EnableTransactionManagement
+public class JpaConfiguration extends JpaBaseConfiguration {
+
+    protected JpaConfiguration(DataSource dataSource, JpaProperties properties,
+            ObjectProvider<JtaTransactionManager> jtaTransactionManager) {
+        super(dataSource, properties, jtaTransactionManager);
+    }
+
+    @Override
+    protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
+        return new EclipseLinkJpaVendorAdapter();
+    }
+
+    @Override
+    protected Map<String, Object> getVendorProperties() {
+        return Map.of(PersistenceUnitProperties.BATCH_WRITING, BatchWriting.JDBC);
+    }
+
+    /**
+     * Create EntityManagerFactory.
+     *
+     * @param builder EntityManagerFactoryBuilder
+     * @param dataSource DataSource
+     * @return LocalContainerEntityManagerFactoryBean
+     */
+    @Bean("entityManagerFactory")
+    public LocalContainerEntityManagerFactoryBean localContainerEntityManagerFactory(
+            EntityManagerFactoryBuilder builder, DataSource dataSource,
+            ClRuntimeParameterGroup clRuntimeParameterGroup) {
+
+        return builder.dataSource(dataSource)
+                .persistenceUnit(clRuntimeParameterGroup.getDatabaseProviderParameters().getPersistenceUnit())
+                .properties(initJpaProperties()).build();
+    }
+
+    /**
+     * create a PlatformTransactionManager.
+     *
+     * @param emf EntityManagerFactory
+     * @return PlatformTransactionManager
+     */
+    @Bean
+    public static PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
+        final var transactionManager = new JpaTransactionManager();
+        transactionManager.setEntityManagerFactory(emf);
+        return transactionManager;
+    }
+
+    /**
+     * create Jpa Properties.
+     *
+     * @return JpaProperties
+     */
+    @Bean
+    @Primary
+    public static JpaProperties properties(ClRuntimeParameterGroup clRuntimeParameterGroup) {
+        final var jpaProperties = new JpaProperties();
+        jpaProperties.setShowSql(clRuntimeParameterGroup.isShowSql());
+        jpaProperties.setDatabasePlatform(clRuntimeParameterGroup.getDatabasePlatform());
+        return jpaProperties;
+    }
+
+    private static Map<String, ?> initJpaProperties() {
+        final Map<String, Object> ret = new HashMap<>();
+        // Add any JpaProperty you are interested in and is supported by your Database and JPA implementation
+        ret.put(PersistenceUnitProperties.BATCH_WRITING, BatchWriting.JDBC);
+        ret.put(PersistenceUnitProperties.LOGGING_LEVEL, SessionLog.INFO_LABEL);
+        ret.put(PersistenceUnitProperties.WEAVING, "false");
+        ret.put(PersistenceUnitProperties.DDL_GENERATION, PersistenceUnitProperties.CREATE_ONLY);
+        ret.put(PersistenceUnitProperties.DDL_GENERATION_MODE, PersistenceUnitProperties.DDL_DATABASE_GENERATION);
+        return ret;
+    }
+}
index 86473ca..9211ca2 100644 (file)
@@ -22,6 +22,7 @@ package org.onap.policy.clamp.controlloop.runtime.main.parameters;
 
 import javax.validation.Valid;
 import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
@@ -65,4 +66,8 @@ public class ClRuntimeParameterGroup {
     private long participantDeregisterAckIntervalSec;
     private long participantUpdateIntervalSec;
 
+    @NotBlank
+    private String databasePlatform;
+
+    private boolean showSql = false;
 }
index 2a1f908..f011d93 100644 (file)
@@ -40,6 +40,7 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUtils;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessage;
@@ -54,7 +55,6 @@ import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantReg
 import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantUpdatePublisher;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.base.PfModelRuntimeException;
-import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.slf4j.Logger;
@@ -80,7 +80,7 @@ public class SupervisionHandler {
     private final ControlLoopProvider controlLoopProvider;
     private final ParticipantProvider participantProvider;
     private final MonitoringProvider monitoringProvider;
-    private final PolicyModelsProvider modelsProvider;
+    private final ServiceTemplateProvider serviceTemplateProvider;
 
     // Publishers for participant communication
     private final ControlLoopUpdatePublisher controlLoopUpdatePublisher;
@@ -427,7 +427,7 @@ public class SupervisionHandler {
     private int getFirstStartPhase(ControlLoop controlLoop) {
         ToscaServiceTemplate toscaServiceTemplate = null;
         try {
-            toscaServiceTemplate = modelsProvider.getServiceTemplateList(null, null).get(0);
+            toscaServiceTemplate = serviceTemplateProvider.getServiceTemplateList(null, null).get(0);
         } catch (PfModelException e) {
             throw new PfModelRuntimeException(Status.BAD_REQUEST, "Canont load ToscaServiceTemplate from DB", e);
         }
index 48e0601..900a117 100644 (file)
@@ -34,13 +34,13 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUtils;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
 import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
 import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ControlLoopStateChangePublisher;
 import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ControlLoopUpdatePublisher;
 import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantStatusReqPublisher;
 import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantUpdatePublisher;
 import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
@@ -63,7 +63,7 @@ public class SupervisionScanner {
     private final Map<ToscaConceptIdentifier, Integer> phaseMap = new HashMap<>();
 
     private final ControlLoopProvider controlLoopProvider;
-    private final PolicyModelsProvider modelsProvider;
+    private final ServiceTemplateProvider serviceTemplateProvider;
     private final ControlLoopStateChangePublisher controlLoopStateChangePublisher;
     private final ControlLoopUpdatePublisher controlLoopUpdatePublisher;
     private final ParticipantProvider participantProvider;
@@ -74,7 +74,7 @@ public class SupervisionScanner {
      * Constructor for instantiating SupervisionScanner.
      *
      * @param controlLoopProvider the provider to use to read control loops from the database
-     * @param modelsProvider the Policy Models Provider
+     * @param serviceTemplateProvider the Policy Models Provider
      * @param controlLoopStateChangePublisher the ControlLoop StateChange Publisher
      * @param controlLoopUpdatePublisher the ControlLoopUpdate Publisher
      * @param participantProvider the Participant Provider
@@ -82,14 +82,15 @@ public class SupervisionScanner {
      * @param participantUpdatePublisher the Participant Update Publisher
      * @param clRuntimeParameterGroup the parameters for the control loop runtime
      */
-    public SupervisionScanner(final ControlLoopProvider controlLoopProvider, PolicyModelsProvider modelsProvider,
+    public SupervisionScanner(final ControlLoopProvider controlLoopProvider,
+            ServiceTemplateProvider serviceTemplateProvider,
             final ControlLoopStateChangePublisher controlLoopStateChangePublisher,
             ControlLoopUpdatePublisher controlLoopUpdatePublisher, ParticipantProvider participantProvider,
             ParticipantStatusReqPublisher participantStatusReqPublisher,
             ParticipantUpdatePublisher participantUpdatePublisher,
             final ClRuntimeParameterGroup clRuntimeParameterGroup) {
         this.controlLoopProvider = controlLoopProvider;
-        this.modelsProvider = modelsProvider;
+        this.serviceTemplateProvider = serviceTemplateProvider;
         this.controlLoopStateChangePublisher = controlLoopStateChangePublisher;
         this.controlLoopUpdatePublisher = controlLoopUpdatePublisher;
         this.participantProvider = participantProvider;
@@ -130,7 +131,7 @@ public class SupervisionScanner {
         }
 
         try {
-            var list = modelsProvider.getServiceTemplateList(null, null);
+            var list = serviceTemplateProvider.getServiceTemplateList(null, null);
             if (list != null && !list.isEmpty()) {
                 ToscaServiceTemplate toscaServiceTemplate = list.get(0);
 
index 06fbcd6..32c0638 100644 (file)
@@ -31,9 +31,9 @@ import org.onap.policy.clamp.controlloop.common.utils.CommonUtils;
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElement;
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUpdates;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
 import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -47,7 +47,7 @@ import org.springframework.stereotype.Component;
 public class ControlLoopUpdatePublisher extends AbstractParticipantPublisher<ControlLoopUpdate> {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(ControlLoopUpdatePublisher.class);
-    private final PolicyModelsProvider modelsProvider;
+    private final ServiceTemplateProvider serviceTemplateProvider;
 
     /**
      * Send ControlLoopUpdate to Participant.
@@ -72,7 +72,7 @@ public class ControlLoopUpdatePublisher extends AbstractParticipantPublisher<Con
         controlLoopUpdateMsg.setTimestamp(Instant.now());
         ToscaServiceTemplate toscaServiceTemplate;
         try {
-            toscaServiceTemplate = modelsProvider.getServiceTemplateList(null, null).get(0);
+            toscaServiceTemplate = serviceTemplateProvider.getServiceTemplateList(null, null).get(0);
         } catch (PfModelException pfme) {
             LOGGER.warn("Get of tosca service template failed, cannot send participantupdate", pfme);
             return;
index e5d2cab..a4e9a56 100644 (file)
         <shared-cache-mode>NONE</shared-cache-mode>
     </persistence-unit>
 
-    <persistence-unit name="ToscaConceptTest" transaction-type="RESOURCE_LOCAL">
-        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
-
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityAssignment</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityAssignments</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaDataType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaDataTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeTemplate</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeTemplates</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaParameter</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicies</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaProperty</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaRelationshipType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaRelationshipTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaRequirement</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaRequirements</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaTopologyTemplate</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaControlLoop</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaControlLoopElement</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaParticipant</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaParticipantStatistics</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaClElementStatistics</class>
-        <properties>
-            <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" /-->
-        </properties>
-        <shared-cache-mode>NONE</shared-cache-mode>
-    </persistence-unit>
 </persistence>
 
index 50c063f..c4fc77b 100644 (file)
@@ -6,6 +6,16 @@ spring:
   http:
     converters:
       preferred-json-mapper: gson
+  datasource:
+    url: jdbc:mariadb://${mariadb.host:localhost}:${mariadb.port:3306}/controlloop
+    driverClassName: org.mariadb.jdbc.Driver
+    username: policy
+    password: P01icY
+    hikari:
+      connectionTimeout: 30000
+      idleTimeout: 600000
+      maxLifetime: 1800000
+      maximumPoolSize: 10
 
 security:
   enable-csrf: false
@@ -28,6 +38,7 @@ runtime:
     updateParameters:
       maxRetryCount: 4
       maxWaitMs: 20000
+  databasePlatform: org.eclipse.persistence.platform.database.MySQLPlatform
   databaseProviderParameters:
     name: PolicyProviderParameterGroup
     implementation: org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl
index 4a5a6e2..9d1435e 100644 (file)
@@ -39,12 +39,10 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.api.parallel.Execution;
 import org.junit.jupiter.api.parallel.ExecutionMode;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
 import org.onap.policy.clamp.controlloop.models.messages.rest.commissioning.CommissioningResponse;
 import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
-import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
 import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
-import org.onap.policy.models.provider.PolicyModelsProvider;
-import org.onap.policy.models.provider.PolicyModelsProviderFactory;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -70,7 +68,7 @@ class CommissioningControllerTest extends CommonRestController {
     private static ToscaServiceTemplate commonPropertiesServiceTemplate = new ToscaServiceTemplate();
 
     @Autowired
-    private ClRuntimeParameterGroup clRuntimeParameterGroup;
+    private ServiceTemplateProvider serviceTemplateProvider;
 
     @LocalServerPort
     private int randomServerPort;
@@ -282,37 +280,25 @@ class CommissioningControllerTest extends CommonRestController {
         Response resp = invocationBuilder.delete();
         assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
 
-        try (PolicyModelsProvider modelsProvider = new PolicyModelsProviderFactory()
-                .createPolicyModelsProvider(clRuntimeParameterGroup.getDatabaseProviderParameters())) {
-            List<ToscaServiceTemplate> templatesInDB = modelsProvider.getServiceTemplateList(null, null);
-            assertThat(templatesInDB).isEmpty();
-        }
+        List<ToscaServiceTemplate> templatesInDB = serviceTemplateProvider.getServiceTemplateList(null, null);
+        assertThat(templatesInDB).isEmpty();
 
     }
 
     private synchronized void createEntryInDB() throws Exception {
-        try (PolicyModelsProvider modelsProvider = new PolicyModelsProviderFactory()
-                .createPolicyModelsProvider(clRuntimeParameterGroup.getDatabaseProviderParameters())) {
-            deleteEntryInDB(commonPropertiesServiceTemplate.getName(), commonPropertiesServiceTemplate.getVersion());
-            modelsProvider.createServiceTemplate(serviceTemplate);
-        }
+        deleteEntryInDB(commonPropertiesServiceTemplate.getName(), commonPropertiesServiceTemplate.getVersion());
+        serviceTemplateProvider.createServiceTemplate(serviceTemplate);
     }
 
     // Delete entries from the DB after relevant tests
     private synchronized void deleteEntryInDB(String name, String version) throws Exception {
-        try (PolicyModelsProvider modelsProvider = new PolicyModelsProviderFactory()
-                .createPolicyModelsProvider(clRuntimeParameterGroup.getDatabaseProviderParameters())) {
-            if (!modelsProvider.getServiceTemplateList(null, null).isEmpty()) {
-                modelsProvider.deleteServiceTemplate(name, version);
-            }
+        if (!serviceTemplateProvider.getServiceTemplateList(null, null).isEmpty()) {
+            serviceTemplateProvider.deleteServiceTemplate(name, version);
         }
     }
 
     private synchronized void createFullEntryInDbWithCommonProps() throws Exception {
-        try (PolicyModelsProvider modelsProvider = new PolicyModelsProviderFactory()
-                .createPolicyModelsProvider(clRuntimeParameterGroup.getDatabaseProviderParameters())) {
-            deleteEntryInDB(commonPropertiesServiceTemplate.getName(), commonPropertiesServiceTemplate.getVersion());
-            modelsProvider.createServiceTemplate(commonPropertiesServiceTemplate);
-        }
+        deleteEntryInDB(commonPropertiesServiceTemplate.getName(), commonPropertiesServiceTemplate.getVersion());
+        serviceTemplateProvider.createServiceTemplate(commonPropertiesServiceTemplate);
     }
 }
index ae1c598..8fbd471 100644 (file)
@@ -138,11 +138,11 @@ class ControlLoopInstantiationProviderTest {
         var participantRegisterAckPublisher = Mockito.mock(ParticipantRegisterAckPublisher.class);
         var participantDeregisterAckPublisher = Mockito.mock(ParticipantDeregisterAckPublisher.class);
         var participantUpdatePublisher = Mockito.mock(ParticipantUpdatePublisher.class);
-        var modelsProvider = Mockito.mock(PolicyModelsProvider.class);
+        var serviceTemplateProvider = Mockito.mock(ServiceTemplateProvider.class);
 
-        supervisionHandler = new SupervisionHandler(clProvider, participantProvider, monitoringProvider, modelsProvider,
-                controlLoopUpdatePublisher, controlLoopStateChangePublisher, participantRegisterAckPublisher,
-                participantDeregisterAckPublisher, participantUpdatePublisher);
+        supervisionHandler = new SupervisionHandler(clProvider, participantProvider, monitoringProvider,
+                serviceTemplateProvider, controlLoopUpdatePublisher, controlLoopStateChangePublisher,
+                participantRegisterAckPublisher, participantDeregisterAckPublisher, participantUpdatePublisher);
     }
 
     @BeforeEach
index 2e01be2..e361ff4 100644 (file)
@@ -37,17 +37,15 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
 import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.ControlLoopPrimedResponse;
 import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationCommand;
 import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationResponse;
 import org.onap.policy.clamp.controlloop.runtime.instantiation.ControlLoopInstantiationProvider;
 import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
-import org.onap.policy.clamp.controlloop.runtime.main.parameters.ClRuntimeParameterGroup;
 import org.onap.policy.clamp.controlloop.runtime.main.rest.InstantiationController;
 import org.onap.policy.clamp.controlloop.runtime.util.CommonTestData;
 import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
-import org.onap.policy.models.provider.PolicyModelsProvider;
-import org.onap.policy.models.provider.PolicyModelsProviderFactory;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -86,7 +84,7 @@ class InstantiationControllerTest extends CommonRestController {
     private static ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate();
 
     @Autowired
-    private ClRuntimeParameterGroup clRuntimeParameterGroup;
+    private ServiceTemplateProvider serviceTemplateProvider;
 
     @Autowired
     private ControlLoopInstantiationProvider instantiationProvider;
@@ -177,8 +175,8 @@ class InstantiationControllerTest extends CommonRestController {
             assertEquals(controlLoopFromRsc, controlLoopsFromDb.getControlLoopList().get(0));
         }
 
-        invocationBuilder = super.sendRequest(PRIMING_ENDPOINT + "?name="
-                + "PMSHInstance0Create" + "&version=" + "1.0.1");
+        invocationBuilder =
+                super.sendRequest(PRIMING_ENDPOINT + "?name=" + "PMSHInstance0Create" + "&version=" + "1.0.1");
         Response rawresp = invocationBuilder.buildGet().invoke();
         assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
         ControlLoopPrimedResponse primResponse = rawresp.readEntity(ControlLoopPrimedResponse.class);
@@ -349,19 +347,13 @@ class InstantiationControllerTest extends CommonRestController {
     }
 
     private synchronized void deleteEntryInDB(String name, String version) throws Exception {
-        try (PolicyModelsProvider modelsProvider = new PolicyModelsProviderFactory()
-                .createPolicyModelsProvider(clRuntimeParameterGroup.getDatabaseProviderParameters())) {
-            if (!modelsProvider.getServiceTemplateList(null, null).isEmpty()) {
-                modelsProvider.deleteServiceTemplate(name, version);
-            }
+        if (!serviceTemplateProvider.getServiceTemplateList(null, null).isEmpty()) {
+            serviceTemplateProvider.deleteServiceTemplate(name, version);
         }
     }
 
     private synchronized void createEntryInDB() throws Exception {
-        try (PolicyModelsProvider modelsProvider = new PolicyModelsProviderFactory()
-                .createPolicyModelsProvider(clRuntimeParameterGroup.getDatabaseProviderParameters())) {
-            deleteEntryInDB(serviceTemplate.getName(), serviceTemplate.getVersion());
-            modelsProvider.createServiceTemplate(serviceTemplate);
-        }
+        deleteEntryInDB(serviceTemplate.getName(), serviceTemplate.getVersion());
+        serviceTemplateProvider.createServiceTemplate(serviceTemplate);
     }
 }
index bbc4dee..a314b30 100644 (file)
@@ -41,6 +41,7 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantStatistics;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopAck;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantMessageType;
@@ -56,7 +57,6 @@ import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantReg
 import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantUpdatePublisher;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 
 class SupervisionHandlerTest {
@@ -265,13 +265,13 @@ class SupervisionHandlerTest {
 
         when(controlLoopProvider.getControlLoop(identifier)).thenReturn(controlLoop);
 
-        var modelsProvider = Mockito.mock(PolicyModelsProvider.class);
-        when(modelsProvider.getServiceTemplateList(any(), any()))
+        var serviceTemplateProvider = Mockito.mock(ServiceTemplateProvider.class);
+        when(serviceTemplateProvider.getServiceTemplateList(any(), any()))
                 .thenReturn(List.of(InstantiationUtils.getToscaServiceTemplate(TOSCA_TEMPLATE_YAML)));
 
-        return new SupervisionHandler(controlLoopProvider, participantProvider, monitoringProvider, modelsProvider,
-                controlLoopUpdatePublisher, controlLoopStateChangePublisher, participantRegisterAckPublisher,
-                participantDeregisterAckPublisher, participantUpdatePublisher);
+        return new SupervisionHandler(controlLoopProvider, participantProvider, monitoringProvider,
+                serviceTemplateProvider, controlLoopUpdatePublisher, controlLoopStateChangePublisher,
+                participantRegisterAckPublisher, participantDeregisterAckPublisher, participantUpdatePublisher);
 
     }
 }
index f884e01..50672a8 100644 (file)
@@ -39,6 +39,7 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.Participant
 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantState;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
 import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
 import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ControlLoopStateChangePublisher;
 import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ControlLoopUpdatePublisher;
@@ -47,7 +48,6 @@ import org.onap.policy.clamp.controlloop.runtime.supervision.comm.ParticipantUpd
 import org.onap.policy.clamp.controlloop.runtime.util.CommonTestData;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 
@@ -57,12 +57,12 @@ class SupervisionScannerTest {
             "src/test/resources/rest/servicetemplates/tosca-for-smoke-testing.yaml";
     private static final String CONTROLLOOP_JSON = "src/test/resources/rest/controlloops/ControlLoopsSmoke.json";
 
-    private static PolicyModelsProvider modelsProvider = mock(PolicyModelsProvider.class);
+    private static ServiceTemplateProvider serviceTemplateProvider = mock(ServiceTemplateProvider.class);
 
     @BeforeAll
     public static void setUpBeforeAll() throws Exception {
         ToscaServiceTemplate serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
-        when(modelsProvider.getServiceTemplateList(null, null)).thenReturn(List.of(serviceTemplate));
+        when(serviceTemplateProvider.getServiceTemplateList(null, null)).thenReturn(List.of(serviceTemplate));
     }
 
     @Test
@@ -79,7 +79,7 @@ class SupervisionScannerTest {
                 InstantiationUtils.getControlLoopsFromResource(CONTROLLOOP_JSON, "Crud").getControlLoopList();
         when(controlLoopProvider.getControlLoops(null, null)).thenReturn(controlLoops);
 
-        var supervisionScanner = new SupervisionScanner(controlLoopProvider, modelsProvider,
+        var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
                 controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
                 participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
         supervisionScanner.run(false);
@@ -103,7 +103,7 @@ class SupervisionScannerTest {
         var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
         var clRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner");
 
-        var supervisionScanner = new SupervisionScanner(controlLoopProvider, modelsProvider,
+        var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
                 controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
                 participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
         supervisionScanner.run(false);
@@ -129,7 +129,7 @@ class SupervisionScannerTest {
         var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
         var clRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner");
 
-        var supervisionScanner = new SupervisionScanner(controlLoopProvider, modelsProvider,
+        var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
                 controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
                 participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
 
@@ -166,7 +166,7 @@ class SupervisionScannerTest {
         var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
         var clRuntimeParameterGroup = CommonTestData.geParameterGroup("dbScanner");
 
-        var supervisionScanner = new SupervisionScanner(controlLoopProvider, modelsProvider,
+        var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
                 controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
                 participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
 
@@ -200,7 +200,7 @@ class SupervisionScannerTest {
         var controlLoopStateChangePublisher = mock(ControlLoopStateChangePublisher.class);
         var participantUpdatePublisher = mock(ParticipantUpdatePublisher.class);
 
-        var supervisionScanner = new SupervisionScanner(controlLoopProvider, modelsProvider,
+        var supervisionScanner = new SupervisionScanner(controlLoopProvider, serviceTemplateProvider,
                 controlLoopStateChangePublisher, controlLoopUpdatePublisher, participantProvider,
                 participantStatusReqPublisher, participantUpdatePublisher, clRuntimeParameterGroup);
 
index 4dfb8a9..ade2723 100644 (file)
@@ -41,6 +41,7 @@ import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ControlLoopProvider;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantStatisticsProvider;
+import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregisterAck;
 import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegisterAck;
@@ -53,7 +54,6 @@ import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
 import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
 import org.onap.policy.common.endpoints.event.comm.TopicSink;
 import org.onap.policy.models.base.PfModelException;
-import org.onap.policy.models.provider.PolicyModelsProvider;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 
 class SupervisionMessagesTest extends CommonRestController {
@@ -64,7 +64,6 @@ class SupervisionMessagesTest extends CommonRestController {
     private static final String TOPIC = "my-topic";
     private static SupervisionHandler supervisionHandler;
     private static ControlLoopProvider clProvider;
-    private static PolicyModelsProvider modelsProvider;
 
     /**
      * setup Db Provider Parameters.
@@ -75,7 +74,6 @@ class SupervisionMessagesTest extends CommonRestController {
     public static void setupDbProviderParameters() throws PfModelException {
         ClRuntimeParameterGroup controlLoopParameters = CommonTestData.geParameterGroup("instantproviderdb");
 
-        modelsProvider = CommonTestData.getPolicyModelsProvider(controlLoopParameters.getDatabaseProviderParameters());
         clProvider = new ControlLoopProvider(controlLoopParameters.getDatabaseProviderParameters());
 
         var participantStatisticsProvider =
@@ -85,21 +83,20 @@ class SupervisionMessagesTest extends CommonRestController {
         var monitoringProvider =
                 new MonitoringProvider(participantStatisticsProvider, clElementStatisticsProvider, clProvider);
         var participantProvider = new ParticipantProvider(controlLoopParameters.getDatabaseProviderParameters());
-        var modelsProvider = Mockito.mock(PolicyModelsProvider.class);
+        var serviceTemplateProvider = Mockito.mock(ServiceTemplateProvider.class);
         var controlLoopUpdatePublisher = Mockito.mock(ControlLoopUpdatePublisher.class);
         var controlLoopStateChangePublisher = Mockito.mock(ControlLoopStateChangePublisher.class);
         var participantRegisterAckPublisher = Mockito.mock(ParticipantRegisterAckPublisher.class);
         var participantDeregisterAckPublisher = Mockito.mock(ParticipantDeregisterAckPublisher.class);
         var participantUpdatePublisher = Mockito.mock(ParticipantUpdatePublisher.class);
-        supervisionHandler = new SupervisionHandler(clProvider, participantProvider, monitoringProvider, modelsProvider,
-                controlLoopUpdatePublisher, controlLoopStateChangePublisher, participantRegisterAckPublisher,
-                participantDeregisterAckPublisher, participantUpdatePublisher);
+        supervisionHandler = new SupervisionHandler(clProvider, participantProvider, monitoringProvider,
+                serviceTemplateProvider, controlLoopUpdatePublisher, controlLoopStateChangePublisher,
+                participantRegisterAckPublisher, participantDeregisterAckPublisher, participantUpdatePublisher);
     }
 
     @AfterAll
     public static void closeDbProvider() throws PfModelException {
         clProvider.close();
-        modelsProvider.close();
     }
 
     @Test
index c4e2e8d..fe460ff 100644 (file)
   ============LICENSE_END=========================================================
 -->
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
-    <persistence-unit name="CommissioningMariaDb" 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.pdp.persistence.concepts.JpaPdp</class>
-        <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpGroup</class>
-        <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpStatistics</class>
-        <class>org.onap.policy.models.pdp.persistence.concepts.JpaPdpSubGroup</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityAssignment</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityAssignments</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaCapabilityTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaDataType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaDataTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeTemplate</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeTemplates</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaNodeTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaParameter</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicies</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaProperty</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaRelationshipType</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaRelationshipTypes</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaRequirement</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaRequirements</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaTopologyTemplate</class>
-        <class>org.onap.policy.models.tosca.simple.concepts.JpaToscaTrigger</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaControlLoop</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaControlLoopElement</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaParticipant</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaParticipantStatistics</class>
-        <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaClElementStatistics</class>
-
-        <properties>
-            <property name="eclipselink.ddl-generation" value="create-or-extend-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" /-->
-        </properties>
-        <shared-cache-mode>NONE</shared-cache-mode>
-    </persistence-unit>
-
     <persistence-unit name="ToscaConceptTest" transaction-type="RESOURCE_LOCAL">
         <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
 
         <class>org.onap.policy.clamp.controlloop.models.controlloop.persistence.concepts.JpaClElementStatistics</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" />
index 6155787..1902814 100644 (file)
@@ -2,6 +2,16 @@ spring.security.user.name=healthcheck
 spring.security.user.password=zb!XztG34
 security.enable-csrf=false
 
+spring.datasource.url=jdbc:h2:mem:testdb
+spring.datasource.driverClassName=org.h2.Driver
+spring.datasource.username=policy
+spring.datasource.password=P01icY
+
+spring.datasource.hikari.connectionTimeout=30000
+spring.datasource.hikari.idleTimeout=600000
+spring.datasource.hikari.maxLifetime=1800000
+spring.datasource.hikari.maximumPoolSize=3
+
 server.port=6969
 server.servlet.context-path=/onap/controlloop
 server.error.path=/error
@@ -9,6 +19,7 @@ server.error.path=/error
 runtime.supervisionScannerIntervalSec=1000
 runtime.participantClUpdateIntervalSec=1000
 runtime.participantClStateChangeIntervalSec=1000
+runtime.showSql=true
 runtime.participantParameters.heartBeatMs=20000
 runtime.participantParameters.maxStatusWaitMs=100000
 runtime.participantParameters.updateParameters.maxRetryCount=3