Example usage for org.hibernate.envers AuditReaderFactory get

List of usage examples for org.hibernate.envers AuditReaderFactory get

Introduction

In this page you can find the example usage for org.hibernate.envers AuditReaderFactory get.

Prototype

public static AuditReader get(EntityManager entityManager) throws AuditException 

Source Link

Document

Create an audit reader associated with an open entity manager.

Usage

From source file:org.jboss.pnc.datastore.repositories.BuildConfigurationAuditedRepositoryImpl.java

License:Open Source License

@Override
public List<BuildConfigurationAudited> findAllByIdOrderByRevDesc(Integer buildConfigurationId) {

    List<Object[]> result = AuditReaderFactory.get(entityManager).createQuery()
            .forRevisionsOfEntity(BuildConfiguration.class, false, false)
            .add(AuditEntity.id().eq(buildConfigurationId)).addOrder(AuditEntity.revisionNumber().desc())
            .getResultList();/*from   w ww .  j  a va  2 s . co m*/

    List<BuildRecord> buildRecords = getBuildRecords(buildConfigurationId);

    return result.stream().map(o -> createAudited(o[0], o[1], buildRecords)).collect(Collectors.toList());
}

From source file:org.jboss.pnc.datastore.repositories.BuildConfigurationAuditedRepositoryImpl.java

License:Open Source License

@Override
public BuildConfigurationAudited queryById(IdRev idRev) {
    logger.trace("Querying for BuildConfigurationAudited.idRev: {}.", idRev);
    BuildConfiguration buildConfiguration = AuditReaderFactory.get(entityManager).find(BuildConfiguration.class,
            idRev.getId(), idRev.getRev());

    if (buildConfiguration == null) {
        return null;
    }/* w ww . java2 s  .c o m*/
    List<BuildRecord> buildRecords = getBuildRecords(idRev);

    //preload generic parameters
    buildConfiguration.getGenericParameters().forEach((k, v) -> k.equals(null));

    return BuildConfigurationAudited.fromBuildConfiguration(buildConfiguration, idRev.getRev(), buildRecords);
}

From source file:org.jboss.pnc.datastore.repositories.BuildConfigurationAuditedRepositoryImpl.java

License:Open Source License

@Override
public List<BuildConfigurationAudited> searchForBuildConfigurationName(String buildConfigurationName) {
    List<Object[]> result = AuditReaderFactory.get(entityManager).createQuery()
            .forRevisionsOfEntity(BuildConfiguration.class, false, false)
            .add(AuditEntity.property("name").like(buildConfigurationName))
            .addOrder(AuditEntity.revisionNumber().desc()).getResultList();
    List<BuildRecord> emptyList = Collections.EMPTY_LIST;
    return result.stream().map(o -> createAudited(o[0], o[1], emptyList)).collect(Collectors.toList());
}

From source file:org.jboss.pnc.model.BasicModelTest.java

License:Open Source License

private BuildConfigurationAudited findBuildConfigurationAudited(EntityManager em) {
    List<Object[]> result = AuditReaderFactory.get(em).createQuery()
            .forRevisionsOfEntity(BuildConfiguration.class, false, false)
            .addOrder(AuditEntity.revisionNumber().desc()).getResultList();

    Object[] second = result.get(1);
    BuildConfiguration buildConfiguration = (BuildConfiguration) second[0];
    return BuildConfigurationAudited.fromBuildConfiguration(buildConfiguration,
            ((DefaultRevisionEntity) second[1]).getId());
}

From source file:org.jboss.pnc.model.BuildConfigurationTest.java

License:Open Source License

@Test
public void testRetrieveAuditedGenericParameters() {
    //given//from w  w w .j  av a 2s .  co  m
    String key = "key";
    String initialValue = "initialValue";
    String updatedValue = "updatedValue";
    Map<String, String> initialParameters = new HashMap<>();
    initialParameters.put(key, initialValue);

    Map<String, String> updatedParameters = new HashMap<>();
    updatedParameters.put(key, updatedValue);

    //when
    BuildConfiguration buildConfiguration = createBc("auditing test", "description", initialParameters);
    em.getTransaction().begin();
    em.persist(buildConfiguration);
    em.getTransaction().commit();

    buildConfiguration.setGenericParameters(updatedParameters);
    buildConfiguration.setDescription("updated description");
    em.getTransaction().begin();
    em.persist(buildConfiguration);
    em.getTransaction().commit();

    //then
    BuildConfiguration obtained = em.find(BuildConfiguration.class, buildConfiguration.getId());

    AuditReader reader = AuditReaderFactory.get(em);
    List<Number> revisions = reader.getRevisions(BuildConfiguration.class, obtained.getId());

    assertEquals(2, revisions.size());

    Number firstRevision = revisions.get(0);
    BuildConfiguration oldBuildConfiguration = reader.find(BuildConfiguration.class, obtained.getId(),
            firstRevision);
    Number secondRevision = revisions.get(1);
    BuildConfiguration newBuildConfiguration = reader.find(BuildConfiguration.class, obtained.getId(),
            secondRevision);

    Assert.assertEquals(oldBuildConfiguration.getGenericParameters().get(key), initialValue);
    Assert.assertEquals(newBuildConfiguration.getGenericParameters().get(key), updatedValue);

    BuildConfiguration buildConfigurationOld = getByIdRev(buildConfiguration.getId(), firstRevision.intValue());
    BuildConfigurationAudited auditedOld = BuildConfigurationAudited
            .fromBuildConfiguration(buildConfigurationOld, firstRevision.intValue());

    Assert.assertEquals(auditedOld.getGenericParameters().get(key), initialValue);

    BuildConfiguration buildConfigurationNew = getByIdRev(buildConfiguration.getId(),
            secondRevision.intValue());
    BuildConfigurationAudited auditedNew = BuildConfigurationAudited
            .fromBuildConfiguration(buildConfigurationNew, secondRevision.intValue());

    Assert.assertEquals(auditedNew.getGenericParameters().get(key), updatedValue);

}

From source file:org.jboss.pnc.model.BuildConfigurationTest.java

License:Open Source License

private BuildConfiguration getByIdRev(Integer buildConfigurationId, Integer revision) {
    return (BuildConfiguration) AuditReaderFactory.get(em).createQuery()
            .forEntitiesAtRevision(BuildConfiguration.class, revision)
            .add(AuditEntity.id().eq(buildConfigurationId)).addOrder(AuditEntity.revisionNumber().desc())
            .getSingleResult();/* www . jav a  2s.com*/
}

From source file:org.jboss.pnc.rest.provider.BuildRecordProvider.java

License:Open Source License

public CollectionInfo<BuildRecordRest> getAllForProject(int pageIndex, int pageSize, String sortingRsql,
        String query, Integer projectId) {
    List<Object[]> buildConfigurationRevisions = AuditReaderFactory.get(entityManager).createQuery()
            .forRevisionsOfEntity(BuildConfiguration.class, false, false)
            .add(AuditEntity.relatedId("project").eq(projectId)).addOrder(AuditEntity.revisionNumber().desc())
            .getResultList();// ww  w. j  a  v  a2 s  .  co m

    return queryForBuildRecords(pageIndex, pageSize, sortingRsql, query, buildConfigurationRevisions);
}

From source file:org.jboss.pnc.rest.provider.BuildRecordProvider.java

License:Open Source License

public CollectionInfo<BuildRecordRest> getAllForConfigurationOrProjectName(int pageIndex, int pageSize,
        String sortingRsql, String query, String name) {

    List<Project> projectsMatchingName = projectRepository
            .queryWithPredicates(ProjectPredicates.searchByProjectName(name));

    AuditDisjunction disjunction = AuditEntity.disjunction();
    projectsMatchingName.forEach(project -> {
        disjunction.add(AuditEntity.relatedId("project").eq(project.getId()));
    });/*w w  w . j a va2  s  .  com*/
    disjunction.add(AuditEntity.property("name").like(name));

    List<Object[]> buildConfigurationRevisions = AuditReaderFactory.get(entityManager).createQuery()
            .forRevisionsOfEntity(BuildConfiguration.class, false, false).add(disjunction)
            .addOrder(AuditEntity.revisionNumber().desc()).getResultList();

    return queryForBuildRecords(pageIndex, pageSize, sortingRsql, query, buildConfigurationRevisions);
}

From source file:org.jboss.pressgang.ccms.filter.utils.EntityUtilities.java

License:Open Source License

@SuppressWarnings("unchecked")
public static <E> List<Integer> getEditedEntities(final EntityManager entityManager, final Class<E> type,
        final String pkColumnName, final DateTime startDate, final DateTime endDate) {
    if (startDate == null && endDate == null)
        return null;

    final AuditReader reader = AuditReaderFactory.get(entityManager);

    final AuditQuery query = reader.createQuery().forRevisionsOfEntity(type, true, false)
            .addOrder(AuditEntity.revisionProperty("timestamp").asc())
            .addProjection(AuditEntity.property("originalId." + pkColumnName).distinct());

    if (startDate != null)
        query.add(AuditEntity.revisionProperty("timestamp").ge(startDate.toDate().getTime()));

    if (endDate != null)
        query.add(AuditEntity.revisionProperty("timestamp").le(endDate.toDate().getTime()));

    final List<Integer> entityIds = query.getResultList();

    return entityIds;
}

From source file:org.jboss.pressgang.ccms.filter.utils.EntityUtilities.java

License:Open Source License

public static <E> List<Integer> getEditedEntitiesByRevision(final EntityManager entityManager,
        final Class<E> type, final String pkColumnName, final Number startRevision, final Number endRevision) {
    if (startRevision == null && startRevision == null)
        return null;

    final AuditReader reader = AuditReaderFactory.get(entityManager);

    final AuditQuery query = reader.createQuery().forRevisionsOfEntity(type, true, false)
            .addOrder(AuditEntity.revisionProperty("timestamp").asc())
            .addProjection(AuditEntity.property("originalId." + pkColumnName).distinct());

    if (startRevision != null)
        query.add(AuditEntity.revisionNumber().ge(startRevision));

    if (endRevision != null)
        query.add(AuditEntity.revisionNumber().le(endRevision));

    final List<Integer> entityIds = query.getResultList();

    return entityIds;
}