diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/InitializationListener.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/InitializationListener.java
index 2be1d35b..c6aec5ba 100644
--- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/InitializationListener.java
+++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/InitializationListener.java
@@ -1,16 +1,16 @@
package hirs.attestationca;
-import org.hibernate.SessionFactory;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
import hirs.persist.DBAppraiserManager;
import hirs.persist.DBDeviceGroupManager;
import hirs.persist.DBPolicyManager;
import hirs.persist.PersistenceConfiguration;
import hirs.utils.HIRSProfiles;
+import org.hibernate.SessionFactory;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
/**
* Simply holds a contextInitialized method which will be called when the web app starts.
diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/configuration/AttestationCertificateAuthorityConfiguration.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/configuration/AttestationCertificateAuthorityConfiguration.java
index 3b604f71..ca2ca74c 100644
--- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/configuration/AttestationCertificateAuthorityConfiguration.java
+++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/configuration/AttestationCertificateAuthorityConfiguration.java
@@ -29,7 +29,7 @@ import org.springframework.context.annotation.PropertySources;
import org.springframework.context.annotation.Scope;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.env.Environment;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
+import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
diff --git a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/persistence/PersistenceConfiguration.java b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/persistence/PersistenceConfiguration.java
index f051b1a1..8c124a20 100644
--- a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/persistence/PersistenceConfiguration.java
+++ b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/persistence/PersistenceConfiguration.java
@@ -20,7 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
+import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
/**
* Spring configuration class for persistence beans used by the Attestation CA Portal.
diff --git a/HIRS_AttestationCAPortal/src/test/java/hirs/attestationca/portal/page/PageTestConfiguration.java b/HIRS_AttestationCAPortal/src/test/java/hirs/attestationca/portal/page/PageTestConfiguration.java
index db35c652..0b6b6048 100644
--- a/HIRS_AttestationCAPortal/src/test/java/hirs/attestationca/portal/page/PageTestConfiguration.java
+++ b/HIRS_AttestationCAPortal/src/test/java/hirs/attestationca/portal/page/PageTestConfiguration.java
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
+import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
diff --git a/HIRS_Utils/build.gradle b/HIRS_Utils/build.gradle
index 348632fe..e82ed051 100644
--- a/HIRS_Utils/build.gradle
+++ b/HIRS_Utils/build.gradle
@@ -33,7 +33,7 @@ dependencies {
compile libs.commons_http
compile libs.commons_valid
compile libs.hibernate
- compile libs.hikari
+// compile libs.hikari
compile libs.jackson
compile libs.jadira_usertype
compile libs.joda_time
diff --git a/HIRS_Utils/src/main/java/hirs/data/persist/AbstractEntity.java b/HIRS_Utils/src/main/java/hirs/data/persist/AbstractEntity.java
index 6426ab84..88dcb9cc 100644
--- a/HIRS_Utils/src/main/java/hirs/data/persist/AbstractEntity.java
+++ b/HIRS_Utils/src/main/java/hirs/data/persist/AbstractEntity.java
@@ -1,14 +1,14 @@
package hirs.data.persist;
-import java.util.Date;
-import java.util.UUID;
+import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Type;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
-import org.hibernate.annotations.GenericGenerator;
-import org.hibernate.annotations.Type;
+import java.util.Date;
+import java.util.UUID;
/**
* An abstract database entity.
diff --git a/HIRS_Utils/src/main/java/hirs/data/persist/type/InetAddressType.java b/HIRS_Utils/src/main/java/hirs/data/persist/type/InetAddressType.java
index 7e9d0046..62255066 100644
--- a/HIRS_Utils/src/main/java/hirs/data/persist/type/InetAddressType.java
+++ b/HIRS_Utils/src/main/java/hirs/data/persist/type/InetAddressType.java
@@ -1,6 +1,9 @@
package hirs.data.persist.type;
-import static java.lang.String.format;
+import org.hibernate.HibernateException;
+import org.hibernate.engine.spi.SharedSessionContractImplementor;
+import org.hibernate.type.StringType;
+import org.hibernate.usertype.UserType;
import java.io.Serializable;
import java.net.InetAddress;
@@ -10,10 +13,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Objects;
-import org.hibernate.HibernateException;
-import org.hibernate.engine.spi.SessionImplementor;
-import org.hibernate.type.StringType;
-import org.hibernate.usertype.UserType;
+import static java.lang.String.format;
/**
@@ -95,7 +95,7 @@ public final class InetAddressType implements UserType {
*/
@Override
public Object nullSafeGet(final ResultSet rs, final String[] names,
- final SessionImplementor session, final Object owner)
+ final SharedSessionContractImplementor session, final Object owner)
throws HibernateException, SQLException {
final String ip = (String) StringType.INSTANCE.get(rs, names[0],
session);
@@ -122,7 +122,7 @@ public final class InetAddressType implements UserType {
*/
@Override
public void nullSafeSet(final PreparedStatement st, final Object value,
- final int index, final SessionImplementor session)
+ final int index, final SharedSessionContractImplementor session)
throws SQLException {
if (value == null) {
StringType.INSTANCE.set(st, null, index, session);
diff --git a/HIRS_Utils/src/main/java/hirs/data/persist/type/X509CertificateType.java b/HIRS_Utils/src/main/java/hirs/data/persist/type/X509CertificateType.java
index 9edab050..e6af2e5a 100644
--- a/HIRS_Utils/src/main/java/hirs/data/persist/type/X509CertificateType.java
+++ b/HIRS_Utils/src/main/java/hirs/data/persist/type/X509CertificateType.java
@@ -1,5 +1,10 @@
package hirs.data.persist.type;
+import org.hibernate.HibernateException;
+import org.hibernate.engine.spi.SharedSessionContractImplementor;
+import org.hibernate.usertype.UserType;
+
+import javax.sql.rowset.serial.SerialBlob;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.Serializable;
@@ -14,12 +19,6 @@ import java.sql.SQLException;
import java.sql.Types;
import java.util.Objects;
-import javax.sql.rowset.serial.SerialBlob;
-
-import org.hibernate.HibernateException;
-import org.hibernate.engine.spi.SessionImplementor;
-import org.hibernate.usertype.UserType;
-
/**
* This is a class for persisting X509Certificate
objects via
@@ -100,7 +99,7 @@ public final class X509CertificateType implements UserType {
*/
@Override
public Object nullSafeGet(final ResultSet rs, final String[] names,
- final SessionImplementor session, final Object owner)
+ final SharedSessionContractImplementor session, final Object owner)
throws HibernateException, SQLException {
final Blob cert = rs.getBlob(names[0]);
if (cert == null) {
@@ -130,7 +129,7 @@ public final class X509CertificateType implements UserType {
*/
@Override
public void nullSafeSet(final PreparedStatement st, final Object value,
- final int index, final SessionImplementor session)
+ final int index, final SharedSessionContractImplementor session)
throws SQLException {
if (value == null) {
st.setString(index, null);
diff --git a/HIRS_Utils/src/main/java/hirs/ima/CSVGenerator.java b/HIRS_Utils/src/main/java/hirs/ima/CSVGenerator.java
index 9bc11d2b..5b6ebbe0 100644
--- a/HIRS_Utils/src/main/java/hirs/ima/CSVGenerator.java
+++ b/HIRS_Utils/src/main/java/hirs/ima/CSVGenerator.java
@@ -100,7 +100,9 @@ public final class CSVGenerator {
StringBuilder sb = new StringBuilder();
CSVPrinter csvPrinter;
try {
- csvPrinter = CSVFormat.DEFAULT.withRecordSeparator(System.lineSeparator()).print(sb);
+ csvPrinter = CSVFormat.DEFAULT.builder()
+ .setRecordSeparator(System.lineSeparator())
+ .build().print(sb);
for (ImaBlacklistRecord record : blacklistBaseline.getRecords()) {
String digest = "";
Digest hash = record.getHash();
diff --git a/HIRS_Utils/src/main/java/hirs/persist/AbstractDbManager.java b/HIRS_Utils/src/main/java/hirs/persist/AbstractDbManager.java
index 2af0dd90..89b520fa 100644
--- a/HIRS_Utils/src/main/java/hirs/persist/AbstractDbManager.java
+++ b/HIRS_Utils/src/main/java/hirs/persist/AbstractDbManager.java
@@ -22,7 +22,7 @@ import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
-import org.hibernate.internal.SessionFactoryImpl;
+import org.hibernate.service.spi.ServiceRegistryImplementor;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -31,6 +31,9 @@ import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Root;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
@@ -162,7 +165,8 @@ public abstract class AbstractDbManager implements CrudManager {
* @return the configured database implementation
*/
protected DBManager.DBImpl getConfiguredImplementation() {
- String dialect = ((SessionFactoryImpl) factory).getDialect().toString().toLowerCase();
+ String dialect = ((ServiceRegistryImplementor) factory).getParentServiceRegistry()
+ .getParentServiceRegistry().toString().toLowerCase();
if (dialect.contains("hsql")) {
return DBManager.DBImpl.HSQL;
} else if (dialect.contains("mysql")) {
@@ -243,10 +247,14 @@ public abstract class AbstractDbManager implements CrudManager {
boolean deleted = false;
Transaction tx = null;
Session session = factory.getCurrentSession();
+ CriteriaBuilder builder = session.getCriteriaBuilder();
+ CriteriaQuery criteria = builder.createQuery(clazz);
try {
LOGGER.debug("retrieving object from db");
tx = session.beginTransaction();
- Object object = session.createCriteria(clazz)
+ Root myObjectRoot = criteria.from(clazz);
+ Join joinObject = myObjectRoot.join("joinObject");
+ Object object = session.getSessionFactory().getCurrentSession().createCriteria(clazz)
.add(Restrictions.eq("name", name)).uniqueResult();
if (object != null && clazz.isInstance(object)) {
T objectOfTypeT = clazz.cast(object);
diff --git a/HIRS_Utils/src/main/java/hirs/persist/HibernateConfiguration.java b/HIRS_Utils/src/main/java/hirs/persist/HibernateConfiguration.java
index 91e83c1b..4297f221 100644
--- a/HIRS_Utils/src/main/java/hirs/persist/HibernateConfiguration.java
+++ b/HIRS_Utils/src/main/java/hirs/persist/HibernateConfiguration.java
@@ -7,8 +7,8 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.PropertySources;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
-import org.springframework.orm.hibernate4.HibernateTransactionManager;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
+import org.springframework.orm.hibernate5.HibernateTransactionManager;
+import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
diff --git a/HIRS_Utils/src/main/java/hirs/persist/PersistenceConfiguration.java b/HIRS_Utils/src/main/java/hirs/persist/PersistenceConfiguration.java
index 408687d1..0d519af8 100644
--- a/HIRS_Utils/src/main/java/hirs/persist/PersistenceConfiguration.java
+++ b/HIRS_Utils/src/main/java/hirs/persist/PersistenceConfiguration.java
@@ -5,7 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
+import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
/**
diff --git a/HIRS_Utils/src/main/java/hirs/persist/SystemInit.java b/HIRS_Utils/src/main/java/hirs/persist/SystemInit.java
index 74d2c954..977dcff3 100644
--- a/HIRS_Utils/src/main/java/hirs/persist/SystemInit.java
+++ b/HIRS_Utils/src/main/java/hirs/persist/SystemInit.java
@@ -24,7 +24,7 @@ import org.hibernate.SessionFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ClassPathBeanDefinitionScanner;
import org.springframework.core.type.filter.AssignableTypeFilter;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
+import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import hirs.alert.ManagedAlertService;
import java.util.Collection;
diff --git a/HIRS_Utils/src/main/java/hirs/persist/imarecord/DbImaRecordQuery.java b/HIRS_Utils/src/main/java/hirs/persist/imarecord/DbImaRecordQuery.java
index f5bf9d02..9862e8f2 100644
--- a/HIRS_Utils/src/main/java/hirs/persist/imarecord/DbImaRecordQuery.java
+++ b/HIRS_Utils/src/main/java/hirs/persist/imarecord/DbImaRecordQuery.java
@@ -2,7 +2,7 @@ package hirs.persist.imarecord;
import hirs.FilteredRecordsList;
import hirs.data.persist.IMAMeasurementRecord;
-import org.hibernate.Query;
+import org.hibernate.query.Query;
import org.hibernate.Session;
import java.util.List;
diff --git a/HIRS_Utils/src/main/resources/persistence.properties b/HIRS_Utils/src/main/resources/persistence.properties
index 24584f43..45e3afe5 100644
--- a/HIRS_Utils/src/main/resources/persistence.properties
+++ b/HIRS_Utils/src/main/resources/persistence.properties
@@ -13,5 +13,5 @@ persistence.db.retryWaitTimeMilliseconds = 3000
# Properties used by the Hibernate Session Factory
persistence.hibernate.dialect = hirs.utils.MySqlUtf8CompatibleDialect
persistence.hibernate.ddl = update
-persistence.hibernate.contextClass = org.springframework.orm.hibernate4.SpringSessionContext
+persistence.hibernate.contextClass = org.springframework.orm.hibernate5.SpringSessionContext
persistence.hibernate.provider = org.hibernate.hikaricp.internal.HikariCPConnectionProvider
diff --git a/HIRS_Utils/src/test/resources/persistence.properties b/HIRS_Utils/src/test/resources/persistence.properties
index e8b4f706..7297f8c6 100644
--- a/HIRS_Utils/src/test/resources/persistence.properties
+++ b/HIRS_Utils/src/test/resources/persistence.properties
@@ -11,5 +11,5 @@ persistence.db.retryWaitTimeMilliseconds = 1000
persistence.hibernate.dialect = org.hibernate.dialect.HSQLDialect
persistence.hibernate.ddl = create-drop
-persistence.hibernate.contextClass = org.springframework.orm.hibernate4.SpringSessionContext
+persistence.hibernate.contextClass = org.springframework.orm.hibernate5.SpringSessionContext
persistence.hibernate.provider = org.hibernate.hikaricp.internal.HikariCPConnectionProvider
diff --git a/build.gradle b/build.gradle
index ed61ea1f..a5ae6fe3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -96,26 +96,26 @@ subprojects {
checkstyle: 'com.puppycrawl.tools:checkstyle:10.0',
commons_cli: 'commons-cli:commons-cli:1.4',
commons_codec: 'commons-codec:commons-codec:1.15',
- commons_csv: 'org.apache.commons:commons-csv:1.4',
+ commons_csv: 'org.apache.commons:commons-csv:1.9.0',
commons_exec: 'org.apache.commons:commons-exec:1.3',
commons_http: 'commons-httpclient:commons-httpclient:3.1',
commons_io: 'commons-io:commons-io:2.11.0',
- commons_lang: 'org.apache.commons:commons-lang3:3.3.2',
+ commons_lang: 'org.apache.commons:commons-lang3:3.12.0',
commons_upload:'commons-fileupload:commons-fileupload:1.4',
commons_valid: 'commons-validator:commons-validator:1.7',
findbugs: 'com.google.code.findbugs:findbugs:3.0.0',
gson: 'com.google.code.gson:gson:2.9.0',
guava: 'com.google.guava:guava:31.1-jre',
- hibernate: [ 'org.hibernate.common:hibernate-commons-annotations:4.0.4.Final',
- 'org.hibernate:hibernate-core:4.3.11.Final',
- 'org.hibernate:hibernate-hikaricp:4.3.11.Final'],
- hikari: 'com.zaxxer:HikariCP:2.4.1',
+ hibernate: [ 'org.hibernate.common:hibernate-commons-annotations:5.0.0.Final',
+ 'org.hibernate:hibernate-core:5.0.0.Final',
+ 'org.hibernate:hibernate-hikaricp:5.0.0.Final'],
+// hikari: 'com.zaxxer:HikariCP:5.0.1',
hsqldb: 'org.hsqldb:hsqldb:2.6.1',
http: 'org.apache.httpcomponents:httpclient:4.5.13',
jackson: [ 'com.fasterxml.jackson.core:jackson-core:2.13.2',
'com.fasterxml.jackson.core:jackson-databind:2.13.2.2',
'com.fasterxml.jackson.core:jackson-annotations:2.13.2'],
- jadira_usertype: 'org.jadira.usertype:usertype.core:4.0.0.GA',
+ jadira_usertype: 'org.jadira.usertype:usertype.core:6.0.1.GA',
jcommander: 'com.beust:jcommander:1.82',
joda_time: 'joda-time:joda-time:2.10.14',
jstl: [ 'org.apache.taglibs:taglibs-standard-impl:1.2.5',
@@ -137,17 +137,17 @@ subprojects {
reflections: 'org.reflections:reflections:0.10.2',
servlet_api: 'javax.servlet:javax.servlet-api:4.0.1',
slf4j: 'org.slf4j:slf4j-api:1.7.36',
- spring_core: ['org.springframework:spring-aop:4.3.30.RELEASE',
- 'org.springframework:spring-beans:4.3.30.RELEASE',
- 'org.springframework:spring-context:4.3.30.RELEASE',
- 'org.springframework:spring-expression:4.3.30.RELEASE',
- 'org.springframework:spring-orm:4.3.30.RELEASE'],
- spring_msg: 'org.springframework:spring-messaging:4.3.30.RELEASE',
+ spring_core: ['org.springframework:spring-aop:5.3.19',
+ 'org.springframework:spring-beans:5.3.19',
+ 'org.springframework:spring-context:5.3.19',
+ 'org.springframework:spring-expression:5.3.19',
+ 'org.springframework:spring-orm:5.3.19'],
+ spring_msg: 'org.springframework:spring-messaging:5.3.19',
spring_plugin: 'org.springframework.plugin:spring-plugin-core:2.0.0.RELEASE',
- spring_retry: 'org.springframework.retry:spring-retry:1.2.2.RELEASE',
- spring_test: 'org.springframework:spring-test:4.3.30.RELEASE',
- spring_web: 'org.springframework:spring-web:4.3.30.RELEASE',
- spring_webmvc: 'org.springframework:spring-webmvc:4.3.30.RELEASE',
+ spring_retry: 'org.springframework.retry:spring-retry:1.3.2',
+ spring_test: 'org.springframework:spring-test:5.3.19',
+ spring_web: 'org.springframework:spring-web:5.3.19',
+ spring_webmvc: 'org.springframework:spring-webmvc:5.3.19',
testng: 'org.testng:testng:7.4.0',
xml_rpc_client: 'org.apache.xmlrpc:xmlrpc-client:3.1.3',
]