Better!

<div>-------- Original message --------</div><div>From: Matt Sicker 
<[email protected]> </div><div>Date:05/26/2014  15:27  (GMT-05:00) 
</div><div>To: Log4J Developers List <[email protected]> 
</div><div>Subject: Re: svn commit: r1597494 - in /logging/log4j/log4j2/trunk: 
log4j-1.2-api/src/test/java/org/apache/log4j/ 
log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/ 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/ 
log4j-core/src/... </div><div>
</div>Hmm, good point. I forgot that using "custom()" in HttpClient was inside 
Builder classes themselves. How about something like "newBuilder()"?


On 26 May 2014 08:59, Gary Gregory <[email protected]> wrote:
I do not like "custom()" as an API, because it is not what the method is doing, 
it is creating a new object, which is why "create()" or "newInstance()" is 
better, IMO. Also "create" is a verb which works nicely for a one word method 
or a prefix, unlike "custom".

Gary


On Sun, May 25, 2014 at 8:28 PM, Matt Sicker <[email protected]> wrote:
I'll note that this builder style is very common in HttpComponents (including 
the use of custom() as a method to create the builder).


---------- Forwarded message ----------
From: <[email protected]>
Date: 25 May 2014 19:23
Subject: svn commit: r1597494 - in /logging/log4j/log4j2/trunk: 
log4j-1.2-api/src/test/java/org/apache/log4j/ 
log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/ 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/ 
log4j-core/src/...
To: [email protected]


Author: mattsicker
Date: Mon May 26 00:23:30 2014
New Revision: 1597494

URL: http://svn.apache.org/r1597494
Log:
Migrate PatternLayout to use Builder class.

  - Replaced usages of createCustomLayout() with custom()...build()
  chains.
  - Updated DefaultConfiguration to use the builder without causing
  an infinite recursion loop.
  - Fall back to a new DefaultConfiguration() in case no
  Configuration is specified in builder (can help prevent NPEs where
  config is assumed non-null).
  - Noted where code is duplicated between DefaultConfiguration and
  AbstractConfiguration.
  - Deleted the createCustomLayout() methods from PatternLayout.

Modified:
    
logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java
    
logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/ColumnConfig.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfiguration.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/test/java/org/apache/logging/log4j/core/appender/FileAppenderTest.java
    
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/CustomConfigurationTest.java
    
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java
    
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/jms/JmsQueueTest.java
    
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/jms/JmsTopicTest.java
    
logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/net/server/AbstractSocketServerTest.java

Modified: 
logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java?rev=1597494&r1=1597493&r2=1597494&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java
 Mon May 26 00:23:30 2014
@@ -161,7 +161,7 @@ public class CategoryTest {
     @Test
     public void testClassName() {
         final Category category = Category.getInstance("TestCategory");
-        final Layout<String> layout = PatternLayout.createCustomLayout("%d %p 
%C{1.} [%t] %m%n");
+        final Layout<String> layout = PatternLayout.custom().withPattern("%d 
%p %C{1.} [%t] %m%n").build();
         final ListAppender appender = new ListAppender("List2", null, layout, 
false, false);
         appender.start();
         category.setAdditivity(false);

Modified: 
logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java?rev=1597494&r1=1597493&r2=1597494&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java
 Mon May 26 00:23:30 2014
@@ -456,7 +456,7 @@ public class LoggerTest {
     @Test
     @SuppressWarnings("deprecation")
     public void testLog() {
-        final PatternLayout layout = PatternLayout.createCustomLayout("%d %C 
%L %m");
+        final PatternLayout layout = PatternLayout.custom().withPattern("%d %C 
%L %m").build();
         final ListAppender appender = new ListAppender("List", null, layout, 
false, false);
         appender.start();
         final Logger root = Logger.getRootLogger();

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/ColumnConfig.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/ColumnConfig.java?rev=1597494&r1=1597493&r2=1597494&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/ColumnConfig.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/ColumnConfig.java
 Mon May 26 00:23:30 2014
@@ -129,10 +129,13 @@ public final class ColumnConfig {
             return new ColumnConfig(name, null, literalValue, false, false, 
false);
         }
         if (isPattern) {
-            return new ColumnConfig(
-                    name, PatternLayout.createLayout(pattern, config, null, 
null, false, false, null, null), null,
-                    false, isUnicode, isClob
-            );
+            final PatternLayout layout =
+                PatternLayout.custom()
+                    .withPattern(pattern)
+                    .withConfiguration(config)
+                    .withAlwaysWriteExceptions(false)
+                    .build();
+            return new ColumnConfig(name, layout, null, false, isUnicode, 
isClob);
         }

         LOGGER.error("To configure a column you must specify a pattern or 
literal or set isEventDate to true.");

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java?rev=1597494&r1=1597493&r2=1597494&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
 Mon May 26 00:23:30 2014
@@ -166,7 +166,7 @@ public abstract class AbstractConfigurat
     public void stop() {
         this.setStopping();
         LOGGER.trace("AbstractConfiguration stopping...");
-
+
         // LOG4J2-392 first stop AsyncLogger Disruptor thread
         final LoggerContextFactory factory = LogManager.getFactory();
         if (factory instanceof Log4jContextFactory) {
@@ -376,9 +376,12 @@ public abstract class AbstractConfigurat
     }

     private void setToDefault() {
+        // TODO: reduce duplication between this method and 
DefaultConfiguration constructor
         setName(DefaultConfiguration.DEFAULT_NAME);
-        final Layout<? extends Serializable> layout =
-                PatternLayout.createCustomLayout("%d{HH:mm:ss.SSS} [%thread] 
%-5level %logger{36} - %msg%n");
+        final Layout<? extends Serializable> layout = PatternLayout.custom()
+            .withPattern(DefaultConfiguration.DEFAULT_PATTERN)
+            .withConfiguration(this)
+            .build();
         final Appender appender = ConsoleAppender.createAppender(layout, null, 
"SYSTEM_OUT", "Console", "false",
             "true");
         appender.start();

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfiguration.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfiguration.java?rev=1597494&r1=1597493&r2=1597494&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfiguration.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfiguration.java
 Mon May 26 00:23:30 2014
@@ -52,8 +52,10 @@ public class DefaultConfiguration extend
     public DefaultConfiguration() {

         setName(DEFAULT_NAME);
-        final Layout<? extends Serializable> layout =
-                PatternLayout.createCustomLayout(DEFAULT_PATTERN);
+        final Layout<? extends Serializable> layout = PatternLayout.custom()
+            .withPattern(DEFAULT_PATTERN)
+            .withConfiguration(this)
+            .build();
         final Appender appender =
                 ConsoleAppender.createAppender(layout, null, "SYSTEM_OUT", 
"Console", "false", "true");
         appender.start();

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=1597494&r1=1597493&r2=1597494&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
 (original)
+++ logging/log4j/log4j2

Reply via email to