summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-cpp/trunk/INSTALL16
-rw-r--r--sca-cpp/trunk/configure.ac34
-rw-r--r--sca-cpp/trunk/modules/wsgi/Makefile.am10
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/gae-start29
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/gae-stop29
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/gae-test30
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/http-test4
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/server-test4
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/wiring-test4
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/wsgi-start4
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/wsgi-stop3
-rwxr-xr-xsca-cpp/trunk/modules/wsgi/wsgi-test4
-rw-r--r--sca-cpp/trunk/test/Makefile.am2
-rw-r--r--sca-cpp/trunk/test/store-gae/Makefile.am (renamed from sca-cpp/trunk/test/store-wsgi/Makefile.am)4
-rw-r--r--sca-cpp/trunk/test/store-gae/app.yaml (renamed from sca-cpp/trunk/test/store-wsgi/app.yaml)0
-rw-r--r--sca-cpp/trunk/test/store-gae/currency-converter.py (renamed from sca-cpp/trunk/test/store-wsgi/currency-converter.py)0
-rw-r--r--sca-cpp/trunk/test/store-gae/domain-backend.composite (renamed from sca-cpp/trunk/test/store-wsgi/domain-backend.composite)0
-rw-r--r--sca-cpp/trunk/test/store-gae/domain-frontend.composite (renamed from sca-cpp/trunk/test/store-wsgi/domain-frontend.composite)0
-rw-r--r--sca-cpp/trunk/test/store-gae/domain-single.composite (renamed from sca-cpp/trunk/test/store-wsgi/domain-single.composite)0
-rw-r--r--sca-cpp/trunk/test/store-gae/domain.composite (renamed from sca-cpp/trunk/test/store-wsgi/domain.composite)0
-rw-r--r--sca-cpp/trunk/test/store-gae/fruits-catalog.py (renamed from sca-cpp/trunk/test/store-wsgi/fruits-catalog.py)0
-rw-r--r--sca-cpp/trunk/test/store-gae/gmemcache.py (renamed from sca-cpp/trunk/test/store-wsgi/gmemcache.py)2
-rw-r--r--sca-cpp/trunk/test/store-gae/htdocs/store.html (renamed from sca-cpp/trunk/test/store-wsgi/htdocs/store.html)0
-rw-r--r--sca-cpp/trunk/test/store-gae/htdocs/store.js (renamed from sca-cpp/trunk/test/store-wsgi/htdocs/store.js)0
-rw-r--r--sca-cpp/trunk/test/store-gae/htpasswd.py (renamed from sca-cpp/trunk/test/store-wsgi/htpasswd.py)0
-rwxr-xr-xsca-cpp/trunk/test/store-gae/server-test41
-rw-r--r--sca-cpp/trunk/test/store-gae/shopping-cart.py (renamed from sca-cpp/trunk/test/store-wsgi/shopping-cart.py)0
-rwxr-xr-xsca-cpp/trunk/test/store-gae/start21
-rwxr-xr-xsca-cpp/trunk/test/store-gae/stop21
-rw-r--r--sca-cpp/trunk/test/store-gae/store.py (renamed from sca-cpp/trunk/test/store-wsgi/store.py)0
-rwxr-xr-xsca-cpp/trunk/ubuntu/ubuntu-install8
31 files changed, 247 insertions, 23 deletions
diff --git a/sca-cpp/trunk/INSTALL b/sca-cpp/trunk/INSTALL
index 6372175c7b..6eab022d76 100644
--- a/sca-cpp/trunk/INSTALL
+++ b/sca-cpp/trunk/INSTALL
@@ -81,6 +81,7 @@ libboost-filesystem-1.38.1
Python:
Python 2.6.4 (http://www.python.org/)
+Google AppEngine 1.3.2 (http://code.google.com/appengine/)
Java:
a Java 5+ JDK (http://openjdk.java.net/, http://harmony.apache.org/)
@@ -150,6 +151,7 @@ dependencies installed under $HOME:
--with-js-lib=/usr/lib/xulrunner-1.9.1.8 \
--enable-threads \
--enable-python --with-python=/usr \
+--enable-gae --with-gae=$HOME/google_appengine \
--enable-java --with-java=/usr/lib/jvm/default-java \
--enable-webservice --with-axis2c=$HOME/axis2c-1.6.0-bin \
--with-libxml2=$HOME/libxml2-2.7.7-bin \
@@ -206,6 +208,13 @@ cd memcached-1.4.4
make
make install
+TinyCDB:
+wget http://www.corpit.ru/mjt/tinycdb/tinycdb_0.77.tar.gz
+tar xzf tinycdb_0.77.tar.gz
+cd tinycdb-0.77
+make
+make prefix=$HOME/tinycdb-0.77-bin install
+
CURL:
wget http://curl.haxx.se/download/curl-7.19.5.tar.gz
tar xzf curl-7.19.5.tar.gz
@@ -231,13 +240,6 @@ autoconf2.13
make
make install
-TinyCDB:
-wget http://www.corpit.ru/mjt/tinycdb/tinycdb_0.77.tar.gz
-tar xzf tinycdb_0.77.tar.gz
-cd tinycdb-0.77
-make
-make prefix=$HOME/tinycdb-0.77-bin install
-
Apache Axis2/C:
wget http://www.apache.org/dist/ws/axis2-c/1_6_0/axis2c-src-1.6.0.tar.gz
tar xzf axis2c-src-1.6.0.tar.gz
diff --git a/sca-cpp/trunk/configure.ac b/sca-cpp/trunk/configure.ac
index 98f473f9d4..05198c9170 100644
--- a/sca-cpp/trunk/configure.ac
+++ b/sca-cpp/trunk/configure.ac
@@ -436,6 +436,38 @@ else
fi
AC_SUBST(JAVA_LDFLAGS)
+# Configure path to Google AppEngine SDK.
+AC_MSG_CHECKING([for gae])
+AC_ARG_WITH([gae], [AC_HELP_STRING([--with-gae=PATH], [path to installed Google AppEngine 1.3.2 [default=$HOME/google_appengine]])], [
+ GAE_PREFIX="${withval}"
+ AC_MSG_RESULT("${withval}")
+], [
+ GAE_PREFIX="$HOME/google_appengine"
+ AC_MSG_RESULT($HOME/google_appengine)
+])
+AC_SUBST(GAE_PREFIX)
+
+# Enable support for Google AppEngine.
+AC_MSG_CHECKING([whether to enable Google AppEngine support])
+AC_ARG_ENABLE(gae, [AS_HELP_STRING([--enable-gae], [enable Google AppEngine support [default=no]])],
+[ case "${enableval}" in
+ no)
+ AC_MSG_RESULT(no)
+ ;;
+ *)
+ AC_MSG_RESULT(yes)
+ want_gae=true
+ ;;
+ esac ],
+[ AC_MSG_RESULT(no)])
+if test "${want_gae}" = "true"; then
+ AM_CONDITIONAL([WANT_GAE], true)
+ AC_DEFINE([WANT_GAE], 1, [enable Google AppEngine support])
+else
+ AM_CONDITIONAL([WANT_GAE], false)
+fi
+
+# Configure path to Java includes and lib.
# Configure path to Apache Axis2C includes and lib.
AC_MSG_CHECKING([for axis2c])
AC_ARG_WITH([axis2c], [AC_HELP_STRING([--with-axis2c=PATH], [path to installed Apache Axis2C [default=/usr/local/axis2c]])], [
@@ -664,7 +696,7 @@ AC_CONFIG_FILES([Makefile
test/store-cpp/Makefile
test/store-python/Makefile
test/store-java/Makefile
- test/store-wsgi/Makefile
+ test/store-gae/Makefile
test/store-sql/Makefile
doc/Makefile
doc/Doxyfile
diff --git a/sca-cpp/trunk/modules/wsgi/Makefile.am b/sca-cpp/trunk/modules/wsgi/Makefile.am
index f14087b9c4..7678104761 100644
--- a/sca-cpp/trunk/modules/wsgi/Makefile.am
+++ b/sca-cpp/trunk/modules/wsgi/Makefile.am
@@ -33,10 +33,20 @@ target.stamp: app.yaml *.py *.composite htdocs/*
clean-local:
rm -rf target.stamp target
+prefix_DATA = gae.prefix
+prefixdir=$(prefix)/modules/wsgi
+gae.prefix: $(top_builddir)/config.status
+ echo ${GAE_PREFIX} >gae.prefix
+
client_test_SOURCES = client-test.cpp
client_test_LDFLAGS = -lxml2 -lcurl -lmozjs
noinst_PROGRAMS = client-test
+
+if WANT_GAE
+TESTS = util-test wsgi-test wiring-test http-test server-test gae-test
+else
TESTS = util-test wsgi-test wiring-test http-test server-test
+endif
endif
diff --git a/sca-cpp/trunk/modules/wsgi/gae-start b/sca-cpp/trunk/modules/wsgi/gae-start
new file mode 100755
index 0000000000..69882750aa
--- /dev/null
+++ b/sca-cpp/trunk/modules/wsgi/gae-start
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Start Google AppEngine server
+here=`readlink -f $0`; here=`dirname $here`
+root=`readlink -f $1`
+port=$2
+
+python_prefix=`cat $here/../python/python.prefix`
+gae_prefix=`cat $here/gae.prefix`
+cd $root
+$python_prefix/bin/python $gae_prefix/dev_appserver.py -p $port $root &
+
diff --git a/sca-cpp/trunk/modules/wsgi/gae-stop b/sca-cpp/trunk/modules/wsgi/gae-stop
new file mode 100755
index 0000000000..64e7031058
--- /dev/null
+++ b/sca-cpp/trunk/modules/wsgi/gae-stop
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Stop Google AppEngine server
+here=`readlink -f $0`; here=`dirname $here`
+root=`readlink -f $1`
+port=$2
+
+python_prefix=`cat $here/../python/python.prefix`
+gae_prefix=`cat $here/gae.prefix`
+py="$python_prefix/bin/python $gae_prefix/dev_appserver.py -p $port $root"
+
+kill `ps -ef | grep -v grep | grep "${py}" | awk '{ print $2 }'`
diff --git a/sca-cpp/trunk/modules/wsgi/gae-test b/sca-cpp/trunk/modules/wsgi/gae-test
new file mode 100755
index 0000000000..1791a830ca
--- /dev/null
+++ b/sca-cpp/trunk/modules/wsgi/gae-test
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Setup
+./gae-start target 8090 2>/dev/null
+sleep 2
+
+# Test
+./client-test 2>/dev/null
+rc=$?
+
+# Cleanup
+./gae-stop target 8090
+return $rc
diff --git a/sca-cpp/trunk/modules/wsgi/http-test b/sca-cpp/trunk/modules/wsgi/http-test
index 844cea53fd..6676f6514c 100755
--- a/sca-cpp/trunk/modules/wsgi/http-test
+++ b/sca-cpp/trunk/modules/wsgi/http-test
@@ -24,7 +24,7 @@ fi
# Setup
mkdir -p tmp
-./wsgi-start 8090 2>/dev/null
+./wsgi-start target 8090 2>/dev/null
sleep 2
# Test JSON-RPC
@@ -34,6 +34,6 @@ $python_prefix/bin/python http-test.py
rc=$?
# Cleanup
-./wsgi-stop 8090
+./wsgi-stop target 8090
sleep 2
return $rc
diff --git a/sca-cpp/trunk/modules/wsgi/server-test b/sca-cpp/trunk/modules/wsgi/server-test
index 3220cd2d3e..9bd862c53a 100755
--- a/sca-cpp/trunk/modules/wsgi/server-test
+++ b/sca-cpp/trunk/modules/wsgi/server-test
@@ -18,7 +18,7 @@
# under the License.
# Setup
-./wsgi-start 8090 2>/dev/null
+./wsgi-start target 8090 2>/dev/null
sleep 2
# Test
@@ -26,5 +26,5 @@ sleep 2
rc=$?
# Cleanup
-./wsgi-stop 8090
+./wsgi-stop target 8090
return $rc
diff --git a/sca-cpp/trunk/modules/wsgi/wiring-test b/sca-cpp/trunk/modules/wsgi/wiring-test
index e7747484f7..f1d0e8332f 100755
--- a/sca-cpp/trunk/modules/wsgi/wiring-test
+++ b/sca-cpp/trunk/modules/wsgi/wiring-test
@@ -27,7 +27,7 @@ fi
# Setup
mkdir -p tmp
-./wsgi-start 8090 2>/dev/null
+./wsgi-start target 8090 2>/dev/null
sleep 2
# Test HTTP GET
@@ -67,7 +67,7 @@ if [ "$rc" = "0" ]; then
fi
# Cleanup
-./wsgi-stop 8090
+./wsgi-stop target 8090
sleep 2
if [ "$rc" = "0" ]; then
echo "OK"
diff --git a/sca-cpp/trunk/modules/wsgi/wsgi-start b/sca-cpp/trunk/modules/wsgi/wsgi-start
index 92606d5094..d020f3da14 100755
--- a/sca-cpp/trunk/modules/wsgi/wsgi-start
+++ b/sca-cpp/trunk/modules/wsgi/wsgi-start
@@ -19,8 +19,10 @@
# Start WSGI server
here=`readlink -f $0`; here=`dirname $here`
-port=$1
+root=`readlink -f $1`
+port=$2
python_prefix=`cat $here/../python/python.prefix`
+cd $root
$python_prefix/bin/python composite.py $port &
diff --git a/sca-cpp/trunk/modules/wsgi/wsgi-stop b/sca-cpp/trunk/modules/wsgi/wsgi-stop
index d1e09185f4..7e12967adb 100755
--- a/sca-cpp/trunk/modules/wsgi/wsgi-stop
+++ b/sca-cpp/trunk/modules/wsgi/wsgi-stop
@@ -19,7 +19,8 @@
# Stop WSGI server
here=`readlink -f $0`; here=`dirname $here`
-port=$1
+root=`readlink -f $1`
+port=$2
python_prefix=`cat $here/../python/python.prefix`
py="$python_prefix/bin/python composite.py $port"
diff --git a/sca-cpp/trunk/modules/wsgi/wsgi-test b/sca-cpp/trunk/modules/wsgi/wsgi-test
index ed73940c94..3dce709a3b 100755
--- a/sca-cpp/trunk/modules/wsgi/wsgi-test
+++ b/sca-cpp/trunk/modules/wsgi/wsgi-test
@@ -23,7 +23,7 @@ curl_prefix=`cat $here/../http/curl.prefix`
# Setup
mkdir -p tmp
-./wsgi-start 8090 2>/dev/null
+./wsgi-start target 8090 2>/dev/null
sleep 2
# Test HTTP GET
@@ -63,7 +63,7 @@ if [ "$rc" = "0" ]; then
fi
# Cleanup
-./wsgi-stop 8090
+./wsgi-stop target 8090
sleep 2
if [ "$rc" = "0" ]; then
echo "OK"
diff --git a/sca-cpp/trunk/test/Makefile.am b/sca-cpp/trunk/test/Makefile.am
index c5af4bb5bb..76b761c4c8 100644
--- a/sca-cpp/trunk/test/Makefile.am
+++ b/sca-cpp/trunk/test/Makefile.am
@@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-SUBDIRS = store-scheme store-cpp store-python store-java store-wsgi store-sql
+SUBDIRS = store-scheme store-cpp store-python store-java store-gae store-sql
diff --git a/sca-cpp/trunk/test/store-wsgi/Makefile.am b/sca-cpp/trunk/test/store-gae/Makefile.am
index 56015e7f19..bb39293d21 100644
--- a/sca-cpp/trunk/test/store-wsgi/Makefile.am
+++ b/sca-cpp/trunk/test/store-gae/Makefile.am
@@ -16,6 +16,7 @@
# under the License.
if WANT_PYTHON
+if WANT_GAE
noinst_DATA = target.stamp
@@ -28,6 +29,7 @@ target.stamp: app.yaml *.py *.composite $(top_builddir)/modules/wsgi/*.py htdocs
clean-local:
rm -rf target.stamp target
-#TESTS = server-test
+TESTS = server-test
endif
+endif
diff --git a/sca-cpp/trunk/test/store-wsgi/app.yaml b/sca-cpp/trunk/test/store-gae/app.yaml
index e5807c233a..e5807c233a 100644
--- a/sca-cpp/trunk/test/store-wsgi/app.yaml
+++ b/sca-cpp/trunk/test/store-gae/app.yaml
diff --git a/sca-cpp/trunk/test/store-wsgi/currency-converter.py b/sca-cpp/trunk/test/store-gae/currency-converter.py
index 2fded8f616..2fded8f616 100644
--- a/sca-cpp/trunk/test/store-wsgi/currency-converter.py
+++ b/sca-cpp/trunk/test/store-gae/currency-converter.py
diff --git a/sca-cpp/trunk/test/store-wsgi/domain-backend.composite b/sca-cpp/trunk/test/store-gae/domain-backend.composite
index a543b9a6b5..a543b9a6b5 100644
--- a/sca-cpp/trunk/test/store-wsgi/domain-backend.composite
+++ b/sca-cpp/trunk/test/store-gae/domain-backend.composite
diff --git a/sca-cpp/trunk/test/store-wsgi/domain-frontend.composite b/sca-cpp/trunk/test/store-gae/domain-frontend.composite
index a183c84a76..a183c84a76 100644
--- a/sca-cpp/trunk/test/store-wsgi/domain-frontend.composite
+++ b/sca-cpp/trunk/test/store-gae/domain-frontend.composite
diff --git a/sca-cpp/trunk/test/store-wsgi/domain-single.composite b/sca-cpp/trunk/test/store-gae/domain-single.composite
index 41ce77bedd..41ce77bedd 100644
--- a/sca-cpp/trunk/test/store-wsgi/domain-single.composite
+++ b/sca-cpp/trunk/test/store-gae/domain-single.composite
diff --git a/sca-cpp/trunk/test/store-wsgi/domain.composite b/sca-cpp/trunk/test/store-gae/domain.composite
index 41ce77bedd..41ce77bedd 100644
--- a/sca-cpp/trunk/test/store-wsgi/domain.composite
+++ b/sca-cpp/trunk/test/store-gae/domain.composite
diff --git a/sca-cpp/trunk/test/store-wsgi/fruits-catalog.py b/sca-cpp/trunk/test/store-gae/fruits-catalog.py
index 75c18f5f99..75c18f5f99 100644
--- a/sca-cpp/trunk/test/store-wsgi/fruits-catalog.py
+++ b/sca-cpp/trunk/test/store-gae/fruits-catalog.py
diff --git a/sca-cpp/trunk/test/store-wsgi/gmemcache.py b/sca-cpp/trunk/test/store-gae/gmemcache.py
index 83dffa9339..61f1dc3486 100644
--- a/sca-cpp/trunk/test/store-wsgi/gmemcache.py
+++ b/sca-cpp/trunk/test/store-gae/gmemcache.py
@@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
-# Memcached based cache implementation
+# Google AppEngine Memcached based cache implementation
import uuid
from google.appengine.api import memcache
diff --git a/sca-cpp/trunk/test/store-wsgi/htdocs/store.html b/sca-cpp/trunk/test/store-gae/htdocs/store.html
index 21eabca7a7..21eabca7a7 100644
--- a/sca-cpp/trunk/test/store-wsgi/htdocs/store.html
+++ b/sca-cpp/trunk/test/store-gae/htdocs/store.html
diff --git a/sca-cpp/trunk/test/store-wsgi/htdocs/store.js b/sca-cpp/trunk/test/store-gae/htdocs/store.js
index 9cd8eb526d..9cd8eb526d 100644
--- a/sca-cpp/trunk/test/store-wsgi/htdocs/store.js
+++ b/sca-cpp/trunk/test/store-gae/htdocs/store.js
diff --git a/sca-cpp/trunk/test/store-wsgi/htpasswd.py b/sca-cpp/trunk/test/store-gae/htpasswd.py
index 75d94f58b6..75d94f58b6 100644
--- a/sca-cpp/trunk/test/store-wsgi/htpasswd.py
+++ b/sca-cpp/trunk/test/store-gae/htpasswd.py
diff --git a/sca-cpp/trunk/test/store-gae/server-test b/sca-cpp/trunk/test/store-gae/server-test
new file mode 100755
index 0000000000..c656cb33c2
--- /dev/null
+++ b/sca-cpp/trunk/test/store-gae/server-test
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+echo "Testing..."
+here=`readlink -f $0`; here=`dirname $here`
+curl_prefix=`cat $here/../../modules/http/curl.prefix`
+
+# Setup
+./start 2>/dev/null
+sleep 2
+
+# Test HTTP GET
+mkdir -p tmp
+$curl_prefix/bin/curl http://localhost:8090/store.html 2>/dev/null >tmp/store.html
+diff tmp/store.html htdocs/store.html
+rc=$?
+
+# Cleanup
+./stop
+sleep 2
+
+if [ "$rc" = "0" ]; then
+ echo "OK"
+fi
+return $rc
diff --git a/sca-cpp/trunk/test/store-wsgi/shopping-cart.py b/sca-cpp/trunk/test/store-gae/shopping-cart.py
index c520da4303..c520da4303 100644
--- a/sca-cpp/trunk/test/store-wsgi/shopping-cart.py
+++ b/sca-cpp/trunk/test/store-gae/shopping-cart.py
diff --git a/sca-cpp/trunk/test/store-gae/start b/sca-cpp/trunk/test/store-gae/start
new file mode 100755
index 0000000000..3c9644e656
--- /dev/null
+++ b/sca-cpp/trunk/test/store-gae/start
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+../../modules/wsgi/gae-start target 8090
+
diff --git a/sca-cpp/trunk/test/store-gae/stop b/sca-cpp/trunk/test/store-gae/stop
new file mode 100755
index 0000000000..7c8a7e5551
--- /dev/null
+++ b/sca-cpp/trunk/test/store-gae/stop
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+../../modules/wsgi/gae-stop target 8090
+
diff --git a/sca-cpp/trunk/test/store-wsgi/store.py b/sca-cpp/trunk/test/store-gae/store.py
index 35c0f5b2aa..35c0f5b2aa 100644
--- a/sca-cpp/trunk/test/store-wsgi/store.py
+++ b/sca-cpp/trunk/test/store-gae/store.py
diff --git a/sca-cpp/trunk/ubuntu/ubuntu-install b/sca-cpp/trunk/ubuntu/ubuntu-install
index fc50f0cb2e..4c80c47a5f 100755
--- a/sca-cpp/trunk/ubuntu/ubuntu-install
+++ b/sca-cpp/trunk/ubuntu/ubuntu-install
@@ -114,6 +114,10 @@ if [ "$?" != "0" ]; then
fi
cd $build
+# Install Google AppEngine SDK
+wget http://googleappengine.googlecode.com/files/google_appengine_1.3.2.zip
+unzip google_appengine_1.3.2.zip
+
# Build Apache Axis2/C
sudo apt-get -y install pkg-config
if [ "$?" != "0" ]; then
@@ -211,7 +215,7 @@ git clone git://git.apache.org/tuscany-sca-cpp
cd tuscany-sca-cpp
cp etc/git-exclude .git/info/exclude
./bootstrap
-./configure --prefix=$build/tuscany-sca-cpp-bin --with-curl=$build/curl-7.19.5-bin --with-apr=$build/httpd-2.2.15-bin --with-httpd=$build/httpd-2.2.15-bin --with-memcached=$build/memcached-1.4.4-bin --with-tinycdb=$build/tinycdb-0.77-bin --with-js-include=$build/tracemonkey-bin/include/js --with-js-lib=$build/tracemonkey-bin/lib --enable-threads --enable-python --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.5 --enable-sqldb --with-pgsql=$build/postgresql-9.0-bin
+./configure --prefix=$build/tuscany-sca-cpp-bin --with-curl=$build/curl-7.19.5-bin --with-apr=$build/httpd-2.2.15-bin --with-httpd=$build/httpd-2.2.15-bin --with-memcached=$build/memcached-1.4.4-bin --with-tinycdb=$build/tinycdb-0.77-bin --with-js-include=$build/tracemonkey-bin/include/js --with-js-lib=$build/tracemonkey-bin/lib --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.5 --enable-sqldb --with-pgsql=$build/postgresql-9.0-bin
make
make install
if [ "$?" != "0" ]; then
@@ -220,5 +224,5 @@ fi
cd $build
# Create bin archive
-tar czf tuscany-sca-cpp-1.0.0-SNAPSHOT.tar.gz tuscany-sca-cpp tuscany-sca-cpp-bin axis2c-1.6.0-bin libxml2-2.7.7-bin curl-7.19.5-bin httpd-2.2.15-bin tracemonkey-bin libstrophe-bin memcached-1.4.4-bin tinycdb-0.77-bin qpidc-0.6-bin vysper-0.5 postgresql-9.0-bin
+tar czf tuscany-sca-cpp-1.0.0-SNAPSHOT.tar.gz tuscany-sca-cpp tuscany-sca-cpp-bin axis2c-1.6.0-bin libxml2-2.7.7-bin curl-7.19.5-bin httpd-2.2.15-bin tracemonkey-bin google_appengine libstrophe-bin memcached-1.4.4-bin tinycdb-0.77-bin qpidc-0.6-bin vysper-0.5 postgresql-9.0-bin