summaryrefslogtreecommitdiffstats
path: root/sca-cpp
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2011-12-21 18:31:55 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2011-12-21 18:31:55 +0000
commitc9dc8128f14174075c170e32ea7d80198f648d9c (patch)
tree01d6da58bef89c0798c36933ae430848e20b2060 /sca-cpp
parent0093665342a4d69bc017250f8494e2fd6498b73e (diff)
Fix calculation of composite path when configured with an absolute path.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1221832 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp')
-rw-r--r--sca-cpp/trunk/modules/scdl/scdl.hpp7
-rw-r--r--sca-cpp/trunk/modules/server/mod-eval.hpp2
-rw-r--r--sca-cpp/trunk/modules/server/mod-wiring.cpp2
3 files changed, 9 insertions, 2 deletions
diff --git a/sca-cpp/trunk/modules/scdl/scdl.hpp b/sca-cpp/trunk/modules/scdl/scdl.hpp
index 7f6e95393e..7cf43e3b14 100644
--- a/sca-cpp/trunk/modules/scdl/scdl.hpp
+++ b/sca-cpp/trunk/modules/scdl/scdl.hpp
@@ -208,6 +208,13 @@ const value propertyValue(const value& l) {
return elementValue(l);
}
+/**
+ * Returns the absolute path of a resource in a contribution.
+ */
+const string resourcePath(const string& contrib, const string& path) {
+ return c_str(path)[0] == '/'? path : contrib + path;
+}
+
}
}
diff --git a/sca-cpp/trunk/modules/server/mod-eval.hpp b/sca-cpp/trunk/modules/server/mod-eval.hpp
index 31e850d18c..2de2f3d6fe 100644
--- a/sca-cpp/trunk/modules/server/mod-eval.hpp
+++ b/sca-cpp/trunk/modules/server/mod-eval.hpp
@@ -741,7 +741,7 @@ const failable<bool> confComponents(ServerConf& sc) {
if (sc.key != "") debug(sc.key, "modeval::confComponents::sslKey");
// Read the components and get their implementation lambda functions
- const failable<list<value> > comps = readComponents(sc.contributionPath + sc.compositeName);
+ const failable<list<value> > comps = readComponents(scdl::resourcePath(sc.contributionPath, sc.compositeName));
if (!hasContent(comps))
return mkfailure<bool>(reason(comps));
sc.implementations = componentToImplementationAssoc(sc, content(comps));
diff --git a/sca-cpp/trunk/modules/server/mod-wiring.cpp b/sca-cpp/trunk/modules/server/mod-wiring.cpp
index c61e90a6a1..c2380be6a3 100644
--- a/sca-cpp/trunk/modules/server/mod-wiring.cpp
+++ b/sca-cpp/trunk/modules/server/mod-wiring.cpp
@@ -265,7 +265,7 @@ const bool confComponents(ServerConf& sc) {
// Read the component configuration and store the references and service URIs
// in trees for fast retrieval later
- const failable<list<value> > comps = readComponents(sc.contributionPath + sc.compositeName);
+ const failable<list<value> > comps = readComponents(scdl::resourcePath(sc.contributionPath, sc.compositeName));
if (!hasContent(comps))
return true;
const list<value> refs = componentReferenceToTargetAssoc(content(comps));