@Override public void auditEvent(AuditEvent event) { getListener().auditEvent(event); } }
public final AuditListener extract(AuditListener listener) { while (listener instanceof AuditListener) { listener = ((AuditListenerProxy) listener).getListener(); } return listener; } }
private static void fire(AuditListener[] listeners, AuditEvent event) { if (listeners != null) { for (AuditListener listener : listeners) { listener.auditEvent(event); } } }
@Test public void testRemoveAuditProxy() { AuditSupport auditSupport = new AuditSupport(this); AuditListener auditListener = new AuditListenerTestHelper(); auditSupport.addAuditListener(auditListener); auditSupport.removeAuditListener(auditListener); }
@Test public void addAuditProxyNullListener() throws Exception { AuditSupport auditSupport = new AuditSupport(this); Field mapField = AuditSupport.class.getDeclaredField("map"); mapField.setAccessible(true); AuditListenerMap map = (AuditListenerMap)mapField.get(auditSupport); AuditListener auditListener = new AuditListenerProxy("test", null); auditSupport.addAuditListener(auditListener); Assert.assertNull(map.get("test")); }
public void addAuditListener(AuditListener listener) { if (listener == null) return; if (listener instanceof AuditListenerProxy) { AuditListenerProxy proxy = (AuditListenerProxy) listener; addAuditListener(proxy.getPropertyName(), proxy.getListener()); } else { this.map.add(null, listener); } }
@Test public void addAuditProxyHBase() throws Exception { AuditSupport auditSupport = new AuditSupport(this); Field mapField = AuditSupport.class.getDeclaredField("map"); mapField.setAccessible(true); AuditListenerMap map = (AuditListenerMap)mapField.get(auditSupport); AuditListener auditListener = new AuditListenerTestHelper(); auditSupport.addAuditListener(auditListener); Assert.assertNull(map.get("test")); }
@Test public void testFireAudit() throws Exception { AuditSupport auditSupport = new AuditSupport(this); Field mapField = AuditSupport.class.getDeclaredField("map"); mapField.setAccessible(true); AuditListenerMap map = (AuditListenerMap)mapField.get(auditSupport); AuditListener auditListener1 = new AuditListenerTestHelper(); AuditListener auditListener2 = new AuditListenerTestHelper(); AuditListener[] listeners = {auditListener1, auditListener2}; map.set("testServiceName", listeners); map.set(null, listeners); List<GenericAuditEntity> auditEntities = new ArrayList<>(); GenericAuditEntity genericAuditEntity = new GenericAuditEntity(); auditEntities.add(genericAuditEntity); auditSupport.fireAudit("testServiceName", auditEntities); } }
public HBaseStorageAudit() { auditSupport.addAuditListener(this); }
public void fireAudit(String serviceName, List<GenericAuditEntity> auditEntities) { if (null != serviceName && null != auditEntities && 0 != auditEntities.size()) { fireAudit(new AuditEvent(this.source, serviceName, auditEntities)); } }
public void removeAuditListener(AuditListener listener) { if (listener == null) return; if (listener instanceof AuditListenerProxy) { AuditListenerProxy proxy = (AuditListenerProxy) listener; removeAuditListener(proxy.getPropertyName(), proxy.getListener()); } else { this.map.remove(null, listener); } }
@Test public void addAuditLFieldListenerNull() throws Exception { AuditSupport auditSupport = new AuditSupport(this); Field mapField = AuditSupport.class.getDeclaredField("map"); mapField.setAccessible(true); AuditListenerMap map = (AuditListenerMap)mapField.get(auditSupport); AuditListener auditListener = null; auditSupport.addAuditListener(auditListener); Assert.assertTrue(map.getEntries() == Collections.<Map.Entry<String, AuditListener[]>>emptySet()); }
@Test public void testRemoveNull() { AuditSupport auditSupport = new AuditSupport(this); AuditListener auditListener = null; auditSupport.removeAuditListener(auditListener); }
@Override protected AuditListener newProxy(String name, AuditListener listener) { return new AuditListenerProxy(name, listener); }
public void fireAudit(AuditEvent event) { if (null != event.getAuditEntities() && 0 != event.getAuditEntities().size()) { AuditListener[] common = this.map.get(null); AuditListener[] named = (null != event.getServiceName()) ? this.map.get(event.getServiceName()) : null; fire(common, event); fire(named, event); } }
public HBaseStorageAudit() { auditSupport.addAuditListener(this); }
/** * Method to be invoked for firing audit event. * @param operation: HBase operation. Values like CREATE/UPDATE/DELETE. * @param entities: List of entities used in HBase operation. * @param encodedRowKeys: List of encodededRowKeys returned from successful HBase operation. To be passed only from deletebyID method. * @param entityDefinition: EntityDefinition object used in the HBaseOperation. */ public void auditOperation(String operation, List<? extends TaggedLogAPIEntity> entities, List<String> encodedRowKeys, EntityDefinition entityDefinition) { if (isAuditingRequired(entityDefinition.getService())) { List<GenericAuditEntity> auditEntities = buildAuditEntities(operation, entities, encodedRowKeys, entityDefinition); if (null != auditEntities && 0 != auditEntities.size()) auditSupport.fireAudit(entityDefinition.getService(), auditEntities); } }
public AuditListenerTestHelper() { auditSupport.addAuditListener(this); }
/** * Method to be invoked for firing audit event. * * @param operation HBase operation. Values like CREATE/UPDATE/DELETE. * @param entities List of entities used in HBase operation. * @param encodedRowKeys List of encodededRowKeys returned from successful HBase operation. To be passed only from deletebyID method. * @param entityDefinition EntityDefinition object used in the HBaseOperation. */ public void auditOperation(String operation, List<? extends TaggedLogAPIEntity> entities, List<String> encodedRowKeys, EntityDefinition entityDefinition) { if (isAuditingRequired(entityDefinition.getService())) { List<GenericAuditEntity> auditEntities = buildAuditEntities(operation, entities, encodedRowKeys, entityDefinition); if (null != auditEntities && 0 != auditEntities.size()) { auditSupport.fireAudit(entityDefinition.getService(), auditEntities); } } }