From ea149af7638e1edb2f652789ddf87cf111747b98 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Sun, 13 Mar 2011 19:24:14 +0000 Subject: Fix app link creation and save one HTTP proxy hop. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1081206 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/trunk/modules/edit/apps.py | 1 + sca-cpp/trunk/modules/server/mod-eval.hpp | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'sca-cpp') diff --git a/sca-cpp/trunk/modules/edit/apps.py b/sca-cpp/trunk/modules/edit/apps.py index 2980a9e5e3..29b470255c 100644 --- a/sca-cpp/trunk/modules/edit/apps.py +++ b/sca-cpp/trunk/modules/edit/apps.py @@ -29,6 +29,7 @@ def appid(id): def mkapplink(id): try: os.symlink('../../../../../nuvem/nuvem-parallel/nuvem', 'apps/' + car(id) + '/nuvem') + os.symlink('../../../../components', 'apps/' + car(id) + '/lib') os.mkdir('apps/' + car(id) + '/htdocs') os.symlink('../../../htdocs/login', 'apps/' + car(id) + '/htdocs/login'); os.symlink('../../../htdocs/logout', 'apps/' + car(id) + '/htdocs/logout'); diff --git a/sca-cpp/trunk/modules/server/mod-eval.hpp b/sca-cpp/trunk/modules/server/mod-eval.hpp index 634bc5999f..a389c713d7 100644 --- a/sca-cpp/trunk/modules/server/mod-eval.hpp +++ b/sca-cpp/trunk/modules/server/mod-eval.hpp @@ -292,7 +292,7 @@ int translate(request_rec *r) { } /** - * Make an HTTP proxy lambda. + * Make an HTTP proxy lambda to a component reference. */ const value mkhttpProxy(const ServerConf& sc, const string& ref, const string& base) { const string uri = base + ref; @@ -300,6 +300,14 @@ const value mkhttpProxy(const ServerConf& sc, const string& ref, const string& b return lambda&)>(http::proxy(uri, sc.ca, sc.cert, sc.key, sc.p)); } +/** + * Make an HTTP proxy lambda to an absolute URI + */ +const value mkhttpProxy(const ServerConf& sc, const string& uri) { + debug(uri, "modeval::mkhttpProxy::uri"); + return lambda&)>(http::proxy(uri, "", "", "", sc.p)); +} + /** * Return a component implementation proxy lambda. */ @@ -345,8 +353,10 @@ const value mkrefProxy(const ServerConf& sc, const value& ref, const string& bas debug(target, "modeval::mkrefProxy::target"); // Use an HTTP proxy or an internal proxy to the component implementation - if (isNil(target) || httpd::isAbsolute(target)) + if (isNil(target)) return mkhttpProxy(sc, scdl::name(ref), base); + if (httpd::isAbsolute(target)) + return mkhttpProxy(sc, target); return mkimplProxy(sc, car(pathValues(target))); } @@ -507,7 +517,7 @@ const value evalComponent(ServerConf& sc, const value& comp) { base << sc.wiringServerName << "/references/" << string(scdl::name(comp)) << "/"; const list rpx(refProxies(sc, scdl::references(comp), str(base))); - // Convert component proxies to configured proxy lambdas + // Convert component properties to configured proxy lambdas const list ppx(propProxies(scdl::properties(comp))); // Evaluate the component implementation and convert it to an applicable lambda function -- cgit v1.2.3