Author: mattsicker
Date: Mon May 26 04:02:12 2014
New Revision: 1597510

URL: http://svn.apache.org/r1597510
Log:
Update how default values are handled along with @PluginAttribute.

  - By using a visitor pattern combined with a registry of 
  annotations to visitor classes (which wouldn't be necessary if 
  annotations supported methods), this can help simplify the huge 
  if/else-if tree in PluginBuilder. This will also make it easier to 
  support both factory methods and builder classes concurrently 
  during the transition.
  - @PluginDefault has been deleted and migrated to be a part of 
  @PluginAttribute instead.
  - PluginBuilder has been simplified to use the PluginVisitor code.
  - Note that one key difference is that default values can be 
  interpolated by the StrSubstitutor as well. This might come in handy.

Removed:
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/PluginDefault.java
Modified:
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LoggerFields.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/SyslogLayout.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java
 Mon May 26 04:02:12 2014
@@ -35,7 +35,6 @@ import org.apache.logging.log4j.core.con
 import org.apache.logging.log4j.core.config.plugins.PluginAliases;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.impl.Log4jLogEvent;
@@ -181,13 +180,13 @@ public final class AsyncAppender extends
     @PluginFactory
     public static AsyncAppender createAppender(@PluginElement("AppenderRef") 
final AppenderRef[] appenderRefs,
             @PluginAttribute("errorRef") @PluginAliases("error-ref") final 
String errorRef,
-            @PluginAttribute("blocking") @PluginDefault("true") final boolean 
blocking,
-            @PluginAttribute("bufferSize") @PluginDefault(DEFAULT_QUEUE_SIZE) 
final int size,
+            @PluginAttribute(value = "blocking", defaultValue = "true") final 
boolean blocking,
+            @PluginAttribute(value = "bufferSize", defaultValue = 
DEFAULT_QUEUE_SIZE) final int size,
             @PluginAttribute("name") final String name,
-            @PluginAttribute("includeLocation") @PluginDefault("false") final 
boolean includeLocation,
-            @PluginElement("Filter") final Filter filter, 
+            @PluginAttribute(value = "includeLocation", defaultValue = 
"false") final boolean includeLocation,
+            @PluginElement("Filter") final Filter filter,
             @PluginConfiguration final Configuration config,
-            @PluginAttribute("ignoreExceptions") @PluginDefault("true") final 
boolean ignoreExceptions) {
+            @PluginAttribute(value = "ignoreExceptions", defaultValue = 
"true") final boolean ignoreExceptions) {
         if (name == null) {
             LOGGER.error("No name provided for AsyncAppender");
             return null;
@@ -264,7 +263,7 @@ public final class AsyncAppender extends
                 }
             }
             LOGGER.trace("AsyncAppender.AsyncThread stopped. Queue has {} 
events remaining. " +
-                       "Processed {} and ignored {} events since shutdown 
started.", 
+                       "Processed {} and ignored {} events since shutdown 
started.",
                        queue.size(), count, ignored);
         }
 
@@ -273,7 +272,7 @@ public final class AsyncAppender extends
          * all registered {@code AppenderControl} objects, and returns {@code 
true}
          * if at least one appender call was successful, {@code false} 
otherwise.
          * Any exceptions are silently ignored.
-         * 
+         *
          * @param event the event to forward to the registered appenders
          * @return {@code true} if at least one appender call succeeded, 
{@code false} otherwise
          */
@@ -310,7 +309,7 @@ public final class AsyncAppender extends
         }
         return result;
     }
