Author: mattsicker
Date: Mon May 26 03:58:19 2014
New Revision: 1597508
URL: http://svn.apache.org/r1597508
Log:
Add PluginAttribute visitor implementation.
- Logic is refactored from PluginBuilder.
Added:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java
(with props)
Added:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java
URL:
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java?rev=1597508&view=auto
==============================================================================
---
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java
(added)
+++
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java
Mon May 26 03:58:19 2014
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.logging.log4j.core.config.plugins.visitors;
+
+import java.util.Map;
+
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.Node;
+import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
+
+/**
+ * PluginVisitor implementation for {@link
org.apache.logging.log4j.core.config.plugins.PluginAttribute}.
+ */
+public class PluginAttributeVisitor extends
AbstractPluginVisitor<PluginAttribute> {
+ public PluginAttributeVisitor() {
+ super(PluginAttribute.class);
+ }
+
+ @Override
+ public Object visit(final Configuration configuration, final Node node,
final LogEvent event) {
+ final String name = this.annotation.value();
+ final Map<String, String> attributes = node.getAttributes();
+ final String rawValue = removeAttributeValue(attributes, name,
this.aliases);
+ final String replacedValue = this.substitutor.replace(event, rawValue);
+ final String rawDefaultValue = this.annotation.defaultValue();
+ final String replacedDefaultValue = this.substitutor.replace(event,
rawDefaultValue);
+ return convert(replacedValue, replacedDefaultValue);
+ }
+}
Propchange:
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginAttributeVisitor.java
------------------------------------------------------------------------------
svn:eol-style = native