From: emaclee Date: Mon, 23 Feb 2026 08:12:32 +0000 (+0000) Subject: Add Primary transaction manager X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F55%2F143355%2F1;p=cps.git Add Primary transaction manager Issue-ID: CPS-3161 Change-Id: I0ea68b0ee17b93ff1c3b87a17b11fc6750fc63d3 Signed-off-by: emaclee --- diff --git a/cps-application/src/main/java/org/onap/cps/config/TransactionConfig.java b/cps-application/src/main/java/org/onap/cps/config/TransactionConfig.java new file mode 100644 index 0000000000..4dfa2e15f2 --- /dev/null +++ b/cps-application/src/main/java/org/onap/cps/config/TransactionConfig.java @@ -0,0 +1,37 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2026 OpenInfra Foundation Europe. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.cps.config; + +import jakarta.persistence.EntityManagerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.orm.jpa.JpaTransactionManager; + +@Configuration +public class TransactionConfig { + + @Bean + @Primary + public JpaTransactionManager transactionManager(final EntityManagerFactory entityManagerFactory) { + return new JpaTransactionManager(entityManagerFactory); + } +} diff --git a/cps-application/src/test/groovy/org/onap/cps/config/TransactionConfigSpec.groovy b/cps-application/src/test/groovy/org/onap/cps/config/TransactionConfigSpec.groovy new file mode 100644 index 0000000000..5356a63393 --- /dev/null +++ b/cps-application/src/test/groovy/org/onap/cps/config/TransactionConfigSpec.groovy @@ -0,0 +1,39 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.cps.config + +import jakarta.persistence.EntityManagerFactory +import org.springframework.orm.jpa.JpaTransactionManager +import spock.lang.Specification + +class TransactionConfigSpec extends Specification { + + def objectUnderTest = new TransactionConfig() + + def 'Create JPA transaction manager.'() { + given: 'an entity manager factory' + def entityManagerFactory = Mock(EntityManagerFactory) + when: 'transaction manager bean is created' + def result = objectUnderTest.transactionManager(entityManagerFactory) + then: 'a JPA transaction manager is returned' + result instanceof JpaTransactionManager + } +}