You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ha...@apache.org on 2012/12/19 17:47:26 UTC

svn commit: r1423935 - in /ode/trunk: ./ jacob/src/main/java/org/apache/ode/jacob/ jacob/src/main/java/org/apache/ode/jacob/vpu/ jacob/src/test/java/org/apache/ode/jacob/examples/cell/ jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/ jac...

Author: hadrian
Date: Wed Dec 19 16:47:25 2012
New Revision: 1423935

URL: http://svn.apache.org/viewvc?rev=1423935&view=rev
Log:
ODE-983. Switch to slf4j in ode-jacob

Added:
    ode/trunk/jacob/src/test/resources/
    ode/trunk/jacob/src/test/resources/log4j.properties
Modified:
    ode/trunk/Rakefile
    ode/trunk/dependencies.rb
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/JacobThread.java
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/SynchChannelListener.java
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ValChannelListener.java
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
    ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java
    ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java
    ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java
    ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java

Modified: ode/trunk/Rakefile
URL: http://svn.apache.org/viewvc/ode/trunk/Rakefile?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/Rakefile (original)
+++ ode/trunk/Rakefile Wed Dec 19 16:47:25 2012
@@ -445,7 +445,7 @@ define "ode" do
 
   desc "ODE JAva Concurrent OBjects"
   define "jacob" do
-    compile.with COMMONS.logging
+    compile.with SLF4J, LOG4J
 
     package :jar
   end

Modified: ode/trunk/dependencies.rb
URL: http://svn.apache.org/viewvc/ode/trunk/dependencies.rb?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/dependencies.rb (original)
+++ ode/trunk/dependencies.rb Wed Dec 19 16:47:25 2012
@@ -95,7 +95,7 @@ KARAF               = [
                         group("org.apache.felix.gogo.command","org.apache.felix.gogo.runtime",
                           :under=>"org.apache.felix", :version=>"0.6.1")
                       ]
-LOG4J               = "log4j:log4j:jar:1.2.13"
+LOG4J               = "log4j:log4j:jar:1.2.17"
 OPENJPA             = ["org.apache.openjpa:openjpa:jar:1.2.1",
                        "net.sourceforge.serp:serp:jar:1.13.1"]
 
@@ -127,7 +127,7 @@ SERVICEMIX          = [
                         "commons-beanutils:commons-beanutils:jar:1.7.0",
                         "tranql:tranql-connector-derby-common:jar:1.1"
                         ]
-SLF4J = group(%w{ slf4j-api slf4j-log4j12 jcl104-over-slf4j }, :under=>"org.slf4j", :version=>"1.4.3")
+SLF4J = group(%w{ slf4j-api slf4j-log4j12 jcl-over-slf4j }, :under=>"org.slf4j", :version=>"1.7.2")
 SPRING              = ["org.springframework:spring:jar:2.5.6"]
 SPRING_OSGI         = ["org.springframework.osgi:spring-osgi-core:jar:1.2.0"]
 SPRING_TEST         = ["org.springframework:spring-test:jar:2.5.6"]

