diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/audit-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/audit-common-SqlMap.xml
index 7a7337f4c3..ec72904b1b 100644
--- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/audit-common-SqlMap.xml
+++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/audit-common-SqlMap.xml
@@ -125,53 +125,6 @@
join alf_audit_entry entry on (entry.audit_app_id = app.id)
join alf_prop_value user_pv on (user_pv.id = entry.audit_user_id)
join alf_prop_string_value user_sv on (user_sv.id = user_pv.long_value and user_pv.persisted_type = 3)
-
-
- app_sv.string_end_lower = #auditAppNameShort# and
- app_sv.string_crc = #auditAppNameCrc#
-
-
- user_sv.string_end_lower = #auditUserShort# and
- user_sv.string_crc = #auditUserCrc#
-
-
- = #auditFromTime#]]>
-
-
-
-
-
- order by
- entry.id
-
-
-
-
-
-
+
+
+
+
\ 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 d2e9e0bc49..fba44c9f5d 100644
--- a/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java
+++ b/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java
@@ -698,4 +698,18 @@ public class HibernateAuditDAO extends HibernateDaoSupport implements AuditDAO,
{
throw new UnsupportedOperationException();
}
+
+ /**
+ * Fallout implementation from new audit DAO
+ *
+ * @throws UnsupportedOperationException always
+ * @since 3.2
+ */
+ public void findAuditEntries(
+ AuditQueryCallback callback,
+ String applicationName, String user, Long from, Long to, int maxResults,
+ String searchKey, String searchString)
+ {
+ throw new UnsupportedOperationException();
+ }
}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java b/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java
index ad4182ab3c..fcc0cfd603 100644
--- a/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java
@@ -346,10 +346,20 @@ public abstract class AbstractAuditDAOImpl implements AuditDAO
String applicationName, String user, Long from, Long to, int maxResults)
{
AuditQueryRowHandler rowHandler = new AuditQueryRowHandler(callback);
- findAuditEntries(rowHandler, applicationName, user, from, to, maxResults);
+ findAuditEntries(rowHandler, applicationName, user, from, to, maxResults, null, null);
+ }
+
+ public void findAuditEntries(
+ AuditQueryCallback callback,
+ String applicationName, String user, Long from, Long to, int maxResults,
+ String searchKey, String searchString)
+ {
+ AuditQueryRowHandler rowHandler = new AuditQueryRowHandler(callback);
+ findAuditEntries(rowHandler, applicationName, user, from, to, maxResults, searchKey, searchString);
}
protected abstract void findAuditEntries(
AuditQueryRowHandler rowHandler,
- String applicationName, String user, Long from, Long to, int maxResults);
+ String applicationName, String user, Long from, Long to, int maxResults,
+ String searchKey, String searchString);
}
diff --git a/source/java/org/alfresco/repo/domain/audit/AuditDAO.java b/source/java/org/alfresco/repo/domain/audit/AuditDAO.java
index 0f9ddd3a5f..2360c18665 100644
--- a/source/java/org/alfresco/repo/domain/audit/AuditDAO.java
+++ b/source/java/org/alfresco/repo/domain/audit/AuditDAO.java
@@ -98,4 +98,9 @@ public interface AuditDAO
void findAuditEntries(
AuditQueryCallback callback,
String applicationName, String user, Long from, Long to, int maxResults);
+
+ void findAuditEntries(
+ AuditQueryCallback callback,
+ String applicationName, String user, Long from, Long to, int maxResults,
+ String searchKey, String searchString);
}
\ 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 5dda720e64..e1b3ab5a78 100644
--- a/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java
@@ -37,6 +37,7 @@ import org.alfresco.repo.domain.contentdata.ContentDataDAO;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.ServiceRegistry;
+import org.alfresco.service.cmr.audit.AuditService.AuditQueryCallback;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
@@ -124,6 +125,13 @@ public class AuditDAOTest extends TestCase
}
public void testAuditEntry() throws Exception
+ {
+ doAuditEntryImpl(1000);
+ }
+ /**
+ * @return Returns the name of the application
+ */
+ private String doAuditEntryImpl(final int count) throws Exception
{
final File file = AbstractContentTransformerTest.loadQuickTestFile("pdf");
assertNotNull(file);
@@ -140,7 +148,6 @@ public class AuditDAOTest extends TestCase
};
final Long sessionId = txnHelper.doInTransaction(createAppCallback);
- final int count = 1000;
final String username = "alexi";
RetryingTransactionCallback createEntryCallback = new RetryingTransactionCallback()
{
@@ -161,5 +168,38 @@ public class AuditDAOTest extends TestCase
System.out.println(
"Time for " + count + " entry creations was " +
((double)(after - before)/(10E6)) + "ms");
+ // Done
+ return appName;
+ }
+
+ public void testAuditQuery() throws Exception
+ {
+ // Some entries
+ doAuditEntryImpl(1);
+
+ // Find everything, bug look for a specific key
+ final AuditQueryCallback callback = new AuditQueryCallback()
+ {
+ public boolean handleAuditEntry(
+ Long entryId,
+ String applicationName,
+ String user,
+ long time,
+ Map values)
+ {
+ System.out.println(values);
+ return true;
+ }
+ };
+
+ RetryingTransactionCallback findCallback = new RetryingTransactionCallback()
+ {
+ public Void execute() throws Throwable
+ {
+ auditDAO.findAuditEntries(callback, null, null, null, null, -1, "/a/b/c", null);
+ return null;
+ }
+ };
+ txnHelper.doInTransaction(findCallback);
}
}
diff --git a/source/java/org/alfresco/repo/domain/audit/AuditQueryParameters.java b/source/java/org/alfresco/repo/domain/audit/AuditQueryParameters.java
index 5b39af4913..30beb91b5b 100644
--- a/source/java/org/alfresco/repo/domain/audit/AuditQueryParameters.java
+++ b/source/java/org/alfresco/repo/domain/audit/AuditQueryParameters.java
@@ -41,6 +41,8 @@ public class AuditQueryParameters
private Pair auditUserCrcPair;
private Long auditFromTime;
private Long auditToTime;
+ private String searchKey;
+ private String searchValueString;
public AuditQueryParameters()
{
@@ -56,6 +58,8 @@ public class AuditQueryParameters
.append(", auditUserCrcPair=").append(auditUserCrcPair)
.append(", auditFromTime").append(new Date(auditFromTime))
.append(", auditToTime").append(new Date(auditToTime))
+ .append(", searchKey").append(searchKey)
+ .append(", searchValueString").append(searchValueString)
.append("]");
return sb.toString();
}
@@ -119,4 +123,24 @@ public class AuditQueryParameters
{
this.auditToTime = to;
}
+
+ public String getSearchKey()
+ {
+ return searchKey;
+ }
+
+ public void setSearchKey(String searchKey)
+ {
+ this.searchKey = searchKey;
+ }
+
+ public String getSearchValueString()
+ {
+ return searchValueString;
+ }
+
+ public void setSearchValueString(String searchValueString)
+ {
+ this.searchValueString = searchValueString;
+ }
}
diff --git a/source/java/org/alfresco/repo/domain/audit/ibatis/AuditDAOImpl.java b/source/java/org/alfresco/repo/domain/audit/ibatis/AuditDAOImpl.java
index ed00c30894..0775b15767 100644
--- a/source/java/org/alfresco/repo/domain/audit/ibatis/AuditDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/audit/ibatis/AuditDAOImpl.java
@@ -155,11 +155,8 @@ public class AuditDAOImpl extends AbstractAuditDAOImpl
@Override
protected void findAuditEntries(
final AuditQueryRowHandler rowHandler,
- String appName,
- String user,
- Long from,
- Long to,
- int maxResults)
+ String appName, String user, Long from, Long to, int maxResults,
+ String searchKey, String searchString)
{
AuditQueryParameters params = new AuditQueryParameters();
if (appName != null)
@@ -175,6 +172,8 @@ public class AuditDAOImpl extends AbstractAuditDAOImpl
}
params.setAuditFromTime(from);
params.setAuditToTime(to);
+ params.setSearchKey(searchKey);
+ params.setSearchValueString(searchString);
// RowHandlers in RowHandlers: See 'groupBy' issue https://issues.apache.org/jira/browse/IBATIS-503
RowHandler shreddedRowHandler = new RowHandler()