Example usage for org.hibernate.envers AuditReader getRevisionNumberForDate

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

Introduction

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

Prototype

Number getRevisionNumberForDate(Date date)
        throws IllegalStateException, RevisionDoesNotExistException, IllegalArgumentException;

Source Link

Document

Gets the revision number, that corresponds to the given date.

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 {//w  ww  . ja v  a 2s  . c om
        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

public AbsoluteFilePath getAbsFilePath(final Repository repository, final String absPath, final Date date) {
    if (null == repository || Utils.isBlank(absPath)) {
        return null;
    }/*from  www.ja va 2 s  . c o  m*/

    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 www .  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 w  w w. j  a  va  2s .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);
    }/*  w  w w .  ja v  a  2s .  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 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);
    }//w  ww  .  ja v a  2 s. co m

    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;
    }
}

From source file:cz.filmtit.userspace.Session.java

License:Open Source License

/**
 * Loads previous versions of subtitle items
 *
 * @param results list of currently loaded Translation Results
 * @param date date before which the translation results to load were
 * created/*from w w  w. j  a  v a 2s  . com*/
 * @return returns list of old Translation Results created before given date
 */
public List<TranslationResult> loadPreviousVersions(List<TranslationResult> results, Date date) {
    AuditReader auditReader = AuditReaderFactory.get(usHibernateUtil.getSessionWithActiveTransaction());
    List<TranslationResult> tResults = new ArrayList<TranslationResult>();

    try {

        Number revisionNumber = auditReader.getRevisionNumberForDate(date);

        logger.log(Logger.Level.ERROR, revisionNumber);

        for (TranslationResult result : results) {
            List resultList = auditReader.createQuery()
                    .forRevisionsOfEntity(USTranslationResult.class, true, false)
                    .add(AuditEntity.id().eq(result.getId()))
                    .add(AuditEntity.revisionNumber().le(revisionNumber))
                    .addOrder(AuditEntity.revisionNumber().desc()).getResultList();

            if (resultList != null && !resultList.isEmpty()) {
                USTranslationResult singleResult = (USTranslationResult) resultList.get(0);
                tResults.add(singleResult.getTranslationResult());
            }
        }

    } catch (RevisionDoesNotExistException e) {
        logger.log(Logger.Level.ERROR, e.getDate() + " " + e.getRevision());
    }

    return tResults;

}

From source file:fi.vm.sade.eperusteet.amosaa.service.revision.impl.RevisionMetaServiceImpl.java

License:EUPL

@Override
public Number getCurrentRevision() {
    AuditReader reader = AuditReaderFactory.get(em);
    try {//from w ww.j  a v a 2s .co m
        return reader.getRevisionNumberForDate(new Date(Long.MAX_VALUE));
    } catch (RevisionDoesNotExistException ex) {
        return 0;
    }
}

From source file:fi.vm.sade.eperusteet.service.revision.impl.RevisionMetaServiceImpl.java

License:EUPL

@Override
public Number getCurrentRevision() {
    AuditReader reader = AuditReaderFactory.get(em);
    Number revision = reader.getRevisionNumberForDate(new Date(Long.MAX_VALUE));
    return revision;
}