mirror of
https://github.com/nsacyber/HIRS.git
synced 2025-02-25 03:06:19 +00:00
Some additional changes and attempts to deal with generics.
This commit is contained in:
parent
6fa7874a5b
commit
cbf1b0aaa8
@ -4,7 +4,6 @@ import com.google.common.cache.CacheBuilder;
|
|||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
import com.google.common.cache.LoadingCache;
|
import com.google.common.cache.LoadingCache;
|
||||||
import hirs.FilteredRecordsList;
|
import hirs.FilteredRecordsList;
|
||||||
import hirs.data.persist.ReferenceDigestValue;
|
|
||||||
import org.apache.commons.lang3.reflect.FieldUtils;
|
import org.apache.commons.lang3.reflect.FieldUtils;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
@ -762,8 +761,8 @@ public abstract class AbstractDbManager<T> implements CrudManager<T> {
|
|||||||
LOGGER.debug("Retrieving objects from db of class {}", searchClass.getName());
|
LOGGER.debug("Retrieving objects from db of class {}", searchClass.getName());
|
||||||
tx = session.beginTransaction();
|
tx = session.beginTransaction();
|
||||||
CriteriaBuilder builder = session.getCriteriaBuilder();
|
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||||
CriteriaQuery<T> criteriaQuery = builder.createQuery(searchClass);
|
CriteriaQuery<?> criteriaQuery = builder.createQuery(searchClass);
|
||||||
Root<T> root = criteriaQuery.from(searchClass);
|
Root<?> root = criteriaQuery.from(criteriaQuery.getResultType());
|
||||||
Predicate recordPredicate = builder.and(
|
Predicate recordPredicate = builder.and(
|
||||||
|
|
||||||
);
|
);
|
||||||
|
@ -3,16 +3,6 @@ package hirs.persist;
|
|||||||
import hirs.FilteredRecordsList;
|
import hirs.FilteredRecordsList;
|
||||||
import hirs.data.persist.Device;
|
import hirs.data.persist.Device;
|
||||||
import hirs.data.persist.DeviceGroup;
|
import hirs.data.persist.DeviceGroup;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.hibernate.Criteria;
|
import org.hibernate.Criteria;
|
||||||
@ -20,7 +10,20 @@ import org.hibernate.HibernateException;
|
|||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.query.Query;
|
||||||
|
|
||||||
|
import javax.persistence.criteria.CriteriaBuilder;
|
||||||
|
import javax.persistence.criteria.CriteriaQuery;
|
||||||
|
import javax.persistence.criteria.JoinType;
|
||||||
|
import javax.persistence.criteria.Predicate;
|
||||||
|
import javax.persistence.criteria.Root;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class defines a <code>DeviceManager</code> that stores the devices
|
* This class defines a <code>DeviceManager</code> that stores the devices
|
||||||
@ -251,15 +254,23 @@ public class DBDeviceManager extends DBManager<Device> implements
|
|||||||
LOGGER.debug("retrieving defaults devices from db");
|
LOGGER.debug("retrieving defaults devices from db");
|
||||||
tx = session.beginTransaction();
|
tx = session.beginTransaction();
|
||||||
|
|
||||||
List list = session.createCriteria(Device.class).createAlias("deviceGroup", "group")
|
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
|
||||||
.add(Restrictions.eq("group.name", DeviceGroup.DEFAULT_GROUP))
|
CriteriaQuery<Device> criteriaQuery = criteriaBuilder.createQuery(Device.class);
|
||||||
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
|
Root<Device> root = criteriaQuery.from(Device.class);
|
||||||
.list();
|
root.join("group.name", JoinType.LEFT).alias("group");
|
||||||
for (Object o : list) {
|
Predicate recordPredicate = criteriaBuilder
|
||||||
if (o instanceof Device) {
|
.and(criteriaBuilder.equal(root.get("group.name"), DeviceGroup.DEFAULT_GROUP));
|
||||||
devices.add((Device) o);
|
criteriaQuery.select(root).where(recordPredicate).distinct(true);
|
||||||
}
|
Query<Device> query = session.createQuery(criteriaQuery);
|
||||||
|
List<Device> results = query.getResultList();
|
||||||
|
if (results != null) {
|
||||||
|
devices.addAll(results);
|
||||||
}
|
}
|
||||||
|
// List list = session.createCriteria(Device.class).createAlias("deviceGroup", "group")
|
||||||
|
// .add(Restrictions.eq("group.name", DeviceGroup.DEFAULT_GROUP))
|
||||||
|
// .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
|
||||||
|
// .list();
|
||||||
|
|
||||||
tx.commit();
|
tx.commit();
|
||||||
} catch (HibernateException e) {
|
} catch (HibernateException e) {
|
||||||
final String msg = "unable to retrieve default devices";
|
final String msg = "unable to retrieve default devices";
|
||||||
|
@ -8,7 +8,12 @@ import org.hibernate.Session;
|
|||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
|
import org.hibernate.query.Query;
|
||||||
|
|
||||||
|
import javax.persistence.criteria.CriteriaBuilder;
|
||||||
|
import javax.persistence.criteria.CriteriaQuery;
|
||||||
|
import javax.persistence.criteria.Predicate;
|
||||||
|
import javax.persistence.criteria.Root;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@ -77,6 +82,16 @@ public class DBDeviceStateManager extends DBManager<DeviceState> implements Devi
|
|||||||
try {
|
try {
|
||||||
LOGGER.debug("retrieving state from db");
|
LOGGER.debug("retrieving state from db");
|
||||||
tx = session.beginTransaction();
|
tx = session.beginTransaction();
|
||||||
|
CriteriaBuilder builder = session.getCriteriaBuilder();
|
||||||
|
CriteriaQuery<?> criteriaQuery = builder.createQuery(DeviceState.class);
|
||||||
|
Root<?> root = criteriaQuery.from();
|
||||||
|
Predicate recordPredicate = builder.and(
|
||||||
|
|
||||||
|
);
|
||||||
|
criteriaQuery.select(root).where(recordPredicate).distinct(true);
|
||||||
|
Query<?> query = session.createQuery(criteriaQuery);
|
||||||
|
List<?> results = query.getResultList();
|
||||||
|
|
||||||
ret = (DeviceState) session.createCriteria(clazz)
|
ret = (DeviceState) session.createCriteria(clazz)
|
||||||
.add(Restrictions.eq("device", device)).uniqueResult();
|
.add(Restrictions.eq("device", device)).uniqueResult();
|
||||||
tx.commit();
|
tx.commit();
|
||||||
|
@ -1,15 +1,8 @@
|
|||||||
package hirs.persist;
|
package hirs.persist;
|
||||||
|
|
||||||
import hirs.FilteredRecordsList;
|
import hirs.FilteredRecordsList;
|
||||||
import static org.apache.logging.log4j.LogManager.getLogger;
|
|
||||||
import hirs.data.persist.ReportSummary;
|
import hirs.data.persist.ReportSummary;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.hibernate.Criteria;
|
import org.hibernate.Criteria;
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
@ -21,6 +14,19 @@ import org.hibernate.criterion.ProjectionList;
|
|||||||
import org.hibernate.criterion.Projections;
|
import org.hibernate.criterion.Projections;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
import org.hibernate.criterion.Subqueries;
|
import org.hibernate.criterion.Subqueries;
|
||||||
|
import org.hibernate.query.Query;
|
||||||
|
|
||||||
|
import javax.persistence.criteria.CriteriaBuilder;
|
||||||
|
import javax.persistence.criteria.CriteriaQuery;
|
||||||
|
import javax.persistence.criteria.Predicate;
|
||||||
|
import javax.persistence.criteria.Root;
|
||||||
|
import javax.persistence.criteria.Subquery;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static org.apache.logging.log4j.LogManager.getLogger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class defines a <code>DBReportSummaryManager</code> that stores the
|
* This class defines a <code>DBReportSummaryManager</code> that stores the
|
||||||
@ -139,15 +145,16 @@ public class DBReportSummaryManager extends DBManager<ReportSummary>
|
|||||||
try {
|
try {
|
||||||
LOGGER.debug("retrieving objects from db");
|
LOGGER.debug("retrieving objects from db");
|
||||||
tx = session.beginTransaction();
|
tx = session.beginTransaction();
|
||||||
List list = session.createCriteria(ReportSummary.class)
|
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
|
||||||
.add(Restrictions.eq("clientHostname", hostname))
|
CriteriaQuery<ReportSummary> criteriaQuery = criteriaBuilder.createQuery(ReportSummary.class);
|
||||||
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
|
Root<ReportSummary> root = criteriaQuery.from(ReportSummary.class);
|
||||||
.list();
|
Predicate recordPredicate = criteriaBuilder
|
||||||
|
.and(criteriaBuilder.equal(root.get("clientHostname"), hostname));
|
||||||
for (Object o : list) {
|
criteriaQuery.select(root).where(recordPredicate).distinct(true);
|
||||||
if (o instanceof ReportSummary) {
|
Query<ReportSummary> query = session.createQuery(criteriaQuery);
|
||||||
reportSummaryList.add((ReportSummary) o);
|
List<ReportSummary> results = query.getResultList();
|
||||||
}
|
if (results != null) {
|
||||||
|
reportSummaryList.addAll(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
tx.commit();
|
tx.commit();
|
||||||
@ -264,10 +271,14 @@ public class DBReportSummaryManager extends DBManager<ReportSummary>
|
|||||||
try {
|
try {
|
||||||
LOGGER.debug("retrieving objects from db");
|
LOGGER.debug("retrieving objects from db");
|
||||||
tx = session.beginTransaction();
|
tx = session.beginTransaction();
|
||||||
object = (ReportSummary) session
|
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
|
||||||
.createCriteria(ReportSummary.class)
|
CriteriaQuery<ReportSummary> criteriaQuery = criteriaBuilder.createQuery(ReportSummary.class);
|
||||||
.add(Restrictions.eq("report.id", id))
|
Root<ReportSummary> root = criteriaQuery.from(ReportSummary.class);
|
||||||
.uniqueResult();
|
Predicate recordPredicate = criteriaBuilder
|
||||||
|
.and(criteriaBuilder.equal(root.get("report.id"), id));
|
||||||
|
criteriaQuery.select(root).where(recordPredicate);
|
||||||
|
Query<ReportSummary> query = session.createQuery(criteriaQuery);
|
||||||
|
object = query.uniqueResult();
|
||||||
tx.commit();
|
tx.commit();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
final String msg = "unable to retrieve query list";
|
final String msg = "unable to retrieve query list";
|
||||||
@ -347,6 +358,19 @@ public class DBReportSummaryManager extends DBManager<ReportSummary>
|
|||||||
reportSummaryList.add((ReportSummary) o);
|
reportSummaryList.add((ReportSummary) o);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
|
||||||
|
CriteriaQuery<ReportSummary> criteriaQuery = criteriaBuilder.createQuery(ReportSummary.class);
|
||||||
|
Root<ReportSummary> root = criteriaQuery.from(ReportSummary.class);
|
||||||
|
Predicate recordPredicate = criteriaBuilder
|
||||||
|
.exists();
|
||||||
|
|
||||||
|
criteriaQuery.select(root).where(recordPredicate);
|
||||||
|
Query<ReportSummary> query = session.createQuery(criteriaQuery);
|
||||||
|
List<ReportSummary> results = query.getResultList();
|
||||||
|
if (results != null) {
|
||||||
|
reportSummaryList.addAll(results);
|
||||||
|
}
|
||||||
tx.commit();
|
tx.commit();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
final String msg = "unable to retrieve query list";
|
final String msg = "unable to retrieve query list";
|
||||||
@ -422,12 +446,23 @@ public class DBReportSummaryManager extends DBManager<ReportSummary>
|
|||||||
LOGGER.debug("retrieving objects from db");
|
LOGGER.debug("retrieving objects from db");
|
||||||
tx = session.beginTransaction();
|
tx = session.beginTransaction();
|
||||||
//Returns a ReportSummary based on the timestamp and hostname
|
//Returns a ReportSummary based on the timestamp and hostname
|
||||||
object = (ReportSummary) session.createCriteria(ReportSummary.class)
|
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
|
||||||
.addOrder(order)
|
CriteriaQuery<ReportSummary> criteriaQuery = criteriaBuilder.createQuery(ReportSummary.class);
|
||||||
.add(Restrictions.eq("clientHostname", hostname))
|
Root<ReportSummary> root = criteriaQuery.from(ReportSummary.class);
|
||||||
.setFirstResult(firstResult)
|
Predicate recordPredicate = criteriaBuilder
|
||||||
.setMaxResults(uniqueResult)
|
.and(criteriaBuilder.equal(root.get("clientHostname"), hostname));
|
||||||
.uniqueResult();
|
criteriaQuery.select(root).where(recordPredicate);
|
||||||
|
Query<ReportSummary> query = session.createQuery(criteriaQuery);
|
||||||
|
query.setFirstResult(firstResult);
|
||||||
|
query.setMaxResults(uniqueResult);
|
||||||
|
object = query.getSingleResult();
|
||||||
|
|
||||||
|
// object = (ReportSummary) session.createCriteria(ReportSummary.class)
|
||||||
|
// .addOrder(order)
|
||||||
|
// .add(Restrictions.eq("clientHostname", hostname))
|
||||||
|
// .setFirstResult(firstResult)
|
||||||
|
// .setMaxResults(uniqueResult)
|
||||||
|
// .uniqueResult();
|
||||||
tx.commit();
|
tx.commit();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
final String msg = "unable to retrieve query list";
|
final String msg = "unable to retrieve query list";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user