# ONAP
# ===============================================================================
# Copyright (C) 2020-2022 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.
operation.history.url=jdbc:h2:mem:Usecases
operation.history.userName=sa
operation.history.password=
+operation.history.driver=org.h2.Driver
+operation.history.dbType=H2
# Actor parameters
#
eventmanager
================================================================================
Copyright (C) 2017-2022 AT&T Intellectual Property. All rights reserved.
- Modifications Copyright (C) 2019 Nordix Foundation.
+ Modifications Copyright (C) 2019,2023 Nordix Foundation.
Modifications Copyright (C) 2019-2020 Bell Canada.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
<dependencies>
<dependency>
- <groupId>org.eclipse.persistence</groupId>
- <artifactId>org.eclipse.persistence.jpa</artifactId>
- <scope>provided</scope>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
* ONAP
* ================================================================================
* Copyright (C) 2020-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.
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
-import org.eclipse.persistence.config.PersistenceUnitProperties;
import org.onap.policy.common.parameters.ValidationResult;
import org.onap.policy.common.utils.jpa.EntityMgrCloser;
import org.onap.policy.common.utils.jpa.EntityTransCloser;
@Getter
private long recordsUpdated = 0;
-
/**
* Constructs the object.
*
@Override
public synchronized void store(String requestId, String clName, Object event, String targetEntity,
- ControlLoopOperation operation) {
+ ControlLoopOperation operation) {
if (stopped) {
logger.warn("operation history thread is stopped, discarding requestId={} event={} operation={}", requestId,
- event, operation);
+ event, operation);
return;
}
logger.info("store operation history record batch");
try (var emc = new EntityMgrCloser(entityManager);
- var trans = new EntityTransCloser(entityManager.getTransaction())) {
+ var trans = new EntityTransCloser(entityManager.getTransaction())) {
var nrecords = 0;
var rec = firstRecord;
logger.info("store operation history record for {}", reqId);
List<OperationsHistory> results = entityMgr
- .createQuery("select e from OperationsHistory e" + " where e.closedLoopName= ?1"
- + " and e.requestId= ?2" + " and e.subrequestId= ?3" + " and e.actor= ?4"
- + " and e.operation= ?5" + " and e.target= ?6", OperationsHistory.class)
- .setParameter(1, clName).setParameter(2, rec.getRequestId())
- .setParameter(3, operation.getSubRequestId()).setParameter(4, operation.getActor())
- .setParameter(5, operation.getOperation()).setParameter(6, rec.getTargetEntity())
- .getResultList();
+ .createQuery("select e from OperationsHistory e" + " where e.closedLoopName= ?1"
+ + " and e.requestId= ?2" + " and e.subrequestId= ?3" + " and e.actor= ?4"
+ + " and e.operation= ?5" + " and e.target= ?6", OperationsHistory.class)
+ .setParameter(1, clName).setParameter(2, rec.getRequestId())
+ .setParameter(3, operation.getSubRequestId()).setParameter(4, operation.getActor())
+ .setParameter(5, operation.getOperation()).setParameter(6, rec.getTargetEntity())
+ .getResultList();
if (results.size() > 1) {
logger.warn("unexpected operation history record count {} for {}", results.size(), reqId);
*/
private Properties toProperties(OperationHistoryDataManagerParams params) {
var props = new Properties();
- props.put(PersistenceUnitProperties.JDBC_DRIVER, params.getDriver());
- props.put(PersistenceUnitProperties.JDBC_URL, params.getUrl());
- props.put(PersistenceUnitProperties.JDBC_USER, params.getUserName());
- props.put(PersistenceUnitProperties.JDBC_PASSWORD, params.getPassword());
- props.put(PersistenceUnitProperties.TARGET_DATABASE, params.getDbType());
- props.put(PersistenceUnitProperties.CLASSLOADER, getClass().getClassLoader());
+ props.put("javax.persistence.jdbc.driver", params.getDriver());
+ props.put("javax.persistence.jdbc.url", params.getUrl());
+ props.put("javax.persistence.jdbc.user", params.getUserName());
+ props.put("javax.persistence.jdbc.password", params.getPassword());
+ props.put("hibernate.dialect", params.getDbHibernateDialect());
return props;
}
* ONAP
* ================================================================================
* Copyright (C) 2020-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.
public class OperationHistoryDataManagerParams {
public static final String DEFAULT_PU = "OperationsHistoryPU";
public static final String DEFAULT_DRIVER = "org.mariadb.jdbc.Driver";
- public static final String DEFAULT_TYPE = "MySQL";
+ public static final String DEFAULT_TYPE = "MariaDB";
@NotBlank
private String url;
public ValidationResult validate(String resultName) {
return new BeanValidator().validateTop(resultName, this);
}
+
+ /**
+ * Return the Hibernate dialect for the database type.
+ * @return the dialect
+ */
+ public Object getDbHibernateDialect() {
+ return "org.hibernate.dialect." + dbType + "Dialect";
+ }
}
-<?xml version="1.0" encoding="UTF-8" ?>
+<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
drools-applications
================================================================================
Copyright (C) 2018-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.
limitations under the License.
============LICENSE_END=========================================================
-->
-<persistence version="2.1"
- xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
+<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
- <persistence-unit name="OperationsHistoryPU"
- transaction-type="RESOURCE_LOCAL">
- <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
+ <persistence-unit name="OperationsHistoryPU" transaction-type="RESOURCE_LOCAL">
+ <class>org.onap.policy.guard.OperationsHistory</class>
- <class>org.onap.policy.guard.OperationsHistory</class>
-
- <properties>
- <property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
- <property name="eclipselink.logging.level" value="WARNING" />
- </properties>
- </persistence-unit>
+ <properties>
+ <property name="javax.persistence.schema-generation.database.action" value="create" />
+ <property name="hibernate.dialect" value="org.hibernate.dialect.MariaDBDialect" />
+ <property name="hibernate.show_sql" value="false" />
+ </properties>
+ </persistence-unit>
</persistence>
* ONAP
* ================================================================================
* Copyright (C) 2020-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.
// @formatter:off
return OperationHistoryDataManagerParams.builder()
.url("jdbc:h2:mem:" + OperationHistoryDataManagerImplTest.class.getSimpleName())
+ .dbType("H2")
+ .driver("org.h2.Driver")
.userName("sa")
.password("")
.batchSize(BATCH_SIZE)
# ONAP
# ===============================================================================
# Copyright (C) 2020-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.
operation.history.url=jdbc:h2:mem:EventManagerServicesTest
operation.history.userName=sa
operation.history.password=
+operation.history.driver=org.h2.Driver
+operation.history.dbType=H2