@Override public Component build() { final Component component = new Component(type, name, value); component.getAttributes().putAll(attributes); component.getComponents().addAll(components); return component; }
@SuppressWarnings("unchecked") public DefaultConfigurationBuilder() { this((Class<T>) BuiltConfiguration.class); root.addAttribute("name", "Built"); }
private void writeXmlSection(final XMLStreamWriter xmlWriter, final Component component) throws XMLStreamException { if (!component.getAttributes().isEmpty() || !component.getComponents().isEmpty() || component.getValue() != null) { writeXmlComponent(xmlWriter, component, 1); } }
public DefaultConfigurationBuilder(final Class<T> clazz) { if (clazz == null) { throw new IllegalArgumentException("A Configuration class must be provided"); } this.clazz = clazz; final List<Component> components = root.getComponents(); properties = new Component("Properties"); components.add(properties); scripts = new Component("Scripts"); components.add(scripts); customLevels = new Component("CustomLevels"); components.add(customLevels); filters = new Component("Filters"); components.add(filters); appenders = new Component("Appenders"); components.add(appenders); loggers = new Component("Loggers"); components.add(loggers); }
protected Node convertToNode(final Node parent, final Component component) { final String name = component.getPluginType(); final PluginType<?> pluginType = pluginManager.getPluginType(name); final Node node = new Node(parent, name, pluginType); node.getAttributes().putAll(component.getAttributes()); node.setValue(component.getValue()); final List<Node> children = node.getChildren(); for (final Component child : component.getComponents()) { children.add(convertToNode(node, child)); } return node; } }
private void writeXmlComponent(final XMLStreamWriter xmlWriter, final Component component, final int nesting) throws XMLStreamException { if (!component.getComponents().isEmpty() || component.getValue() != null) { writeXmlIndent(xmlWriter, nesting); xmlWriter.writeStartElement(component.getPluginType()); writeXmlAttributes(xmlWriter, component); if (!component.getComponents().isEmpty()) { xmlWriter.writeCharacters(EOL); } for (final Component subComponent : component.getComponents()) { writeXmlComponent(xmlWriter, subComponent, nesting + 1); } if (component.getValue() != null) { xmlWriter.writeCharacters(component.getValue()); } if (!component.getComponents().isEmpty()) { writeXmlIndent(xmlWriter, nesting); } xmlWriter.writeEndElement(); } else { writeXmlIndent(xmlWriter, nesting); xmlWriter.writeEmptyElement(component.getPluginType()); writeXmlAttributes(xmlWriter, component); } xmlWriter.writeCharacters(EOL); }
@Override public ConfigurationBuilder<T> add(final RootLoggerComponentBuilder builder) { for (final Component c : loggers.getComponents()) { if (c.getPluginType().equals(LoggerConfig.ROOT)) { throw new ConfigurationException("Root Logger was previously defined"); } } return add(loggers, builder); }
@Override public ConfigurationBuilder<T> addRootProperty(final String key, final String value) { root.getAttributes().put(key, value); return this; }
protected ConfigurationBuilder<T> add(final Component parent, final ComponentBuilder<?> builder) { parent.getComponents().add(builder.build()); return this; }
@Override public ConfigurationBuilder<T> addProperty(final String key, final String value) { properties.addComponent(newComponent(key, "Property", value).build()); return this; }
public BuiltConfiguration(final LoggerContext loggerContext, final ConfigurationSource source, final Component rootComponent) { super(loggerContext, source); statusConfig = new StatusConfiguration().withVerboseClasses(VERBOSE_CLASSES).withStatus(getDefaultStatus()); for (final Component component : rootComponent.getComponents()) { switch (component.getPluginType()) { case "Scripts": { scriptsComponent = component;
private void writeXmlAttributes(final XMLStreamWriter xmlWriter, final Component component) throws XMLStreamException { for (final Map.Entry<String, String> attribute : component.getAttributes().entrySet()) { xmlWriter.writeAttribute(attribute.getKey(), attribute.getValue()); } }
@Override public void setup() { final List<Node> children = rootNode.getChildren(); if (propertiesComponent.getComponents().size() > 0) { children.add(convertToNode(rootNode, propertiesComponent)); } if (scriptsComponent.getComponents().size() > 0) { children.add(convertToNode(rootNode, scriptsComponent)); } if (customLevelsComponent.getComponents().size() > 0) { children.add(convertToNode(rootNode, customLevelsComponent)); } children.add(convertToNode(rootNode, loggersComponent)); children.add(convertToNode(rootNode, appendersComponent)); if (filtersComponent.getComponents().size() > 0) { if (filtersComponent.getComponents().size() == 1) { children.add(convertToNode(rootNode, filtersComponent.getComponents().get(0))); } else { children.add(convertToNode(rootNode, filtersComponent)); } } rootComponent = null; }
configuration = constructor.newInstance(loggerContext, source, root); configuration.setMonitorInterval(monitorInterval); configuration.getRootNode().getAttributes().putAll(root.getAttributes()); if (name != null) { configuration.setName(name);
writeXmlSection(xmlWriter, scripts); writeXmlSection(xmlWriter, customLevels); if (filters.getComponents().size() == 1) { writeXmlComponent(xmlWriter, filters.getComponents().get(0), 1); } else if (filters.getComponents().size() > 1) { writeXmlSection(xmlWriter, filters);