You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2012/10/05 19:51:15 UTC

svn commit: r1394692 - /logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/ReflectionComparison.java

Author: rgoers
Date: Fri Oct  5 17:51:14 2012
New Revision: 1394692

URL: http://svn.apache.org/viewvc?rev=1394692&view=rev
Log:
Add object creation test

Modified:
    logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/ReflectionComparison.java

Modified: logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/ReflectionComparison.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/ReflectionComparison.java?rev=1394692&r1=1394691&r2=1394692&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/ReflectionComparison.java (original)
+++ logging/log4j/log4j2/trunk/core/src/test/java/org/apache/logging/log4j/ReflectionComparison.java Fri Oct  5 17:51:14 2012
@@ -18,10 +18,14 @@ package org.apache.logging.log4j;
 
 import org.apache.logging.log4j.core.Timer;
 import org.apache.logging.log4j.core.helpers.Loader;
+import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.message.SimpleMessage;
+import org.apache.logging.log4j.message.StringFormattedMessage;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import sun.reflect.Reflection;
 
+import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 
@@ -37,6 +41,8 @@ public class ReflectionComparison {
 
     private static final int COUNT = 1000000;
 
+    private static Class[] paramTypes = new Class[] {String.class, Object[].class};
+
     @BeforeClass
     public static void setupCallerCheck() {
         try {
@@ -82,6 +88,29 @@ public class ReflectionComparison {
         System.out.println(timer.toString());
     }
 
+
+    @Test
+    public void createObjects() throws Exception {
+        Timer timer = new Timer("NewObject", COUNT);
+        timer.start();
+        Message msg;
+        for (int i = 0; i < COUNT; ++i) {
+            msg = new StringFormattedMessage("Hello %1", i);
+        }
+        timer.stop();
+        System.out.println(timer.toString());
+        Class<? extends Message> clazz = StringFormattedMessage.class;
+
+        timer = new Timer("ReflectionObject", COUNT);
+        timer.start();
+
+        for (int i = 0; i < COUNT; ++i) {
+            createMessage(clazz, "Hello %1", i);
+        }
+        timer.stop();
+        System.out.println(timer.toString());
+    }
+
     private Class getCallerClass(Object[] array) {
         if (getCallerClass != null) {
             try {
@@ -95,4 +124,9 @@ public class ReflectionComparison {
         return null;
     }
 
+    private Message createMessage(Class<? extends Message> clazz, String msg, Object... params) throws Exception {
+        Constructor constructor = clazz.getConstructor(paramTypes);
+        return (Message) constructor.newInstance(msg, params);
+    }
+
 }