From 52cd682405f7a052d45d83b66cc75f19316ceffe Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Thu, 10 Nov 2011 02:36:40 +0000 Subject: Enable multiple apps to co-exist under different paths in a single Virtual Host and Internet domain. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1200105 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/trunk/components/constdb/tinycdb.hpp | 14 +- sca-cpp/trunk/components/filedb/filedb.cpp | 3 +- sca-cpp/trunk/components/filedb/filedb.hpp | 14 +- sca-cpp/trunk/components/kvdb/leveldb.hpp | 14 +- sca-cpp/trunk/modules/edit/edit.composite | 7 + .../modules/edit/htdocs/app/cache-manifest.cmf | 1 - sca-cpp/trunk/modules/edit/htdocs/app/index.html | 59 +++-- sca-cpp/trunk/modules/edit/htdocs/clone/index.html | 20 +- .../trunk/modules/edit/htdocs/create/index.html | 5 +- sca-cpp/trunk/modules/edit/htdocs/graph/index.html | 20 +- .../trunk/modules/edit/htdocs/notauth/index.html | 2 +- .../trunk/modules/edit/htdocs/notfound/index.html | 2 +- .../trunk/modules/edit/htdocs/notyet/index.html | 2 +- sca-cpp/trunk/modules/edit/htdocs/oops/index.html | 2 +- sca-cpp/trunk/modules/edit/htdocs/page/index.html | 14 +- sca-cpp/trunk/modules/edit/htdocs/stats/index.html | 15 +- sca-cpp/trunk/modules/edit/htdocs/store/index.html | 15 +- sca-cpp/trunk/modules/edit/ssl-start | 66 ++---- sca-cpp/trunk/modules/edit/start | 51 ++--- sca-cpp/trunk/modules/http/httpd-conf | 6 - sca-cpp/trunk/modules/http/httpd-event-conf | 6 - sca-cpp/trunk/modules/http/httpd-ssl-conf | 4 +- sca-cpp/trunk/modules/http/httpd-worker-conf | 6 - sca-cpp/trunk/modules/js/htdocs/component.js | 4 +- .../modules/server/htdocs/test/json-properties.txt | 2 +- sca-cpp/trunk/modules/server/mod-eval.hpp | 245 ++++++++++++--------- sca-cpp/trunk/modules/server/mod-wiring.cpp | 186 ++++++++-------- sca-cpp/trunk/modules/server/server-conf | 22 -- 28 files changed, 378 insertions(+), 429 deletions(-) (limited to 'sca-cpp') diff --git a/sca-cpp/trunk/components/constdb/tinycdb.hpp b/sca-cpp/trunk/components/constdb/tinycdb.hpp index e26001dc59..514133b0e1 100644 --- a/sca-cpp/trunk/components/constdb/tinycdb.hpp +++ b/sca-cpp/trunk/components/constdb/tinycdb.hpp @@ -89,6 +89,18 @@ const bool free(const buffer&b) { return true; } +/** + * Convert a database name to an absolute path. + */ +const string absdbname(const string& name) { + if (length(name) == 0 || c_str(name)[0] == '/') + return name; + char cwd[512]; + if (getcwd(cwd, sizeof(cwd)) == NULL) + return name; + return string(cwd) + "/" + name; +} + /** * Represents a TinyCDB connection. */ @@ -99,7 +111,7 @@ public: st.st_ino = 0; } - TinyCDB(const string& name) : owner(true), name(name), fd(-1) { + TinyCDB(const string& name) : owner(true), name(absdbname(name)), fd(-1) { debug(name, "tinycdb::tinycdb::name"); st.st_ino = 0; } diff --git a/sca-cpp/trunk/components/filedb/filedb.cpp b/sca-cpp/trunk/components/filedb/filedb.cpp index 473dfea281..5f755de3eb 100644 --- a/sca-cpp/trunk/components/filedb/filedb.cpp +++ b/sca-cpp/trunk/components/filedb/filedb.cpp @@ -103,7 +103,8 @@ const failable start(const list& params) { // Connect to the configured database and table const value dbname = ((lambda)>)car(params))(list()); const value format = ((lambda)>)cadr(params))(list()); - filedb::FileDB& db = *(new (gc_new()) filedb::FileDB(dbname, format)); + + filedb::FileDB& db = *(new (gc_new()) filedb::FileDB(absdbname(dbname), format)); // Return the component implementation lambda function return value(lambda&)>(applyfiledb(db))); diff --git a/sca-cpp/trunk/components/filedb/filedb.hpp b/sca-cpp/trunk/components/filedb/filedb.hpp index d2bc8bd212..993003ce8e 100644 --- a/sca-cpp/trunk/components/filedb/filedb.hpp +++ b/sca-cpp/trunk/components/filedb/filedb.hpp @@ -39,6 +39,18 @@ namespace tuscany { namespace filedb { +/** + * Convert a database name to an absolute path. + */ +const string absdbname(const string& name) { + if (length(name) == 0 || c_str(name)[0] == '/') + return name; + char cwd[512]; + if (getcwd(cwd, sizeof(cwd)) == NULL) + return name; + return string(cwd) + "/" + name; +} + /** * Represents a FileDB connection. */ @@ -48,7 +60,7 @@ public: debug("filedb::filedb"); } - FileDB(const string& name, const string& format) : owner(true), name(name), format(format) { + FileDB(const string& name, const string& format) : owner(true), name(absdbname(name)), format(format) { debug(name, "filedb::filedb::name"); debug(format, "filedb::filedb::format"); } diff --git a/sca-cpp/trunk/components/kvdb/leveldb.hpp b/sca-cpp/trunk/components/kvdb/leveldb.hpp index 893166c361..96e404a6e4 100644 --- a/sca-cpp/trunk/components/kvdb/leveldb.hpp +++ b/sca-cpp/trunk/components/kvdb/leveldb.hpp @@ -89,6 +89,18 @@ const bool free(const buffer&b) { return true; } +/** + * Convert a database name to an absolute path. + */ +const string absdbname(const string& name) { + if (length(name) == 0 || c_str(name)[0] == '/') + return name; + char cwd[512]; + if (getcwd(cwd, sizeof(cwd)) == NULL) + return name; + return string(cwd) + "/" + name; +} + /** * Represents a LevelDB connection. */ @@ -99,7 +111,7 @@ public: st.st_ino = 0; } - LevelDB(const string& name) : owner(true), name(name), fd(-1) { + LevelDB(const string& name) : owner(true), name(absdbname(name)), fd(-1) { debug(name, "leveldb::leveldb::name"); st.st_ino = 0; } diff --git a/sca-cpp/trunk/modules/edit/edit.composite b/sca-cpp/trunk/modules/edit/edit.composite index 85ae67d8b4..0e348fd105 100644 --- a/sca-cpp/trunk/modules/edit/edit.composite +++ b/sca-cpp/trunk/modules/edit/edit.composite @@ -48,6 +48,13 @@ + + + + + + + diff --git a/sca-cpp/trunk/modules/edit/htdocs/app/cache-manifest.cmf b/sca-cpp/trunk/modules/edit/htdocs/app/cache-manifest.cmf index 0be3e662d7..b478c7cd3d 100644 --- a/sca-cpp/trunk/modules/edit/htdocs/app/cache-manifest.cmf +++ b/sca-cpp/trunk/modules/edit/htdocs/app/cache-manifest.cmf @@ -3,7 +3,6 @@ CACHE MANIFEST # Version 5 # App resources -/ /favicon.ico /notauth/ /notfound/ diff --git a/sca-cpp/trunk/modules/edit/htdocs/app/index.html b/sca-cpp/trunk/modules/edit/htdocs/app/index.html index 773d2adf90..97ea0a3f79 100644 --- a/sca-cpp/trunk/modules/edit/htdocs/app/index.html +++ b/sca-cpp/trunk/modules/edit/htdocs/app/index.html @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> - + @@ -87,8 +87,13 @@ $('headdiv').appendChild(ui.declareScript(appcache.get('/headconfig-min.js')));