diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2010-02-07 00:36:25 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2010-02-07 00:36:25 +0000 |
commit | bb4b895471e3165c71bdfd1fdae5e1ffde8f1696 (patch) | |
tree | 57bec175bb5dbf43303f7334162b9b2b4bda03c6 /sca-cpp/trunk/modules/java/eval.hpp | |
parent | 00f9947613624b251551ba709824f97f1b6c2fb1 (diff) |
Moved server configuration to HTTPD postConfig phase, to avoid running configuration commands twice and added a way for runtime modules and components to handle start/restart/stop events. Improved build scripts a little, to not depend on external environment variables.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@907352 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r-- | sca-cpp/trunk/modules/java/eval.hpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sca-cpp/trunk/modules/java/eval.hpp b/sca-cpp/trunk/modules/java/eval.hpp index 4272543506..e10ec29a0b 100644 --- a/sca-cpp/trunk/modules/java/eval.hpp +++ b/sca-cpp/trunk/modules/java/eval.hpp @@ -161,7 +161,7 @@ public: jmethodID iterableCdr; jmethodID iterableIsNil; -} javaRuntime; +}; /** * Return the last exception that occurred in a JVM. @@ -210,6 +210,8 @@ public: } const value operator()(const list<value>& expr) const { + if (isNil(expr)) + return func(expr); const value& op(car(expr)); if (op == "equals") return value(cadr(expr) == this); @@ -495,8 +497,15 @@ const failable<value> evalClass(const JavaRuntime& jr, const value& expr, const // Lookup the Java function named as the expression operand const list<value> func = assoc<value>(car<value>(expr), jc.m); - if (isNil(func)) + if (isNil(func)) { + + // The start, stop, and restart functions are optional + const value fn = car<value>(expr); + if (fn == "start" || fn == "stop" || fn == "restart") + return value(false); + return mkfailure<value>(string("Couldn't find function: ") + car<value>(expr) + " : " + lastException(jr)); + } const jmethodID fid = (jmethodID)(long)(double)cadr(func); // Convert args to Java jvalues |