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/mod-java.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 'sca-cpp/trunk/modules/java/mod-java.hpp')
-rw-r--r-- | sca-cpp/trunk/modules/java/mod-java.hpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sca-cpp/trunk/modules/java/mod-java.hpp b/sca-cpp/trunk/modules/java/mod-java.hpp index a2235fc17f..ccb6d9262b 100644 --- a/sca-cpp/trunk/modules/java/mod-java.hpp +++ b/sca-cpp/trunk/modules/java/mod-java.hpp @@ -34,24 +34,32 @@ #include "value.hpp" #include "monad.hpp" #include "eval.hpp" -#include "../http/httpd.hpp" +#include "../server/mod-eval.hpp" namespace tuscany { namespace server { namespace modjava { /** + * Return the Java runtime configured in a server. + */ +java::JavaRuntime& javaRuntime(modeval::ServerConf sc) { + return *(java::JavaRuntime*)sc.moduleConf; +} + +/** * Apply a Java component implementation function. */ struct applyImplementation { java::JavaClass impl; const list<value> px; - applyImplementation(const java::JavaClass& impl, const list<value>& px) : impl(impl), px(px) { + java::JavaRuntime& jr; + applyImplementation(const java::JavaClass& impl, const list<value>& px, java::JavaRuntime& jr) : impl(impl), px(px), jr(jr) { } const value operator()(const list<value>& params) const { const value expr = append<value>(params, px); debug(expr, "modeval::java::applyImplementation::input"); - const failable<value> val = java::evalClass(java::javaRuntime, expr, impl); + const failable<value> val = java::evalClass(jr, expr, impl); debug(val, "modeval::java::applyImplementation::result"); if (!hasContent(val)) return mklist<value>(value(), reason(val)); @@ -63,12 +71,12 @@ struct applyImplementation { * Evaluate a Java component implementation and convert it to an applicable * lambda function. */ -const failable<lambda<value(const list<value>&)> > evalImplementation(const string& path, const value& impl, const list<value>& px) { +const failable<lambda<value(const list<value>&)> > evalImplementation(const string& path, const value& impl, const list<value>& px, modeval::ServerConf& sc) { const string cn(attributeValue("class", impl)); - const failable<java::JavaClass> jc = java::readClass(java::javaRuntime, path, cn); + const failable<java::JavaClass> jc = java::readClass(javaRuntime(sc), path, cn); if (!hasContent(jc)) return mkfailure<lambda<value(const list<value>&)> >(reason(jc)); - return lambda<value(const list<value>&)>(applyImplementation(content(jc), px)); + return lambda<value(const list<value>&)>(applyImplementation(content(jc), px, javaRuntime(sc))); } } |