Author: jochen
Date: Wed Jan 21 14:26:58 2015
New Revision: 1653544

URL: http://svn.apache.org/r1653544
Log:
LoggerModuleTest is now working when called from Surefire.

Added:
    
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/LoggerModuleTest.java
      - copied, changed from r1651363, 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/Log4jLoggerModuleTest.java
    
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/log/
    
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/log/SimpleLoggerFactory.java
   (with props)
Removed:
    
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/Log4jLoggerModuleTest.java
Modified:
    
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/InitializableObject.java

Modified: 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/InitializableObject.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/InitializableObject.java?rev=1653544&r1=1653543&r2=1653544&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/InitializableObject.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/InitializableObject.java
 Wed Jan 21 14:26:58 2015
@@ -18,24 +18,25 @@ package org.apache.commons.inject.impl;
 
 import org.apache.commons.inject.api.ILifecycleListener;
 import org.apache.commons.inject.api.InjLogger;
-import org.apache.log4j.Logger;
+import org.apache.commons.inject.impl.log.SimpleLoggerFactory.Level;
+import org.apache.commons.inject.impl.log.SimpleLoggerFactory.SimpleLogger;
 
 public class InitializableObject implements ILifecycleListener {
-       @InjLogger(id="MyLogger") private Logger log;
+       @InjLogger(id="MyLogger") private SimpleLogger log;
 
        @Override
        public void start() {
-               log.debug("start: ->");
-               log.debug("start: <-");
+               log.log("start: ->");
+               log.log("start: <-");
        }
 
        public void run() {
-               log.debug("run: Running");
+               log.log(Level.INFO, "run: Running");
        }
        
        @Override
        public void shutdown() {
-               log.debug("shutdown: ->");
-               log.debug("shutdown: <-");
+               log.log("shutdown: ->");
+               log.log("shutdown: <-");
        }
 }
\ No newline at end of file

Copied: 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/LoggerModuleTest.java
 (from r1651363, 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/Log4jLoggerModuleTest.java)
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/LoggerModuleTest.java?p2=commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/LoggerModuleTest.java&p1=commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/Log4jLoggerModuleTest.java&r1=1651363&r2=1653544&rev=1653544&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/Log4jLoggerModuleTest.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/LoggerModuleTest.java
 Wed Jan 21 14:26:58 2015
@@ -16,56 +16,30 @@
 */
 package org.apache.commons.inject.impl;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import org.apache.commons.inject.api.AbstractLoggerInjectingModule;
 import org.apache.commons.inject.api.CommonsInject;
 import org.apache.commons.inject.api.IInjector;
 import org.apache.commons.inject.api.ILifecycleController;
