Author: gnodet
Date: Wed Sep 22 07:07:08 2010
New Revision: 999782

URL: http://svn.apache.org/viewvc?rev=999782&view=rev
Log:
FELIX-2396: Ability to have callbacks when accessing session variables

Modified:
    
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/CommandSessionImpl.java

Modified: 
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/CommandSessionImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/CommandSessionImpl.java?rev=999782&r1=999781&r2=999782&view=diff
==============================================================================
--- 
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/CommandSessionImpl.java
 (original)
+++ 
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/CommandSessionImpl.java
 Wed Sep 22 07:07:08 2010
@@ -23,6 +23,7 @@ package org.apache.felix.gogo.runtime;
 
 import org.apache.felix.service.command.CommandSession;
 import org.apache.felix.service.command.Converter;
+import org.apache.felix.service.command.Function;
 import org.apache.felix.service.threadio.ThreadIO;
 
 import java.io.InputStream;
@@ -102,6 +103,22 @@ public class CommandSessionImpl implemen
             return processor.constants.get(name);
         }
 
+        if (variables.containsKey("#" + name))
+        {
+            Object f = variables.get("#" + name);
+            if (f instanceof Function)
+            {
+                try
+                {
+                    f = ((Function) f).execute(this, null);
+                }
+                catch (Exception e)
+                {
+                    // Ignore
+                }
+            }
+            return f;
+        }
         if (variables.containsKey(name))
         {
             return variables.get(name);


Reply via email to