From b902c7dd9ad1b74729c3c488b24624e510244250 Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Fri, 3 Dec 2021 13:43:41 +0000 Subject: Add Hibernate support in runtime-controlloop Issue-ID: POLICY-3841 Change-Id: Ie958a4a4ab35c8bc4d6829128e39a2458d67a7a5 Signed-off-by: FrancescoFioraEst --- .../clamp/controlloop/runtime/Application.java | 2 +- .../runtime/config/JpaConfiguration.java | 119 --------------------- .../main/parameters/ClRuntimeParameterGroup.java | 24 ----- 3 files changed, 1 insertion(+), 144 deletions(-) delete mode 100644 runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/config/JpaConfiguration.java (limited to 'runtime-controlloop/src/main/java') diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/Application.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/Application.java index 64d1393ac..44a661e55 100644 --- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/Application.java +++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/Application.java @@ -36,7 +36,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; "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"}) + "org.onap.policy.clamp.controlloop.models.controlloop.persistence.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 deleted file mode 100644 index 290b74e3a..000000000 --- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/config/JpaConfiguration.java +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * ============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) { - super(dataSource, properties, jtaTransactionManager); - } - - @Override - protected AbstractJpaVendorAdapter createJpaVendorAdapter() { - return new EclipseLinkJpaVendorAdapter(); - } - - @Override - protected Map 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 initJpaProperties() { - final Map 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; - } -} diff --git a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/parameters/ClRuntimeParameterGroup.java b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/parameters/ClRuntimeParameterGroup.java index 9211ca211..047bca2b1 100644 --- a/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/parameters/ClRuntimeParameterGroup.java +++ b/runtime-controlloop/src/main/java/org/onap/policy/clamp/controlloop/runtime/main/parameters/ClRuntimeParameterGroup.java @@ -21,14 +21,11 @@ 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; import org.onap.policy.common.endpoints.parameters.TopicParameterGroup; import org.onap.policy.common.parameters.validation.ParameterGroupConstraint; -import org.onap.policy.models.provider.PolicyModelsProviderParameters; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.validation.annotation.Validated; @@ -42,10 +39,6 @@ import org.springframework.validation.annotation.Validated; @ConfigurationProperties(prefix = "runtime") public class ClRuntimeParameterGroup { - @NotNull - @ParameterGroupConstraint - private PolicyModelsProviderParameters databaseProviderParameters; - @Valid @NotNull private ParticipantParameters participantParameters; @@ -53,21 +46,4 @@ public class ClRuntimeParameterGroup { @NotNull @ParameterGroupConstraint private TopicParameterGroup topicParameterGroup; - - @Min(value = 0) - private long supervisionScannerIntervalSec; - - @Min(value = 0) - private long participantClUpdateIntervalSec; - - @Min(value = 0) - private long participantClStateChangeIntervalSec; - private long participantRegisterAckIntervalSec; - private long participantDeregisterAckIntervalSec; - private long participantUpdateIntervalSec; - - @NotBlank - private String databasePlatform; - - private boolean showSql = false; } -- cgit 1.2.3-korg