Upgrade to SpiderMonkey 1.8.5.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1156555 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ab81b661aa
commit
cce27a3d75
15 changed files with 183 additions and 165 deletions
|
|
@ -106,8 +106,8 @@ curl-7-19-5
|
||||||
libcurl4-openssl-7.19.5
|
libcurl4-openssl-7.19.5
|
||||||
|
|
||||||
JSON:
|
JSON:
|
||||||
Mozilla TraceMonkey libmozjs (https://wiki.mozilla.org/JavaScript:TraceMonkey)
|
Mozilla SpiderMonkey libmozjs 1.8.5
|
||||||
also included in xulrunner-1.9.2
|
(https://developer.mozilla.org/en/SpiderMonkey)
|
||||||
|
|
||||||
Key/value store:
|
Key/value store:
|
||||||
tinycdb-0.77 (http://www.corpit.ru/mjt/tinycdb.html)
|
tinycdb-0.77 (http://www.corpit.ru/mjt/tinycdb.html)
|
||||||
|
|
@ -222,8 +222,8 @@ dependencies installed under $HOME:
|
||||||
--with-memcached=$HOME/memcached-1.4.5-bin \
|
--with-memcached=$HOME/memcached-1.4.5-bin \
|
||||||
--with-tinycdb=$HOME/tinycdb-0.77-bin \
|
--with-tinycdb=$HOME/tinycdb-0.77-bin \
|
||||||
--with-curl=$HOME/curl-7.19.5-bin --with-libxml2=/usr \
|
--with-curl=$HOME/curl-7.19.5-bin --with-libxml2=/usr \
|
||||||
--with-js-include=/usr/include/xulrunner-1.9.2 \
|
--with-js-include=$HOME/js-1.8.5-bin/include \
|
||||||
--with-js-lib=/usr/lib/xulrunner-1.9.2 \
|
--with-js-lib=$HOME/js-1.8.5-bin/lib \
|
||||||
--enable-libcloud \
|
--enable-libcloud \
|
||||||
--with-libcloud=$HOME/libcloud-0.3.1-bin \
|
--with-libcloud=$HOME/libcloud-0.3.1-bin \
|
||||||
--enable-threads \
|
--enable-threads \
|
||||||
|
|
|
||||||
|
|
@ -43,18 +43,6 @@ if [ "$?" != "0" ]; then
|
||||||
fi
|
fi
|
||||||
cd $build
|
cd $build
|
||||||
|
|
||||||
# Install autoconf-2.13
|
|
||||||
curl -OL http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz
|
|
||||||
tar xzf autoconf-2.13.tar.gz
|
|
||||||
cd autoconf-2.13
|
|
||||||
./configure --prefix=$build/autoconf-2.13-bin
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
if [ "$?" != "0" ]; then
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
cd $build
|
|
||||||
|
|
||||||
# Build Libexpat
|
# Build Libexpat
|
||||||
curl -OL http://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz/download
|
curl -OL http://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz/download
|
||||||
mv download expat-2.0.1.tar.gz
|
mv download expat-2.0.1.tar.gz
|
||||||
|
|
@ -161,16 +149,14 @@ if [ "$?" != "0" ]; then
|
||||||
fi
|
fi
|
||||||
cd $build
|
cd $build
|
||||||
|
|
||||||
# Build TraceMonkey
|
# Build SpiderMonkey
|
||||||
curl -OL http://hg.mozilla.org/tracemonkey/archive/e4364736e170.tar.gz
|
curl -OL http://ftp.mozilla.org/pub/mozilla.org/js/js-1.8.5.tar.gz
|
||||||
mv e4364736e170.tar.gz tracemonkey-e4364736e170.tar.gz
|
tar xzf js185-1.0.0.tar.gz
|
||||||
tar xzf tracemonkey-e4364736e170.tar.gz
|
cd js-1.8.5/js/src
|
||||||
cd tracemonkey-e4364736e170/js/src
|
./configure --prefix=$build/js-1.8.5-bin
|
||||||
$build/autoconf-2.13-bin/bin/autoconf
|
|
||||||
./configure --prefix=$build/tracemonkey-bin
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
install_name_tool -id $build/tracemonkey-bin/lib/libmozjs.dylib $build/tracemonkey-bin/lib/libmozjs.dylib
|
ln -s $build/js-1.8.5-bin/lib/libmozjs185.dylib $build/js-1.8.5-bin/lib/libmozjs.dylib
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,17 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define XP_UNIX
|
#define XP_UNIX
|
||||||
|
#ifdef WANT_MAINTAINER_MODE
|
||||||
|
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||||
|
#pragma GCC diagnostic ignored "-Wsign-compare"
|
||||||
|
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
||||||
|
#endif
|
||||||
#include <jsapi.h>
|
#include <jsapi.h>
|
||||||
|
#ifdef WANT_MAINTAINER_MODE
|
||||||
|
#pragma GCC diagnostic warning "-Wunused-parameter"
|
||||||
|
#pragma GCC diagnostic warning "-Wsign-compare"
|
||||||
|
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
||||||
|
#endif
|
||||||
#include "string.hpp"
|
#include "string.hpp"
|
||||||
#include "list.hpp"
|
#include "list.hpp"
|
||||||
#include "value.hpp"
|
#include "value.hpp"
|
||||||
|
|
@ -85,8 +95,12 @@ private:
|
||||||
::JSRuntime* rt;
|
::JSRuntime* rt;
|
||||||
} jsRuntime;
|
} jsRuntime;
|
||||||
|
|
||||||
JSClass jsGlobalClass = { "global", JSCLASS_GLOBAL_FLAGS, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
|
JSClass jsGlobalClass = { "global", JSCLASS_GLOBAL_FLAGS,
|
||||||
JS_PropertyStub, JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub, JSCLASS_NO_OPTIONAL_MEMBERS};
|
JS_PropertyStub, JS_PropertyStub,
|
||||||
|
JS_PropertyStub, JS_StrictPropertyStub,
|
||||||
|
JS_EnumerateStub, JS_ResolveStub,
|
||||||
|
JS_ConvertStub, JS_FinalizeStub,
|
||||||
|
JSCLASS_NO_OPTIONAL_MEMBERS };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a JavaScript context. Create one per thread.
|
* Represents a JavaScript context. Create one per thread.
|
||||||
|
|
@ -99,12 +113,12 @@ public:
|
||||||
cx = JS_NewContext(jsRuntime, 8192);
|
cx = JS_NewContext(jsRuntime, 8192);
|
||||||
if(cx == NULL)
|
if(cx == NULL)
|
||||||
return;
|
return;
|
||||||
JS_SetOptions(cx, JSOPTION_VAROBJFIX);
|
JS_SetOptions(cx, JSOPTION_VAROBJFIX | JSOPTION_JIT | JSOPTION_METHODJIT);
|
||||||
JS_SetVersion(cx, JSVERSION_DEFAULT);
|
JS_SetVersion(cx, JSVERSION_LATEST);
|
||||||
JS_SetErrorReporter(cx, reportError);
|
JS_SetErrorReporter(cx, reportError);
|
||||||
|
|
||||||
// Create global JS object
|
// Create global JS object
|
||||||
global = JS_NewObject(cx, &jsGlobalClass, NULL, NULL);
|
global = JS_NewCompartmentAndGlobalObject(cx, &jsGlobalClass, NULL);
|
||||||
if(global == NULL) {
|
if(global == NULL) {
|
||||||
cleanup();
|
cleanup();
|
||||||
return;
|
return;
|
||||||
|
|
@ -167,17 +181,22 @@ const list<value> jsPropertiesToValues(const list<value>& propertiesSoFar, JSObj
|
||||||
const value jsValToValue(const jsval& jsv, const js::JSContext& cx);
|
const value jsValToValue(const jsval& jsv, const js::JSContext& cx);
|
||||||
|
|
||||||
jsid id;
|
jsid id;
|
||||||
if(!JS_NextProperty(cx, i, &id) || id == JSVAL_VOID)
|
if(!JS_NextProperty(cx, i, &id))
|
||||||
return propertiesSoFar;
|
return propertiesSoFar;
|
||||||
|
jsval idv;
|
||||||
|
JS_IdToValue(cx, id, &idv);
|
||||||
|
if (idv == JSVAL_VOID)
|
||||||
|
return propertiesSoFar;
|
||||||
|
|
||||||
jsval jsv;
|
jsval jsv;
|
||||||
if(!JS_GetPropertyById(cx, o, id, &jsv))
|
if(!JS_GetPropertyById(cx, o, id, &jsv))
|
||||||
return propertiesSoFar;
|
return propertiesSoFar;
|
||||||
const value val = jsValToValue(jsv, cx);
|
const value val = jsValToValue(jsv, cx);
|
||||||
|
|
||||||
jsval idv;
|
|
||||||
JS_IdToValue(cx, id, &idv);
|
|
||||||
if(JSVAL_IS_STRING(idv)) {
|
if(JSVAL_IS_STRING(idv)) {
|
||||||
const string name = JS_GetStringBytes(JSVAL_TO_STRING(idv));
|
char* cname = JS_EncodeString(cx, JSVAL_TO_STRING(idv));
|
||||||
|
const string name = cname;
|
||||||
|
JS_free(cx, cname);
|
||||||
if (isNil(val) && !isList(val))
|
if (isNil(val) && !isList(val))
|
||||||
return jsPropertiesToValues(cons<value> (mklist<value> (element, c_str(name), val), propertiesSoFar), o, i, cx);
|
return jsPropertiesToValues(cons<value> (mklist<value> (element, c_str(name), val), propertiesSoFar), o, i, cx);
|
||||||
//return jsPropertiesToValues(propertiesSoFar, o, i, cx);
|
//return jsPropertiesToValues(propertiesSoFar, o, i, cx);
|
||||||
|
|
@ -196,7 +215,10 @@ const list<value> jsPropertiesToValues(const list<value>& propertiesSoFar, JSObj
|
||||||
const value jsValToValue(const jsval& jsv, const js::JSContext& cx) {
|
const value jsValToValue(const jsval& jsv, const js::JSContext& cx) {
|
||||||
switch(JS_TypeOfValue(cx, jsv)) {
|
switch(JS_TypeOfValue(cx, jsv)) {
|
||||||
case JSTYPE_STRING: {
|
case JSTYPE_STRING: {
|
||||||
return value(string(JS_GetStringBytes(JSVAL_TO_STRING(jsv))));
|
char* cvalue = JS_EncodeString(cx, JSVAL_TO_STRING(jsv));
|
||||||
|
const string svalue = string(cvalue);
|
||||||
|
JS_free(cx, cvalue);
|
||||||
|
return value(svalue);
|
||||||
}
|
}
|
||||||
case JSTYPE_BOOLEAN: {
|
case JSTYPE_BOOLEAN: {
|
||||||
return value((bool)JSVAL_TO_BOOLEAN(jsv));
|
return value((bool)JSVAL_TO_BOOLEAN(jsv));
|
||||||
|
|
@ -251,7 +273,10 @@ const jsval valueToJSVal(const value& val, const js::JSContext& cx) {
|
||||||
return BOOLEAN_TO_JSVAL((bool)val);
|
return BOOLEAN_TO_JSVAL((bool)val);
|
||||||
}
|
}
|
||||||
case value::Number: {
|
case value::Number: {
|
||||||
return DOUBLE_TO_JSVAL(JS_NewDouble(cx, (double)val));
|
jsval jsv;
|
||||||
|
if (!JS_NewNumberValue(cx, (jsdouble)val, &jsv))
|
||||||
|
return DOUBLE_TO_JSVAL(0);
|
||||||
|
return jsv;
|
||||||
}
|
}
|
||||||
case value::List: {
|
case value::List: {
|
||||||
if (isJSArray(val))
|
if (isJSArray(val))
|
||||||
|
|
|
||||||
|
|
@ -37,31 +37,32 @@ ostream* jsonWriter(const string& s, ostream* os) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const string jscustomer("{\n"
|
const string jscustomer("{\n"
|
||||||
" \"customer\":{\n"
|
" \"customer\": {\n"
|
||||||
" \"@name\":\"jdoe\",\n"
|
" \"@name\": \"jdoe\",\n"
|
||||||
" \"address\":{\n"
|
" \"address\": {\n"
|
||||||
" \"@city\":\"san francisco\",\n"
|
" \"@city\": \"san francisco\",\n"
|
||||||
" \"@state\":\"ca\"\n"
|
" \"@state\": \"ca\"\n"
|
||||||
" },\n"
|
" },\n"
|
||||||
" \"account\":{\n"
|
" \"account\": {\n"
|
||||||
" \"id\":\"1234\",\n"
|
" \"id\": \"1234\",\n"
|
||||||
" \"@balance\":1000\n"
|
" \"@balance\": 1000\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
const string jsphones("{\n"
|
const string jsphones("{\n"
|
||||||
" \"phones\":[\"408-1234\",\n"
|
" \"phones\": [\n"
|
||||||
|
" \"408-1234\",\n"
|
||||||
" \"650-1234\"\n"
|
" \"650-1234\"\n"
|
||||||
" ],\n"
|
" ],\n"
|
||||||
" \"lastName\":\"test\\u0009tab\",\n"
|
" \"lastName\": \"test\\u0009tab\",\n"
|
||||||
" \"@firstName\":\"test1\"\n"
|
" \"@firstName\": \"test1\"\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
const string jsecho("{\n"
|
const string jsecho("{\n"
|
||||||
" \"ns1:echoString\":{\n"
|
" \"ns1:echoString\": {\n"
|
||||||
" \"@xmlns:ns1\":\"http://ws.apache.org/axis2/services/echo\",\n"
|
" \"@xmlns:ns1\": \"http://ws.apache.org/axis2/services/echo\",\n"
|
||||||
" \"text\":\"Hello World!\"\n"
|
" \"text\": \"Hello World!\"\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
|
|
@ -110,81 +111,88 @@ bool testJSON() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const string jsitem("{\n"
|
const string jsitem("{\n"
|
||||||
" \"id\":3,\n"
|
" \"id\": 3,\n"
|
||||||
" \"result\":[{\n"
|
" \"result\": [\n"
|
||||||
" \"price\":\"$2.99\",\n"
|
" {\n"
|
||||||
" \"name\":\"Apple\"\n"
|
" \"price\": \"$2.99\",\n"
|
||||||
|
" \"name\": \"Apple\"\n"
|
||||||
" },\n"
|
" },\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"price\":\"$3.55\",\n"
|
" \"price\": \"$3.55\",\n"
|
||||||
" \"name\":\"Orange\"\n"
|
" \"name\": \"Orange\"\n"
|
||||||
" },\n"
|
" },\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"price\":\"$1.55\",\n"
|
" \"price\": \"$1.55\",\n"
|
||||||
" \"name\":\"Pear\"\n"
|
" \"name\": \"Pear\"\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
const string jsresult("{\n"
|
const string jsresult("{\n"
|
||||||
" \"id\":1,\n"
|
" \"id\": 1,\n"
|
||||||
" \"result\":[\"Service.get\",\n"
|
" \"result\": [\n"
|
||||||
|
" \"Service.get\",\n"
|
||||||
" \"Service.getTotal\"\n"
|
" \"Service.getTotal\"\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
const string jsfeed("{\n"
|
const string jsfeed("{\n"
|
||||||
" \"id\":1,\n"
|
" \"id\": 1,\n"
|
||||||
" \"result\":[\"Sample Feed\",\n"
|
" \"result\": [\n"
|
||||||
|
" \"Sample Feed\",\n"
|
||||||
" \"123456789\",\n"
|
" \"123456789\",\n"
|
||||||
" [\"Item\",\n"
|
" [\n"
|
||||||
|
" \"Item\",\n"
|
||||||
" \"111\",\n"
|
" \"111\",\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"name\":\"Apple\",\n"
|
" \"name\": \"Apple\",\n"
|
||||||
" \"currencyCode\":\"USD\",\n"
|
" \"currencyCode\": \"USD\",\n"
|
||||||
" \"currencySymbol\":\"$\",\n"
|
" \"currencySymbol\": \"$\",\n"
|
||||||
" \"price\":2.99\n"
|
" \"price\": 2.99\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" ],\n"
|
" ],\n"
|
||||||
" [\"Item\",\n"
|
" [\n"
|
||||||
|
" \"Item\",\n"
|
||||||
" \"222\",\n"
|
" \"222\",\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"name\":\"Orange\",\n"
|
" \"name\": \"Orange\",\n"
|
||||||
" \"currencyCode\":\"USD\",\n"
|
" \"currencyCode\": \"USD\",\n"
|
||||||
" \"currencySymbol\":\"$\",\n"
|
" \"currencySymbol\": \"$\",\n"
|
||||||
" \"price\":3.55\n"
|
" \"price\": 3.55\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" ],\n"
|
" ],\n"
|
||||||
" [\"Item\",\n"
|
" [\n"
|
||||||
|
" \"Item\",\n"
|
||||||
" \"333\",\n"
|
" \"333\",\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" \"name\":\"Pear\",\n"
|
" \"name\": \"Pear\",\n"
|
||||||
" \"currencyCode\":\"USD\",\n"
|
" \"currencyCode\": \"USD\",\n"
|
||||||
" \"currencySymbol\":\"$\",\n"
|
" \"currencySymbol\": \"$\",\n"
|
||||||
" \"price\":1.55\n"
|
" \"price\": 1.55\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
const string jsechoreq("{\n"
|
const string jsechoreq("{\n"
|
||||||
" \"id\":1,\n"
|
" \"id\": 1,\n"
|
||||||
" \"method\":\"echo\",\n"
|
" \"method\": \"echo\",\n"
|
||||||
" \"params\":[{\n"
|
" \"params\": [\n"
|
||||||
" \"ns1:echoString\":{\n"
|
" {\n"
|
||||||
" \"@xmlns:ns1\":\"http://ws.apache.org/axis2/services/echo\",\n"
|
" \"ns1:echoString\": {\n"
|
||||||
" \"text\":\"Hello World!\"\n"
|
" \"@xmlns:ns1\": \"http://ws.apache.org/axis2/services/echo\",\n"
|
||||||
|
" \"text\": \"Hello World!\"\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" ]\n"
|
" ]\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
||||||
const string jsechores("{\n"
|
const string jsechores("{\n"
|
||||||
" \"id\":1,\n"
|
" \"id\": 1,\n"
|
||||||
" \"result\":{\n"
|
" \"result\": {\n"
|
||||||
" \"ns1:echoString\":{\n"
|
" \"ns1:echoString\": {\n"
|
||||||
" \"@xmlns:ns1\":\"http://ws.apache.org/axis2/c/samples\",\n"
|
" \"@xmlns:ns1\": \"http://ws.apache.org/axis2/c/samples\",\n"
|
||||||
" \"text\":\"Hello World!\"\n"
|
" \"text\": \"Hello World!\"\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"}");
|
"}");
|
||||||
|
|
@ -200,7 +208,7 @@ bool testJSONRPC() {
|
||||||
assert(assoc<value>("params", v) == mklist<value>("params", list<value>()));
|
assert(assoc<value>("params", v) == mklist<value>("params", list<value>()));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const string i2 = "{\"id\":3,\"result\":{\"0\":{\"price\":\"$2.99\",\"name\":\"Apple\"},\"1\":{\"price\":\"$3.55\",\"name\":\"Orange\"},\"2\":{\"price\":\"$1.55\",\"name\":\"Pear\"}}}";
|
const string i2 = "{\"id\": 3,\"result\": {\"0\": {\"price\": \"$2.99\",\"name\": \"Apple\"},\"1\": {\"price\": \"$3.55\",\"name\": \"Orange\"},\"2\": {\"price\": \"$1.55\",\"name\": \"Pear\"}}}";
|
||||||
const list<value> e = content(readJSON(mklist(jsitem), cx));
|
const list<value> e = content(readJSON(mklist(jsitem), cx));
|
||||||
const list<value> e2 = content(readJSON(mklist(i2), cx));
|
const list<value> e2 = content(readJSON(mklist(i2), cx));
|
||||||
assert(e == e2);
|
assert(e == e2);
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ failable<bool> consume(JSONParser* parser, const list<string>& ilist, const js::
|
||||||
if (isNil(ilist))
|
if (isNil(ilist))
|
||||||
return true;
|
return true;
|
||||||
JSString* jstr = JS_NewStringCopyZ(cx, c_str(car(ilist)));
|
JSString* jstr = JS_NewStringCopyZ(cx, c_str(car(ilist)));
|
||||||
if(!JS_ConsumeJSONText(cx, parser, JS_GetStringChars(jstr), (uint32)JS_GetStringLength(jstr)))
|
if(!JS_ConsumeJSONText(cx, parser, JS_GetStringCharsZ(cx, jstr), (uint32)JS_GetStringLength(jstr)))
|
||||||
return mkfailure<bool>("JS_ConsumeJSONText failed");
|
return mkfailure<bool>("JS_ConsumeJSONText failed");
|
||||||
return consume(parser, cdr(ilist), cx);
|
return consume(parser, cdr(ilist), cx);
|
||||||
}
|
}
|
||||||
|
|
@ -95,7 +95,10 @@ public:
|
||||||
template<typename R> JSBool writeCallback(const jschar *buf, uint32 len, void *data) {
|
template<typename R> JSBool writeCallback(const jschar *buf, uint32 len, void *data) {
|
||||||
WriteContext<R>& wcx = *(static_cast<WriteContext<R>*> (data));
|
WriteContext<R>& wcx = *(static_cast<WriteContext<R>*> (data));
|
||||||
JSString* jstr = JS_NewUCStringCopyN(wcx.cx, buf, len);
|
JSString* jstr = JS_NewUCStringCopyN(wcx.cx, buf, len);
|
||||||
wcx.accum = wcx.reduce(string(JS_GetStringBytes(jstr), JS_GetStringLength(jstr)), wcx.accum);
|
char* cstr = JS_EncodeString(wcx.cx, jstr);
|
||||||
|
const string str(cstr, JS_GetStringLength(jstr));
|
||||||
|
JS_free(wcx.cx, cstr);
|
||||||
|
wcx.accum = wcx.reduce(str, wcx.accum);
|
||||||
return JS_TRUE;
|
return JS_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
{
|
{
|
||||||
"id":"1",
|
"id": "1",
|
||||||
"result":{
|
"result": {
|
||||||
"host":"localhost",
|
"host": "localhost",
|
||||||
"path":["components",
|
"path": [
|
||||||
|
"components",
|
||||||
"property-test"
|
"property-test"
|
||||||
],
|
],
|
||||||
"query":{
|
"query": {
|
||||||
"id":"1",
|
"id": "1",
|
||||||
"method":"print"
|
"method": "print"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1 +1,7 @@
|
||||||
{"id":1,"method":"echo","params":["Hello"]}
|
{
|
||||||
|
"id": 1,
|
||||||
|
"method": "echo",
|
||||||
|
"params": [
|
||||||
|
"Hello"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"id":1,
|
"id": 1,
|
||||||
"result":"Hello"
|
"result": "Hello"
|
||||||
}
|
}
|
||||||
|
|
@ -1 +1,6 @@
|
||||||
{"id": 1, "method": "items", "params": []}
|
{
|
||||||
|
"id": 1,
|
||||||
|
"method": "items",
|
||||||
|
"params": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,23 @@
|
||||||
{
|
{
|
||||||
"id":1,
|
"id": 1,
|
||||||
"result":[{
|
"result": [
|
||||||
"name":"Apple",
|
{
|
||||||
"currencyCode":"USD",
|
"name": "Apple",
|
||||||
"currencySymbol":"$",
|
"currencyCode": "USD",
|
||||||
"price":2.99
|
"currencySymbol": "$",
|
||||||
|
"price": 2.99
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Orange",
|
"name": "Orange",
|
||||||
"currencyCode":"USD",
|
"currencyCode": "USD",
|
||||||
"currencySymbol":"$",
|
"currencySymbol": "$",
|
||||||
"price":3.55
|
"price": 3.55
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Pear",
|
"name": "Pear",
|
||||||
"currencyCode":"USD",
|
"currencyCode": "USD",
|
||||||
"currencySymbol":"$",
|
"currencySymbol": "$",
|
||||||
"price":1.55
|
"price": 1.55
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -1,22 +1,23 @@
|
||||||
{
|
{
|
||||||
"id":1,
|
"id": 1,
|
||||||
"result":[{
|
"result": [
|
||||||
"name":"Mango",
|
{
|
||||||
"currencyCode":"USD",
|
"name": "Mango",
|
||||||
"currencySymbol":"$",
|
"currencyCode": "USD",
|
||||||
"price":2.99
|
"currencySymbol": "$",
|
||||||
|
"price": 2.99
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Passion",
|
"name": "Passion",
|
||||||
"currencyCode":"USD",
|
"currencyCode": "USD",
|
||||||
"currencySymbol":"$",
|
"currencySymbol": "$",
|
||||||
"price":3.55
|
"price": 3.55
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name":"Kiwi",
|
"name": "Kiwi",
|
||||||
"currencyCode":"USD",
|
"currencyCode": "USD",
|
||||||
"currencySymbol":"$",
|
"currencySymbol": "$",
|
||||||
"price":1.55
|
"price": 1.55
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -48,11 +48,6 @@ sudo apt-get -y install libevent-dev
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
# Required by TraceMonkey
|
|
||||||
sudo apt-get -y install autoconf2.13 zip
|
|
||||||
if [ "$?" != "0" ]; then
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
# Required by Apache Qpid/C++
|
# Required by Apache Qpid/C++
|
||||||
sudo apt-get -y install libboost-dev libboost-program-options-dev libboost-filesystem-dev uuid-dev
|
sudo apt-get -y install libboost-dev libboost-program-options-dev libboost-filesystem-dev uuid-dev
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
|
|
|
||||||
|
|
@ -48,11 +48,6 @@ sudo apt-get -y install libevent-dev
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
# Required by TraceMonkey
|
|
||||||
sudo apt-get -y install autoconf2.13 zip
|
|
||||||
if [ "$?" != "0" ]; then
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
# Required by HTML Tidy
|
# Required by HTML Tidy
|
||||||
sudo apt-get -y install cvs
|
sudo apt-get -y install cvs
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
|
|
|
||||||
|
|
@ -121,18 +121,14 @@ if [ "$?" != "0" ]; then
|
||||||
fi
|
fi
|
||||||
cd $build
|
cd $build
|
||||||
|
|
||||||
# Build TraceMonkey
|
# Build SpiderMonkey
|
||||||
sudo apt-get -y install autoconf2.13 zip
|
wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
|
||||||
if [ "$?" != "0" ]; then
|
tar xzf js185-1.0.0.tar.gz
|
||||||
exit $?
|
cd js-1.8.5/js/src
|
||||||
fi
|
./configure --prefix=$build/js-1.8.5-bin
|
||||||
wget -O tracemonkey-e4364736e170.tar.gz http://hg.mozilla.org/tracemonkey/archive/e4364736e170.tar.gz
|
|
||||||
tar xzf tracemonkey-e4364736e170.tar.gz
|
|
||||||
cd tracemonkey-e4364736e170/js/src
|
|
||||||
autoconf2.13
|
|
||||||
./configure --prefix=$build/tracemonkey-bin
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
ln -s $build/js-1.8.5-bin/lib/libmozjs185.so $build/js-1.8.5-bin/lib/libmozjs.so
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
@ -289,7 +285,7 @@ cd $build
|
||||||
git clone git://git.apache.org/tuscany-sca-cpp.git
|
git clone git://git.apache.org/tuscany-sca-cpp.git
|
||||||
cd tuscany-sca-cpp
|
cd tuscany-sca-cpp
|
||||||
./bootstrap
|
./bootstrap
|
||||||
./configure --prefix=$build/tuscany-sca-cpp-bin --with-curl=$build/curl-7.19.5-bin --with-apr=$build/apr-1.4.x-bin --with-httpd=$build/httpd-2.3.10-bin --with-memcached=$build/memcached-1.4.5-bin --with-tinycdb=$build/tinycdb-0.77-bin --with-js-include=$build/tracemonkey-bin/include/js --with-js-lib=$build/tracemonkey-bin/lib --with-libcloud=$build/libcloud-0.4.2-bin --enable-threads --enable-python --with-libxml2=$build/libxml2-2.7.7-bin --enable-chat --with-libstrophe=$build/libstrophe-bin --enable-log --with-thrift=$build/thrift-0.2.0-bin --with-scribe=$build/scribe-2.2-bin --enable-openid --with-mod-auth-openid=$build/mod-auth-openid-bin --enable-oauth --with-liboauth=$build/liboauth-0.9.1-bin --enable-mod-security --with-mod-security=$build/modsecurity-apache-2.6.0-bin
|
./configure --prefix=$build/tuscany-sca-cpp-bin --with-curl=$build/curl-7.19.5-bin --with-apr=$build/apr-1.4.x-bin --with-httpd=$build/httpd-2.3.10-bin --with-memcached=$build/memcached-1.4.5-bin --with-tinycdb=$build/tinycdb-0.77-bin --with-js-include=$build/js-1.8.5-bin/include/js --with-js-lib=$build/js-1.8.5-bin/lib --with-libcloud=$build/libcloud-0.4.2-bin --enable-threads --enable-python --with-libxml2=$build/libxml2-2.7.7-bin --enable-chat --with-libstrophe=$build/libstrophe-bin --enable-log --with-thrift=$build/thrift-0.2.0-bin --with-scribe=$build/scribe-2.2-bin --enable-openid --with-mod-auth-openid=$build/mod-auth-openid-bin --enable-oauth --with-liboauth=$build/liboauth-0.9.1-bin --enable-mod-security --with-mod-security=$build/modsecurity-apache-2.6.0-bin
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
|
|
@ -298,8 +294,8 @@ fi
|
||||||
cd $build
|
cd $build
|
||||||
|
|
||||||
# Create src archive
|
# Create src archive
|
||||||
tar czf tuscany-sca-cpp-1.0-src.tar.gz apache-libcloud-incubating-0.4.2 apache-libcloud-incubating-0.4.2.tar.bz2 apr-1.4.x apr-1.4.x-bin curl-7.19.5 curl-7.19.5-bin curl-7.19.5.tar.gz expat-2.0.1 expat-2.0.1-bin expat-2.0.1.tar.gz htmltidy-bin httpd-2.3.10 httpd-2.3.10-alpha.tar.gz httpd-2.3.10-bin libcloud-0.4.2-bin liboauth-0.9.1 liboauth-0.9.1-bin liboauth-0.9.1.tar.gz libopkele libopkele-bin libstrophe libstrophe-bin libxml2-2.7.7 libxml2-2.7.7-bin libxml2-sources-2.7.7.tar.gz memcached-1.4.5 memcached-1.4.5-bin memcached-1.4.5.tar.gz mod_auth_openid mod-auth-openid-bin modsecurity-apache_2.6.0 modsecurity-apache-2.6.0-bin modsecurity-apache_2.6.0.tar.gz modsecurity-crs_2.2.0 modsecurity-crs_2.2.0.tar.gz nuvem scribe scribe-2.2-bin scribe-2.2.tar.gz thrift-0.2.0 thrift-0.2.0-bin thrift-0.2.0-incubating.tar.gz tidy tinycdb-0.77 tinycdb-0.77-bin tinycdb_0.77.tar.gz tracemonkey-bin tracemonkey-e4364736e170 tracemonkey-e4364736e170.tar.gz tuscany-sca-cpp tuscany-sca-cpp-bin
|
tar czf tuscany-sca-cpp-1.0-src.tar.gz apache-libcloud-incubating-0.4.2 apache-libcloud-incubating-0.4.2.tar.bz2 apr-1.4.x apr-1.4.x-bin curl-7.19.5 curl-7.19.5-bin curl-7.19.5.tar.gz expat-2.0.1 expat-2.0.1-bin expat-2.0.1.tar.gz htmltidy-bin httpd-2.3.10 httpd-2.3.10-alpha.tar.gz httpd-2.3.10-bin libcloud-0.4.2-bin liboauth-0.9.1 liboauth-0.9.1-bin liboauth-0.9.1.tar.gz libopkele libopkele-bin libstrophe libstrophe-bin libxml2-2.7.7 libxml2-2.7.7-bin libxml2-sources-2.7.7.tar.gz memcached-1.4.5 memcached-1.4.5-bin memcached-1.4.5.tar.gz mod_auth_openid mod-auth-openid-bin modsecurity-apache_2.6.0 modsecurity-apache-2.6.0-bin modsecurity-apache_2.6.0.tar.gz modsecurity-crs_2.2.0 modsecurity-crs_2.2.0.tar.gz nuvem scribe scribe-2.2-bin scribe-2.2.tar.gz thrift-0.2.0 thrift-0.2.0-bin thrift-0.2.0-incubating.tar.gz tidy tinycdb-0.77 tinycdb-0.77-bin tinycdb_0.77.tar.gz js-1.8.5-bin js-1.8.5 js185-1.0.0.tar.gz tuscany-sca-cpp tuscany-sca-cpp-bin
|
||||||
|
|
||||||
# Create bin archive
|
# Create bin archive
|
||||||
tar czf tuscany-sca-cpp-1.0.tar.gz apr-1.4.x-bin curl-7.19.5-bin expat-2.0.1-bin htmltidy-bin httpd-2.3.10-bin libcloud-0.4.2-bin liboauth-0.9.1-bin libopkele-bin libstrophe-bin libxml2-2.7.7-bin memcached-1.4.5-bin mod-auth-openid-bin modsecurity-apache-2.6.0-bin nuvem/nuvem-parallel scribe-2.2-bin thrift-0.2.0-bin tinycdb-0.77-bin tracemonkey-bin tuscany-sca-cpp tuscany-sca-cpp-bin
|
tar czf tuscany-sca-cpp-1.0.tar.gz apr-1.4.x-bin curl-7.19.5-bin expat-2.0.1-bin htmltidy-bin httpd-2.3.10-bin libcloud-0.4.2-bin liboauth-0.9.1-bin libopkele-bin libstrophe-bin libxml2-2.7.7-bin memcached-1.4.5-bin mod-auth-openid-bin modsecurity-apache-2.6.0-bin nuvem/nuvem-parallel scribe-2.2-bin thrift-0.2.0-bin tinycdb-0.77-bin js-1.8.5-bin tuscany-sca-cpp tuscany-sca-cpp-bin
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,18 +121,14 @@ if [ "$?" != "0" ]; then
|
||||||
fi
|
fi
|
||||||
cd $build
|
cd $build
|
||||||
|
|
||||||
# Build TraceMonkey
|
# Build SpiderMonkey
|
||||||
sudo apt-get -y install autoconf2.13 zip
|
wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
|
||||||
if [ "$?" != "0" ]; then
|
tar xzf js185-1.0.0.tar.gz
|
||||||
exit $?
|
cd js-1.8.5/js/src
|
||||||
fi
|
./configure --prefix=$build/js-1.8.5-bin
|
||||||
wget -O tracemonkey-e4364736e170.tar.gz http://hg.mozilla.org/tracemonkey/archive/e4364736e170.tar.gz
|
|
||||||
tar xzf tracemonkey-e4364736e170.tar.gz
|
|
||||||
cd tracemonkey-e4364736e170/js/src
|
|
||||||
autoconf2.13
|
|
||||||
./configure --prefix=$build/tracemonkey-bin
|
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
ln -s $build/js-1.8.5-bin/lib/libmozjs185.so $build/js-1.8.5-bin/lib/libmozjs.so
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
@ -359,7 +355,7 @@ cd $build
|
||||||
git clone git://git.apache.org/tuscany-sca-cpp.git
|
git clone git://git.apache.org/tuscany-sca-cpp.git
|
||||||
cd tuscany-sca-cpp
|
cd tuscany-sca-cpp
|
||||||
./bootstrap
|
./bootstrap
|
||||||
./configure --prefix=$build/tuscany-sca-cpp-bin --with-curl=$build/curl-7.19.5-bin --with-apr=$build/apr-1.4.x-bin --with-httpd=$build/httpd-2.3.10-bin --with-memcached=$build/memcached-1.4.5-bin --with-tinycdb=$build/tinycdb-0.77-bin --with-js-include=$build/tracemonkey-bin/include/js --with-js-lib=$build/tracemonkey-bin/lib --with-libcloud=$build/libcloud-0.4.2-bin --enable-threads --enable-python --enable-gae --with-gae=$build/google_appengine --enable-java --with-java=/usr/lib/jvm/java-6-openjdk --enable-webservice --with-libxml2=$build/libxml2-2.7.7-bin --with-axis2c=$build/axis2c-1.6.0-bin --enable-queue --with-qpidc=$build/qpidc-0.6-bin --enable-chat --with-libstrophe=$build/libstrophe-bin --with-vysper=$build/vysper-0.6 --enable-sqldb --with-pgsql=$build/postgresql-9.0.3-bin --enable-log --with-thrift=$build/thrift-0.2.0-bin --with-scribe=$build/scribe-2.2-bin --enable-openid --with-mod-auth-openid=$build/mod-auth-openid-bin --enable-oauth --with-liboauth=$build/liboauth-0.9.1-bin --enable-mod-security --with-mod-security=$build/modsecurity-apache-2.6.0-bin
|
./configure --prefix=$build/tuscany-sca-cpp-bin --with-curl=$build/curl-7.19.5-bin --with-apr=$build/apr-1.4.x-bin --with-httpd=$build/httpd-2.3.10-bin --with-memcached=$build/memcached-1.4.5-bin --with-tinycdb=$build/tinycdb-0.77-bin --with-js-include=$build/js-1.8.5-bin/include/js --with-js-lib=$build/js-1.8.5-bin/lib --with-libcloud=$build/libcloud-0.4.2-bin --enable-threads --enable-python --enable-gae --with-gae=$build/google_appengine --enable-java --with-java=/usr/lib/jvm/java-6-openjdk --enable-webservice --with-libxml2=$build/libxml2-2.7.7-bin --with-axis2c=$build/axis2c-1.6.0-bin --enable-queue --with-qpidc=$build/qpidc-0.6-bin --enable-chat --with-libstrophe=$build/libstrophe-bin --with-vysper=$build/vysper-0.6 --enable-sqldb --with-pgsql=$build/postgresql-9.0.3-bin --enable-log --with-thrift=$build/thrift-0.2.0-bin --with-scribe=$build/scribe-2.2-bin --enable-openid --with-mod-auth-openid=$build/mod-auth-openid-bin --enable-oauth --with-liboauth=$build/liboauth-0.9.1-bin --enable-mod-security --with-mod-security=$build/modsecurity-apache-2.6.0-bin
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
|
|
@ -368,8 +364,8 @@ fi
|
||||||
cd $build
|
cd $build
|
||||||
|
|
||||||
# Create src archive
|
# Create src archive
|
||||||
tar czf tuscany-sca-cpp-all-1.0-src.tar.gz apache-libcloud-incubating-0.4.2 apache-libcloud-incubating-0.4.2.tar.bz2 apr-1.4.x apr-1.4.x-bin axis2c-1.6.0-bin axis2c-src-1.6.0 axis2c-src-1.6.0.tar.gz curl-7.19.5 curl-7.19.5-bin curl-7.19.5.tar.gz expat-2.0.1 expat-2.0.1-bin expat-2.0.1.tar.gz google_appengine google_appengine_1.4.0.zip htmltidy-bin httpd-2.3.10 httpd-2.3.10-alpha.tar.gz httpd-2.3.10-bin libcloud-0.4.2-bin liboauth-0.9.1 liboauth-0.9.1-bin liboauth-0.9.1.tar.gz libopkele libopkele-bin libstrophe libstrophe-bin libxml2-2.7.7 libxml2-2.7.7-bin libxml2-sources-2.7.7.tar.gz memcached-1.4.5 memcached-1.4.5-bin memcached-1.4.5.tar.gz mod_auth_openid mod-auth-openid-bin modsecurity-apache_2.6.0 modsecurity-apache-2.6.0-bin modsecurity-apache_2.6.0.tar.gz modsecurity-crs_2.2.0 modsecurity-crs_2.2.0.tar.gz nuvem postgresql-9.0.3 postgresql-9.0.3-bin postgresql-9.0.3.tar.gz qpidc-0.6 qpidc-0.6-bin qpid-cpp-0.6.tar.gz scribe scribe-2.2-bin scribe-2.2.tar.gz thrift-0.2.0 thrift-0.2.0-bin thrift-0.2.0-incubating.tar.gz tidy tinycdb-0.77 tinycdb-0.77-bin tinycdb_0.77.tar.gz tracemonkey-bin tracemonkey-e4364736e170 tracemonkey-e4364736e170.tar.gz tuscany-sca-cpp tuscany-sca-cpp-bin vysper-0.6 vysper-0.6-bin.tar.gz
|
tar czf tuscany-sca-cpp-all-1.0-src.tar.gz apache-libcloud-incubating-0.4.2 apache-libcloud-incubating-0.4.2.tar.bz2 apr-1.4.x apr-1.4.x-bin axis2c-1.6.0-bin axis2c-src-1.6.0 axis2c-src-1.6.0.tar.gz curl-7.19.5 curl-7.19.5-bin curl-7.19.5.tar.gz expat-2.0.1 expat-2.0.1-bin expat-2.0.1.tar.gz google_appengine google_appengine_1.4.0.zip htmltidy-bin httpd-2.3.10 httpd-2.3.10-alpha.tar.gz httpd-2.3.10-bin libcloud-0.4.2-bin liboauth-0.9.1 liboauth-0.9.1-bin liboauth-0.9.1.tar.gz libopkele libopkele-bin libstrophe libstrophe-bin libxml2-2.7.7 libxml2-2.7.7-bin libxml2-sources-2.7.7.tar.gz memcached-1.4.5 memcached-1.4.5-bin memcached-1.4.5.tar.gz mod_auth_openid mod-auth-openid-bin modsecurity-apache_2.6.0 modsecurity-apache-2.6.0-bin modsecurity-apache_2.6.0.tar.gz modsecurity-crs_2.2.0 modsecurity-crs_2.2.0.tar.gz nuvem postgresql-9.0.3 postgresql-9.0.3-bin postgresql-9.0.3.tar.gz qpidc-0.6 qpidc-0.6-bin qpid-cpp-0.6.tar.gz scribe scribe-2.2-bin scribe-2.2.tar.gz thrift-0.2.0 thrift-0.2.0-bin thrift-0.2.0-incubating.tar.gz tidy tinycdb-0.77 tinycdb-0.77-bin tinycdb_0.77.tar.gz js-1.8.5-bin js-1.8.5 js185-1.0.0.tar.gz tuscany-sca-cpp tuscany-sca-cpp-bin vysper-0.6 vysper-0.6-bin.tar.gz
|
||||||
|
|
||||||
# Create bin archive
|
# Create bin archive
|
||||||
tar czf tuscany-sca-cpp-all-1.0.tar.gz apr-1.4.x-bin axis2c-1.6.0-bin curl-7.19.5-bin expat-2.0.1-bin google_appengine htmltidy-bin httpd-2.3.10-bin libcloud-0.4.2-bin liboauth-0.9.1-bin libopkele-bin libstrophe-bin libxml2-2.7.7-bin memcached-1.4.5-bin mod-auth-openid-bin modsecurity-apache-2.6.0-bin nuvem/nuvem-parallel postgresql-9.0.3-bin qpidc-0.6-bin scribe-2.2-bin thrift-0.2.0-bin tinycdb-0.77-bin tracemonkey-bin tuscany-sca-cpp tuscany-sca-cpp-bin vysper-0.6
|
tar czf tuscany-sca-cpp-all-1.0.tar.gz apr-1.4.x-bin axis2c-1.6.0-bin curl-7.19.5-bin expat-2.0.1-bin google_appengine htmltidy-bin httpd-2.3.10-bin libcloud-0.4.2-bin liboauth-0.9.1-bin libopkele-bin libstrophe-bin libxml2-2.7.7-bin memcached-1.4.5-bin mod-auth-openid-bin modsecurity-apache-2.6.0-bin nuvem/nuvem-parallel postgresql-9.0.3-bin qpidc-0.6-bin scribe-2.2-bin thrift-0.2.0-bin tinycdb-0.77-bin js-1.8.5-bin tuscany-sca-cpp tuscany-sca-cpp-bin vysper-0.6
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue