Example usage for org.hibernate.envers AuditReader createQuery

List of usage examples for org.hibernate.envers AuditReader createQuery

Introduction

In this page you can find the example usage for org.hibernate.envers AuditReader createQuery.

Prototype

AuditQueryCreator createQuery();

Source Link

Document

Creates an audit query

Usage

From source file:com.confighub.core.store.Store.java

License:Open Source License

public Collection<PropertyKey> getPropertiesKeys(final Repository repository, final Date time)
        throws ConfigException {
    AuditReader reader = AuditReaderFactory.get(em);
    Number rev = reader.getRevisionNumberForDate(time);

    AuditQuery query = reader.createQuery().forEntitiesAtRevision(PropertyKey.class, rev);
    query.add(AuditEntity.property("repository").eq(repository));

    return query.getResultList();
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public SecurityProfile getSecurityProfile(final Repository repository, final Date date, final String spName)
        throws ConfigException {
    try {//ww  w .j  a  va2  s . co m
        if (null == date) {
            return (SecurityProfile) em.createNamedQuery("SecurityProfile.byName")
                    .setLockMode(LockModeType.NONE).setParameter("repository", repository)
                    .setParameter("name", spName).getSingleResult();
        }

        AuditReader reader = AuditReaderFactory.get(em);
        Number rev = reader.getRevisionNumberForDate(date);

        AuditQuery kq = reader.createQuery().forEntitiesAtRevision(SecurityProfile.class, rev);
        kq.add(AuditEntity.property("repository").eq(repository));
        kq.add(AuditEntity.property("name").eq(spName));

        SecurityProfile sp = (SecurityProfile) kq.getSingleResult();
        return sp;
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
    }

    return null;
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

private List<AuditRecord> getAuditCommits(List<RevisionEntry> revs) {
    AuditReader reader = AuditReaderFactory.get(em);
    List<AuditRecord> changes = new ArrayList<>();

    for (RevisionEntry rt : revs) {
        String[] clazzesSplit = rt.getType().split(",");
        Set<Class> clazzes = new HashSet<>();
        for (String cl : clazzesSplit) {
            clazzes.add(APersisted.ClassName.valueOf(cl).getClazz());
        }//from   ww  w  .  j  av a  2 s.c  o m

        List<APersisted> results = new ArrayList<>();
        for (Class clazz : clazzes) {
            AuditQuery query = reader.createQuery().forEntitiesModifiedAtRevision(clazz, rt.getId());
            results.addAll(query.getResultList());
        }
        changes.add(new AuditRecord(results, rt, get(UserAccount.class, rt.getUserId()), rt.getAppId()));
    }

    return changes;
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public Property getAuditProperty(final Repository repository, final UserAccount user, final long propertyId,
        final long revId) throws ConfigException {
    try {//from   w  w w.j a  v  a2  s  . c o m
        if (!repository.hasReadAccess(user)) {
            throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
        }

        AuditReader reader = AuditReaderFactory.get(em);
        AuditQuery query = reader.createQuery().forRevisionsOfEntity(Property.class, true, true)
                .add(AuditEntity.revisionNumber().ge(revId)).add(AuditEntity.revisionNumber().le(revId))
                .add(AuditEntity.property("repository").eq(repository)).add(AuditEntity.id().eq(propertyId));

        return (Property) query.getSingleResult();
    } catch (NoResultException e) {
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public AbsoluteFilePath getAbsFilePath(final Repository repository, final String absPath, final Date date) {
    if (null == repository || Utils.isBlank(absPath)) {
        return null;
    }//w  w w  .j a  va  2  s .com

    try {
        if (null == date) {
            return (AbsoluteFilePath) em.createNamedQuery("AbsFilePath.getByAbsPath")
                    .setLockMode(LockModeType.NONE).setParameter("absPath", absPath)
                    .setParameter("repository", repository).getSingleResult();
        }

        AuditReader reader = AuditReaderFactory.get(em);
        Number rev = reader.getRevisionNumberForDate(null == date ? new Date() : date);

        AuditQuery kq = reader.createQuery().forEntitiesAtRevision(AbsoluteFilePath.class, rev);
        kq.add(AuditEntity.property("repository").eq(repository));
        kq.add(AuditEntity.property("absPath").eq(absPath));

        return (AbsoluteFilePath) kq.getSingleResult();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public RepoFile getRepoFile(final UserAccount user, final Repository repository, final Long fileId,
        final Date time) throws ConfigException {
    if (!repository.hasReadAccess(user)) {
        throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
    }//from ww  w . j a v  a  2  s. c  o m

    if (null == time) {
        RepoFile file = get(RepoFile.class, fileId);
        if (file.getRepository().equals(repository)) {
            return file;
        } else {
            throw new ConfigException(Error.Code.FILE_NOT_FOUND);
        }
    }

    AuditReader reader = AuditReaderFactory.get(em);
    Number rev = reader.getRevisionNumberForDate(time);

    AuditQuery query = reader.createQuery().forEntitiesAtRevision(RepoFile.class, rev);
    query.add(AuditEntity.property("repository").eq(repository));
    query.add(AuditEntity.id().eq(fileId));

    try {
        return (RepoFile) query.getSingleResult();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public Collection<RepoFile> getRepoFilesForAPI(final Repository repository, final Date date)
        throws ConfigException {
    if (null == repository) {
        throw new ConfigException(Error.Code.REPOSITORY_NOT_FOUND);
    }/*from www. j ava2 s .  co m*/

    if (null == date) {
        return repository.getFiles();
    }

    try {
        AuditReader reader = AuditReaderFactory.get(em);
        Number rev = reader.getRevisionNumberForDate(date);

        AuditQuery query = reader.createQuery().forEntitiesAtRevision(RepoFile.class, rev)
                .add(AuditEntity.property("repository").eq(repository));

        return query.getResultList();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public Collection<RepoFile> getRepoFiles(final Repository repository, final UserAccount user,
        final String searchTerm, final Date date) throws ConfigException {
    if (Utils.anyNull(repository)) {
        throw new ConfigException(Error.Code.MISSING_PARAMS);
    }/*from w w  w  .  j  av a2  s.c o m*/

    //        if (!repository.isDemo() && null == user)
    //            throw new ConfigException(Error.Code.MISSING_PARAMS);
    //
    if (!repository.isDemo() && !repository.hasReadAccess(user)) {
        throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
    }

    if (null == date) {
        if (Utils.isBlank(searchTerm)) {
            return repository.getFiles();
        } else {
            try {
                return em.createNamedQuery("RepoFile.search").setLockMode(LockModeType.NONE)
                        .setParameter("repository", repository)
                        .setParameter("searchTerm", "%" + searchTerm + "%").getResultList();
            } catch (NoResultException e) {
                return null;
            } catch (Exception e) {
                handleException(e);
                return null;
            }
        }
    } else {
        try {
            AuditReader reader = AuditReaderFactory.get(em);
            Number rev = reader.getRevisionNumberForDate(date);

            AuditQuery query = reader.createQuery().forEntitiesAtRevision(RepoFile.class, rev)
                    .add(AuditEntity.property("repository").eq(repository));

            if (!Utils.isBlank(searchTerm)) {
                query.add(AuditEntity.property("content").like("%" + searchTerm + "%"));
            }

            return query.getResultList();
        } catch (NoResultException e) {
            return null;
        } catch (Exception e) {
            handleException(e);
            return null;
        }
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public RepoFile getAuditConfigFile(final UserAccount user, final Repository repository, final Long fileId,
        final Long revId) throws ConfigException {
    try {/*from   ww w.  j av  a2s  .c om*/
        if (!repository.hasReadAccess(user)) {
            throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
        }

        AuditReader reader = AuditReaderFactory.get(em);

        AuditQuery query = reader.createQuery().forRevisionsOfEntity(RepoFile.class, true, true)
                .add(AuditEntity.revisionNumber().ge(revId)).add(AuditEntity.revisionNumber().le(revId))
                .add(AuditEntity.property("repository").eq(repository)).add(AuditEntity.id().eq(fileId));

        return (RepoFile) query.getSingleResult();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}

From source file:com.confighub.core.store.Store.java

License:Open Source License

public List<PropertyKey> getKeys(final UserAccount user, final Repository repository,
        final Collection<String> keys, final Date time) throws ConfigException {
    if (Utils.anyNull(repository, keys)) {
        throw new ConfigException(Error.Code.MISSING_PARAMS);
    }//from w w  w.j  ava 2 s. com

    if (!repository.hasReadAccess(user)) {
        throw new ConfigException(Error.Code.USER_ACCESS_DENIED);
    }

    if (null == time) {
        Collection<String> upperKeys = new ArrayList<>();
        keys.forEach(k -> upperKeys.add(k.toUpperCase()));

        try {
            return em.createNamedQuery("Key.getKeys").setLockMode(LockModeType.NONE)
                    .setParameter("repository", repository).setParameter("keys", upperKeys).getResultList();
        } catch (NoResultException e) {
            return Collections.EMPTY_LIST;
        } catch (Exception e) {
            handleException(e);
            return Collections.EMPTY_LIST;
        }
    }

    AuditReader reader = AuditReaderFactory.get(em);
    Number rev = reader.getRevisionNumberForDate(time);

    AuditQuery query = reader.createQuery().forEntitiesAtRevision(PropertyKey.class, rev);
    query.add(AuditEntity.property("repository").eq(repository));
    query.add(AuditEntity.property("key").in(keys));

    try {
        return query.getResultList();
    } catch (NoResultException e) {
        return null;
    } catch (Exception e) {
        handleException(e);
        return null;
    }
}