Modified: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java (original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ChannelListener.java Wed Dec 19 16:47:25 2012
@@ -23,18 +23,13 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Base-class for method-list objects. Method-lists objects should extends this
  * class <em>and</em> implement one <code>Channel</code> interface.
  */
 public abstract class ChannelListener<CT extends Channel> extends JacobObject {
-    private static Log __log = LogFactory.getLog(ChannelListener.class);
-
     private transient Set<Method> _implementedMethods;
-
     private transient CT _channel;
 
     protected ChannelListener(CT channel) throws IllegalStateException {
@@ -107,8 +102,4 @@ public abstract class ChannelListener<CT
         buf.append('}');
         return buf.toString();
     }
-
-    protected Log log() {
-        return __log;
-    }
 }

Modified: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/JacobThread.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/JacobThread.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/JacobThread.java (original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/JacobThread.java Wed Dec 19 16:47:25 2012
@@ -30,7 +30,7 @@ import java.lang.reflect.Method;
  * scoping rules for channel names are simply the Java object visibility rules.
  */
 public interface JacobThread {
-    public Object getExtension(Class extensionClass);
+    public Object getExtension(Class<?> extensionClass);
 
     public String exportChannel(Channel channel);
 

Modified: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/SynchChannelListener.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/SynchChannelListener.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/SynchChannelListener.java (original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/SynchChannelListener.java Wed Dec 19 16:47:25 2012
@@ -9,8 +9,6 @@
 
 package org.apache.ode.jacob;
 
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
 
 /**
  * An auto-generated channel listener abstract class for the 
@@ -22,11 +20,6 @@ public abstract class SynchChannelListen
     extends org.apache.ode.jacob.ChannelListener<org.apache.ode.jacob.SynchChannel>
     implements org.apache.ode.jacob.Synch
 {
-
-    private static final Log __log = LogFactory.getLog(org.apache.ode.jacob.Synch.class);
-
-    protected Log log() { return __log; } 
-
     protected SynchChannelListener(org.apache.ode.jacob.SynchChannel channel) {
        super(channel);
     }

Modified: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ValChannelListener.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ValChannelListener.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ValChannelListener.java (original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/ValChannelListener.java Wed Dec 19 16:47:25 2012
@@ -9,8 +9,6 @@
 
 package org.apache.ode.jacob;
 
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
 
 /**
  * An auto-generated channel listener abstract class for the 
@@ -22,11 +20,6 @@ public abstract class ValChannelListener
     extends org.apache.ode.jacob.ChannelListener<org.apache.ode.jacob.ValChannel>
     implements org.apache.ode.jacob.Val
 {
-
-    private static final Log __log = LogFactory.getLog(org.apache.ode.jacob.Val.class);
-
-    protected Log log() { return __log; } 
-
     protected ValChannelListener(org.apache.ode.jacob.ValChannel channel) {
        super(channel);
     }

Modified: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java (original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/ExecutionQueueImpl.java Wed Dec 19 16:47:25 2012
@@ -18,22 +18,6 @@
  */
 package org.apache.ode.jacob.vpu;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.ode.jacob.Channel;
-import org.apache.ode.jacob.ChannelListener;
-import org.apache.ode.jacob.IndexedObject;
-import org.apache.ode.jacob.JacobObject;
-import org.apache.ode.jacob.soup.Comm;
-import org.apache.ode.jacob.soup.CommChannel;
-import org.apache.ode.jacob.soup.CommGroup;
-import org.apache.ode.jacob.soup.CommRecv;
-import org.apache.ode.jacob.soup.CommSend;
-import org.apache.ode.jacob.soup.Continuation;
-import org.apache.ode.jacob.soup.ExecutionQueue;
-import org.apache.ode.jacob.soup.ExecutionQueueObject;
-import org.apache.ode.jacob.soup.ReplacementMap;
-
 import java.io.Externalizable;
 import java.io.IOException;
 import java.io.InputStream;
@@ -57,12 +41,29 @@ import java.util.concurrent.ConcurrentHa
 import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
 
+import org.apache.ode.jacob.Channel;
+import org.apache.ode.jacob.ChannelListener;
+import org.apache.ode.jacob.IndexedObject;
+import org.apache.ode.jacob.JacobObject;
+import org.apache.ode.jacob.soup.Comm;
+import org.apache.ode.jacob.soup.CommChannel;
+import org.apache.ode.jacob.soup.CommGroup;
+import org.apache.ode.jacob.soup.CommRecv;
+import org.apache.ode.jacob.soup.CommSend;
+import org.apache.ode.jacob.soup.Continuation;
+import org.apache.ode.jacob.soup.ExecutionQueue;
+import org.apache.ode.jacob.soup.ExecutionQueueObject;
+import org.apache.ode.jacob.soup.ReplacementMap;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * A fast, in-memory {@link org.apache.ode.jacob.soup.ExecutionQueue} implementation.
  */
 public class ExecutionQueueImpl implements ExecutionQueue {
     /** Class-level logger. */
-    private static final Log __log = LogFactory.getLog(ExecutionQueueImpl.class);
+    private static final Logger LOG = LoggerFactory.getLogger(ExecutionQueueImpl.class);
 
     private ClassLoader _classLoader;
 
@@ -117,10 +118,7 @@ public class ExecutionQueueImpl implemen
     }
 
     public void add(CommChannel channel) {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("add", new Object[] { "channel", channel }));
-            __log.trace(">> add (channel=" +  channel + ")");
-        }
+        LOG.trace(">> add (channel={})", channel);
 
         verifyNew(channel);
         ChannelFrame cframe = new ChannelFrame(channel.getType(), ++_objIdCounter, channel.getType().getName(), channel
@@ -130,21 +128,14 @@ public class ExecutionQueueImpl implemen
     }
 
     public void enqueueReaction(Continuation continuation) {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("enqueueReaction", new Object[] { "continuation",
-            //        continuation }));
-            __log.trace(">> enqueueReaction (continuation=" +  continuation + ")");
-        }
+        LOG.trace(">> enqueueReaction (continuation={})", continuation);
 
         verifyNew(continuation);
         _reactions.add(continuation);
     }
 
     public Continuation dequeueReaction() {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("dequeueReaction", new Class[]{}));
-            __log.trace(">> dequeueReaction ()");
-        }
+        LOG.trace(">> dequeueReaction ()");
 
         Continuation continuation = null;
         if (!_reactions.isEmpty()) {
@@ -156,10 +147,7 @@ public class ExecutionQueueImpl implemen
     }
 
     public void add(CommGroup group) {
-        if (__log.isTraceEnabled()) {
-            // __log.trace(ObjectPrinter.stringifyMethodEnter("add", new Object[] { "group", group }));
-            __log.trace(">> add (group=" +  group + ")");
-        }
+        LOG.trace(">> add (group={})", group);
 
         verifyNew(group);
         CommGroupFrame commGroupFrame = new CommGroupFrame(group.isReplicated());
@@ -211,19 +199,12 @@ public class ExecutionQueueImpl implemen
     }
 
     public int cycle() {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("cycle", new Class[]{}));
-            __log.trace(">> cycle ()");
-        }
-
+        LOG.trace(">> cycle ()");
         return ++_currentCycle;
     }
 
     public String createExport(CommChannel channel) {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("createExport", new Object[] { "channel", channel }));
-            __log.trace(">> createExport (channel=" +  channel + ")");
-        }
+        LOG.trace(">> createExport (channel={})", channel);
 
         ChannelFrame cframe = findChannelFrame(channel.getId());
         cframe.refCount++;
