From bb4b895471e3165c71bdfd1fdae5e1ffde8f1696 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Sun, 7 Feb 2010 00:36:25 +0000 Subject: 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 --- sca-cpp/trunk/modules/java/eval.hpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'sca-cpp/trunk/modules/java/eval.hpp') 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& 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 evalClass(const JavaRuntime& jr, const value& expr, const // Lookup the Java function named as the expression operand const list func = assoc(car(expr), jc.m); - if (isNil(func)) + if (isNil(func)) { + + // The start, stop, and restart functions are optional + const value fn = car(expr); + if (fn == "start" || fn == "stop" || fn == "restart") + return value(false); + return mkfailure(string("Couldn't find function: ") + car(expr) + " : " + lastException(jr)); + } const jmethodID fid = (jmethodID)(long)(double)cadr(func); // Convert args to Java jvalues -- cgit v1.2.3