diff --git a/source/java/org/alfresco/repo/audit/AuditComponent.java b/source/java/org/alfresco/repo/audit/AuditComponent.java index 213b9902d5..13637a28e6 100644 --- a/source/java/org/alfresco/repo/audit/AuditComponent.java +++ b/source/java/org/alfresco/repo/audit/AuditComponent.java @@ -121,5 +121,24 @@ public interface AuditComponent */ void auditQuery( AuditQueryCallback callback, - String applicationName, String user, Long from, Long to, int maxResults); + String applicationName, String user, Long from, Long to, + int maxResults); + + /** + * Get the audit entries that match the given criteria. + * + * @param callback the callback that will handle results + * @param applicationName if not null, find entries logged against this application + * @param user if not null, find entries logged against this user + * @param from the start search time (null to start at the beginning) + * @param to the end search time (null for no limit) + * @param searchKey the audit key path that must exist (null to ignore) + * @param searchString an audit value string that must exist (null to ignore) + * @param maxResults the maximum number of results to retrieve (zero or negative to ignore) + */ + void auditQuery( + AuditQueryCallback callback, + String applicationName, String user, Long from, Long to, + String searchKey, String searchString, + int maxResults); } diff --git a/source/java/org/alfresco/repo/audit/AuditComponentImpl.java b/source/java/org/alfresco/repo/audit/AuditComponentImpl.java index 15c6fb518d..a3a2de7167 100644 --- a/source/java/org/alfresco/repo/audit/AuditComponentImpl.java +++ b/source/java/org/alfresco/repo/audit/AuditComponentImpl.java @@ -966,4 +966,28 @@ public class AuditComponentImpl implements AuditComponent auditDAO.findAuditEntries(callback, applicationName, user, from, to, maxResults); } + + /** + * {@inheritDoc} + */ + public void auditQuery( + AuditQueryCallback callback, + String applicationName, + String user, + Long from, + Long to, + String searchKey, String searchString, + int maxResults) + { + ParameterCheck.mandatory("callback", callback); + + // Shortcuts + if (from != null && to != null && from.compareTo(to) > 0) + { + // Time range can't yield results + return; + } + + auditDAO.findAuditEntries(callback, applicationName, user, from, to, searchKey, searchString, maxResults); + } } diff --git a/source/java/org/alfresco/repo/audit/AuditServiceImpl.java b/source/java/org/alfresco/repo/audit/AuditServiceImpl.java index eebe35df95..469344ffc2 100644 --- a/source/java/org/alfresco/repo/audit/AuditServiceImpl.java +++ b/source/java/org/alfresco/repo/audit/AuditServiceImpl.java @@ -130,16 +130,32 @@ public class AuditServiceImpl implements AuditService /** * {@inheritDoc} - * @see AuditComponent#auditQuery(AuditQueryCallback, String, String, Long, Long, int) * @since 3.2 */ public void auditQuery( AuditQueryCallback callback, - String applicationName, String user, Long from, Long to, int maxResults) + String applicationName, String user, Long from, Long to, + int maxResults) { ParameterCheck.mandatory("callback", callback); auditComponent.auditQuery(callback, applicationName, user, from, to, maxResults); } + + /** + * {@inheritDoc} + * @since 3.2 + */ + public void auditQuery( + AuditQueryCallback callback, + String applicationName, String user, Long from, Long to, + String searchKey, String searchString, + int maxResults) + + { + ParameterCheck.mandatory("callback", callback); + + auditComponent.auditQuery(callback, applicationName, user, from, to, searchKey, searchString, maxResults); + } } \ No newline at end of file diff --git a/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java b/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java index fba44c9f5d..544bea42dc 100644 --- a/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java +++ b/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java @@ -694,7 +694,8 @@ public class HibernateAuditDAO extends HibernateDaoSupport implements AuditDAO, */ public void findAuditEntries( AuditQueryCallback callback, - String applicationName, String user, Long from, Long to, int maxResults) + String applicationName, String user, Long from, Long to, + int maxResults) { throw new UnsupportedOperationException(); } @@ -707,8 +708,9 @@ public class HibernateAuditDAO extends HibernateDaoSupport implements AuditDAO, */ public void findAuditEntries( AuditQueryCallback callback, - String applicationName, String user, Long from, Long to, int maxResults, - String searchKey, String searchString) + String applicationName, String user, Long from, Long to, + String searchKey, String searchString, + int maxResults) { throw new UnsupportedOperationException(); } diff --git a/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java b/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java index fcc0cfd603..f99509d0d6 100644 --- a/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java +++ b/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java @@ -343,7 +343,8 @@ public abstract class AbstractAuditDAOImpl implements AuditDAO public void findAuditEntries( AuditQueryCallback callback, - String applicationName, String user, Long from, Long to, int maxResults) + String applicationName, String user, Long from, Long to, + int maxResults) { AuditQueryRowHandler rowHandler = new AuditQueryRowHandler(callback); findAuditEntries(rowHandler, applicationName, user, from, to, maxResults, null, null); @@ -351,8 +352,9 @@ public abstract class AbstractAuditDAOImpl implements AuditDAO public void findAuditEntries( AuditQueryCallback callback, - String applicationName, String user, Long from, Long to, int maxResults, - String searchKey, String searchString) + String applicationName, String user, Long from, Long to, + String searchKey, String searchString, + int maxResults) { AuditQueryRowHandler rowHandler = new AuditQueryRowHandler(callback); findAuditEntries(rowHandler, applicationName, user, from, to, maxResults, searchKey, searchString); diff --git a/source/java/org/alfresco/repo/domain/audit/AuditDAO.java b/source/java/org/alfresco/repo/domain/audit/AuditDAO.java index 2360c18665..bee6aa5033 100644 --- a/source/java/org/alfresco/repo/domain/audit/AuditDAO.java +++ b/source/java/org/alfresco/repo/domain/audit/AuditDAO.java @@ -101,6 +101,7 @@ public interface AuditDAO void findAuditEntries( AuditQueryCallback callback, - String applicationName, String user, Long from, Long to, int maxResults, - String searchKey, String searchString); + String applicationName, String user, Long from, Long to, + String searchKey, String searchString, + int maxResults); } \ No newline at end of file diff --git a/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java b/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java index e1b3ab5a78..13c5400032 100644 --- a/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java +++ b/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java @@ -196,7 +196,7 @@ public class AuditDAOTest extends TestCase { public Void execute() throws Throwable { - auditDAO.findAuditEntries(callback, null, null, null, null, -1, "/a/b/c", null); + auditDAO.findAuditEntries(callback, null, null, null, null, "/a/b/c", null, -1); return null; } }; diff --git a/source/java/org/alfresco/service/cmr/audit/AuditService.java b/source/java/org/alfresco/service/cmr/audit/AuditService.java index 9f2799f816..55344e49e0 100644 --- a/source/java/org/alfresco/service/cmr/audit/AuditService.java +++ b/source/java/org/alfresco/service/cmr/audit/AuditService.java @@ -143,5 +143,24 @@ public interface AuditService */ void auditQuery( AuditQueryCallback callback, - String applicationName, String user, Long from, Long to, int maxResults); + String applicationName, String user, Long from, Long to, + int maxResults); + + /** + * Get the audit entries that match the given criteria. + * + * @param callback the callback that will handle results + * @param applicationName if not null, find entries logged against this application + * @param user if not null, find entries logged against this user + * @param from the start search time (null to start at the beginning) + * @param to the end search time (null for no limit) + * @param searchKey the audit key path that must exist (null to ignore) + * @param searchString an audit value string that must exist (null to ignore) + * @param maxResults the maximum number of results to retrieve (zero or negative to ignore) + */ + void auditQuery( + AuditQueryCallback callback, + String applicationName, String user, Long from, Long to, + String searchKey, String searchString, + int maxResults); }