AccessAuditor implements InitializingBean, 

        BeforeDeleteNodePolicy, OnAddAspectPolicy, OnCreateNodePolicy, OnMoveNodePolicy,
        OnRemoveAspectPolicy, OnUpdatePropertiesPolicy,
        
        OnContentReadPolicy, OnContentUpdatePolicy,
        
        OnCreateVersionPolicy,
        
        OnCopyCompletePolicy,
        
        OnCheckOut, OnCheckIn, OnCancelCheckOut { @Override public void onCreateVersion(QName classRef, NodeRef nodeRef, Map<String, Serializable> versionProperties, PolicyScope nodeDetails) { if (auditEnabled()) { getNodeChange(nodeRef).onCreateVersion(classRef, nodeRef, versionProperties, nodeDetails); } }  void setProperties(Properties properties); void setPolicyComponent(PolicyComponent policyComponent); void setAuditComponent(AuditComponent auditComponent); void setTransactionService(TransactionService transactionService); void setNamespaceService(NamespaceService namespaceService); void setNodeInfoFactory(NodeInfoFactory nodeInfoFactory); void afterPropertiesSet(); @Override void beforeDeleteNode(NodeRef nodeRef); @Override void onCreateNode(ChildAssociationRef childAssocRef); @Override void onMoveNode(ChildAssociationRef fromChildAssocRef,
            ChildAssociationRef toChildAssocRef); @Override void onUpdateProperties(NodeRef nodeRef,
            Map<QName, Serializable> fromProperties, Map<QName, Serializable> toProperties); @Override void onRemoveAspect(NodeRef nodeRef, QName aspect); @Override void onAddAspect(NodeRef nodeRef, QName aspect); @Override void onContentUpdate(NodeRef nodeRef, boolean newContent); @Override void onContentRead(NodeRef nodeRef); @Override void onCreateVersion(QName classRef, NodeRef nodeRef,
            Map<String, Serializable> versionProperties, PolicyScope nodeDetails); void onCopyComplete(QName classRef, NodeRef sourceNodeRef, NodeRef targetNodeRef,
            boolean copyToNewNode, Map<NodeRef, NodeRef> copyMap); void onCheckOut(NodeRef workingCopy); void onCheckIn(NodeRef nodeRef); void onCancelCheckOut(NodeRef nodeRef);  }
@Test public final void testOnCreateVersion() throws Exception { Map<String, Serializable> versionProperties = getVersionProperties(); serviceRegistry.getVersionService().createVersion(content1, versionProperties); txn.commit(); txn = null; assertEquals(1, auditMapList.size()); Map<String, Serializable> auditMap = auditMapList.get(0); assertEquals("CREATE VERSION", auditMap.get("action")); assertContains("updateNodeProperties", auditMap.get("sub-actions")); assertContains("createVersion", auditMap.get("sub-actions")); assertEquals("/cm:homeFolder/cm:folder1/cm:content1", auditMap.get("path")); assertTrue("cm:versionable should be a value with in the set", ((Set<?>)auditMap.get("aspects/add")).contains(ContentModel.ASPECT_VERSIONABLE)); assertTrue("Individual versionable aspect should exist", auditMap.containsKey("aspects/add/cm:versionable")); assertEquals("cm:content", auditMap.get("type")); }