Author: jsdelfino
Date: Sun Mar 13 19:24:14 2011
New Revision: 1081206
URL: http://svn.apache.org/viewvc?rev=1081206&view=rev
Log:
Fix app link creation and save one HTTP proxy hop.
Modified:
tuscany/sca-cpp/trunk/modules/edit/apps.py
tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp
Modified: tuscany/sca-cpp/trunk/modules/edit/apps.py
URL:
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/edit/apps.py?rev=1081206&r1=1081205&r2=1081206&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/edit/apps.py (original)
+++ tuscany/sca-cpp/trunk/modules/edit/apps.py Sun Mar 13 19:24:14 2011
@@ -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');
Modified: tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp
URL:
http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp?rev=1081206&r1=1081205&r2=1081206&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp (original)
+++ tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp Sun Mar 13 19:24:14 2011
@@ -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;
@@ -301,6 +301,14 @@ const value mkhttpProxy(const ServerConf
}
/**
+ * 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<value(const list<value>&)>(http::proxy(uri, "", "", "",
sc.p));
+}
+
+/**
* Return a component implementation proxy lambda.
*/
class implProxy {
@@ -345,8 +353,10 @@ const value mkrefProxy(const ServerConf&
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
base << sc.wiringServerName << "/references/" << string(scdl::name(comp))
<< "/";
const list<value> rpx(refProxies(sc, scdl::references(comp), str(base)));
- // Convert component proxies to configured proxy lambdas
+ // Convert component properties to configured proxy lambdas
const list<value> ppx(propProxies(scdl::properties(comp)));
// Evaluate the component implementation and convert it to an applicable
lambda function