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);