-    
+
     /**
      * Returns {@code true} if this AsyncAppender will take a snapshot of the 
stack with
      * every log event to determine the class and method where the logging call
@@ -320,7 +319,7 @@ public final class AsyncAppender extends
     public boolean isIncludeLocation() {
         return includeLocation;
     }
-    
+
     /**
      * Returns {@code true} if this AsyncAppender will block when the queue is 
full,
      * or {@code false} if events are dropped when the queue is full.
@@ -329,7 +328,7 @@ public final class AsyncAppender extends
     public boolean isBlocking() {
         return blocking;
     }
-    
+
     /**
      * Returns the name of the appender that any errors are logged to or 
{@code null}.
      * @return the name of the appender that any errors are logged to or 
{@code null}
@@ -337,11 +336,11 @@ public final class AsyncAppender extends
     public String getErrorRef() {
         return errorRef;
     }
-    
+
     public int getQueueCapacity() {
         return queueSize;
     }
-    
+
     public int getQueueRemainingCapacity() {
         return queue.remainingCapacity();
     }

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
 Mon May 26 04:02:12 2014
@@ -82,10 +82,10 @@ public final class ConsoleAppender exten
     public static ConsoleAppender createAppender(
             @PluginElement("Layout") Layout<? extends Serializable> layout,
             @PluginElement("Filters") final Filter filter,
-            @PluginAttribute("target") final String targetStr,
+            @PluginAttribute(value = "target", defaultValue = "SYSTEM_OUT") 
final String targetStr,
             @PluginAttribute("name") final String name,
-            @PluginAttribute("follow") final String follow,
-            @PluginAttribute("ignoreExceptions") final String ignore) {
+            @PluginAttribute(value = "follow", defaultValue = "false") final 
String follow,
+            @PluginAttribute(value = "ignoreExceptions", defaultValue = 
"true") final String ignore) {
         if (name == null) {
             LOGGER.error("No name provided for ConsoleAppender");
             return null;

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
 Mon May 26 04:02:12 2014
@@ -25,7 +25,6 @@ import org.apache.logging.log4j.core.con
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.layout.LoggerFields;
@@ -94,22 +93,22 @@ public class SyslogAppender extends Sock
     public static SyslogAppender createAppender(
             // @formatter:off
             @PluginAttribute("host") final String host,
-            @PluginAttribute("port") @PluginDefault("0") final int port,
+            @PluginAttribute(value = "port", defaultValue = "0") final int 
port,
             @PluginAttribute("protocol") final String protocolStr,
             @PluginElement("SSL") final SslConfiguration sslConfig,
-            @PluginAttribute("reconnectionDelay") @PluginDefault("0") final 
int reconnectionDelay,
-            @PluginAttribute("immediateFail") @PluginDefault("true") final 
boolean immediateFail,
+            @PluginAttribute(value = "reconnectionDelay", defaultValue = "0") 
final int reconnectionDelay,
+            @PluginAttribute(value = "immediateFail", defaultValue = "true") 
final boolean immediateFail,
             @PluginAttribute("name") final String name,
-            @PluginAttribute("immediateFlush") @PluginDefault("true") final 
boolean immediateFlush,
-            @PluginAttribute("ignoreExceptions") @PluginDefault("true") final 
boolean ignoreExceptions,
-            @PluginAttribute("facility") @PluginDefault("LOCAL0") final 
Facility facility,
+            @PluginAttribute(value = "immediateFlush", defaultValue = "true") 
final boolean immediateFlush,
+            @PluginAttribute(value = "ignoreExceptions", defaultValue = 
"true") final boolean ignoreExceptions,
+            @PluginAttribute(value = "facility", defaultValue = "LOCAL0") 
final Facility facility,
             @PluginAttribute("id") final String id,
-            @PluginAttribute("enterpriseNumber") 
@PluginDefault(Rfc5424Layout.DEFAULT_ENTERPRISE_NUMBER) final int 
enterpriseNumber,
-            @PluginAttribute("includeMdc") @PluginDefault("true") final 
boolean includeMdc,
+            @PluginAttribute(value = "enterpriseNumber", defaultValue = 
Rfc5424Layout.DEFAULT_ENTERPRISE_NUMBER) final int enterpriseNumber,
+            @PluginAttribute(value = "includeMdc", defaultValue = "true") 
final boolean includeMdc,
             @PluginAttribute("mdcId") final String mdcId,
             @PluginAttribute("mdcPrefix") final String mdcPrefix,
             @PluginAttribute("eventPrefix") final String eventPrefix,
-            @PluginAttribute("newLine") @PluginDefault("false") final boolean 
newLine,
+            @PluginAttribute(value = "newLine", defaultValue = "false") final 
boolean newLine,
             @PluginAttribute("newLineEscape") final String escapeNL,
             @PluginAttribute("appName") final String appName,
             @PluginAttribute("messageId") final String msgId,
@@ -119,10 +118,10 @@ public class SyslogAppender extends Sock
             @PluginAttribute("format") final String format,
             @PluginElement("Filters") final Filter filter,
             @PluginConfiguration final Configuration config,
-            @PluginAttribute("charset") @PluginDefault("UTF-8") final Charset 
charsetName,
+            @PluginAttribute(value = "charset", defaultValue = "UTF-8") final 
Charset charsetName,
             @PluginAttribute("exceptionPattern") final String exceptionPattern,
             @PluginElement("LoggerFields") final LoggerFields[] loggerFields,
-            @PluginAttribute("advertise") @PluginDefault("false") final 
boolean advertise) {
+            @PluginAttribute(value = "advertise", defaultValue = "false") 
final boolean advertise) {
         // @formatter:on
 
         // TODO: add Protocol to TypeConverters

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/PluginBuilder.java
 Mon May 26 04:02:12 2014
@@ -33,13 +33,13 @@ import org.apache.logging.log4j.core.Log
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.Node;
 import org.apache.logging.log4j.core.config.plugins.PluginAliases;
-import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginNode;
 import org.apache.logging.log4j.core.config.plugins.PluginValue;
 import org.apache.logging.log4j.core.config.plugins.SensitivePluginAttribute;
+import org.apache.logging.log4j.core.config.plugins.visitors.PluginVisitor;
+import org.apache.logging.log4j.core.config.plugins.visitors.PluginVisitors;
 import org.apache.logging.log4j.core.util.Assert;
 import org.apache.logging.log4j.core.util.NameUtil;
 import org.apache.logging.log4j.status.StatusLogger;
@@ -164,11 +164,20 @@ public class PluginBuilder<T> {
         final Object[] args = new Object[annotations.length];
         for (int i = 0; i < annotations.length; i++) {
             final String[] aliases = extractPluginAliases(annotations[i]);
-            final String defaultValue = extractPluginDefault(annotations[i]);
             for (Annotation a : annotations[i]) {
-                if (a instanceof PluginAliases || a instanceof PluginDefault) {
+                if (a instanceof PluginAliases) {
                     continue; // already processed
                 }
+                // TODO: migrate the rest of this to PluginVisitor classes
+                final PluginVisitor<? extends Annotation> helper = 
PluginVisitors.findVisitor(a.annotationType());
+                if (helper != null) {
+                    args[i] = helper.setAliases(aliases)
+                        .setAnnotation(a)
+                        .setConversionType(types[i])
+                        .setStrSubstitutor(configuration.getStrSubstitutor())
+                        .visit(configuration, node, event);
+                    continue;
+                }
                 sb.append(sb.length() == 0 ? "with params(" : ", ");
                 if (a instanceof PluginNode) {
                     if (types[i].isInstance(node)) {
@@ -195,19 +204,13 @@ public class PluginBuilder<T> {
                     final String value = 
configuration.getStrSubstitutor().replace(event, v);
                     args[i] = value;
                     sb.append(name).append("=\"").append(value).append('"');
-                } else if (a instanceof PluginAttribute) {
-                    final PluginAttribute attribute = (PluginAttribute) a;
-                    final String name = attribute.value();
-                    final String value = getReplacedAttributeValue(name, 
aliases);
-                    args[i] = TypeConverters.convert(value, types[i], 
defaultValue);
-                    sb.append(name).append("=\"").append(value).append('"');
                 } else if (a instanceof SensitivePluginAttribute) {
                     // LOG4J2-605
                     // we shouldn't be displaying passwords
                     final SensitivePluginAttribute attribute = 
(SensitivePluginAttribute) a;
                     final String name = attribute.value();
                     final String value = getReplacedAttributeValue(name, 
aliases);
-                    args[i] = TypeConverters.convert(value, types[i], 
defaultValue);
+                    args[i] = value; // TODO: merge this with @PluginAttribute
                     sb.append(name).append("=\"").append(NameUtil.md5(value + 
PluginBuilder.class.getName())).append('"');
                 } else if (a instanceof PluginElement) {
                     final PluginElement element = (PluginElement) a;
@@ -284,15 +287,6 @@ public class PluginBuilder<T> {
         return aliases;
     }
 
-    private static String extractPluginDefault(final Annotation... 
annotations) {
-        for (final Annotation annotation : annotations) {
-            if (annotation instanceof PluginDefault) {
-                return ((PluginDefault) annotation).value();
-            }
-        }
-        return null;
-    }
-
     private String getReplacedAttributeValue(final String name, final 
String... aliases) {
         return configuration.getStrSubstitutor().replace(event, 
getAttrValue(name, aliases));
     }
@@ -301,15 +295,14 @@ public class PluginBuilder<T> {
         final Map<String, String> attrs = node.getAttributes();
         for (final Map.Entry<String, String> entry : attrs.entrySet()) {
             final String key = entry.getKey();
+            final String attr = entry.getValue();
             if (key.equalsIgnoreCase(name)) {
-                final String attr = entry.getValue();
                 attrs.remove(key);
                 return attr;
             }
             if (aliases != null) {
                 for (final String alias : aliases) {
                     if (key.equalsIgnoreCase(alias)) {
-                        final String attr = entry.getValue();
                         attrs.remove(key);
                         return attr;
                     }

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java
 Mon May 26 04:02:12 2014
@@ -32,7 +32,6 @@ import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.util.Charsets;
 import org.apache.logging.log4j.core.util.Constants;
@@ -323,12 +322,12 @@ public final class HtmlLayout extends Ab
      */
     @PluginFactory
     public static HtmlLayout createLayout(
-            @PluginAttribute("locationInfo") @PluginDefault("false") final 
boolean locationInfo,
-            @PluginAttribute("title") @PluginDefault(DEFAULT_TITLE) final 
String title,
-            @PluginAttribute("contentType") 
@PluginDefault(DEFAULT_CONTENT_TYPE) String contentType,
-            @PluginAttribute("charset") @PluginDefault("UTF-8") final Charset 
charset,
+            @PluginAttribute(value = "locationInfo", defaultValue = "false") 
final boolean locationInfo,
+            @PluginAttribute(value = "title", defaultValue = DEFAULT_TITLE) 
final String title,
+            @PluginAttribute(value = "contentType", defaultValue = 
DEFAULT_CONTENT_TYPE) String contentType,
+            @PluginAttribute(value = "charset", defaultValue = "UTF-8") final 
Charset charset,
             @PluginAttribute("fontSize") String fontSize,
-            @PluginAttribute("fontName") @PluginDefault(DEFAULT_FONT_FAMILY) 
final String font) {
+            @PluginAttribute(value = "fontName", defaultValue = 
DEFAULT_FONT_FAMILY) final String font) {
         final FontSize fs = FontSize.getFontSize(fontSize);
         fontSize = fs.getFontSize();
         final String headerSize = fs.larger().getFontSize();

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java
 Mon May 26 04:02:12 2014
@@ -22,13 +22,12 @@ import java.util.Map;
 
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.util.Charsets;
 
 /**
  * Appends a series of JSON events as strings serialized as bytes.
- * 
+ *
  * <h4>Complete well-formed JSON vs. fragment JSON</h4>
  * <p>
  * If you configure {@code complete="true"}, the appender outputs a 
well-formed JSON document. By default, with {@code complete="false"},
@@ -37,7 +36,7 @@ import org.apache.logging.log4j.core.uti
  * <p>
  * A well-formed JSON event follows this pattern:
  * </p>
- * 
+ *
  * <pre>
  * {
   "timeMillis": 1,
@@ -800,7 +799,7 @@ public final class JsonLayout extends Ab
 
     /**
      * Returns appropriate JSON headers.
-     * 
+     *
      * @return a byte array containing the header, opening the JSON array.
      */
     @Override
@@ -816,7 +815,7 @@ public final class JsonLayout extends Ab
 
     /**
      * Returns appropriate JSON footer.
-     * 
+     *
      * @return a byte array containing the footer, closing the JSON array.
      */
     @Override
@@ -844,7 +843,7 @@ public final class JsonLayout extends Ab
 
     /**
      * Creates a JSON Layout.
-     * 
+     *
      * @param locationInfo If "true", includes the location information in the 
generated JSON.
      * @param properties If "true", includes the thread context in the 
generated JSON.
      * @param complete If "true", includes the JSON header and footer, 
defaults to "false".
@@ -855,11 +854,11 @@ public final class JsonLayout extends Ab
     @PluginFactory
     public static AbstractJacksonLayout createLayout(
             // @formatter:off
-            @PluginAttribute("locationInfo") @PluginDefault("false") final 
boolean locationInfo,
-            @PluginAttribute("properties") @PluginDefault("false") final 
boolean properties,
-            @PluginAttribute("complete") @PluginDefault("false") final boolean 
complete,
-            @PluginAttribute("compact") @PluginDefault("false") final boolean 
compact,
-            @PluginAttribute("charset") @PluginDefault("UTF-8") final Charset 
charset
+            @PluginAttribute(value = "locationInfo", defaultValue = "false") 
final boolean locationInfo,
+            @PluginAttribute(value = "properties", defaultValue = "false") 
final boolean properties,
+            @PluginAttribute(value = "complete", defaultValue = "false") final 
boolean complete,
+            @PluginAttribute(value = "compact", defaultValue = "false") final 
boolean compact,
+            @PluginAttribute(value = "charset", defaultValue = "UTF-8") final 
Charset charset
             // @formatter:on
     ) {
         return new JsonLayout(locationInfo, properties, complete, compact, 
charset);

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LoggerFields.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LoggerFields.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LoggerFields.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/LoggerFields.java
 Mon May 26 04:02:12 2014
@@ -22,7 +22,6 @@ import java.util.Map;
 
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.util.KeyValuePair;
@@ -58,7 +57,7 @@ public final class LoggerFields {
 
     /**
      * Create a LoggerFields from KeyValuePairs.
-     * 
+     *
      * @param keyValuePairs
      *            An array of KeyValuePairs.
      * @param sdId
@@ -74,7 +73,7 @@ public final class LoggerFields {
         @PluginElement("LoggerFields") final KeyValuePair[] keyValuePairs,
         @PluginAttribute("sdId") final String sdId,
         @PluginAttribute("enterpriseId") final String enterpriseId,
-        @PluginAttribute("discardIfAllFieldsAreEmpty") @PluginDefault("false") 
final boolean discardIfAllFieldsAreEmpty) {
+        @PluginAttribute(value = "discardIfAllFieldsAreEmpty", defaultValue = 
"false") final boolean discardIfAllFieldsAreEmpty) {
         final Map<String, String> map = new HashMap<String, String>();
 
         for (final KeyValuePair keyValuePair : keyValuePairs) {

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
 Mon May 26 04:02:12 2014
@@ -28,7 +28,6 @@ import org.apache.logging.log4j.core.con
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
 import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import 
org.apache.logging.log4j.core.config.plugins.util.ConfigurablePluginBuilder;
@@ -272,9 +271,9 @@ public final class PatternLayout extends
             @PluginAttribute("pattern") final String pattern,
             @PluginConfiguration final Configuration config,
             @PluginElement("Replace") final RegexReplacement replace,
-            @PluginAttribute("charset") @PluginDefault("UTF-8") final Charset 
charset,
-            @PluginAttribute("alwaysWriteExceptions") @PluginDefault("true") 
final boolean alwaysWriteExceptions,
-            @PluginAttribute("noConsoleNoAnsi") @PluginDefault("false") final 
boolean noConsoleNoAnsi,
+            @PluginAttribute(value = "charset", defaultValue = "UTF-8") final 
Charset charset,
+            @PluginAttribute(value = "alwaysWriteExceptions", defaultValue = 
"true") final boolean alwaysWriteExceptions,
+            @PluginAttribute(value = "noConsoleNoAnsi", defaultValue = 
"false") final boolean noConsoleNoAnsi,
             @PluginAttribute("header") final String header,
             @PluginAttribute("footer") final String footer) {
         return new PatternLayout(config, replace, pattern == null ? 
DEFAULT_CONVERSION_PATTERN : pattern, charset,

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
 Mon May 26 04:02:12 2014
@@ -36,7 +36,6 @@ import org.apache.logging.log4j.core.con
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.net.Facility;
@@ -625,14 +624,14 @@ public final class Rfc5424Layout extends
      */
     @PluginFactory
     public static Rfc5424Layout createLayout(
-            @PluginAttribute("facility") @PluginDefault("LOCAL0") final 
Facility facility,
+            @PluginAttribute(value = "facility", defaultValue = "LOCAL0") 
final Facility facility,
             @PluginAttribute("id") final String id,
-            @PluginAttribute("enterpriseNumber") 
@PluginDefault(DEFAULT_ENTERPRISE_NUMBER) final int enterpriseNumber,
-            @PluginAttribute("includeMDC") @PluginDefault("true") final 
boolean includeMDC,
-            @PluginAttribute("mdcId") @PluginDefault(DEFAULT_MDCID) final 
String mdcId,
+            @PluginAttribute(value = "enterpriseNumber", defaultValue = 
DEFAULT_ENTERPRISE_NUMBER) final int enterpriseNumber,
+            @PluginAttribute(value = "includeMDC", defaultValue = "true") 
final boolean includeMDC,
+            @PluginAttribute(value = "mdcId", defaultValue = DEFAULT_MDCID) 
final String mdcId,
             @PluginAttribute("mdcPrefix") final String mdcPrefix,
             @PluginAttribute("eventPrefix") final String eventPrefix,
-            @PluginAttribute("newLine") @PluginDefault("false") final boolean 
newLine,
+            @PluginAttribute(value = "newLine", defaultValue = "false") final 
boolean newLine,
             @PluginAttribute("newLineEscape") final String escapeNL,
             @PluginAttribute("appName") final String appName,
             @PluginAttribute("messageId") final String msgId,
@@ -640,7 +639,7 @@ public final class Rfc5424Layout extends
             @PluginAttribute("mdcIncludes") String includes,
             @PluginAttribute("mdcRequired") final String required,
             @PluginAttribute("exceptionPattern") final String exceptionPattern,
-            @PluginAttribute("useTlsMessageFormat") @PluginDefault("false") 
final boolean useTlsMessageFormat, // RFC 5425
+            @PluginAttribute(value = "useTlsMessageFormat", defaultValue = 
"false") final boolean useTlsMessageFormat, // RFC 5425
             @PluginElement("LoggerFields") final LoggerFields[] loggerFields,
             @PluginConfiguration final Configuration config) {
         final Charset charset = Charsets.UTF_8;

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/SyslogLayout.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/SyslogLayout.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/SyslogLayout.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/SyslogLayout.java
 Mon May 26 04:02:12 2014
@@ -28,7 +28,6 @@ import java.util.regex.Pattern;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.net.Facility;
 import org.apache.logging.log4j.core.net.Priority;
@@ -135,10 +134,10 @@ public final class SyslogLayout extends 
      */
     @PluginFactory
     public static SyslogLayout createLayout(
-            @PluginAttribute("facility") @PluginDefault("LOCAL0") final 
Facility facility,
-            @PluginAttribute("newLine") @PluginDefault("false") final boolean 
includeNewLine,
+            @PluginAttribute(value = "facility", defaultValue = "LOCAL0") 
final Facility facility,
+            @PluginAttribute(value = "newLine", defaultValue = "false") final 
boolean includeNewLine,
             @PluginAttribute("newLineEscape") final String escapeNL,
-            @PluginAttribute("charset") @PluginDefault("UTF-8") final Charset 
charset) {
+            @PluginAttribute(value = "charset", defaultValue = "UTF-8") final 
Charset charset) {
         return new SyslogLayout(facility, includeNewLine, escapeNL, charset);
     }
 }

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java?rev=1597510&r1=1597509&r2=1597510&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java
 Mon May 26 04:02:12 2014
@@ -22,14 +22,13 @@ import java.util.Map;
 
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginDefault;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.jackson.XmlConstants;
 import org.apache.logging.log4j.core.util.Charsets;
 
 /**
  * Appends a series of {@code event} elements as defined in the <a 
href="log4j.dtd">log4j.dtd</a>.
- * 
+ *
  * <h4>Complete well-formed XML vs. fragment XML</h4>
  * <p>
  * If you configure {@code complete="true"}, the appender outputs a 
well-formed XML document where the default namespace is the log4j
@@ -200,7 +199,7 @@ public final class XmlLayout extends Abs
      * <li>XML processing instruction</li>
      * <li>XML root element</li>
      * </ol>
-     * 
+     *
      * @return a byte array containing the header.
      */
     @Override
@@ -223,7 +222,7 @@ public final class XmlLayout extends Abs
 
     /**
      * Returns appropriate XML footer.
-     * 
+     *
      * @return a byte array containing the footer, closing the XML root 
element.
      */
     @Override
@@ -240,7 +239,7 @@ public final class XmlLayout extends Abs
      * Key: "dtd" Value: "log4j-events.dtd"
      * <p/>
      * Key: "version" Value: "2.0"
-     * 
+     *
      * @return Map of content format keys supporting XmlLayout
      */
     @Override
@@ -262,7 +261,7 @@ public final class XmlLayout extends Abs
 
     /**
      * Creates an XML Layout.
-     * 
+     *
      * @param locationInfo If "true", includes the location information in the 
generated XML.
      * @param properties If "true", includes the thread context in the 
generated XML.
      * @param complete If "true", includes the XML header and footer, defaults 
to "false".
@@ -273,11 +272,11 @@ public final class XmlLayout extends Abs
     @PluginFactory
     public static XmlLayout createLayout(
             // @formatter:off
-            @PluginAttribute("locationInfo") @PluginDefault("false") final 
boolean locationInfo,
-            @PluginAttribute("properties") @PluginDefault("false") final 
boolean properties,
-            @PluginAttribute("complete") @PluginDefault("false") final boolean 
complete,
-            @PluginAttribute("compact") @PluginDefault("false") final boolean 
compact,
-            @PluginAttribute("charset") @PluginDefault("UTF-8") final Charset 
charset)
+            @PluginAttribute(value = "locationInfo", defaultValue = "false") 
final boolean locationInfo,
+            @PluginAttribute(value = "properties", defaultValue = "false") 
final boolean properties,
+            @PluginAttribute(value = "complete", defaultValue = "false") final 
boolean complete,
+            @PluginAttribute(value = "compact", defaultValue = "false") final 
boolean compact,
+            @PluginAttribute(value = "charset", defaultValue = "UTF-8") final 
Charset charset)
             // @formatter:on
     {
         return new XmlLayout(locationInfo, properties, complete, compact, 
charset);


Reply via email to