void addHandler(AuditLogHandler handler){ assert config.isCore() : "Not available for non-core configuration"; if (removedHandlers != null && removedHandlers.contains(handler.getName())) { throw ControllerLogger.ROOT_LOGGER.attemptToBothRemoveAndAddHandlerUpdateInstead(); } if (addedHandlers == null){ addedHandlers = new HashMap<String, AuditLogHandler>(); } addedHandlers.put(handler.getName(), handler); //Update the 'live' handlers with the addition config.putConfiguredHandler(handler); handler.setFormatter(config.getFormatter(handler.getFormatterName())); }
void writeLogItem(AuditLogItem item) { try { initialize(); String formattedItem = item.format(formatter); writeLogItem(formattedItem); failureCount = 0; } catch (Throwable t) { failureCount++; ControllerLogger.MGMT_OP_LOGGER.logHandlerWriteFailed(t, name); if (isDisabledDueToFailures()) { ControllerLogger.MGMT_OP_LOGGER.disablingLogHandlerDueToFailures(failureCount, name); } } }
public void recycleHandler(String name) { AuditLogHandler handler = configuredHandlers.get(name); handler.recycle(); }
void writeLogItem(AuditLogItem item) { FailureCountHandler fch = getFailureCountHandler(); try { initialize(); String formattedItem = item.format(formatter); writeLogItem(formattedItem); fch.success(); } catch (Throwable t) { fch.failure(t); } }
AuditLogHandler handler = config.removeConfiguredHandler(name); if (handler != null){ handler.stop(); AuditLogHandler existing = config.removeConfiguredHandler(handler.getName()); if (existing != null){ existing.stop(); for (PathAddress referenceAddress : existing.getReferences()){ if (removedReferences != null && !removedReferences.contains(referenceAddress)){ handler.addReference(referenceAddress); handler.setFormatter(config.getFormatter(handler.getFormatterName())); final AuditLogHandler handler = config.getConfiguredHandler(name); if (handler != null){ handler.removeReference(referenceAddress);
/** protected by config's audit lock */ private void writeLogItem(AuditLogItem item) throws IOException{ Set<String> formatterNames = new HashSet<String>(); try { for (AuditLogHandler handler : config.getHandlersForLogging()) { formatterNames.add(handler.getFormatterName()); handler.writeLogItem(item); } } finally { for (String formatterName : formatterNames) { config.getFormatter(formatterName).clear(); } } }
@Override public void updateHandler(AuditLogHandler handler) { config.lock(); try { AuditLogHandler existing = config.getConfiguredHandler(handler.getName()); if (handler.isDifferent(existing)){ if (handlerUpdateTask == null){ handlerUpdateTask = new HandlerUpdateTask(); } handlerUpdateTask.replaceHandler(handler); runDisabledFastPath.set(false); } } finally { config.unlock(); } }
void rollbackChanges(){ if (addedReferences != null && addedReferences.size() > 0){ for (PathAddress address : addedReferences) { final String name = org.jboss.as.controller.operations.common.Util.getNameFromAddress(address); config.removeHandlerReference(name); AuditLogHandler handler = config.getConfiguredHandler(name); if (handler != null){ handler.removeReference(address); } } } if (addedHandlers != null && addedHandlers.size() > 0){ for (AuditLogHandler handler : addedHandlers.values()){ config.removeConfiguredHandler(handler.getName()); } } }
void putConfiguredHandler(AuditLogHandler handler) { configuredHandlers.put(handler.getName(), handler); }
List<AuditLogHandler> getHandlersForLogging(){ List<AuditLogHandler> list = new ArrayList<>(); for (Map.Entry<String, AuditLogHandler> handlerEntry : sharedConfiguration.getConfiguredHandlers().entrySet()) { if (!handlerEntry.getValue().isDisabledDueToFailures() && hasHandlerReference(handlerEntry.getKey())) { list.add(handlerEntry.getValue()); } } return list; }
@Override public int getHandlerFailureCount(String name) { config.lock(); try { AuditLogHandler handler = config.getConfiguredHandler(name); return handler.getFailureCount(); } finally { config.unlock(); } }
void addHandlerReference(PathAddress referenceAddress){ if (removedReferences != null && removedReferences.contains(referenceAddress)){ throw ControllerLogger.ROOT_LOGGER.attemptToBothRemoveAndAddHandlerReferenceFromCompositeOperation(); } if (addedReferences == null){ addedReferences = new HashSet<PathAddress>(); } addedReferences.add(referenceAddress); //Update the 'live' handlers and references with the addition config.addHandlerReference(org.jboss.as.controller.operations.common.Util.getNameFromAddress(referenceAddress)); final String name = org.jboss.as.controller.operations.common.Util.getNameFromAddress(referenceAddress); final AuditLogHandler handler = config.getConfiguredHandler(name); if (handler == null){ throw ControllerLogger.ROOT_LOGGER.noHandlerCalled(name); } handler.addReference(referenceAddress); }
void removeHandler(String name) { assert config.isCore() : "Not available for non-core configuration"; if (addedHandlers != null && addedHandlers.containsKey(name)){ throw ControllerLogger.ROOT_LOGGER.attemptToBothAddAndRemoveAndHandlerFromCompositeOperation(); } if (replacedHandlers != null && replacedHandlers.containsKey(name)){ throw ControllerLogger.ROOT_LOGGER.attemptToBothUpdateAndRemoveHandlerFromCompositeOperation(); } final AuditLogHandler handler = config.getConfiguredHandler(name); if (handler != null){ Set<PathAddress> references = handler.getReferences(); if (references.size() > 0){ if (!references.containsAll(removedReferences)){ Set<PathAddress> activeReferences = new HashSet<PathAddress>(references); activeReferences.removeAll(removedReferences); throw ControllerLogger.ROOT_LOGGER.handlerIsReferencedBy(removedReferences); } } } config.removeConfiguredHandler(name); if (removedHandlers == null){ removedHandlers = new HashSet<String>(); } removedHandlers.add(name); }
AuditLogHandler handler = config.removeConfiguredHandler(name); if (handler != null){ handler.stop(); AuditLogHandler existing = config.removeConfiguredHandler(handler.getName()); if (existing != null){ existing.stop(); for (PathAddress referenceAddress : existing.getReferences()){ if (removedReferences != null && !removedReferences.contains(referenceAddress)){ handler.addReference(referenceAddress); handler.setFormatter(config.getFormatter(handler.getFormatterName())); final AuditLogHandler handler = config.getConfiguredHandler(name); if (handler != null){ handler.removeReference(referenceAddress);
void writeLogItem(AuditLogItem item) { FailureCountHandler fch = getFailureCountHandler(); try { initialize(); String formattedItem = item.format(formatter); writeLogItem(formattedItem); fch.success(); } catch (Throwable t) { fch.failure(t); } }
/** protected by config's audit lock */ private void writeLogItem(AuditLogItem item) throws IOException{ Set<String> formatterNames = new HashSet<String>(); try { for (AuditLogHandler handler : config.getHandlersForLogging()) { formatterNames.add(handler.getFormatterName()); handler.writeLogItem(item); } } finally { for (String formatterName : formatterNames) { config.getFormatter(formatterName).clear(); } } }
@Override public void updateHandler(AuditLogHandler handler) { config.lock(); try { AuditLogHandler existing = config.getConfiguredHandler(handler.getName()); if (handler.isDifferent(existing)){ if (handlerUpdateTask == null){ handlerUpdateTask = new HandlerUpdateTask(); } handlerUpdateTask.replaceHandler(handler); runDisabledFastPath.set(false); } } finally { config.unlock(); } }
void rollbackChanges(){ if (addedReferences != null && addedReferences.size() > 0){ for (PathAddress address : addedReferences) { final String name = org.jboss.as.controller.operations.common.Util.getNameFromAddress(address); config.removeHandlerReference(name); AuditLogHandler handler = config.getConfiguredHandler(name); if (handler != null){ handler.removeReference(address); } } } if (addedHandlers != null && addedHandlers.size() > 0){ for (AuditLogHandler handler : addedHandlers.values()){ config.removeConfiguredHandler(handler.getName()); } } }
void putConfiguredHandler(AuditLogHandler handler) { configuredHandlers.put(handler.getName(), handler); }
@Override public boolean getHandlerDisabledDueToFailure(String name) { config.lock(); try { AuditLogHandler handler = config.getConfiguredHandler(name); return handler.isDisabledDueToFailures(); } finally { config.unlock(); } }