AuditComponent implementation and fallout

- alf_prop_string_value now includes a CRC column and handles Oracle empty string issues
 - All property values are/must now be Serializable for auditing
 - Pushing data into audit is working


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15915 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-08-26 06:01:52 +00:00
parent 1bba527f56
commit ef67ac777a
29 changed files with 767 additions and 118 deletions

View File

@@ -179,6 +179,25 @@ public class AuditApplication
}
}
/**
* Compile a path or part of a path into a single string which always starts with the
* {@link #AUDIT_PATH_SEPARATOR}. This can be a relative path so need not always start with
* the application root key.
*
* @param pathElements the elements of the path e.g. <code>"a", "b", "c"</code>.
* @return Returns the compiled path e.g <code>"/a/b/c"</code>.
*/
public String buildPath(String ... pathComponents)
{
StringBuilder sb = new StringBuilder(pathComponents.length * 10);
for (String pathComponent : pathComponents)
{
sb.append(AUDIT_PATH_SEPARATOR).append(pathComponent);
}
// Done
return sb.toString();
}
/**
* Get all data extractors applicable to a given path and scope.
*
@@ -325,6 +344,11 @@ public class AuditApplication
}
// All the extractors apply to the current path
dataExtractors.put(currentPath, upperExtractorsByPath);
// // Data extractors only apply directly to data in which they appear.
// // TODO: Examine this assumption. If it is not true, i.e. data extractors apply to
// // data anywhere down the hierarchy, then the followin line of code should be
// // removed and the use-cases tested appropriately.
// upperExtractorsByPath.clear();
// Get the data generators declared for this key
for (GenerateValue element : auditPath.getGenerateValue())