@@ -231,10 +212,7 @@ public class ExecutionQueueImpl implemen
     }
 
     public CommChannel consumeExport(String exportId) {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("consumeExport", new Object[] { "exportId", exportId }));
-            __log.trace(">> consumeExport (exportId=" +  exportId + ")");
-        }
+        LOG.trace(">> consumeExport (exportId={})", exportId);
 
         Integer id = Integer.valueOf(exportId);
         ChannelFrame cframe = findChannelFrame(id);
@@ -250,10 +228,7 @@ public class ExecutionQueueImpl implemen
     }
 
     public void flush() {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("flush", new Class[]{}));
-            __log.trace(">> flush ()");
-        }
+        LOG.trace(">> flush ()");
     }
 
     public void read(InputStream iis) throws IOException, ClassNotFoundException {
@@ -346,8 +321,7 @@ public class ExecutionQueueImpl implemen
             if (referencedChannels.contains(Integer.valueOf(cframe.id)) || cframe.refCount > 0) {
                 // skip
             } else {
-                if (__log.isDebugEnabled())
-                    __log.debug("GC Channel: " + cframe);
+                LOG.debug("GC Channel: {}", cframe);
                 i.remove();
             }
 
@@ -356,9 +330,7 @@ public class ExecutionQueueImpl implemen
         sos.writeInt(_channels.values().size());
         for (Iterator i = _channels.values().iterator(); i.hasNext();) {
             ChannelFrame cframe = (ChannelFrame) i.next();
-            if (__log.isDebugEnabled()) {
-                __log.debug("Writing Channel: " + cframe);
-            }
+            LOG.debug("Writing Channel: {}", cframe);
             sos.writeObject(cframe);
         }
 
@@ -400,10 +372,8 @@ public class ExecutionQueueImpl implemen
     }
 
     private void matchCommunications(CommChannel channel) {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("matchCommunications", new Object[] { "channel", channel }));