-import org.apache.commons.inject.api.Log4jLoggerModule;
 import org.apache.commons.inject.api.PostConstructModule;
 import org.apache.commons.inject.api.bind.IBinder;
 import org.apache.commons.inject.api.bind.IModule;
 import org.apache.commons.inject.api.bind.Scopes;
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.BasicConfigurator;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import org.apache.commons.inject.impl.log.SimpleLoggerFactory;
+import org.apache.commons.inject.impl.log.SimpleLoggerFactory.SimpleLogger;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class Log4jLoggerModuleTest {
-       private final List<String> messages = new ArrayList<String>();
-       private void configureLog4j() {
-               BasicConfigurator.configure();
-               final Logger root = Logger.getRootLogger();
-               root.removeAllAppenders();
-               root.addAppender(new AppenderSkeleton(true) {
-                       
-                       @Override
-                       public boolean requiresLayout() {
-                               return false;
-                       }
-                       
-                       @Override
-                       public void close() {
-                               // Does nothing.
-                       }
-                       
-                       @Override
-                       protected void append(LoggingEvent pEvent) {
-                               final Level level = pEvent.getLevel();
-                               messages.add(level.toString() + "; " + 
pEvent.getMessage());
-                       }
-               });
-       }
-
+public class LoggerModuleTest {
        @Test
        public void testLoggerModule() {
-               configureLog4j();
+               final SimpleLoggerFactory factory = new SimpleLoggerFactory();
                final PostConstructModule module0 = new PostConstructModule();
-               final IModule module1 = new Log4jLoggerModule();
+               final IModule module1 = new 
AbstractLoggerInjectingModule<SimpleLogger>(){
+                       @Override
+                       protected SimpleLogger newLogger(String pId) {
+                               return factory.getLogger(pId);
+                       }
+               };
                final IModule module2 = new IModule(){
                        @Override
                        public void configure(IBinder pBinder) {
@@ -78,11 +52,11 @@ public class Log4jLoggerModuleTest {
                controller.start();
                io.run();
                controller.shutdown();
-               Assert.assertEquals(5, messages.size());
-               Assert.assertEquals("DEBUG; start: ->", messages.get(0));
-               Assert.assertEquals("DEBUG; start: <-", messages.get(1));
-               Assert.assertEquals("DEBUG; run: Running", messages.get(2));
-               Assert.assertEquals("DEBUG; shutdown: ->", messages.get(3));
-               Assert.assertEquals("DEBUG; shutdown: <-", messages.get(4));
+               Assert.assertEquals(5, factory.getNumEvents());
+               Assert.assertEquals("DEBUG MyLogger start: ->", 
factory.getMessage(0));
+               Assert.assertEquals("DEBUG MyLogger start: <-", 
factory.getMessage(1));
+               Assert.assertEquals("INFO  MyLogger run: Running", 
factory.getMessage(2));
+               Assert.assertEquals("DEBUG MyLogger shutdown: ->", 
factory.getMessage(3));
+               Assert.assertEquals("DEBUG MyLogger shutdown: <-", 
factory.getMessage(4));
        }
 }

Added: 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/log/SimpleLoggerFactory.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/log/SimpleLoggerFactory.java?rev=1653544&view=auto
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/log/SimpleLoggerFactory.java
 (added)
+++ 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/log/SimpleLoggerFactory.java
 Wed Jan 21 14:26:58 2015
@@ -0,0 +1,65 @@
+package org.apache.commons.inject.impl.log;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SimpleLoggerFactory {
+       public enum Level {
+               TRACE("TRACE"),
+               DEBUG("DEBUG"),
+               INFO("INFO "),
+               WARN("WARN "),
+               ERROR("ERROR"),
+               FATAL("FATAL");
+               final String value;
+               private Level(String pValue) {
+                       value = pValue;
+               }
+               public String getValue() {
+                       return value;
+               }
+       }
+       public interface SimpleLogger {
+               void log(Level pLevel, String pMsg);
+               void log(String pMsg);
+       }
+
+       private final List<String> messages = new ArrayList<String>();
+
+       public int getNumEvents() {
+               synchronized(messages) {
+                       return messages.size();
+               }
+       }
+
+       public SimpleLogger getLogger(final String pId) {
+               return new SimpleLogger() {
+                       private final String id = pId;
+
+                       @Override
+                       public void log(Level pLevel, String pMsg) {
+                               final StringBuilder sb = new StringBuilder();
+                               sb.append(pLevel.getValue());
+                               sb.append(' ');
+                               sb.append(id);
+                               sb.append(' ');
+                               sb.append(pMsg);
+                               synchronized (messages) {
+                                       messages.add(sb.toString());
+                               }
+                       }
+
+                       @Override
+                       public void log(String pMsg) {
+                               log(Level.DEBUG, pMsg);
+                       }
+                       
+               };
+       }
+
+       public Object getMessage(int i) {
+               synchronized(messages) {
+                       return messages.get(i);
+               }
+       }
+}

Propchange: 
commons/sandbox/commons-inject/trunk/src/test/java/org/apache/commons/inject/impl/log/SimpleLoggerFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to