-            __log.trace(">> matchCommunications (channel=" +  channel + ")");
-        }
+        LOG.trace(">> matchCommunications (channel={})", channel);
+
         ChannelFrame cframe = _channels.get(channel.getId());
         while (cframe != null && !cframe.msgFrames.isEmpty() && !cframe.objFrames.isEmpty()) {
             MessageFrame mframe = cframe.msgFrames.iterator().next();
@@ -411,7 +381,7 @@ public class ExecutionQueueImpl implemen
 
             Continuation continuation = new Continuation(oframe._continuation, oframe._continuation
                     .getMethod(mframe.method), mframe.args);
-            if (__log.isInfoEnabled()) {
+            if (LOG.isInfoEnabled()) {
                 continuation.setDescription(channel + " ? {...} | " + channel + " ! " + mframe.method + "(...)");
             }
             enqueueReaction(continuation);
@@ -701,14 +671,12 @@ public class ExecutionQueueImpl implemen
                 return new ChannelRef(commChannel.getType(), (Integer) commChannel.getId());
             } else if (_replacementMap != null && _replacementMap.isReplaceable(obj)) {
                 Object replacement = _replacementMap.getReplacement(obj);
-                if (__log.isDebugEnabled())
-                    __log.debug("ReplacmentMap: getReplacement(" + obj + ") = " + replacement);
+                LOG.debug("ReplacmentMap: getReplacement({}) = {}", obj, replacement);
                 return replacement;
             }
 
             return obj;
         }
-
     }
 
     /**
@@ -756,9 +724,7 @@ public class ExecutionQueueImpl implemen
                 resolved = ChannelFactory.createChannel(channel, channel.getType());
             } else if (_replacementMap != null && _replacementMap.isReplacement(obj)) {
                 resolved = _replacementMap.getOriginal(obj);
-                if (__log.isDebugEnabled()) {
-                    __log.debug("ReplacementMap: getOriginal(" + obj + ") = " + resolved);
-                }
+                LOG.debug("ReplacementMap: getOriginal({}) = {}", obj, resolved);
             } else {
                 resolved = obj;
             }

Modified: ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java (original)
+++ ode/trunk/jacob/src/main/java/org/apache/ode/jacob/vpu/JacobVPU.java Wed Dec 19 16:47:25 2012
@@ -18,46 +18,46 @@
  */
 package org.apache.ode.jacob.vpu;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.ode.jacob.*;
-import org.apache.ode.jacob.soup.*;
-
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Stack;
 
+import org.apache.ode.jacob.Channel;
+import org.apache.ode.jacob.ChannelListener;
+import org.apache.ode.jacob.JacobObject;
+import org.apache.ode.jacob.JacobRunnable;
+import org.apache.ode.jacob.JacobThread;
+import org.apache.ode.jacob.SynchChannel;
+import org.apache.ode.jacob.soup.CommChannel;
+import org.apache.ode.jacob.soup.CommGroup;
+import org.apache.ode.jacob.soup.CommRecv;
+import org.apache.ode.jacob.soup.CommSend;
+import org.apache.ode.jacob.soup.Continuation;
+import org.apache.ode.jacob.soup.ExecutionQueue;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * The JACOB Virtual Processing Unit ("VPU").
  *
  * @author Maciej Szefler <a href="mailto:mbs@fivesight.com" />
  */
 public final class JacobVPU {
-    private static final Log __log = LogFactory.getLog(JacobVPU.class);
-
-    /**
-     * Internationalization messages.
-     */
-    // TODO: i8n messages
-    // private static final JacobMessages __msgs = MessageBundle.getMessages(JacobMessages.class);
-
-    /**
-     * Thread-local for associating a thread with a VPU. Needs to be stored in a stack to allow reentrance.
-     */
-    static final ThreadLocal<Stack<JacobThread>> __activeJacobThread = new ThreadLocal<Stack<JacobThread>>();
+    private static final Logger LOG = LoggerFactory.getLogger(JacobVPU.class);
 
+    // Thread-local for associating a thread with a VPU. Needs to be stored in a stack to allow reentrance.
+    private static final ThreadLocal<Stack<JacobThread>> ACTIVE_THREAD = new ThreadLocal<Stack<JacobThread>>();
     private static final Method REDUCE_METHOD;
 
-    /**
-     * Resolve the {@link JacobRunnable#run} method statically
-     */
     static {
         try {
+            // Resolve the {@link JacobRunnable#run} method once statically
             REDUCE_METHOD = JacobRunnable.class.getMethod("run", new Class[]{});
         } catch (Exception e) {
-            throw new Error("Cannot resolve 'run' method", e);
+            throw new Error("Cannot resolve 'run()' method", e);
         }
     }
 
@@ -65,8 +65,7 @@ public final class JacobVPU {
      * Persisted cross-VPU state (state of the channels)
      */
     private ExecutionQueue _executionQueue;
-
-    private Map<Class, Object> _extensions = new HashMap<Class, Object>();
+    private Map<Class<?>, Object> _extensions = new HashMap<Class<?>, Object>();
 
     /**
      * Classloader used for loading object continuations.
@@ -115,11 +114,8 @@ public final class JacobVPU {
      * @return <code>true</code> if the run queue is not empty after this cycle, <code>false</code> otherwise.
      */
     public boolean execute() {
-        if (__log.isTraceEnabled()) {
-            // TODO: make this look nicer with slf4j
-            // __log.trace(ObjectPrinter.stringifyMethodEnter("execute", new Class[]{}));
-            __log.trace(">> execute ()");
-        }
+        LOG.trace(">> JacobVPU.execute()");
+
         if (_executionQueue == null) {
             throw new IllegalStateException("No state object for VPU!");
         }
@@ -150,10 +146,7 @@ public final class JacobVPU {
     }
 
     public void flush() {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("flush", new Class[]{}));
-            __log.trace(">> flush ()");
-        }
+        LOG.trace(">> JacobVPU.flush ()");
         _executionQueue.flush();
     }
 
@@ -165,21 +158,14 @@ public final class JacobVPU {
      *            process executionQueue (state)
      */
     public void setContext(ExecutionQueue executionQueue) {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("setContext",
-            //        new Object[] { "executionQueue", executionQueue }));
-            __log.trace(">> setContext (executionQueue=" +  executionQueue + ")");
-        }
+        LOG.trace(">> setContext (executionQueue={})", executionQueue);
+
         _executionQueue = executionQueue;
         _executionQueue.setClassLoader(_classLoader);
     }
 
-    public void registerExtension(Class extensionClass, Object obj) {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter(
-            // "registerExtension", new Object[] {"extensionClass", extensionClass, "obj", obj }));
-            __log.trace(">> setContext (extensionClass=" +  extensionClass + ", obj=" + obj + ")");
-        }
+    public void registerExtension(Class<?> extensionClass, Object obj) {
+        LOG.trace(">> setContext (extensionClass={}, obj={})", extensionClass, obj);
         _extensions.put(extensionClass, obj);
     }
 
@@ -187,11 +173,7 @@ public final class JacobVPU {
      * Add an item to the run queue.
      */
     public void addReaction(JacobObject jo, Method method, Object[] args, String desc) {
-        if (__log.isTraceEnabled()) {
-            // TODO: __log.trace(ObjectPrinter.stringifyMethodEnter("addReaction",
-            //        new Object[] { "jo", jo, "method", method, "args", args, "desc", desc }));
-            __log.trace(">> addReaction (jo=" +  jo + ", method=" + method + ", args=" + args + ", desc=" + desc + ")");
-        }
+        LOG.trace(">> addReaction (jo={}, method={}, args={}, desc={})", jo, method, args, desc);
 
         Continuation continuation = new Continuation(jo, method, args);
         continuation.setDescription(desc);
@@ -203,7 +185,7 @@ public final class JacobVPU {
      * Get the active Jacob thread, i.e. the one associated with the current Java thread.
      */
     public static JacobThread activeJacobThread() {
-        return __activeJacobThread.get().peek();
+        return ACTIVE_THREAD.get().peek();
     }
 
     /**
@@ -214,14 +196,12 @@ public final class JacobVPU {
      * but is intended to be used from outside of an active {@link JacobThread}.
      */
     public void inject(JacobRunnable concretion) {
-        if (__log.isDebugEnabled()) {
-            __log.debug("injecting " + concretion);
-        }
+        LOG.debug("injecting {}", concretion);
         addReaction(concretion, REDUCE_METHOD, new Class[]{},
-                (__log.isInfoEnabled() ? concretion.toString() : null));
+            (LOG.isInfoEnabled() ? concretion.toString() : null));
     }
 
-    static String stringifyMethods(Class kind) {
+    static String stringifyMethods(Class<?> kind) {
         StringBuffer buf = new StringBuffer();
         Method[] methods = kind.getMethods();
         boolean found = false;
@@ -301,7 +281,7 @@ public final class JacobVPU {
             _source = rqe.getDescription();
             _method = rqe.getMethod();
 
-            if (__log.isDebugEnabled()) {
+            if (LOG.isDebugEnabled()) {
                 StringBuffer buf = new StringBuffer(_methodBody.getClass().getName());
                 buf.append('.');
                 buf.append(rqe.getMethod());
@@ -310,20 +290,17 @@ public final class JacobVPU {
         }
 
         public void instance(JacobRunnable template) {
-            String desc = null;
-            if (__log.isTraceEnabled()) {
-                __log.trace(_cycle + ": " + template);
-                desc = template.toString();
-            }
+            LOG.trace(">> [{}] : {}", _cycle, template);
+
             _statistics.numReductionsStruct++;
-            addReaction(template, REDUCE_METHOD, new Class[]{}, desc);
+            addReaction(template, REDUCE_METHOD, new Class[]{}, 
+                LOG.isInfoEnabled() ? template.toString() : null);
         }
 
         public Channel message(Channel channel, Method method, Object[] args) {
-            if (__log.isTraceEnabled()) {
-                __log.trace(_cycle + ": " + channel + " ! "
-                        + method.getName() + "(" + stringify(args) + ")");
-            }
+            LOG.trace(">> [{}] : {} ! {} ({})", _cycle, channel, method.getName(),
+                LOG.isTraceEnabled() ? stringify(args) : null);
+
             _statistics.messagesSent++;
 
             SynchChannel replyChannel = null;
@@ -331,7 +308,7 @@ public final class JacobVPU {
             if (method.getReturnType() != void.class) {
                 if (method.getReturnType() != SynchChannel.class) {
                     throw new IllegalStateException(
-                            "ChannelListener method can only return SynchChannel: " + method);
+                        "ChannelListener method can only return SynchChannel: " + method);
                 }
                 replyChannel = (SynchChannel) newChannel(SynchChannel.class, "", "Reply Channel");
                 Object[] newArgs = new Object[args.length + 1];
@@ -353,17 +330,15 @@ public final class JacobVPU {
             _executionQueue.add(chnl);
 
             Channel ret = ChannelFactory.createChannel(chnl, channelType);
-            if (__log.isTraceEnabled())
-                __log.trace(_cycle + ": new " + ret);
+            LOG.trace(">> [{}] : new {}", _cycle, ret);
 
             _statistics.channelsCreated++;
             return ret;
         }
 
         public String exportChannel(Channel channel) {
-            if (__log.isTraceEnabled()) {
-                __log.trace(_cycle + ": export<" + channel + ">");
-            }
+            LOG.trace(">> [{}] : export<{}>", _cycle, channel);
+
             CommChannel chnl = (CommChannel) ChannelFactory.getBackend(channel);
             return _executionQueue.createExport(chnl);
         }
@@ -374,7 +349,7 @@ public final class JacobVPU {
         }
 
         public void object(boolean replicate, ChannelListener[] ml) {
-            if (__log.isTraceEnabled()) {
+            if (LOG.isTraceEnabled()) {
                 StringBuffer msg = new StringBuffer();
                 msg.append(_cycle);
                 msg.append(": ");
@@ -385,7 +360,7 @@ public final class JacobVPU {
                     msg.append(ml.toString());
 
                 }
-                __log.debug(msg.toString());
+                LOG.trace(msg.toString());
             }
 
             _statistics.numContinuations++;
@@ -425,7 +400,7 @@ public final class JacobVPU {
         }
         */
 
-        public Object getExtension(Class extensionClass) {
+        public Object getExtension(Class<?> extensionClass) {
             return _extensions.get(extensionClass);
         }
 
@@ -434,9 +409,7 @@ public final class JacobVPU {
             assert _method != null;
             assert _method.getDeclaringClass().isAssignableFrom(_methodBody.getClass());
 
-            if (__log.isTraceEnabled()) {
-                __log.trace(_cycle + ": " + _source);
-            }
+            LOG.trace(">> [{}] : {}", _cycle, _source);
 
             Object[] args;
             SynchChannel synchChannel;
@@ -456,21 +429,12 @@ public final class JacobVPU {
                     synchChannel.ret();
                 }
             } catch (IllegalAccessException iae) {
-                // TODO: String msg = __msgs.msgMethodNotAccessible(_method.getName(),
-                //        _method.getDeclaringClass().getName());
-                String msg = "MethodNotAccessible: " + _method.getName() + " in " + _method.getDeclaringClass().getName();
-                __log.error(msg, iae);
-                throw new RuntimeException(msg, iae);
+                throw new RuntimeException("MethodNotAccessible: " + _method.getName() + " in " + _method.getDeclaringClass().getName(), iae);
             } catch (InvocationTargetException e) {
-                if (e.getTargetException() instanceof RuntimeException) {
-                    throw (RuntimeException) e.getTargetException();
-                } else {
-                    // TODO: String msg = __msgs.msgClientMethodException(_method.getName(),
-                    //        _methodBody.getClass().getName());
-                    String msg = "ClientMethodException: " + _method.getName() + " in " + _methodBody.getClass().getName();
-                    __log.error(msg, e.getTargetException());
-                    throw new RuntimeException(e.getTargetException());
-                }
+                Throwable target = e.getTargetException();
+                throw (target instanceof RuntimeException)
+                    ? (RuntimeException) target
+                    : new RuntimeException("ClientMethodException: " + _method.getName() + " in " + _methodBody.getClass().getName(), target);
             } finally {
                 ctime = System.currentTimeMillis() - ctime;
                 _statistics.totalClientTimeMs += ctime;
@@ -483,19 +447,16 @@ public final class JacobVPU {
         }
 
         private void stackThread() {
-            Stack<JacobThread> currStack = __activeJacobThread.get();
-            if (currStack == null) {
-                currStack = new Stack<JacobThread>();
-                __activeJacobThread.set(currStack);
+            Stack<JacobThread> crt = ACTIVE_THREAD.get();
+            if (crt == null) {
+                crt = new Stack<JacobThread>();
+                ACTIVE_THREAD.set(crt);
             }
-            currStack.push(this);
+            crt.push(this);
         }
 
         private JacobThread unstackThread() {
-            Stack<JacobThread> currStack = __activeJacobThread.get();
-            assert currStack != null;
-            return currStack.pop();
+            return ACTIVE_THREAD.get().pop();
         }
     }
-
 }

Modified: ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java (original)
+++ ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/cell/CellChannelListener.java Wed Dec 19 16:47:25 2012
@@ -9,8 +9,6 @@
 
 package org.apache.ode.jacob.examples.cell;
 
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
 
 /**
  * An auto-generated channel listener abstract class for the 
@@ -22,11 +20,6 @@ public abstract class CellChannelListene
     extends org.apache.ode.jacob.ChannelListener<org.apache.ode.jacob.examples.cell.CellChannel>
     implements org.apache.ode.jacob.examples.cell.Cell
 {
-
-    private static final Log __log = LogFactory.getLog(org.apache.ode.jacob.examples.cell.Cell.class);
-
-    protected Log log() { return __log; } 
-
     protected CellChannelListener(org.apache.ode.jacob.examples.cell.CellChannel channel) {
        super(channel);
     }

Modified: ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java (original)
+++ ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/eratosthenes/NaturalNumberStreamChannelListener.java Wed Dec 19 16:47:25 2012
@@ -9,8 +9,6 @@
 
 package org.apache.ode.jacob.examples.eratosthenes;
 
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
 
 /**
  * An auto-generated channel listener abstract class for the 
@@ -22,11 +20,6 @@ public abstract class NaturalNumberStrea
     extends org.apache.ode.jacob.ChannelListener<org.apache.ode.jacob.examples.eratosthenes.NaturalNumberStreamChannel>
     implements org.apache.ode.jacob.examples.eratosthenes.NaturalNumberStream
 {
-
-    private static final Log __log = LogFactory.getLog(org.apache.ode.jacob.examples.eratosthenes.NaturalNumberStream.class);
-
-    protected Log log() { return __log; } 
-
     protected NaturalNumberStreamChannelListener(org.apache.ode.jacob.examples.eratosthenes.NaturalNumberStreamChannel channel) {
        super(channel);
     }

Modified: ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java?rev=1423935&r1=1423934&r2=1423935&view=diff
==============================================================================
--- ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java (original)
+++ ode/trunk/jacob/src/test/java/org/apache/ode/jacob/examples/synch/SynchPrintChannelListener.java Wed Dec 19 16:47:25 2012
@@ -9,8 +9,6 @@
 
 package org.apache.ode.jacob.examples.synch;
 
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
 
 /**
  * An auto-generated channel listener abstract class for the 
@@ -22,11 +20,6 @@ public abstract class SynchPrintChannelL
     extends org.apache.ode.jacob.ChannelListener<org.apache.ode.jacob.examples.synch.SynchPrintChannel>
     implements org.apache.ode.jacob.examples.synch.SynchPrint
 {
-
-    private static final Log __log = LogFactory.getLog(org.apache.ode.jacob.examples.synch.SynchPrint.class);
-
-    protected Log log() { return __log; } 
-
     protected SynchPrintChannelListener(org.apache.ode.jacob.examples.synch.SynchPrintChannel channel) {
        super(channel);
     }

Added: ode/trunk/jacob/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/ode/trunk/jacob/src/test/resources/log4j.properties?rev=1423935&view=auto
==============================================================================
--- ode/trunk/jacob/src/test/resources/log4j.properties (added)
+++ ode/trunk/jacob/src/test/resources/log4j.properties Wed Dec 19 16:47:25 2012
@@ -0,0 +1,34 @@
+#
+#    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.
+#
+
+# Set root logger level to WARN and its only appender to CONSOLE
+log4j.rootLogger=WARN, file
+
+# log4j properties to work with commandline tools.
+log4j.category.org.apache.ode=INFO
+
+# Console appender
+#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+#log4j.appender.stdout.layout.ConversionPattern=%p - %C{1}.%M(%L) | %m%n
+
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.File=target/test.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n
+log4j.appender.file.append=false
+