summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/hosting/server/data
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/trunk/hosting/server/data')
-rw-r--r--sca-cpp/trunk/hosting/server/data/accounts/jane@localhost/user.account1
-rw-r--r--sca-cpp/trunk/hosting/server/data/accounts/jane@sca-store.com/user.account1
-rw-r--r--sca-cpp/trunk/hosting/server/data/accounts/john@localhost/user.account1
-rw-r--r--sca-cpp/trunk/hosting/server/data/accounts/john@sca-store.com/user.account1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/me360/app.composite93
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/me360/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/me360/htdocs/app.html75
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/nearme/app.composite444
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/nearme/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/nearme/htdocs/app.html54
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/nearme2/app.composite191
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/nearme2/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/nearme2/htdocs/app.html30
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/new/app.composite52
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/new/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/new/htdocs/app.html27
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/ourphotos/app.composite163
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/ourphotos/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/ourphotos/htdocs/app.html36
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/shoppingcart/app.composite596
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/shoppingcart/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/shoppingcart/htdocs/app.html72
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/slice/app.composite504
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/slice/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/slice/htdocs/app.html68
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/test/app.composite45
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/test/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/test/htdocs/app.html33
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testanimation/app.composite169
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testanimation/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testanimation/htdocs/app.html27
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testdb/app.composite99
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testdb/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testdb/htdocs/app.html24
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testevents/app.composite195
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testevents/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testevents/htdocs/app.html57
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testhttp/app.composite273
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testhttp/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testhttp/htdocs/app.html31
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testlogic/app.composite201
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testlogic/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testlogic/htdocs/app.html24
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsearch/app.composite240
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsearch/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsearch/htdocs/app.html24
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsms/app.composite98
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsms/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsms/htdocs/app.html24
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsocial/app.composite179
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsocial/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testsocial/htdocs/app.html24
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testtext/app.composite216
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testtext/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testtext/htdocs/app.html24
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testurl/app.composite134
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testurl/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testurl/htdocs/app.html24
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testvalues/app.composite491
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testvalues/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testvalues/htdocs/app.html27
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets/app.composite189
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets/htdocs/app.html54
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets2/app.composite147
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets2/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets2/htdocs/app.html86
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets3/app.composite206
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets3/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/testwidgets3/htdocs/app.html39
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/twsms/app.composite129
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/twsms/app.stats1
-rw-r--r--sca-cpp/trunk/hosting/server/data/apps/twsms/htdocs/app.html33
-rw-r--r--sca-cpp/trunk/hosting/server/data/dashboards/jane@localhost/user.apps1
-rw-r--r--sca-cpp/trunk/hosting/server/data/dashboards/jane@sca-store.com/user.apps1
-rw-r--r--sca-cpp/trunk/hosting/server/data/dashboards/john@localhost/user.apps1
-rw-r--r--sca-cpp/trunk/hosting/server/data/dashboards/john@sca-store.com/user.apps1
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/animation/palette.composite103
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/control/palette.composite86
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/database/palette.composite72
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/http/palette.composite111
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/lists/palette.composite131
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/logic/palette.composite70
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/math/palette.composite138
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/python/palette.composite35
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/search/palette.composite100
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/social/palette.composite120
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/talk/palette.composite55
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/text/palette.composite76
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/transform/palette.composite59
-rw-r--r--sca-cpp/trunk/hosting/server/data/palettes/values/palette.composite79
-rw-r--r--sca-cpp/trunk/hosting/server/data/store/all/store.apps1
-rw-r--r--sca-cpp/trunk/hosting/server/data/store/featured/store.apps1
-rw-r--r--sca-cpp/trunk/hosting/server/data/store/new/store.apps1
-rw-r--r--sca-cpp/trunk/hosting/server/data/store/top/store.apps1
95 files changed, 7241 insertions, 0 deletions
diff --git a/sca-cpp/trunk/hosting/server/data/accounts/jane@localhost/user.account b/sca-cpp/trunk/hosting/server/data/accounts/jane@localhost/user.account
new file mode 100644
index 0000000000..5fca389f04
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/accounts/jane@localhost/user.account
@@ -0,0 +1 @@
+((entry (title "Jane Doe") (id "jane@localhost")))
diff --git a/sca-cpp/trunk/hosting/server/data/accounts/jane@sca-store.com/user.account b/sca-cpp/trunk/hosting/server/data/accounts/jane@sca-store.com/user.account
new file mode 100644
index 0000000000..e0d25671b6
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/accounts/jane@sca-store.com/user.account
@@ -0,0 +1 @@
+((entry (title "Jane Doe") (id "jane@sca-store.com") (content (account (description "This is Jane") (keys (key (((@name "key1") (@value "value1")) ((@name "key2") (@value "value2")) ((@name "key3") (@value "value3")) ((@name "") (@value "")) ((@name "") (@value ""))))))))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/accounts/john@localhost/user.account b/sca-cpp/trunk/hosting/server/data/accounts/john@localhost/user.account
new file mode 100644
index 0000000000..35d6f30f0b
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/accounts/john@localhost/user.account
@@ -0,0 +1 @@
+((entry (title "John Doe") (id "john@localhost")))
diff --git a/sca-cpp/trunk/hosting/server/data/accounts/john@sca-store.com/user.account b/sca-cpp/trunk/hosting/server/data/accounts/john@sca-store.com/user.account
new file mode 100644
index 0000000000..273335e1c7
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/accounts/john@sca-store.com/user.account
@@ -0,0 +1 @@
+((entry (title "John Doe") (id "john@sca-store.com") (content (account (description "This is John") (keys (key (((@name "key1") (@value "value1")) ((@name "key2") (@value "value2")) ((@name "key3") (@value "value3")) ((@name "key4") (@value "value4")) ((@name "key5") (@value "value5"))))))))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/me360/app.composite b/sca-cpp/trunk/hosting/server/data/apps/me360/app.composite
new file mode 100644
index 0000000000..c0fb6a425c
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/me360/app.composite
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="start" promote="start"/>
+ <component name="bzprofile" title="buzz profile" color="blue1">
+ <implementation.python script="nuvem/bzprofile.py"/>
+ <service name="bzprofile"/>
+ <reference target="text4" name="id"/>
+ <reference name="bz" visible="false">
+ <binding.http uri="https://www.googleapis.com/buzz/v1/people"/>
+ </reference>
+ </component>
+ <component x="130" y="30" name="fbprofile" title="facebook profile" color="blue1">
+ <implementation.python script="nuvem/fbprofile.py"/>
+ <service name="fbprofile"/>
+ <reference target="text" name="id"/>
+ <reference name="fb" visible="false">
+ <binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component x="90" y="170" name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="fbprofile" name="value"/>
+ <property>fbprofile</property>
+ </component>
+ <component x="90" y="190" name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="twprofile" name="value"/>
+ <property>twitprofile</property>
+ </component>
+ <component x="90" y="210" name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="bzprofile" name="value"/>
+ <property>buzzprofile</property>
+ </component>
+ <component x="60" y="30" name="list31" title="list" color="yellow1">
+ <implementation.python script="nuvem/triple.py"/>
+ <service name="list3"/>
+ <reference target="item" name="first"/>
+ <reference target="item2" name="second"/>
+ <reference target="item3" name="third"/>
+ </component>
+ <component x="10" y="10" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list31" name="content"/>
+ </component>
+ <component x="220" y="170" name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component x="220" y="200" name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component x="220" y="230" name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component name="twprofile" title="twitter profile" color="blue1">
+ <implementation.python script="nuvem/twprofile.py"/>
+ <service name="twprofile"/>
+ <reference target="text2" name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/users/show.json"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/me360/app.stats b/sca-cpp/trunk/hosting/server/data/apps/me360/app.stats
new file mode 100644
index 0000000000..a46c727280
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/me360/app.stats
@@ -0,0 +1 @@
+((entry (title "Check my public social data") (id "me360"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/me360/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/me360/htdocs/app.html
new file mode 100644
index 0000000000..e57e246328
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/me360/htdocs/app.html
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Me360</H2>
+ </SPAN>
+ <SPAN id="page:section" class="section" style="position: absolute; top: 27px; width: 100%; left: 2px; ">
+ <SPAN>Facebook</SPAN>
+ </SPAN>
+ <SPAN id="fbprofile" class="table" style="position: absolute; top: 63px; width: 100%; left: 2px; ">
+ <TABLE class="datatable" style="width: 100%;">
+ <TBODY>
+ <TR>
+ <TD>=fbprofile</TD>
+ <TD>...</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="page:section" class="section" style="position: absolute; top: 288px; width: 100%; left: 2px; ">
+ <SPAN>Twitter</SPAN>
+ </SPAN>
+ <SPAN id="twitprofile" class="table" style="position: absolute; top: 324px; width: 100%; left: 2px; ">
+ <TABLE class="datatable" style="width: 100%;">
+ <TBODY>
+ <TR>
+ <TD>=twitprofile</TD>
+ <TD>...</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="page:section" class="section" style="position: absolute; top: 1368px; width: 100%; left: 2px; ">
+ <SPAN>Buzz</SPAN>
+ </SPAN>
+ <SPAN id="buzzprofile" class="table" style="position: absolute; top: 1404px; width: 100%; left: 2px; ">
+ <TABLE class="datatable" style="width: 100%; ">
+ <TBODY>
+ <TR>
+ <TD>=buzzprofile</TD>
+ <TD>...</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/nearme/app.composite b/sca-cpp/trunk/hosting/server/data/apps/nearme/app.composite
new file mode 100644
index 0000000000..51fc2791fb
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/nearme/app.composite
@@ -0,0 +1,444 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="getlocs" promote="getlocs"/>
+ <service name="location" promote="location"/>
+ <service name="map" promote="map"/>
+ <service name="nearme" promote="nearme"/>
+ <service name="start2" promote="start2"/>
+ <service name="timer" promote="timer"/>
+ <component name="append" title="+" color="yellow1">
+ <implementation.python script="nuvem/append.py"/>
+ <service name="append"/>
+ <reference target="params" name="first"/>
+ <reference target="call2" name="second"/>
+ </component>
+ <component x="130" y="530" name="call" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call2" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name2" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call3" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name4" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call4" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name3" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="filedb" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="210" y="120" name="filedb1" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component name="filedb10" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component name="filedb11" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component xmlns="" name="filedb4" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component xmlns="" name="filedb5" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component xmlns="" name="filedb6" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component xmlns="" name="filedb8" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component xmlns="" name="filedb9" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="AppDataFileCache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="190" y="120" name="get1" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb1" name="collection"/>
+ <reference target="user4" name="id"/>
+ </component>
+ <component name="get10" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb11" name="collection"/>
+ <reference target="param5" name="id"/>
+ </component>
+ <component xmlns="" name="get3" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb4" name="collection"/>
+ <reference target="param3" name="id"/>
+ </component>
+ <component xmlns="" name="get4" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb5" name="collection"/>
+ <reference target="param4" name="id"/>
+ </component>
+ <component xmlns="" name="get5" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb6" name="collection"/>
+ <reference target="param2" name="id"/>
+ </component>
+ <component xmlns="" name="get7" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb8" name="collection"/>
+ <reference target="param7" name="id"/>
+ </component>
+ <component xmlns="" name="get8" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb9" name="collection"/>
+ <reference target="param6" name="id"/>
+ </component>
+ <component name="get9" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb10" name="collection"/>
+ <reference target="user5" name="id"/>
+ </component>
+ <component x="310" y="270" name="getlocs" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list4" name="content"/>
+ </component>
+ <component x="80" y="610" name="gmap1" title="map" color="blue1">
+ <implementation.python script="nuvem/gmap.py"/>
+ <service name="gmap"/>
+ <reference target="call" name="locations"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.google.com/maps/api/staticmap"/>
+ </reference>
+ </component>
+ <component x="110" y="90" name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="user3" name="value"/>
+ <property>me</property>
+ </component>
+ <component x="110" y="390" name="item10" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="url" name="value"/>
+ <property>mapimg</property>
+ </component>
+ <component x="660" y="350" name="item11" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="get9" name="value"/>
+ <property>x</property>
+ </component>
+ <component x="660" y="400" name="item12" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="get10" name="value"/>
+ <property>1</property>
+ </component>
+ <component x="660" y="460" name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="get3" name="value"/>
+ <property>2</property>
+ </component>
+ <component x="660" y="530" name="item5" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="get4" name="value"/>
+ <property>3</property>
+ </component>
+ <component x="110" y="330" name="item6" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="last4" name="value"/>
+ <property>time3</property>
+ </component>
+ <component x="110" y="260" name="item7" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="last3" name="value"/>
+ <property>time2</property>
+ </component>
+ <component x="100" y="200" name="item8" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="last2" name="value"/>
+ <property>time1</property>
+ </component>
+ <component x="100" y="120" name="item9" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="last" name="value"/>
+ <property>mytime</property>
+ </component>
+ <component name="last" title="last" color="yellow1">
+ <implementation.python script="nuvem/last.py"/>
+ <service name="last"/>
+ <reference target="get1" name="list"/>
+ </component>
+ <component name="last2" title="last" color="yellow1">
+ <implementation.python script="nuvem/last.py"/>
+ <service name="last"/>
+ <reference target="get5" name="list"/>
+ </component>
+ <component x="160" y="220" name="last3" title="last" color="yellow1">
+ <implementation.python script="nuvem/last.py"/>
+ <service name="last"/>
+ <reference target="get8" name="list"/>
+ </component>
+ <component name="last4" title="last" color="yellow1">
+ <implementation.python script="nuvem/last.py"/>
+ <service name="last"/>
+ <reference target="get7" name="list"/>
+ </component>
+ <component name="list1" title="list.." color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item" name="item" clonable="true"/>
+ <reference target="item9" name="item" clonable="true"/>
+ <reference target="item8" name="item" clonable="true"/>
+ <reference target="item7" name="item" clonable="true"/>
+ <reference target="item6" name="item" clonable="true"/>
+ <reference target="item10" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list2" title="list.." color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text7" name="item" clonable="true"/>
+ <reference target="param10" name="item" clonable="true"/>
+ <reference target="param" name="item" clonable="true"/>
+ <reference target="now" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list4" title="list.." color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item11" name="item" clonable="true"/>
+ <reference target="item12" name="item" clonable="true"/>
+ <reference target="item4" name="item" clonable="true"/>
+ <reference target="item5" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="310" y="80" name="location" title="location" color="green1">
+ <implementation.python script="nuvem/location.py"/>
+ <service name="location" visible="false">
+ <binding.http uri="location"/>
+ </service>
+ <reference target="put" name="content"/>
+ </component>
+ <component x="10" y="460" name="map" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="gmap1" name="content"/>
+ </component>
+ <component name="name" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>getlocs</property>
+ </component>
+ <component name="name2" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>getlocs</property>
+ </component>
+ <component name="name3" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>nearme</property>
+ </component>
+ <component name="name4" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>nearme</property>
+ </component>
+ <component x="10" y="60" name="nearme" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list1" name="content"/>
+ </component>
+ <component x="500" y="250" name="now" title="now" color="orange1">
+ <implementation.python script="nuvem/now.py"/>
+ <service name="now"/>
+ <reference target="text" name="format"/>
+ </component>
+ <component xmlns="" name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5000</property>
+ </component>
+ <component x="500" y="220" name="param" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>longitude</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="500" y="200" name="param10" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>latitude</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="param2" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>friend1</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="param3" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>friend2</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="param4" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>friend3</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="param5" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>friend1</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="param6" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>friend2</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="param7" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>friend3</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component xmlns="" name="params" title="?params" color="green1">
+ <implementation.python script="nuvem/params.py"/>
+ <service name="params"/>
+ <property name="query" visible="false"/>
+ </component>
+ <component xmlns="" name="put" title="put" color="pink1">
+ <implementation.python script="nuvem/put.py"/>
+ <service name="put"/>
+ <reference target="filedb" name="collection"/>
+ <reference target="user" name="id"/>
+ <reference target="list2" name="value"/>
+ </component>
+ <component x="10" y="10" name="start2" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="call4" name="content"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>%a %b %d, %I:%M %p</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>/components/map</property>
+ </component>
+ <component xmlns="" x="500" y="170" name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>green</property>
+ </component>
+ <component x="310" y="10" name="timer" title="timer" color="green1">
+ <implementation.python script="nuvem/timer.py"/>
+ <service name="timer" visible="false">
+ <binding.http uri="timer"/>
+ </service>
+ <reference target="number" name="n"/>
+ <reference target="call3" name="content"/>
+ </component>
+ <component name="url" title="url" color="green1">
+ <implementation.python script="nuvem/url.py"/>
+ <service name="url"/>
+ <reference target="text2" name="address"/>
+ <reference target="append" name="args"/>
+ </component>
+ <component xmlns="" name="user" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component xmlns="" name="user3" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component xmlns="" x="210" y="150" name="user4" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component name="user5" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/nearme/app.stats b/sca-cpp/trunk/hosting/server/data/apps/nearme/app.stats
new file mode 100644
index 0000000000..a072636788
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/nearme/app.stats
@@ -0,0 +1 @@
+((entry (title "nearme") (id "nearme"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/nearme/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/nearme/htdocs/app.html
new file mode 100644
index 0000000000..fba4b0464c
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/nearme/htdocs/app.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Nearme</H2>
+ </SPAN>
+ <SPAN id="me" class="h2" style="position: absolute; top: 0px; left: 101px; ">
+ <H2>=me</H2>
+ </SPAN>
+ <SPAN style="position: absolute; top: 0px; left: 182px; " class="text" id="mytime">
+ <SPAN>=mytime</SPAN>
+ </SPAN>
+ <SPAN id="page:section" class="section" style="position: absolute; top: 27px; width: 100%; left: 2px; ">
+ <SPAN>My friends</SPAN>
+ </SPAN>
+ <SPAN style="position: absolute; top: 54px; left: 2px; " class="entry" id="friend1">
+ <INPUT type="text" size="20" value="=friend1" autocapitalize="off"/>
+ </SPAN>
+ <SPAN style="position: absolute; top: 54px; left: 182px; " class="text" id="time1">
+ <SPAN>=time1</SPAN>
+ </SPAN>
+ <SPAN style="position: absolute; top: 81px; left: 2px; " class="entry" id="friend2">
+ <INPUT type="text" size="20" value="=friend2" autocapitalize="off"/>
+ </SPAN>
+ <SPAN style="position: absolute; top: 81px; left: 182px; " class="text" id="time2">
+ <SPAN>=time2</SPAN>
+ </SPAN>
+ <SPAN style="position: absolute; top: 108px; left: 2px; " class="entry" id="friend3">
+ <INPUT type="text" size="20" value="=friend3" autocapitalize="off"/>
+ </SPAN>
+ <SPAN style="position: absolute; top: 108px; left: 182px; " class="text" id="time3">
+ <SPAN>=time3</SPAN>
+ </SPAN>
+ <SPAN style="position: absolute; top: 135px; left: 2px; " class="img" id="mapimg">
+ <IMG src="/public/img.png"/>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/nearme2/app.composite b/sca-cpp/trunk/hosting/server/data/apps/nearme2/app.composite
new file mode 100644
index 0000000000..8038387e4a
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/nearme2/app.composite
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="location" promote="location"/>
+ <service name="start1" promote="start1"/>
+ <service name="timer" promote="timer"/>
+ <component x="250" y="230" name="append1" title="+" color="yellow1">
+ <implementation.python script="nuvem/append.py"/>
+ <service name="append"/>
+ <reference target="text5" name="first"/>
+ <reference target="get3" name="second"/>
+ </component>
+ <component x="250" y="330" name="append2" title="+" color="yellow1">
+ <implementation.python script="nuvem/append.py"/>
+ <service name="append"/>
+ <reference target="text6" name="first"/>
+ <reference target="get4" name="second"/>
+ </component>
+ <component x="120" y="10" name="filedb2" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="410" y="260" name="filedb4" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="400" y="370" name="filedb5" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="270" y="260" name="get3" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb4" name="collection"/>
+ <reference target="text2" name="id"/>
+ </component>
+ <component x="270" y="350" name="get4" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb5" name="collection"/>
+ <reference target="text8" name="id"/>
+ </component>
+ <component x="200" y="230" name="gmap1" title="map" color="blue1">
+ <implementation.python script="nuvem/gmap.py"/>
+ <service name="gmap"/>
+ <reference target="list21" name="locations"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.google.com/maps/api/staticmap"/>
+ </reference>
+ </component>
+ <component x="150" y="230" name="htinline2" title="inline" color="white1">
+ <implementation.python script="nuvem/htinline.py"/>
+ <service name="htinline"/>
+ <reference target="gmap1" name="value"/>
+ </component>
+ <component x="40" y="150" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="user1" name="value"/>
+ <property>me</property>
+ </component>
+ <component x="50" y="210" name="item10" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="htinline2" name="value"/>
+ <property>img</property>
+ </component>
+ <component x="290" y="90" name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="append1" name="value"/>
+ <property>S</property>
+ </component>
+ <component x="290" y="190" name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="append2" name="value"/>
+ <property>C</property>
+ </component>
+ <component x="190" y="240" name="list21" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="item2" name="first"/>
+ <reference target="item3" name="second"/>
+ </component>
+ <component x="100" y="110" name="list24" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="param10" name="first"/>
+ <reference target="param" name="second"/>
+ </component>
+ <component x="10" y="50" name="location" title="location" color="green1">
+ <implementation.python script="nuvem/location.py"/>
+ <service name="location" visible="false">
+ <binding.http uri="location"/>
+ </service>
+ <reference target="put1" name="content"/>
+ </component>
+ <component xmlns="" name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>10000</property>
+ </component>
+ <component x="280" y="90" name="param" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>longitude</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="280" y="70" name="param10" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>latitude</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="70" y="60" name="put1" title="put" color="pink1">
+ <implementation.python script="nuvem/put.py"/>
+ <service name="put"/>
+ <reference target="filedb2" name="collection"/>
+ <reference target="user" name="id"/>
+ <reference target="list24" name="value"/>
+ </component>
+ <component x="10" y="10" name="start1" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="item1" name="content"/>
+ </component>
+ <component x="410" y="290" name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>john</property>
+ </component>
+ <component x="270" y="230" name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>blue</property>
+ </component>
+ <component x="270" y="320" name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>pink</property>
+ </component>
+ <component x="410" y="400" name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jane</property>
+ </component>
+ <component x="10" y="170" name="timer" title="timer" color="green1">
+ <implementation.python script="nuvem/timer.py"/>
+ <service name="timer" visible="false">
+ <binding.http uri="timer"/>
+ </service>
+ <reference target="number" name="n"/>
+ <reference target="item10" name="content"/>
+ </component>
+ <component xmlns="" x="120" y="30" name="user" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component x="80" y="20" name="user1" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/nearme2/app.stats b/sca-cpp/trunk/hosting/server/data/apps/nearme2/app.stats
new file mode 100644
index 0000000000..9eb239d22c
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/nearme2/app.stats
@@ -0,0 +1 @@
+((entry (title "nearme2") (id "nearme2")))
diff --git a/sca-cpp/trunk/hosting/server/data/apps/nearme2/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/nearme2/htdocs/app.html
new file mode 100644
index 0000000000..a4c407a7a4
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/nearme2/htdocs/app.html
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 2px; ">
+ <H1>Hello</H1>
+ </SPAN>
+ <SPAN id="me" class="h1" style="position: absolute; top: 0px; left: 56px; ">
+ <H1>=me</H1>
+ </SPAN>
+ <SPAN id="img" class="img" style="position: absolute; top: 36px; left: 2px; ">
+ <IMG src="/public/img.png"/>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/new/app.composite b/sca-cpp/trunk/hosting/server/data/apps/new/app.composite
new file mode 100644
index 0000000000..4beacfdf77
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/new/app.composite
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="comment1" promote="comment1"/>
+ <service name="start1" promote="start1"/>
+ <component x="10" y="0" name="comment1" title="{propval}" color="white">
+ <implementation.python script="nuvem/comment.py"/>
+ <service name="comment" visible="false"/>
+ <property>Change this example to do what you want</property>
+ </component>
+ <component x="80" y="40" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="user1" name="value"/>
+ <property>me</property>
+ </component>
+ <component name="list1" title="list.." color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item1" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="10" y="40" name="start1" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list1" name="content"/>
+ </component>
+ <component name="user1" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/new/app.stats b/sca-cpp/trunk/hosting/server/data/apps/new/app.stats
new file mode 100644
index 0000000000..513c902468
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/new/app.stats
@@ -0,0 +1 @@
+((entry (title "An empty app template") (id "new")))
diff --git a/sca-cpp/trunk/hosting/server/data/apps/new/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/new/htdocs/app.html
new file mode 100644
index 0000000000..eeb7becae5
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/new/htdocs/app.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 0px; ">
+ <H1>Hello</H1>
+ </SPAN>
+ <SPAN id="me" class="h1" style="position: absolute; top: 0px; left: 56px; ">
+ <H1>=me</H1>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/ourphotos/app.composite b/sca-cpp/trunk/hosting/server/data/apps/ourphotos/app.composite
new file mode 100644
index 0000000000..2a7ce11f1f
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/ourphotos/app.composite
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="start" promote="start"/>
+ <component name="append" title="+" color="yellow1">
+ <implementation.python script="nuvem/append.py"/>
+ <service name="append"/>
+ <reference target="values" name="first"/>
+ <reference target="values2" name="second"/>
+ </component>
+ <component name="flkalbum" title="flicker album" color="blue1">
+ <implementation.python script="nuvem/flkalbum.py"/>
+ <service name="flkalbum"/>
+ <reference target="text7" name="id"/>
+ <reference name="flk" visible="false">
+ <binding.http uri="http://api.flickr.com/services/feeds/photos_public.gne"/>
+ </reference>
+ </component>
+ <component x="200" y="70" name="htattrs1" title="attrs:" color="white1">
+ <implementation.python script="nuvem/htattrs.py"/>
+ <service name="htattrs"/>
+ <reference target="list12" name="value"/>
+ </component>
+ <component x="140" y="40" name="htimg2" title="img" color="white1">
+ <implementation.python script="nuvem/htimg.py"/>
+ <service name="htimg"/>
+ <reference target="list21" name="value"/>
+ </component>
+ <component x="260" y="70" name="htstyle2" title="style" color="white1">
+ <implementation.python script="nuvem/htstyle.py"/>
+ <service name="htstyle"/>
+ <reference target="item1" name="value"/>
+ </component>
+ <component name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="map2" name="value"/>
+ <property>images</property>
+ </component>
+ <component x="310" y="70" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="pixels1" name="value"/>
+ <property>width</property>
+ </component>
+ <component x="240" y="70" name="list12" title="list" color="yellow1">
+ <implementation.python script="nuvem/single.py"/>
+ <service name="list1"/>
+ <reference target="htstyle2" name="value"/>
+ </component>
+ <component x="170" y="40" name="list21" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="valueof2" name="first"/>
+ <reference target="htattrs1" name="second"/>
+ </component>
+ <component name="map2" title="map" color="yellow1">
+ <implementation.python script="nuvem/map_.py"/>
+ <service name="map"/>
+ <reference target="name5" name="item"/>
+ <reference target="htimg2" name="transform"/>
+ <reference target="shuffle" name="list"/>
+ </component>
+ <component name="name3" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>src</property>
+ </component>
+ <component name="name4" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>m</property>
+ </component>
+ <component name="name5" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>image</property>
+ </component>
+ <component x="420" y="70" name="number1" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>320</property>
+ </component>
+ <component name="picalbum" title="picasa album" color="blue1">
+ <implementation.python script="nuvem/picalbum.py"/>
+ <service name="picalbum"/>
+ <reference target="text5" name="id"/>
+ <reference name="pic" visible="false">
+ <binding.http uri="https://picasaweb.google.com/data/feed/api/user"/>
+ </reference>
+ </component>
+ <component x="280" y="70" name="pixels1" title="pixels" color="white1">
+ <implementation.python script="nuvem/pixels.py"/>
+ <service name="pixels"/>
+ <reference target="number1" name="value"/>
+ </component>
+ <component name="select" title="select" color="yellow1">
+ <implementation.python script="nuvem/select.py"/>
+ <service name="select"/>
+ <reference target="name3" name="path"/>
+ <reference target="picalbum" name="list"/>
+ </component>
+ <component name="select2" title="select" color="yellow1">
+ <implementation.python script="nuvem/select.py"/>
+ <service name="select"/>
+ <reference target="name4" name="path"/>
+ <reference target="flkalbum" name="list"/>
+ </component>
+ <component x="180" y="180" name="shuffle" title="shuffle" color="yellow1">
+ <implementation.python script="nuvem/shuffle_.py"/>
+ <service name="shuffle"/>
+ <reference target="append" name="list"/>
+ </component>
+ <component x="10" y="10" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="item" name="content"/>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>61049883@N06</property>
+ </component>
+ <component x="470" y="30" name="valueof2" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>image</property>
+ </component>
+ <component name="values" title="values" color="yellow1">
+ <implementation.python script="nuvem/values.py"/>
+ <service name="values"/>
+ <reference target="select" name="list"/>
+ </component>
+ <component name="values2" title="values" color="yellow1">
+ <implementation.python script="nuvem/values.py"/>
+ <service name="values"/>
+ <reference target="select2" name="list"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/ourphotos/app.stats b/sca-cpp/trunk/hosting/server/data/apps/ourphotos/app.stats
new file mode 100644
index 0000000000..e685d930dd
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/ourphotos/app.stats
@@ -0,0 +1 @@
+((entry (title "Our photos of an event") (id "ourphotos"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/ourphotos/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/ourphotos/htdocs/app.html
new file mode 100644
index 0000000000..1ddb89fa30
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/ourphotos/htdocs/app.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Our Photos</H2>
+ </SPAN>
+ <SPAN id="images" class="list" style="position: absolute; top: 27px; width: 100%; left: 2px; ">
+ <TABLE class="datatable" style="width: 100%; ">
+ <TBODY>
+ <TR>
+ <TD>=images</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/app.composite b/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/app.composite
new file mode 100644
index 0000000000..230004315d
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/app.composite
@@ -0,0 +1,596 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="Add to cart" promote="Add to cart"/>
+ <service name="Check out" promote="Check out"/>
+ <service name="Empty" promote="Empty"/>
+ <service name="carthtml" promote="carthtml"/>
+ <service name="catalog" promote="catalog"/>
+ <service name="cataloghtml" promote="cataloghtml"/>
+ <service name="getcart" promote="getcart"/>
+ <service name="order" promote="order"/>
+ <service name="start" promote="start"/>
+ <service name="total" promote="total"/>
+ <component x="290" y="290" name="Add to cart" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list33" name="content"/>
+ </component>
+ <component x="10" y="590" name="Check out" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list3" name="content"/>
+ </component>
+ <component x="10" y="450" name="Empty" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list32" name="content"/>
+ </component>
+ <component name="append" title="+" color="yellow1">
+ <implementation.python script="nuvem/append.py"/>
+ <service name="append"/>
+ <reference target="call2" name="first"/>
+ <reference target="lookup" name="second"/>
+ </component>
+ <component name="call10" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name12" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call11" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name16" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call12" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name13" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call13" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name17" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call14" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name19" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call15" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name20" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="250" y="630" name="call16" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name21" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call17" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name4" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call2" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name5" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call3" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name6" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="370" y="590" name="call4" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name15" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="call5" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name8" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="370" y="620" name="call6" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name10" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="250" y="590" name="call7" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name9" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="500" y="690" name="call8" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name11" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="210" y="280" name="call9" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name2" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="10" y="320" name="carthtml" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="item6" name="content"/>
+ </component>
+ <component x="290" y="10" name="catalog" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list31" name="content"/>
+ </component>
+ <component x="10" y="160" name="cataloghtml" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="item" name="content"/>
+ </component>
+ <component name="delete2" title="delete" color="pink1">
+ <implementation.python script="nuvem/delete.py"/>
+ <service name="delete"/>
+ <reference target="filedb2" name="collection"/>
+ <reference target="user2" name="id"/>
+ </component>
+ <component name="filedb" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component name="filedb2" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component name="filedb3" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="130" y="420" name="format1" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text6" name="pattern"/>
+ <reference target="valueof2" name="values"/>
+ </component>
+ <component x="280" y="350" name="format2" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text5" name="pattern"/>
+ <reference target="valueof" name="values"/>
+ </component>
+ <component x="300" y="610" name="format3" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text4" name="pattern"/>
+ <reference target="call8" name="values"/>
+ </component>
+ <component name="get" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb" name="collection"/>
+ <reference target="user" name="id"/>
+ </component>
+ <component x="470" y="10" name="getcart" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="get" name="content"/>
+ </component>
+ <component x="160" y="250" name="htcheck2" title="checkbox" color="white1">
+ <implementation.python script="nuvem/htcheck.py"/>
+ <service name="htcheck"/>
+ <reference target="list22" name="value"/>
+ </component>
+ <component name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="map" name="value"/>
+ <property>catalog</property>
+ </component>
+ <component x="410" y="170" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference name="value" target="total1"/>
+ <property>total</property>
+ </component>
+ <component x="530" y="80" name="item10" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="number4" name="value"/>
+ <property>Kiwi</property>
+ </component>
+ <component x="250" y="530" name="item11" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="delete2" name="value"/>
+ <property>delresult</property>
+ </component>
+ <component name="item12" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="sendgtalk" name="value"/>
+ <property>sendresult</property>
+ </component>
+ <component name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="call11" name="value"/>
+ <property>message</property>
+ </component>
+ <component name="item5" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text2" name="value"/>
+ <property>message</property>
+ </component>
+ <component name="item6" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="map2" name="value"/>
+ <property>cart</property>
+ </component>
+ <component x="380" y="390" name="item7" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="put" name="value"/>
+ <property>putresult</property>
+ </component>
+ <component x="530" y="20" name="item8" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="number" name="value"/>
+ <property>Mango</property>
+ </component>
+ <component x="540" y="50" name="item9" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="number2" name="value"/>
+ <property>Passion</property>
+ </component>
+ <component x="220" y="250" name="list22" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="text8" name="first"/>
+ <reference target="format2" name="second"/>
+ </component>
+ <component name="list3" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item4" name="item" clonable="true"/>
+ <reference target="item12" name="item" clonable="true"/>
+ <reference target="call3" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="360" y="20" name="list31" title="list" color="yellow1">
+ <implementation.python script="nuvem/triple.py"/>
+ <service name="list3"/>
+ <reference target="item8" name="first"/>
+ <reference target="item9" name="second"/>
+ <reference target="item10" name="third"/>
+ </component>
+ <component x="50" y="540" name="list32" title="list" color="yellow1">
+ <implementation.python script="nuvem/triple.py"/>
+ <service name="list3"/>
+ <reference target="item11" name="first"/>
+ <reference target="call7" name="second"/>
+ <reference target="call16" name="third"/>
+ </component>
+ <component x="350" y="390" name="list33" title="list" color="yellow1">
+ <implementation.python script="nuvem/triple.py"/>
+ <service name="list3"/>
+ <reference target="item7" name="first"/>
+ <reference target="call4" name="second"/>
+ <reference target="call6" name="third"/>
+ </component>
+ <component name="list4" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item5" name="item" clonable="true"/>
+ <reference target="call5" name="item" clonable="true"/>
+ <reference target="call13" name="item" clonable="true"/>
+ <reference target="call14" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="lookup" title="lookup" color="yellow1">
+ <implementation.python script="nuvem/lookup.py"/>
+ <service name="lookup"/>
+ <reference target="second1" name="name"/>
+ <reference target="call15" name="list"/>
+ </component>
+ <component name="map" title="map" color="yellow1">
+ <implementation.python script="nuvem/map_.py"/>
+ <service name="map"/>
+ <reference target="name" name="item"/>
+ <reference target="htcheck2" name="transform"/>
+ <reference target="call9" name="list"/>
+ </component>
+ <component name="map2" title="map" color="yellow1">
+ <implementation.python script="nuvem/map_.py"/>
+ <service name="map"/>
+ <reference target="name3" name="item"/>
+ <reference target="format1" name="transform"/>
+ <reference target="call10" name="list"/>
+ </component>
+ <component name="name" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>fruit</property>
+ </component>
+ <component name="name10" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>total</property>
+ </component>
+ <component name="name11" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>total</property>
+ </component>
+ <component name="name12" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>getcart</property>
+ </component>
+ <component name="name13" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>order</property>
+ </component>
+ <component name="name15" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>carthtml</property>
+ </component>
+ <component name="name16" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>order</property>
+ </component>
+ <component name="name17" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>carthtml</property>
+ </component>
+ <component name="name19" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>total</property>
+ </component>
+ <component name="name2" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>catalog</property>
+ </component>
+ <component name="name20" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>catalog</property>
+ </component>
+ <component name="name21" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>total</property>
+ </component>
+ <component name="name3" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>fruit</property>
+ </component>
+ <component name="name4" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>getcart</property>
+ </component>
+ <component name="name5" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>getcart</property>
+ </component>
+ <component name="name6" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>emptyCart</property>
+ </component>
+ <component name="name8" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>cataloghtml</property>
+ </component>
+ <component name="name9" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>carthtml</property>
+ </component>
+ <component name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>2.99</property>
+ </component>
+ <component name="number2" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3.55</property>
+ </component>
+ <component x="650" y="340" name="number3" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>2</property>
+ </component>
+ <component name="number4" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>1.55</property>
+ </component>
+ <component x="300" y="550" name="order" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="format3" name="content"/>
+ </component>
+ <component x="580" y="370" name="param" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>fruit</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="put" title="put" color="pink1">
+ <implementation.python script="nuvem/put.py"/>
+ <service name="put"/>
+ <reference target="filedb3" name="collection"/>
+ <reference target="user3" name="id"/>
+ <reference target="append" name="value"/>
+ </component>
+ <component x="650" y="450" name="second1" title="second" color="yellow1">
+ <implementation.python script="nuvem/second.py"/>
+ <service name="second"/>
+ <reference target="split2" name="list"/>
+ </component>
+ <component name="sendgtalk" title="gtalk" color="blue1">
+ <implementation.cpp path="lib/chat" library="libchat-sender2"/>
+ <service name="sendgtalk"/>
+ <reference target="text" name="jid"/>
+ <reference target="text7" name="pass"/>
+ <reference target="text3" name="to"/>
+ <reference target="call12" name="msg"/>
+ </component>
+ <component x="580" y="480" name="split2" title="split" color="cyan1">
+ <implementation.python script="nuvem/split.py"/>
+ <service name="split"/>
+ <reference target="text1" name="separator"/>
+ <reference target="param" name="string"/>
+ </component>
+ <component x="10" y="10" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list4" name="content"/>
+ </component>
+ <component x="650" y="360" name="sum1" title="sum" color="cyan1">
+ <implementation.python script="nuvem/sum_.py"/>
+ <service name="sum"/>
+ <reference target="values" name="l"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xmppsca.1@gmail.com</property>
+ </component>
+ <component x="580" y="330" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property> - </property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>Welcome to my online store</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino@gmail.com</property>
+ </component>
+ <component x="500" y="660" name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>Your order has been processed. Your total: ${1}</property>
+ </component>
+ <component x="450" y="280" name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>${1} - {0}</property>
+ </component>
+ <component x="220" y="550" name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>${1} - {0}</property>
+ </component>
+ <component name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xmpp4sca</property>
+ </component>
+ <component x="280" y="320" name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>fruit</property>
+ </component>
+ <component x="330" y="120" name="total" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="item1" name="content"/>
+ </component>
+ <component name="total1" x="600" y="130" title="round" color="cyan1">
+ <implementation.python script="nuvem/round_.py"/>
+ <service name="round"/>
+ <reference target="number3" name="n"/>
+ <reference target="sum1" name="x"/>
+ </component>
+ <component name="user" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component name="user2" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component name="user3" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component x="440" y="310" name="valueof" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>fruit</property>
+ </component>
+ <component x="210" y="580" name="valueof2" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>fruit</property>
+ </component>
+ <component x="790" y="320" name="values" title="values" color="yellow1">
+ <implementation.python script="nuvem/values.py"/>
+ <service name="values"/>
+ <reference target="call17" name="list"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/app.stats b/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/app.stats
new file mode 100644
index 0000000000..4529005b54
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/app.stats
@@ -0,0 +1 @@
+((entry (title "My online store") (id "shoppingcart"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/htdocs/app.html
new file mode 100644
index 0000000000..0464f3e4c4
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/shoppingcart/htdocs/app.html
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Shopping Cart</H2>
+ </SPAN>
+ <SPAN id="message" class="text" style="position: absolute; top: 36px; left: 2px; ">
+ <SPAN>Welcome</SPAN>
+ </SPAN>
+ <SPAN id="page:section" class="section" style="position: absolute; top: 63px; width: 100%; left: 2px; ">
+ <SPAN>Catalog</SPAN>
+ </SPAN>
+ <SPAN id="page:button" class="button" style="position: absolute; top: 63px; left: 146px; ">
+ <INPUT type="button" value="Add to cart" class="graybutton"/>
+ </SPAN>
+ <SPAN id="catalog" class="list" style="position: absolute; top: 99px; width: 100%; left: 2px; ">
+ <TABLE class="datatable" style="width: 100%; ">
+ <TBODY>
+ <TR>
+ <TD>=catalog</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="page:section" class="section" style="position: absolute; top: 180px; width: 100%; left: 2px; ">
+ <SPAN>Your cart:</SPAN>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 180px; left: 83px; ">
+ <SPAN>$</SPAN>
+ </SPAN>
+ <SPAN id="total" class="text" style="position: absolute; top: 180px; left: 92px; ">
+ <SPAN>=total</SPAN>
+ </SPAN>
+ <SPAN id="page:button" class="button" style="position: absolute; top: 180px; left: 146px; ">
+ <INPUT type="button" value="Check out" class="graybutton"/>
+ </SPAN>
+ <SPAN id="page:button" class="button" style="position: absolute; top: 180px; left: 245px; ">
+ <INPUT type="button" value="Empty" class="graybutton"/>
+ </SPAN>
+ <SPAN id="cart" class="list" style="position: absolute; top: 216px; width: 100%; left: 2px; ">
+ <TABLE class="datatable" style="width: 100%; ">
+ <TBODY>
+ <TR>
+ <TD>=cart</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/slice/app.composite b/sca-cpp/trunk/hosting/server/data/apps/slice/app.composite
new file mode 100644
index 0000000000..714629767b
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/slice/app.composite
@@ -0,0 +1,504 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="animation1" promote="animation1"/>
+ <service name="bounce" promote="bounce"/>
+ <service name="feather" promote="feather"/>
+ <service name="gnu" promote="gnu"/>
+ <service name="score" promote="score"/>
+ <service name="sprite" promote="sprite"/>
+ <service name="start" promote="start"/>
+ <component x="350" y="120" name="add1" title="+" color="cyan1">
+ <implementation.python script="nuvem/add.py"/>
+ <service name="add">
+ <documentation>+</documentation>
+ </service>
+ <reference target="number10" name="value1"/>
+ <reference target="get1" name="value2"/>
+ </component>
+ <component x="10" y="90" name="animation1" title="animation" color="green1">
+ <implementation.python script="nuvem/animation.py"/>
+ <service name="animation" visible="false">
+ <binding.http uri="animation"/>
+ </service>
+ <reference target="number6" name="n"/>
+ <reference target="true2" name="loop"/>
+ <reference target="map1" name="content"/>
+ </component>
+ <component x="360" y="10" name="bounce" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list1" name="content"/>
+ </component>
+ <component x="170" y="150" name="call1" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name5" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="820" y="360" name="call2" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name9" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="750" y="210" name="call3" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name4" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="750" y="330" name="call4" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name10" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="200" y="80" name="call5" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name11" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="10" y="360" name="feather" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list22" name="content"/>
+ </component>
+ <component x="240" y="100" name="filedb1" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="270" y="150" name="filedb2" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="890" y="350" name="filedb3" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="1100" y="190" name="filedb4" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="710" y="160" name="frames1" title="frames" color="white1">
+ <implementation.python script="nuvem/frames.py"/>
+ <service name="frames"/>
+ <reference target="number1" name="msec"/>
+ <reference target="number12" name="loop"/>
+ <reference target="call3" name="content"/>
+ </component>
+ <component x="380" y="140" name="get1" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb2" name="collection"/>
+ <reference target="user2" name="id"/>
+ </component>
+ <component x="860" y="360" name="get2" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb3" name="collection"/>
+ <reference target="user4" name="id"/>
+ </component>
+ <component x="10" y="550" name="gnu" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list23" name="content"/>
+ </component>
+ <component x="360" y="160" name="htstyle2" title="style" color="white1">
+ <implementation.python script="nuvem/htstyle.py"/>
+ <service name="htstyle"/>
+ <reference target="frames1" name="value"/>
+ </component>
+ <component x="950" y="180" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="put1" name="value"/>
+ <property>r</property>
+ </component>
+ <component x="210" y="40" name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="user3" name="value"/>
+ <property>me</property>
+ </component>
+ <component x="930" y="400" name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="get2" name="value"/>
+ <property>score</property>
+ </component>
+ <component x="1050" y="210" name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="put2" name="value"/>
+ <property>r</property>
+ </component>
+ <component name="list1" title="list.." color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="list28" name="item" clonable="true"/>
+ <reference target="list21" name="item" clonable="true"/>
+ <reference target="list29" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="120" y="160" name="list11" title="list" color="yellow1">
+ <implementation.python script="nuvem/single.py"/>
+ <service name="list1"/>
+ <reference target="list27" name="value"/>
+ </component>
+ <component x="620" y="110" name="list14" title="list" color="yellow1">
+ <implementation.python script="nuvem/single.py"/>
+ <service name="list1"/>
+ <reference target="htstyle2" name="value"/>
+ </component>
+ <component name="list2" title="list.." color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="name6" name="item" clonable="true"/>
+ <reference target="name7" name="item" clonable="true"/>
+ <reference target="name2" name="item" clonable="true"/>
+ <reference target="name8" name="item" clonable="true"/>
+ <reference target="name3" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="670" y="130" name="list21" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="number5" name="first"/>
+ <reference target="transform1" name="second"/>
+ </component>
+ <component x="780" y="200" name="list22" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="item1" name="first"/>
+ <reference target="call2" name="second"/>
+ </component>
+ <component x="1030" y="210" name="list23" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="item4" name="first"/>
+ <reference target="call4" name="second"/>
+ </component>
+ <component x="60" y="10" name="list24" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="item2" name="first"/>
+ <reference target="call5" name="second"/>
+ </component>
+ <component x="140" y="210" name="list27" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="call1" name="first"/>
+ <reference target="list14" name="second"/>
+ </component>
+ <component x="110" y="270" name="list28" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="number20" name="first"/>
+ <reference target="transform2" name="second"/>
+ </component>
+ <component x="670" y="250" name="list29" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="number24" name="first"/>
+ <reference target="transform3" name="second"/>
+ </component>
+ <component x="80" y="140" name="map1" title="map" color="yellow1">
+ <implementation.python script="nuvem/map_.py"/>
+ <service name="map"/>
+ <reference target="name1" name="item"/>
+ <reference target="list11" name="transform"/>
+ <reference target="range1" name="list"/>
+ </component>
+ <component x="110" y="140" name="name1" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>i</property>
+ </component>
+ <component x="780" y="330" name="name10" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>score</property>
+ </component>
+ <component x="230" y="80" name="name11" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>score</property>
+ </component>
+ <component x="840" y="70" name="name2" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>feather2</property>
+ </component>
+ <component x="850" y="120" name="name3" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>feather3</property>
+ </component>
+ <component x="780" y="220" name="name4" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>bounce</property>
+ </component>
+ <component x="200" y="160" name="name5" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>sprite</property>
+ </component>
+ <component x="400" y="90" name="name6" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>feather1</property>
+ </component>
+ <component x="390" y="180" name="name7" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>gnu1</property>
+ </component>
+ <component x="840" y="90" name="name8" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>gnu2</property>
+ </component>
+ <component x="840" y="360" name="name9" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>score</property>
+ </component>
+ <component x="770" y="170" name="number1" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3000</property>
+ </component>
+ <component x="380" y="110" name="number10" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>1</property>
+ </component>
+ <component x="710" y="240" name="number11" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>200</property>
+ </component>
+ <component x="280" y="230" name="number12" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>10</property>
+ </component>
+ <component x="1120" y="250" name="number13" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component x="930" y="170" name="number2" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>100</property>
+ </component>
+ <component x="820" y="230" name="number20" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component x="940" y="80" name="number22" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component x="950" y="110" name="number23" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component x="890" y="220" name="number24" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>100</property>
+ </component>
+ <component x="940" y="250" name="number25" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>240</property>
+ </component>
+ <component x="940" y="280" name="number26" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component x="940" y="310" name="number27" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>720</property>
+ </component>
+ <component x="670" y="210" name="number3" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>-400</property>
+ </component>
+ <component x="920" y="230" name="number4" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>360</property>
+ </component>
+ <component x="700" y="130" name="number5" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>50</property>
+ </component>
+ <component x="80" y="150" name="number6" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>4000</property>
+ </component>
+ <component x="150" y="300" name="number7" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component x="150" y="330" name="number8" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>20</property>
+ </component>
+ <component x="580" y="40" name="number9" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>-200</property>
+ </component>
+ <component x="880" y="260" name="put1" title="put" color="pink1">
+ <implementation.python script="nuvem/put.py"/>
+ <service name="put"/>
+ <reference target="filedb1" name="collection"/>
+ <reference target="user1" name="id"/>
+ <reference target="add1" name="value"/>
+ </component>
+ <component x="1080" y="210" name="put2" title="put" color="pink1">
+ <implementation.python script="nuvem/put.py"/>
+ <service name="put"/>
+ <reference target="filedb4" name="collection"/>
+ <reference target="user5" name="id"/>
+ <reference target="number13" name="value"/>
+ </component>
+ <component x="720" y="60" name="random1" title="rand" color="cyan1">
+ <implementation.python script="nuvem/random_.py"/>
+ <service name="random"/>
+ <reference target="list2" name="range"/>
+ </component>
+ <component x="540" y="40" name="random2" title="rand" color="cyan1">
+ <implementation.python script="nuvem/random_.py"/>
+ <service name="random"/>
+ <reference target="number9" name="range"/>
+ </component>
+ <component x="670" y="240" name="random3" title="rand" color="cyan1">
+ <implementation.python script="nuvem/random_.py"/>
+ <service name="random"/>
+ <reference target="number11" name="range"/>
+ </component>
+ <component x="120" y="300" name="range1" title="range" color="yellow1">
+ <implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference target="number7" name="first"/>
+ <reference target="number8" name="last"/>
+ </component>
+ <component x="180" y="10" name="score" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="item3" name="content"/>
+ </component>
+ <component x="360" y="400" name="sprite" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="random1" name="content"/>
+ </component>
+ <component x="10" y="10" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list24" name="content"/>
+ </component>
+ <component x="550" y="190" name="subtract1" title="-" color="cyan1">
+ <implementation.python script="nuvem/subtract.py"/>
+ <service name="subtract">
+ <documentation>-</documentation>
+ </service>
+ <reference target="number3" name="value1"/>
+ <reference target="random3" name="value2"/>
+ </component>
+ <component x="700" y="160" name="transform1" title="transform" color="white1">
+ <implementation.python script="nuvem/transform.py"/>
+ <service name="transform"/>
+ <reference target="number2" name="x"/>
+ <reference target="subtract1" name="y"/>
+ <reference target="number4" name="d"/>
+ </component>
+ <component x="820" y="250" name="transform2" title="transform" color="white1">
+ <implementation.python script="nuvem/transform.py"/>
+ <service name="transform"/>
+ <reference target="random2" name="x"/>
+ <reference target="number22" name="y"/>
+ <reference target="number23" name="d"/>
+ </component>
+ <component x="890" y="250" name="transform3" title="transform" color="white1">
+ <implementation.python script="nuvem/transform.py"/>
+ <service name="transform"/>
+ <reference target="number25" name="x"/>
+ <reference target="number26" name="y"/>
+ <reference target="number27" name="d"/>
+ </component>
+ <component x="80" y="110" name="true2" title="true" color="orange1">
+ <implementation.python script="nuvem/true_.py"/>
+ <service name="true"/>
+ </component>
+ <component x="240" y="130" name="user1" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component x="390" y="140" name="user2" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component x="110" y="40" name="user3" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component x="890" y="390" name="user4" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+ <component x="1110" y="210" name="user5" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/slice/app.stats b/sca-cpp/trunk/hosting/server/data/apps/slice/app.stats
new file mode 100644
index 0000000000..c7d1996716
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/slice/app.stats
@@ -0,0 +1 @@
+((entry (title "Slice") (id "slice")))
diff --git a/sca-cpp/trunk/hosting/server/data/apps/slice/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/slice/htdocs/app.html
new file mode 100644
index 0000000000..b4bc5908f6
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/slice/htdocs/app.html
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Hello</H2>
+ </SPAN>
+ <SPAN id="me" class="h2" style="position: absolute; top: 0px; left: 47px; ">
+ <H2>=me</H2>
+ </SPAN>
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 227px; ">
+ <H2>Score:</H2>
+ </SPAN>
+ <SPAN id="score" class="h2" style="position: absolute; top: 0px; left: 281px; ">
+ <H2>0</H2>
+ </SPAN>
+ <SPAN id="feather2" class="link" style="position: absolute; top: 486px; left: 2px; ">
+ <A href="link:feather">
+ <SPAN>
+ <IMG src="http://www.apache.org/images/feather-small.gif"/>
+ </SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="gnu1" class="link" style="position: absolute; top: 549px; left: 2px; ">
+ <A href="link:gnu">
+ <SPAN>
+ <IMG src="http://www.gnu.org/graphics/lgplv3-147x51.png"/>
+ </SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="feather1" class="link" style="position: absolute; top: 612px; left: 2px; ">
+ <A href="link:feather">
+ <SPAN>
+ <IMG src="http://www.apache.org/images/feather-small.gif"/>
+ </SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="gnu2" class="link" style="position: absolute; top: 666px; left: 2px; ">
+ <A href="link:gnu">
+ <SPAN>
+ <IMG src="http://www.gnu.org/graphics/lgplv3-147x51.png"/>
+ </SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="feather3" class="link" style="position: absolute; top: 729px; left: 2px; ">
+ <A href="link:feather">
+ <SPAN>
+ <IMG src="http://www.apache.org/images/feather-small.gif"/>
+ </SPAN>
+ </A>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/test/app.composite b/sca-cpp/trunk/hosting/server/data/apps/test/app.composite
new file mode 100644
index 0000000000..8fd7505562
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/test/app.composite
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="comment1" promote="comment1"/>
+ <service name="start1" promote="start1"/>
+ <component x="10" y="10" name="comment1" title="{propval}" color="white">
+ <implementation.python script="nuvem/comment.py"/>
+ <service name="comment" visible="false"/>
+ <property>Change this example to do what you want</property>
+ </component>
+ <component x="80" y="40" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="user1" name="value"/>
+ <property>me</property>
+ </component>
+ <component x="70" y="70" name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="now1" name="value"/>
+ <property>time</property>
+ </component>
+ <component x="50" y="40" name="list21" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="item1" name="first"/>
+ <reference target="item2" name="second"/>
+ </component>
+ <component x="120" y="70" name="now1" title="now" color="orange1">
+ <implementation.python script="nuvem/now.py"/>
+ <service name="now"/>
+ <reference name="format"/>
+ </component>
+ <component x="10" y="50" name="start1" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list21" name="content"/>
+ </component>
+ <component name="user1" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/test/app.stats b/sca-cpp/trunk/hosting/server/data/apps/test/app.stats
new file mode 100644
index 0000000000..9adad8c1a6
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/test/app.stats
@@ -0,0 +1 @@
+((entry (title "An empty test app") (id "test"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/test/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/test/htdocs/app.html
new file mode 100644
index 0000000000..d33d4d6da7
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/test/htdocs/app.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 0px; ">
+ <H1>Hello</H1>
+ </SPAN>
+ <SPAN id="me" class="h1" style="position: absolute; top: 0px; left: 74px; ">
+ <H1>=me</H1>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 36px; left: 2px; ">
+ <SPAN>The time is:</SPAN>
+ </SPAN>
+ <SPAN id="time" class="text" style="position: absolute; top: 36px; left: 74px; ">
+ <SPAN>=time</SPAN>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testanimation/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testanimation/app.composite
new file mode 100644
index 0000000000..5c8ebd59f3
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testanimation/app.composite
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="animation1" promote="animation1"/>
+ <service name="start1" promote="start1"/>
+ <component x="10" y="60" name="animation1" title="animation" color="green1">
+ <implementation.python script="nuvem/animation.py"/>
+ <service name="animation" visible="false">
+ <binding.http uri="animation"/>
+ </service>
+ <reference target="number4" name="n"/>
+ <reference target="number6" name="loop"/>
+ <reference target="map1" name="content"/>
+ </component>
+ <component x="220" y="180" name="htattrs2" title="attrs:" color="white1">
+ <implementation.python script="nuvem/htattrs.py"/>
+ <service name="htattrs"/>
+ <reference target="htstyle2" name="value"/>
+ </component>
+ <component x="240" y="120" name="htstyle2" title="style" color="white1">
+ <implementation.python script="nuvem/htstyle.py"/>
+ <service name="htstyle"/>
+ <reference target="list21" name="value"/>
+ </component>
+ <component x="160" y="180" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="htattrs2" name="value"/>
+ <property>testdynimg</property>
+ </component>
+ <component x="80" y="10" name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text1" name="value"/>
+ <property>testdynimg</property>
+ </component>
+ <component x="320" y="170" name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="pixels2" name="value"/>
+ <property>width</property>
+ </component>
+ <component x="120" y="180" name="list11" title="list" color="yellow1">
+ <implementation.python script="nuvem/single.py"/>
+ <service name="list1"/>
+ <reference target="item1" name="value"/>
+ </component>
+ <component x="290" y="180" name="list21" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="item4" name="first"/>
+ <reference target="transform1" name="second"/>
+ </component>
+ <component x="100" y="150" name="map1" title="map" color="yellow1">
+ <implementation.python script="nuvem/map_.py"/>
+ <service name="map"/>
+ <reference target="name1" name="item"/>
+ <reference target="list11" name="transform"/>
+ <reference target="range1" name="list"/>
+ </component>
+ <component x="400" y="190" name="multiply1" title="*" color="cyan1">
+ <implementation.python script="nuvem/multiply.py"/>
+ <service name="multiply">
+ <documentation>*</documentation>
+ </service>
+ <reference target="valueof1" name="value1"/>
+ <reference target="number3" name="value2"/>
+ </component>
+ <component x="380" y="290" name="multiply2" title="*" color="cyan1">
+ <implementation.python script="nuvem/multiply.py"/>
+ <service name="multiply">
+ <documentation>*</documentation>
+ </service>
+ <reference target="valueof2" name="value1"/>
+ <reference target="number5" name="value2"/>
+ </component>
+ <component x="150" y="110" name="name1" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>t</property>
+ </component>
+ <component x="140" y="110" name="number1" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component x="150" y="140" name="number2" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>121</property>
+ </component>
+ <component x="690" y="290" name="number3" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3</property>
+ </component>
+ <component x="100" y="90" name="number4" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>20</property>
+ </component>
+ <component x="680" y="340" name="number5" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>6</property>
+ </component>
+ <component x="110" y="120" name="number6" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5</property>
+ </component>
+ <component x="370" y="180" name="pixels2" title="pixels" color="white1">
+ <implementation.python script="nuvem/pixels.py"/>
+ <service name="pixels"/>
+ <reference target="multiply1" name="value"/>
+ </component>
+ <component x="150" y="400" name="range1" title="range" color="yellow1">
+ <implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference target="number1" name="first"/>
+ <reference target="number2" name="last"/>
+ </component>
+ <component x="10" y="10" name="start1" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="item2" name="content"/>
+ </component>
+ <component x="150" y="10" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://tuscany.apache.org/images/TuscanyLogo.jpg</property>
+ </component>
+ <component x="300" y="240" name="transform1" title="transform" color="white1">
+ <implementation.python script="nuvem/transform.py"/>
+ <service name="transform"/>
+ <reference name="x"/>
+ <reference name="y"/>
+ <reference target="multiply2" name="d"/>
+ </component>
+ <component x="680" y="260" name="valueof1" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>t</property>
+ </component>
+ <component x="680" y="310" name="valueof2" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>t</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testanimation/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testanimation/app.stats
new file mode 100644
index 0000000000..493ef39d1a
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testanimation/app.stats
@@ -0,0 +1 @@
+((entry (title "Test animation components") (id "testanimation"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testanimation/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testanimation/htdocs/app.html
new file mode 100644
index 0000000000..c9f9420eb0
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testanimation/htdocs/app.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Test animation component</H2>
+ </SPAN>
+ <SPAN id="testdynimg" class="img" style="position: absolute; top: 36px; left: 11px; ">
+ <IMG src="/public/img.png"/>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testdb/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testdb/app.composite
new file mode 100644
index 0000000000..32a023f8a7
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testdb/app.composite
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="delete" promote="delete"/>
+ <service name="get" promote="get"/>
+ <service name="put" promote="put"/>
+ <component x="150" y="10" name="delete" title="delete" color="pink1">
+ <implementation.python script="nuvem/delete.py"/>
+ <service name="delete"/>
+ <reference target="filedb2" name="collection"/>
+ <reference target="list3" name="id"/>
+ </component>
+ <component name="filedb" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component name="filedb2" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component name="filedb3" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="20" y="120" name="get" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference target="filedb3" name="collection"/>
+ <reference target="list2" name="id"/>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text3" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list3" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text4" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="13" y="1" name="put" title="put" color="pink1">
+ <implementation.python script="nuvem/put.py"/>
+ <service name="put"/>
+ <reference target="filedb" name="collection"/>
+ <reference target="list" name="id"/>
+ <reference target="text2" name="value"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>testkey</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>testvalue</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>testkey</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>testkey</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testdb/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testdb/app.stats
new file mode 100644
index 0000000000..1128933dfd
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testdb/app.stats
@@ -0,0 +1 @@
+((entry (title "Test database components") (id "testdb"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testdb/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testdb/htdocs/app.html
new file mode 100644
index 0000000000..856966ff50
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testdb/htdocs/app.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 2px; ">
+ <H1>Test db components</H1>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testevents/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testevents/app.composite
new file mode 100644
index 0000000000..61cd17ec81
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testevents/app.composite
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="Cancel" promote="Cancel"/>
+ <service name="OK" promote="OK"/>
+ <service name="call" promote="call"/>
+ <service name="call2" promote="call2"/>
+ <service name="call3" promote="call3"/>
+ <service name="compabc" promote="compabc"/>
+ <service name="compxyz" promote="compxyz"/>
+ <service name="location" promote="location"/>
+ <service name="start" promote="start"/>
+ <service name="timer3" promote="timer3"/>
+ <component x="190" y="10" name="Cancel" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="prop2" name="content"/>
+ </component>
+ <component x="190" y="60" name="OK" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="list" name="content"/>
+ </component>
+ <component name="abc" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abc</property>
+ </component>
+ <component x="190" y="150" name="call" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name2" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="20" y="180" name="call2" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="190" y="190" name="call3" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="text5" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="10" y="230" name="compabc" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="abc" name="content"/>
+ </component>
+ <component x="20" y="270" name="compxyz" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="text12" name="content"/>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text4" name="value"/>
+ <property>status</property>
+ </component>
+ <component name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text" name="value"/>
+ <property>status</property>
+ </component>
+ <component name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text2" name="value"/>
+ <property>status</property>
+ </component>
+ <component name="item5" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="param" name="value"/>
+ <property>testtext</property>
+ </component>
+ <component name="item6" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="params2" name="value"/>
+ <property>location</property>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item5" name="item" clonable="true"/>
+ <reference target="item4" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="10" y="130" name="location" title="location" color="green1">
+ <implementation.python script="nuvem/location.py"/>
+ <service name="location" visible="false">
+ <binding.http uri="location"/>
+ </service>
+ <reference target="item6" name="content"/>
+ </component>
+ <component name="name" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>compxyz</property>
+ </component>
+ <component name="name2" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>https://testhttp.sca-store.com:8453/components/property</property>
+ </component>
+ <component name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3000</property>
+ </component>
+ <component name="param" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>testfield</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="params2" title="?params" color="green1">
+ <implementation.python script="nuvem/params.py"/>
+ <service name="params"/>
+ <property name="query" visible="false"/>
+ </component>
+ <component name="prop2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text3" name="value"/>
+ <property>status</property>
+ </component>
+ <component x="15" y="3" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="item3" name="content"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>page opens</property>
+ </component>
+ <component name="text12" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xyz</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>ok button clicked</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>cancel button clicked</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>timer fired</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>https://testhttp.sca-store.com:8453/components/property</property>
+ </component>
+ <component x="13" y="58" name="timer3" title="timer" color="green1">
+ <implementation.python script="nuvem/timer.py"/>
+ <service name="timer" visible="false">
+ <binding.http uri="timer"/>
+ </service>
+ <reference target="number" name="n"/>
+ <reference target="item2" name="content"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testevents/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testevents/app.stats
new file mode 100644
index 0000000000..51d6a0388e
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testevents/app.stats
@@ -0,0 +1 @@
+((entry (title "Test event components") (id "testevents"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testevents/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testevents/htdocs/app.html
new file mode 100644
index 0000000000..6698c6faa8
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testevents/htdocs/app.html
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 2px; ">
+ <H1>Test events</H1>
+ </SPAN>
+ <SPAN id="testfield" class="entry" style="position: absolute; top: 54px; left: 11px; ">
+ <INPUT type="text" value="=testfield" size="10" autocapitalize="off"/>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 90px; left: 11px; ">
+ <SPAN>Status:</SPAN>
+ </SPAN>
+ <SPAN id="status" class="text" style="position: absolute; top: 90px; left: 92px; ">
+ <SPAN>=status</SPAN>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 117px; left: 11px; ">
+ <SPAN>Field value:</SPAN>
+ </SPAN>
+ <SPAN id="testtext" class="text" style="position: absolute; top: 117px; left: 92px; ">
+ <SPAN>=testtext</SPAN>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 144px; left: 11px; ">
+ <SPAN>Longitude:</SPAN>
+ </SPAN>
+ <SPAN id="longitude" class="text" style="position: absolute; top: 144px; left: 92px; ">
+ <SPAN>=longitude</SPAN>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 171px; left: 11px; ">
+ <SPAN>Latitude:</SPAN>
+ </SPAN>
+ <SPAN id="latitude" class="text" style="position: absolute; top: 171px; left: 92px; ">
+ <SPAN>=latitude</SPAN>
+ </SPAN>
+ <SPAN id="page:button" class="button" style="position: absolute; top: 207px; left: 2px; ">
+ <INPUT type="button" value="OK" class="graybutton"/>
+ </SPAN>
+ <SPAN id="page:button" class="button" style="position: absolute; top: 207px; left: 47px; ">
+ <INPUT type="button" value="Cancel" class="graybutton"/>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testhttp/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testhttp/app.composite
new file mode 100644
index 0000000000..6aabf6d4bb
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testhttp/app.composite
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="call" promote="call"/>
+ <service name="get" promote="get"/>
+ <service name="get2" promote="get2"/>
+ <service name="get3" promote="get3"/>
+ <service name="get4" promote="get4"/>
+ <service name="get5" promote="get5"/>
+ <service name="get6" promote="get6"/>
+ <service name="item" promote="property"/>
+ <service name="parse" promote="parse"/>
+ <component x="20" y="180" name="call" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference target="name" name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component name="first" title="first" color="yellow1">
+ <implementation.python script="nuvem/first.py"/>
+ <service name="first"/>
+ <reference target="rest" name="list"/>
+ </component>
+ <component x="750" y="320" name="format1" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text12" name="pattern"/>
+ <reference target="list2" name="values"/>
+ </component>
+ <component x="20" y="10" name="get" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text" name="url"/>
+ </component>
+ <component x="20" y="60" name="get2" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text2" name="url"/>
+ </component>
+ <component x="20" y="100" name="get3" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text3" name="url"/>
+ </component>
+ <component x="310" y="10" name="get4" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text4" name="url"/>
+ </component>
+ <component x="200" y="10" name="get5" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text5" name="url"/>
+ </component>
+ <component x="20" y="140" name="get6" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text6" name="url"/>
+ </component>
+ <component name="get7" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text7" name="url"/>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="user" name="value"/>
+ <property>user</property>
+ </component>
+ <component name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="params" name="value"/>
+ <property>name</property>
+ </component>
+ <component name="join" title="join" color="cyan1">
+ <implementation.python script="nuvem/join.py"/>
+ <service name="join"/>
+ <reference target="text9" name="separator"/>
+ <reference target="first" name="list"/>
+ </component>
+ <component x="570" y="350" name="keychain1" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="name1" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component x="710" y="290" name="keychain2" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="name2" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component x="720" y="310" name="keychain3" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="name3" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference target="item3" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list1" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="keychain1" name="item" clonable="true"/>
+ <reference target="text10" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text11" name="item" clonable="true"/>
+ <reference target="text13" name="item" clonable="true"/>
+ <reference target="text14" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list4" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="format1" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="name" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>https://testhttp.sca-store.com:8453/components/property</property>
+ </component>
+ <component x="630" y="350" name="name1" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>twilliosid</property>
+ </component>
+ <component x="780" y="280" name="name2" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>twilliosid</property>
+ </component>
+ <component x="780" y="320" name="name3" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>twilliotoken</property>
+ </component>
+ <component name="params" title="?params" color="green1">
+ <implementation.python script="nuvem/params.py"/>
+ <service name="params"/>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="340" y="180" name="parse" title="parse" color="cyan1">
+ <implementation.python script="nuvem/parse.py"/>
+ <service name="parse"/>
+ <reference target="text8" name="regexp"/>
+ <reference target="join" name="string"/>
+ </component>
+ <component x="20" y="220" name="property" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list" name="value"/>
+ <property>test</property>
+ </component>
+ <component name="rest" title="rest" color="yellow1">
+ <implementation.python script="nuvem/rest.py"/>
+ <service name="rest"/>
+ <reference target="get7" name="list"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://www.google.com</property>
+ </component>
+ <component x="530" y="320" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>https://api.twilio.com/2010-04-01/Accounts/</property>
+ </component>
+ <component x="570" y="390" name="text10" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>SMS/Messages</property>
+ </component>
+ <component x="580" y="480" name="text11" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>+14155992671</property>
+ </component>
+ <component x="550" y="450" name="text12" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>From={0}&amp;To={1}&amp;Body={2}</property>
+ </component>
+ <component x="700" y="340" name="text13" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>+16508632924</property>
+ </component>
+ <component x="690" y="370" name="text14" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>This is a text message</property>
+ </component>
+ <component x="710" y="290" name="text15" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>application/x-www-form-urlencoded</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&amp;destination=Concord,MA&amp;waypoints=Charlestown,MA|Lexington,MA&amp;sensor=false</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://www.weather.gov/forecasts/xml/sample_products/browser_interface/ndfdXMLclient.php?whichClient=NDFDgen&amp;lat=38.99&amp;lon=-77.01&amp;listLatLon=&amp;lat1=&amp;lon1=&amp;lat2=&amp;lon2=&amp;resolutionSub=&amp;listLat1=&amp;listLon1=&amp;listLat2=&amp;listLon2=&amp;resolutionList=&amp;endPoint1Lat=&amp;endPoint1Lon=&amp;endPoint2Lat=&amp;endPoint2Lon=&amp;listEndPoint1Lat=&amp;listEndPoint1Lon=&amp;listEndPoint2Lat=&amp;listEndPoint2Lon=&amp;zipCodeList=&amp;listZipCodeList=&amp;centerPointLat=&amp;centerPointLon=&amp;distanceLat=&amp;distanceLon=&amp;resolutionSquare=&amp;listCenterPointLat=&amp;listCenterPointLon=&amp;listDistanceLat=&amp;listDistanceLon=&amp;listResolutionSquare=&amp;citiesLevel=&amp;listCitiesLevel=&amp;sector=&amp;gmlListLatLon=&amp;featureType=&amp;requestedTime=&amp;startTime=&amp;endTime=&amp;compType=&amp;propertyName=&amp;product=time-series&amp;begin=2004-01-01T00%3A00%3A00&amp;end=2015-03-10T00%3A00%3A00&amp;maxt=maxt&amp;Submit=Submit</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://feedproxy.google.com/TechCrunch</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>cnn.com</property>
+ </component>
+ <component name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>https://chart.googleapis.com/chart?cht=p3&amp;chs=250x100&amp;chd=60,40&amp;chl=Hello|World</property>
+ </component>
+ <component name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>cnn.com</property>
+ </component>
+ <component name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>(CNN)</property>
+ </component>
+ <component name="text9" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property name="property"/>
+ </component>
+ <component name="user" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testhttp/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testhttp/app.stats
new file mode 100644
index 0000000000..be1fc6d254
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testhttp/app.stats
@@ -0,0 +1 @@
+((entry (title "Test HTTP components") (id "testhttp"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testhttp/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testhttp/htdocs/app.html
new file mode 100644
index 0000000000..b0c20ef5e6
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testhttp/htdocs/app.html
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 2px; ">
+ <H1>Test HTTP components</H1>
+ </SPAN>
+ <SPAN id="iframe" class="iframe" style="position: absolute; top: 234px; left: 11px; ">
+ <A href="/public/iframe.html">
+ <SPAN class="fakeframe">
+ <SPAN>frame ...</SPAN>
+ </SPAN>
+ </A>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testlogic/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testlogic/app.composite
new file mode 100644
index 0000000000..659fcbacba
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testlogic/app.composite
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="cos" promote="cos"/>
+ <service name="eval" promote="eval"/>
+ <service name="eval2" promote="eval2"/>
+ <service name="exec" promote="exec"/>
+ <service name="exec2" promote="exec2"/>
+ <service name="if" promote="if"/>
+ <service name="random1" promote="random1"/>
+ <service name="randoms1" promote="randoms1"/>
+ <service name="randoms2" promote="randoms2"/>
+ <service name="sin" promote="sin"/>
+ <component x="20" y="170" name="cos" title="cos" color="cyan1">
+ <implementation.python script="nuvem/cos_.py"/>
+ <service name="cos"/>
+ <reference target="number7" name="x"/>
+ </component>
+ <component x="150" y="10" name="eval" title="expr" color="cyan1">
+ <implementation.python script="nuvem/eval_.py"/>
+ <service name="eval"/>
+ <reference target="text3" name="py"/>
+ <reference name="ref"/>
+ </component>
+ <component x="170" y="70" name="eval2" title="expr" color="cyan1">
+ <implementation.python script="nuvem/eval_.py"/>
+ <service name="eval"/>
+ <reference target="text4" name="py"/>
+ <reference target="number3" name="ref"/>
+ </component>
+ <component x="150" y="210" name="exec" title="script" color="cyan1">
+ <implementation.python script="nuvem/exec_.py"/>
+ <service name="exec"/>
+ <reference target="get" name="py"/>
+ <reference target="number4" name="ref"/>
+ </component>
+ <component x="150" y="140" name="exec2" title="script" color="cyan1">
+ <implementation.python script="nuvem/exec_.py"/>
+ <service name="exec"/>
+ <reference target="text6" name="py"/>
+ <reference target="number5" name="ref"/>
+ </component>
+ <component name="get" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text5" name="url"/>
+ </component>
+ <component name="greater" title="gt" color="cyan1">
+ <implementation.python script="nuvem/greater.py"/>
+ <service name="greater"/>
+ <reference target="number2" name="value1"/>
+ <reference target="number" name="value2"/>
+ </component>
+ <component x="19" y="9" name="if" title="if" color="cyan1">
+ <implementation.python script="nuvem/if_.py"/>
+ <service name="if"/>
+ <reference target="greater" name="condition"/>
+ <reference target="text" name="then"/>
+ <reference target="text2" name="else"/>
+ </component>
+ <component name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5</property>
+ </component>
+ <component x="390" y="10" name="number1" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3</property>
+ </component>
+ <component x="480" y="90" name="number10" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5</property>
+ </component>
+ <component x="530" y="120" name="number11" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component x="520" y="140" name="number12" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>100</property>
+ </component>
+ <component name="number2" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3</property>
+ </component>
+ <component name="number3" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5</property>
+ </component>
+ <component name="number4" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5</property>
+ </component>
+ <component name="number5" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5</property>
+ </component>
+ <component name="number6" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0.5</property>
+ </component>
+ <component name="number7" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0.5</property>
+ </component>
+ <component x="490" y="0" name="number8" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5</property>
+ </component>
+ <component x="480" y="40" name="number9" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3</property>
+ </component>
+ <component x="310" y="10" name="random1" title="rand" color="cyan1">
+ <implementation.python script="nuvem/random_.py"/>
+ <service name="random"/>
+ <reference target="number1" name="range"/>
+ </component>
+ <component x="390" y="10" name="randoms1" title="rands" color="cyan1">
+ <implementation.python script="nuvem/randoms.py"/>
+ <service name="randoms"/>
+ <reference target="number8" name="n"/>
+ <reference target="number9" name="range"/>
+ </component>
+ <component x="390" y="100" name="randoms2" title="rands" color="cyan1">
+ <implementation.python script="nuvem/randoms.py"/>
+ <service name="randoms"/>
+ <reference target="number10" name="n"/>
+ <reference target="range1" name="range"/>
+ </component>
+ <component x="480" y="120" name="range1" title="range" color="yellow1">
+ <implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference target="number11" name="first"/>
+ <reference target="number12" name="last"/>
+ </component>
+ <component x="20" y="130" name="sin" title="sin" color="cyan1">
+ <implementation.python script="nuvem/sin_.py"/>
+ <service name="sin"/>
+ <reference target="number6" name="x"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>greater than 5</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>not greater than 5</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>3.14116 * 5 * 5</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>3.14116 * ref.get(r) * ref.get(r)</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://people.apache.org/~jsdelfino/tuscany/test/surface.py</property>
+ </component>
+ <component name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>val = 3.14116 * ref.get(r) * ref.get(r)</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testlogic/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testlogic/app.stats
new file mode 100644
index 0000000000..e557346327
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testlogic/app.stats
@@ -0,0 +1 @@
+((entry (title "Test logic components") (id "testlogic"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testlogic/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testlogic/htdocs/app.html
new file mode 100644
index 0000000000..4e9efdaa22
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testlogic/htdocs/app.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Test logic components</H2>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsearch/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testsearch/app.composite
new file mode 100644
index 0000000000..493e9a253a
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsearch/app.composite
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="bingsearch" promote="bingsearch"/>
+ <service name="gaddress1" promote="gaddress1"/>
+ <service name="get" promote="get"/>
+ <service name="ggeopos1" promote="ggeopos1"/>
+ <service name="googlemap" promote="googlemap"/>
+ <service name="googlemap2" promote="googlemap2"/>
+ <service name="googlesearch" promote="googlesearch"/>
+ <service name="weather" promote="weather"/>
+ <service name="weather2" promote="weather2"/>
+ <service name="yahoosearch" promote="yahoosearch"/>
+ <component x="330" y="10" name="bingsearch" title="bing" color="pink1">
+ <implementation.python script="nuvem/bsearch.py"/>
+ <service name="bingsearch"/>
+ <reference target="text10" name="query"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://www.bing.com/search"/>
+ </reference>
+ </component>
+ <component x="330" y="50" name="gaddress1" title="address" color="pink1">
+ <implementation.python script="nuvem/gaddress.py"/>
+ <service name="gaddress"/>
+ <reference target="text1" name="address"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.googleapis.com/maps/api/geocode/json"/>
+ </reference>
+ </component>
+ <component x="20" y="250" name="get" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference target="text3" name="url"/>
+ </component>
+ <component x="490" y="10" name="ggeopos1" title="geo position" color="pink1">
+ <implementation.python script="nuvem/ggeopos.py"/>
+ <service name="ggeopos"/>
+ <reference target="number1" name="latitude"/>
+ <reference target="number4" name="longitude"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.googleapis.com/maps/api/geocode/json"/>
+ </reference>
+ </component>
+ <component x="310" y="100" name="googlemap" title="google map" color="pink1">
+ <implementation.python script="nuvem/gmap.py"/>
+ <service name="googlemap"/>
+ <reference target="list2" name="locations"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.google.com/maps/api/staticmap"/>
+ </reference>
+ </component>
+ <component x="15" y="96" name="googlemap2" title="google map" color="pink1">
+ <implementation.python script="nuvem/gmap.py"/>
+ <service name="googlemap"/>
+ <reference target="list3" name="locations"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.google.com/maps/api/staticmap"/>
+ </reference>
+ </component>
+ <component x="20" y="10" name="googlesearch" title="google" color="pink1">
+ <implementation.python script="nuvem/gsearch.py"/>
+ <service name="googlesearch"/>
+ <reference target="text" name="query"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://ajax.googleapis.com/ajax/services/search/web"/>
+ </reference>
+ </component>
+ <component name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list" name="value"/>
+ <property>A</property>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list24" name="value"/>
+ <property>A</property>
+ </component>
+ <component name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list25" name="value"/>
+ <property>B</property>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text4" name="item" clonable="true"/>
+ <reference target="number2" name="item" clonable="true"/>
+ <reference target="number3" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list24" title="list2" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="text7" name="name"/>
+ <reference target="text5" name="value"/>
+ </component>
+ <component name="list25" title="list2" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="text8" name="name"/>
+ <reference target="text6" name="value"/>
+ </component>
+ <component name="list3" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference target="item3" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>94070</property>
+ </component>
+ <component x="730" y="80" name="number1" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>37.507156</property>
+ </component>
+ <component name="number2" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>37.507156</property>
+ </component>
+ <component name="number3" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>-122.260526</property>
+ </component>
+ <component x="730" y="120" name="number4" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>-122.260526</property>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>apache tuscany</property>
+ </component>
+ <component x="710" y="20" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>San Carlos, CA</property>
+ </component>
+ <component name="text10" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>apache tuscany</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>94070</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://maps.google.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&amp;zoom=14&amp;size=512x512&amp;maptype=roadmap%20&amp;markers=color:blue|label:S|40.702147,-74.015794&amp;markers=color:green|label:G|40.711614,-74.012318%20&amp;markers=color:red|color:red|label:C|40.718217,-73.998284&amp;sensor=false</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>green</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>San Francisco, CA</property>
+ </component>
+ <component name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>San Carlos, CA</property>
+ </component>
+ <component name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>yellow</property>
+ </component>
+ <component name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>green</property>
+ </component>
+ <component name="text9" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>apache tuscany</property>
+ </component>
+ <component x="18" y="49" name="weather" title="weather" color="pink1">
+ <implementation.python script="nuvem/gweather.py"/>
+ <service name="weather"/>
+ <reference target="number" name="zip"/>
+ <reference name="ws" visible="false">
+ <binding.http uri="http://www.google.com/ig/api"/>
+ </reference>
+ </component>
+ <component x="190" y="51" name="weather2" title="weather" color="pink1">
+ <implementation.python script="nuvem/gweather.py"/>
+ <service name="weather"/>
+ <reference target="text2" name="zip"/>
+ <reference name="ws" visible="false">
+ <binding.http uri="http://www.google.com/ig/api"/>
+ </reference>
+ </component>
+ <component x="180" y="10" name="yahoosearch" title="yahoo" color="pink1">
+ <implementation.python script="nuvem/ysearch.py"/>
+ <service name="yahoosearch"/>
+ <reference target="text9" name="query"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://search.yahooapis.com/WebSearchService/V1/webSearch"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsearch/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testsearch/app.stats
new file mode 100644
index 0000000000..691c43875d
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsearch/app.stats
@@ -0,0 +1 @@
+((entry (title "Test search components") (id "testsearch"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsearch/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testsearch/htdocs/app.html
new file mode 100644
index 0000000000..ca5462f07a
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsearch/htdocs/app.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 2px; ">
+ <H1>Test search components</H1>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsms/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testsms/app.composite
new file mode 100644
index 0000000000..d2abbaae28
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsms/app.composite
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="item" promote="property"/>
+ <service name="twsms1" promote="twsms1"/>
+ <component x="180" y="30" name="keychain1" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="name1" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component x="190" y="70" name="keychain3" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="name3" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component x="190" y="100" name="keychain4" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="name5" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component x="180" y="140" name="keychain5" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="name4" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text14" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="630" y="350" name="name1" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>twiliosid</property>
+ </component>
+ <component x="780" y="320" name="name3" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>twiliotoken</property>
+ </component>
+ <component x="250" y="140" name="name4" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>tophone</property>
+ </component>
+ <component x="520" y="270" name="name5" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>fromphone</property>
+ </component>
+ <component x="180" y="170" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>Hello Again!</property>
+ </component>
+ <component x="550" y="450" name="text12" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>From={0}&amp;To={1}&amp;Body={2}</property>
+ </component>
+ <component x="250" y="340" name="text14" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>Hello there</property>
+ </component>
+ <component x="20" y="10" name="twsms1" title="sms" color="blue1">
+ <implementation.python script="nuvem/twsms.py"/>
+ <service name="twsms"/>
+ <reference target="keychain1" name="sid"/>
+ <reference target="keychain3" name="token"/>
+ <reference target="keychain4" name="from"/>
+ <reference target="keychain5" name="to"/>
+ <reference target="text1" name="msg"/>
+ <reference name="s" wiredByImpl="true" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsms/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testsms/app.stats
new file mode 100644
index 0000000000..be1fc6d254
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsms/app.stats
@@ -0,0 +1 @@
+((entry (title "Test HTTP components") (id "testhttp"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsms/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testsms/htdocs/app.html
new file mode 100644
index 0000000000..dd8f5f9f26
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsms/htdocs/app.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 2px; ">
+ <H1>Test SMS API</H1>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsocial/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testsocial/app.composite
new file mode 100644
index 0000000000..28ec9654d8
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsocial/app.composite
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="sendgtalk" promote="sendgtalk"/>
+ <service name="start" promote="start"/>
+ <component name="fbprofile" title="facebook profile" color="blue1">
+ <implementation.python script="nuvem/fbprofile.py"/>
+ <service name="fbprofile"/>
+ <reference target="text" name="id"/>
+ <reference name="fb" visible="false">
+ <binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component name="format" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text7" name="pattern"/>
+ <reference target="list" name="values"/>
+ </component>
+ <component name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="twprofile" name="value"/>
+ <property>twitprofile</property>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="fbprofile" name="value"/>
+ <property>name</property>
+ </component>
+ <component name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="twtimeline" name="value"/>
+ <property>twittimeline</property>
+ </component>
+ <component name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="twfriends" name="value"/>
+ <property>twitfriends</property>
+ </component>
+ <component name="item5" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="twfollowers" name="value"/>
+ <property>twitfollowers</property>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="now" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list3" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference target="item" name="item" clonable="true"/>
+ <reference target="item3" name="item" clonable="true"/>
+ <reference target="item4" name="item" clonable="true"/>
+ <reference target="item5" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="now" title="now" color="orange1">
+ <implementation.python script="nuvem/now.py"/>
+ <service name="now"/>
+ </component>
+ <component x="20" y="210" name="sendgtalk" title="gtalk" color="blue1">
+ <implementation.cpp path="lib/chat" library="libchat-sender2"/>
+ <service name="sendgtalk"/>
+ <reference target="text8" name="jid"/>
+ <reference target="text9" name="pass"/>
+ <reference target="text6" name="to"/>
+ <reference target="format" name="msg"/>
+ </component>
+ <component x="10" y="10" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list3" name="content"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>100001053301307</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xmppsca.2@gmail.com</property>
+ </component>
+ <component name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>Hello, the time is {0}</property>
+ </component>
+ <component name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xmppsca.1@gmail.com</property>
+ </component>
+ <component name="text9" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xmpp4sca</property>
+ </component>
+ <component name="twfollowers" title="twitter followers" color="blue1">
+ <implementation.python script="nuvem/twfollowers.py"/>
+ <service name="twfollowers"/>
+ <reference target="text5" name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/statuses/followers.json"/>
+ </reference>
+ </component>
+ <component name="twfriends" title="twitter friends" color="blue1">
+ <implementation.python script="nuvem/twfriends.py"/>
+ <service name="twfriends"/>
+ <reference target="text4" name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/statuses/friends.json"/>
+ </reference>
+ </component>
+ <component name="twprofile" title="twitter profile" color="blue1">
+ <implementation.python script="nuvem/twprofile.py"/>
+ <service name="twprofile"/>
+ <reference target="text3" name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/users/show.json"/>
+ </reference>
+ </component>
+ <component name="twtimeline" title="twitter timeline" color="blue1">
+ <implementation.python script="nuvem/twtimeline.py"/>
+ <service name="twtimeline"/>
+ <reference target="text2" name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/statuses/user_timeline.json"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsocial/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testsocial/app.stats
new file mode 100644
index 0000000000..fa487f4d81
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsocial/app.stats
@@ -0,0 +1 @@
+((entry (title "Test social components") (id "testsocial"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testsocial/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testsocial/htdocs/app.html
new file mode 100644
index 0000000000..5fe616ca16
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testsocial/htdocs/app.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 2px; ">
+ <H1>Test social components</H1>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testtext/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testtext/app.composite
new file mode 100644
index 0000000000..7021ddb2e9
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testtext/app.composite
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="contains" promote="contains"/>
+ <service name="format" promote="format"/>
+ <service name="format2" promote="format2"/>
+ <service name="join" promote="join"/>
+ <service name="lowercase" promote="lowercase"/>
+ <service name="parse" promote="parse"/>
+ <service name="replace" promote="replace"/>
+ <service name="split" promote="split"/>
+ <service name="uppercase" promote="uppercase"/>
+ <component x="19" y="7" name="contains" title="contains" color="cyan1">
+ <implementation.python script="nuvem/contains.py"/>
+ <service name="contains"/>
+ <reference target="text10" name="search"/>
+ <reference target="text9" name="string"/>
+ </component>
+ <component x="150" y="110" name="format" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text13" name="pattern"/>
+ <reference target="list" name="values"/>
+ </component>
+ <component x="310" y="130" name="format2" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text14" name="pattern"/>
+ <reference target="list3" name="values"/>
+ </component>
+ <component name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text17" name="value"/>
+ <property>a</property>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text18" name="value"/>
+ <property>b</property>
+ </component>
+ <component x="300" y="10" name="join" title="join" color="cyan1">
+ <implementation.python script="nuvem/join.py"/>
+ <service name="join"/>
+ <reference target="text6" name="separator"/>
+ <reference target="list2" name="list"/>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text15" name="item" clonable="true"/>
+ <reference target="text16" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text7" name="item" clonable="true"/>
+ <reference target="text8" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list3" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item" name="item" clonable="true"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="20" y="226" name="lowercase" title="lower" color="cyan1">
+ <implementation.python script="nuvem/lowercase.py"/>
+ <service name="lowercase"/>
+ <reference target="text2" name="string"/>
+ </component>
+ <component x="150" y="230" name="parse" title="parse" color="cyan1">
+ <implementation.python script="nuvem/parse.py"/>
+ <service name="parse"/>
+ <reference target="text19" name="regexp"/>
+ <reference target="text20" name="string"/>
+ </component>
+ <component x="150" y="10" name="replace" title="replace" color="cyan1">
+ <implementation.python script="nuvem/replace.py"/>
+ <service name="replace"/>
+ <reference target="text4" name="from"/>
+ <reference target="text5" name="to"/>
+ <reference target="text3" name="string"/>
+ </component>
+ <component x="23" y="89" name="split" title="split" color="cyan1">
+ <implementation.python script="nuvem/split.py"/>
+ <service name="split"/>
+ <reference target="text11" name="separator"/>
+ <reference target="text12" name="string"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abc</property>
+ </component>
+ <component name="text10" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>cd</property>
+ </component>
+ <component name="text11" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>x</property>
+ </component>
+ <component name="text12" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abcxdefxghi</property>
+ </component>
+ <component name="text13" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>The {0} brown {1}</property>
+ </component>
+ <component name="text14" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>The {a} brown {b}</property>
+ </component>
+ <component name="text15" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>quick</property>
+ </component>
+ <component name="text16" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>fox</property>
+ </component>
+ <component name="text17" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>quick</property>
+ </component>
+ <component name="text18" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>fox</property>
+ </component>
+ <component name="text19" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>city (.*) state (.*)</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>ABC</property>
+ </component>
+ <component name="text20" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>city San Francisco state CA</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abcxdefxghi</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>x</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>y</property>
+ </component>
+ <component name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>x</property>
+ </component>
+ <component name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abc</property>
+ </component>
+ <component name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>def</property>
+ </component>
+ <component name="text9" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abcdef</property>
+ </component>
+ <component x="20" y="172" name="uppercase" title="upper" color="cyan1">
+ <implementation.python script="nuvem/uppercase.py"/>
+ <service name="uppercase"/>
+ <reference target="text" name="string"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testtext/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testtext/app.stats
new file mode 100644
index 0000000000..35e43ff383
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testtext/app.stats
@@ -0,0 +1 @@
+((entry (title "Test text processing components") (id "testtext"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testtext/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testtext/htdocs/app.html
new file mode 100644
index 0000000000..1c7612d0e0
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testtext/htdocs/app.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Test text processing components</H2>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testurl/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testurl/app.composite
new file mode 100644
index 0000000000..7b97b7a957
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testurl/app.composite
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="app1" promote="app1"/>
+ <service name="email" promote="email"/>
+ <service name="host" promote="host"/>
+ <service name="keychain1" promote="keychain1"/>
+ <service name="keychain2" promote="keychain2"/>
+ <service name="params" promote="params"/>
+ <service name="path" promote="path"/>
+ <service name="realm" promote="realm"/>
+ <service name="url" promote="url"/>
+ <service name="user" promote="user"/>
+ <component x="260" y="100" name="app1" title="app" color="green1">
+ <implementation.python script="nuvem/app.py"/>
+ <service name="app"/>
+ <property name="app" visible="false"/>
+ </component>
+ <component x="17" y="223" name="email" title="email" color="green1">
+ <implementation.python script="nuvem/email.py"/>
+ <service name="email"/>
+ <property name="email"/>
+ </component>
+ <component x="20" y="10" name="host" title="host" color="green1">
+ <implementation.python script="nuvem/host.py"/>
+ <service name="host"/>
+ <property name="host"/>
+ </component>
+ <component name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text4" name="value"/>
+ <property>parmx</property>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text5" name="value"/>
+ <property>parmy</property>
+ </component>
+ <component name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="number" name="value"/>
+ <property>parmn</property>
+ </component>
+ <component x="260" y="50" name="keychain1" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="text1" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component x="260" y="10" name="keychain2" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference target="name1" name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text2" name="item" clonable="true"/>
+ <reference target="text3" name="item" clonable="true"/>
+ <reference target="item" name="item" clonable="true"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference target="item3" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="400" y="10" name="name1" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>key2</property>
+ </component>
+ <component name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>123</property>
+ </component>
+ <component x="16" y="91" name="params" title="?params" color="green1">
+ <implementation.python script="nuvem/params.py"/>
+ <service name="params"/>
+ <property name="params"/>
+ </component>
+ <component x="20" y="50" name="path" title="path" color="green1">
+ <implementation.python script="nuvem/path.py"/>
+ <service name="path"/>
+ <property name="path"/>
+ </component>
+ <component x="14" y="177" name="realm" title="realm" color="green1">
+ <implementation.python script="nuvem/realm.py"/>
+ <service name="realm"/>
+ <property name="realm"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://sca-store.com/</property>
+ </component>
+ <component x="400" y="10" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>key2</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>path</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xx</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>yy</property>
+ </component>
+ <component x="90" y="10" name="url" title="url" color="green1">
+ <implementation.python script="nuvem/url.py"/>
+ <service name="url"/>
+ <reference target="text" name="address"/>
+ <reference target="list" name="args"/>
+ </component>
+ <component x="16" y="134" name="user" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testurl/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testurl/app.stats
new file mode 100644
index 0000000000..b4142f40cf
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testurl/app.stats
@@ -0,0 +1 @@
+((entry (title "Test URL components") (id "testurl"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testurl/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testurl/htdocs/app.html
new file mode 100644
index 0000000000..8c47186044
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testurl/htdocs/app.html
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Test url components</H2>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testvalues/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testvalues/app.composite
new file mode 100644
index 0000000000..4ee8a0a619
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testvalues/app.composite
@@ -0,0 +1,491 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="empty" promote="empty"/>
+ <service name="false" promote="false"/>
+ <service name="first" promote="first"/>
+ <service name="itemnb" promote="itemnb"/>
+ <service name="list8" promote="list8"/>
+ <service name="list9" promote="list9"/>
+ <service name="name" promote="name"/>
+ <service name="nothing" promote="nothing"/>
+ <service name="reduce2" promote="reduce2"/>
+ <service name="rest" promote="rest"/>
+ <service name="second" promote="second"/>
+ <service name="shuffle" promote="shuffle"/>
+ <service name="start" promote="start"/>
+ <service name="true" promote="true"/>
+ <service name="values" promote="values"/>
+ <service name="values2" promote="values2"/>
+ <component name="add" title="+" color="cyan1">
+ <implementation.python script="nuvem/add.py"/>
+ <service name="add">
+ <documentation>+</documentation>
+ </service>
+ <reference target="valueof2" name="value1"/>
+ <reference target="valueof3" name="value2"/>
+ </component>
+ <component x="17" y="269" name="empty" title="empty" color="yellow1">
+ <implementation.python script="nuvem/empty.py"/>
+ <service name="empty"/>
+ </component>
+ <component x="21" y="170" name="false" title="false" color="orange1">
+ <implementation.python script="nuvem/false_.py"/>
+ <service name="false"/>
+ </component>
+ <component x="110" y="10" name="first" title="first" color="yellow1">
+ <implementation.python script="nuvem/first.py"/>
+ <service name="first"/>
+ <reference target="list7" name="list"/>
+ </component>
+ <component name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text3" name="value"/>
+ <property>a</property>
+ </component>
+ <component name="item10" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list6" name="value"/>
+ <property>a</property>
+ </component>
+ <component name="item11" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text7" name="value"/>
+ <property>entry</property>
+ </component>
+ <component name="item12" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list10" name="value"/>
+ <property>entry</property>
+ </component>
+ <component name="item13" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text9" name="value"/>
+ <property>test</property>
+ </component>
+ <component name="item14" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text10" name="value"/>
+ <property>d</property>
+ </component>
+ <component name="item15" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text11" name="value"/>
+ <property>x</property>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text4" name="value"/>
+ <property>d</property>
+ </component>
+ <component name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text5" name="value"/>
+ <property>ccc</property>
+ </component>
+ <component name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text2" name="value"/>
+ <property>b</property>
+ </component>
+ <component name="item5" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text8" name="value"/>
+ <property>c</property>
+ </component>
+ <component name="item6" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="number11" name="value"/>
+ <property>c</property>
+ </component>
+ <component name="item7" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text6" name="value"/>
+ <property>b</property>
+ </component>
+ <component name="item8" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list4" name="value"/>
+ <property>a</property>
+ </component>
+ <component name="item9" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list5" name="value"/>
+ <property>x</property>
+ </component>
+ <component x="110" y="100" name="itemnb" title="item #" color="yellow1">
+ <implementation.python script="nuvem/itemnb.py"/>
+ <service name="itemnb"/>
+ <reference target="number8" name="index"/>
+ <reference target="map" name="list"/>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="number" name="item" clonable="true"/>
+ <reference target="number7" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list10" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item13" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item" name="item" clonable="true"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference target="item14" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list3" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item10" name="item" clonable="true"/>
+ <reference target="item9" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list4" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item7" name="item" clonable="true"/>
+ <reference target="item6" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list5" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item8" name="item" clonable="true"/>
+ <reference target="item5" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list6" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item3" name="item" clonable="true"/>
+ <reference target="item4" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list7" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="number2" name="item" clonable="true"/>
+ <reference target="number3" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="357" y="208" name="list8" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item11" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="268" y="279" name="list9" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item12" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="lookup" title="lookup" color="yellow1">
+ <implementation.python script="nuvem/lookup.py"/>
+ <service name="lookup"/>
+ <reference target="name3" name="name"/>
+ <reference target="list2" name="list"/>
+ </component>
+ <component name="map" title="map" color="yellow1">
+ <implementation.python script="nuvem/map_.py"/>
+ <service name="map"/>
+ <reference target="name2" name="item"/>
+ <reference target="multiply" name="transform"/>
+ <reference target="reverse" name="list"/>
+ </component>
+ <component name="multiply" title="*" color="cyan1">
+ <implementation.python script="nuvem/multiply.py"/>
+ <service name="multiply">
+ <documentation>*</documentation>
+ </service>
+ <reference target="valueof" name="value1"/>
+ <reference target="number6" name="value2"/>
+ </component>
+ <component x="21" y="70" name="name" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>abc</property>
+ </component>
+ <component name="name2" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>nb</property>
+ </component>
+ <component name="name3" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>d</property>
+ </component>
+ <component name="name6" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>sum</property>
+ </component>
+ <component name="name7" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>i</property>
+ </component>
+ <component name="name8" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>a.b</property>
+ </component>
+ <component x="19" y="219" name="nothing" title="nothing" color="orange1">
+ <implementation.python script="nuvem/nothing.py"/>
+ <service name="nothing"/>
+ </component>
+ <component name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>12</property>
+ </component>
+ <component name="number10" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>10</property>
+ </component>
+ <component name="number11" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>123</property>
+ </component>
+ <component name="number12" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component name="number13" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>10</property>
+ </component>
+ <component name="number14" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component name="number2" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>123</property>
+ </component>
+ <component name="number3" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>456</property>
+ </component>
+ <component name="number4" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component name="number5" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>10</property>
+ </component>
+ <component name="number6" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>2</property>
+ </component>
+ <component name="number7" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>34</property>
+ </component>
+ <component name="number8" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3</property>
+ </component>
+ <component name="number9" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component name="range" title="range" color="yellow1">
+ <implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference target="number4" name="first"/>
+ <reference target="number5" name="last"/>
+ </component>
+ <component name="range2" title="range" color="yellow1">
+ <implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference target="number9" name="first"/>
+ <reference target="number10" name="last"/>
+ </component>
+ <component name="range3" title="range" color="yellow1">
+ <implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference target="number12" name="first"/>
+ <reference target="number13" name="last"/>
+ </component>
+ <component x="360" y="10" name="reduce2" title="reduce" color="yellow1">
+ <implementation.python script="nuvem/reduce_.py"/>
+ <service name="reduce"/>
+ <reference target="name6" name="item"/>
+ <reference target="name7" name="accum"/>
+ <reference target="add" name="transform"/>
+ <reference target="number14" name="init"/>
+ <reference target="range2" name="list"/>
+ </component>
+ <component x="240" y="10" name="rest" title="rest" color="yellow1">
+ <implementation.python script="nuvem/rest.py"/>
+ <service name="rest"/>
+ <reference target="list" name="list"/>
+ </component>
+ <component name="reverse" title="reverse" color="yellow1">
+ <implementation.python script="nuvem/reverse.py"/>
+ <service name="reverse"/>
+ <reference target="range" name="list"/>
+ </component>
+ <component x="830" y="170" name="second" title="second" color="yellow1">
+ <implementation.python script="nuvem/second.py"/>
+ <service name="second"/>
+ <reference target="item15" name="list"/>
+ </component>
+ <component name="select" title="select" color="yellow1">
+ <implementation.python script="nuvem/select.py"/>
+ <service name="select"/>
+ <reference target="name8" name="path"/>
+ <reference target="list3" name="list"/>
+ </component>
+ <component x="110" y="290" name="shuffle" title="shuffle" color="yellow1">
+ <implementation.python script="nuvem/shuffle_.py"/>
+ <service name="shuffle"/>
+ <reference target="range3" name="list"/>
+ </component>
+ <component x="15" y="11" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="text" name="content"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xyz</property>
+ </component>
+ <component name="text10" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xyz</property>
+ </component>
+ <component name="text11" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>y</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>bbb</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abc</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>def</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>ccc</property>
+ </component>
+ <component name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>BBB</property>
+ </component>
+ <component name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>hello</property>
+ </component>
+ <component name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>CCC</property>
+ </component>
+ <component name="text9" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abc</property>
+ </component>
+ <component x="23" y="120" name="true" title="true" color="orange1">
+ <implementation.python script="nuvem/true_.py"/>
+ <service name="true"/>
+ </component>
+ <component name="valueof" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>nb</property>
+ </component>
+ <component name="valueof2" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>sum</property>
+ </component>
+ <component name="valueof3" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>i</property>
+ </component>
+ <component x="830" y="10" name="values" title="values" color="yellow1">
+ <implementation.python script="nuvem/values.py"/>
+ <service name="values"/>
+ <reference target="lookup" name="list"/>
+ </component>
+ <component x="530" y="10" name="values2" title="values" color="yellow1">
+ <implementation.python script="nuvem/values.py"/>
+ <service name="values"/>
+ <reference target="select" name="list"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testvalues/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testvalues/app.stats
new file mode 100644
index 0000000000..4b7a09cd38
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testvalues/app.stats
@@ -0,0 +1 @@
+((entry (title "Test values and lists") (id "testvalues"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testvalues/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testvalues/htdocs/app.html
new file mode 100644
index 0000000000..79bb081a97
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testvalues/htdocs/app.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Test values and lists</H2>
+ </SPAN>
+ <SPAN id="value" class="text" style="position: absolute; top: 36px; left: 29px; ">
+ <SPAN>=value</SPAN>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testwidgets/app.composite
new file mode 100644
index 0000000000..1cb1aee017
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets/app.composite
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="start" promote="start"/>
+ <component x="170" y="330" name="htattrs1" title="html attrs:" color="cyan1">
+ <implementation.python script="nuvem/htattrs.py"/>
+ <service name="htattrs"/>
+ <reference target="list2" name="value"/>
+ </component>
+ <component name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text9" name="value"/>
+ <property>testpath2</property>
+ </component>
+ <component x="100" y="340" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="htattrs1" name="value"/>
+ <property>testattrs</property>
+ </component>
+ <component name="item10" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text" name="value"/>
+ <property>testh1</property>
+ </component>
+ <component x="270" y="370" name="item11" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text10" name="value"/>
+ <property>onclick</property>
+ </component>
+ <component x="280" y="330" name="item12" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text1" name="value"/>
+ <property>value</property>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="item" name="value"/>
+ <property>testpath1</property>
+ </component>
+ <component name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text6" name="value"/>
+ <property>testimg</property>
+ </component>
+ <component name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text8" name="value"/>
+ <property>testtext</property>
+ </component>
+ <component name="item5" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text4" name="value"/>
+ <property>testlink</property>
+ </component>
+ <component name="item6" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text5" name="value"/>
+ <property>testcheckbox</property>
+ </component>
+ <component name="item7" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text3" name="value"/>
+ <property>testentry</property>
+ </component>
+ <component name="item8" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text2" name="value"/>
+ <property>testbutton</property>
+ </component>
+ <component name="item9" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text7" name="value"/>
+ <property>testsection</property>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item10" name="item" clonable="true"/>
+ <reference target="item9" name="item" clonable="true"/>
+ <reference target="item8" name="item" clonable="true"/>
+ <reference target="item7" name="item" clonable="true"/>
+ <reference target="item6" name="item" clonable="true"/>
+ <reference target="item5" name="item" clonable="true"/>
+ <reference target="item4" name="item" clonable="true"/>
+ <reference target="item3" name="item" clonable="true"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference target="item1" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item12" name="item" clonable="true"/>
+ <reference target="item11" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="17" y="3" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list" name="content"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test header 1</property>
+ </component>
+ <component x="320" y="340" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test html attrs</property>
+ </component>
+ <component x="370" y="370" name="text10" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>alert('hey')</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test button</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test entry field</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://tuscany.apache.org</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test checkbox</property>
+ </component>
+ <component name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://tuscany.apache.org/images/TuscanyLogo.jpg</property>
+ </component>
+ <component name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test section</property>
+ </component>
+ <component name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test text</property>
+ </component>
+ <component name="text9" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test path</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testwidgets/app.stats
new file mode 100644
index 0000000000..6a66748ab1
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets/app.stats
@@ -0,0 +1 @@
+((entry (title "Test widgets") (id "testwidgets"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testwidgets/htdocs/app.html
new file mode 100644
index 0000000000..d1422c10ac
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets/htdocs/app.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="testh1" class="h1" style="position: absolute; top: 9px; left: 11px; ">
+ <H1>=testh1</H1>
+ </SPAN>
+ <SPAN id="testsection" class="section" style="position: absolute; top: 45px; width: 100%; left: 11px; ">
+ <SPAN>=testsection</SPAN>
+ </SPAN>
+ <SPAN id="testimg" class="img" style="position: absolute; top: 90px; left: 263px; ">
+ <IMG src="/public/img.png"/>
+ </SPAN>
+ <SPAN id="testbutton" class="button" style="position: absolute; top: 99px; left: 11px; ">
+ <INPUT type="button" value="=testbutton" class="graybutton"/>
+ </SPAN>
+ <SPAN id="testentry" class="entry" style="position: absolute; top: 144px; left: 11px; ">
+ <INPUT type="text" value="=testentry" size="20" autocapitalize="off"/>
+ </SPAN>
+ <SPAN id="testcheckbox" class="checkbox" style="position: absolute; top: 180px; left: 11px; ">
+ <INPUT type="checkbox" value="=testcheckbox"/>
+ <SPAN>=testcheckbox</SPAN>
+ </SPAN>
+ <SPAN id="testlink" class="link" style="position: absolute; top: 216px; left: 11px; ">
+ <A href="=testlink">
+ <SPAN>=testlink</SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="testattrs" class="text" style="position: absolute; top: 216px; left: 272px; ">
+ <SPAN>=testattrs</SPAN>
+ </SPAN>
+ <SPAN id="testtext" class="text" style="position: absolute; top: 243px; left: 11px; ">
+ <SPAN>=testtext</SPAN>
+ </SPAN>
+ <SPAN id="testpath1.testpath2" class="text" style="position: absolute; top: 270px; left: 11px; ">
+ <SPAN>=testpath1.testpath2</SPAN>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/app.composite
new file mode 100644
index 0000000000..f387e876ed
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/app.composite
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="start" promote="start"/>
+ <component x="100" y="310" name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text5" name="value"/>
+ <property>testframe</property>
+ </component>
+ <component x="100" y="290" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text1" name="value"/>
+ <property>testselect</property>
+ </component>
+ <component name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list3" name="value"/>
+ <property>testlink</property>
+ </component>
+ <component name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text2" name="value"/>
+ <property>testhtml</property>
+ </component>
+ <component name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text" name="value"/>
+ <property>testlist1</property>
+ </component>
+ <component name="item5" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="list4" name="value"/>
+ <property>testlist2</property>
+ </component>
+ <component name="item6" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="number3" name="value"/>
+ <property>a</property>
+ </component>
+ <component name="item7" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="number4" name="value"/>
+ <property>b</property>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item4" name="item" clonable="true"/>
+ <reference target="item5" name="item" clonable="true"/>
+ <reference target="item3" name="item" clonable="true"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference target="item1" name="item" clonable="true"/>
+ <reference target="item" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list3" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text3" name="item" clonable="true"/>
+ <reference target="text4" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list4" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item6" name="item" clonable="true"/>
+ <reference target="item7" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="number3" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>1</property>
+ </component>
+ <component name="number4" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>2</property>
+ </component>
+ <component x="13" y="8" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list" name="content"/>
+ </component>
+ <component name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test value</property>
+ </component>
+ <component x="170" y="280" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>test select</property>
+ </component>
+ <component name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>&lt;b&gt;test bold text&lt;/b&gt;</property>
+ </component>
+ <component name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://www.apache.org/</property>
+ </component>
+ <component name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>Apache</property>
+ </component>
+ <component name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://www.cnn.com</property>
+ </component>
+ <component x="760" y="170" name="text9" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>dynamic checkbox</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/app.stats
new file mode 100644
index 0000000000..18f0cb50f8
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/app.stats
@@ -0,0 +1 @@
+((entry (title "Test more widgets") (id "testwidgets2"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/htdocs/app.html
new file mode 100644
index 0000000000..7efb62d247
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets2/htdocs/app.html
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Test widget components</H2>
+ </SPAN>
+ <SPAN id="testlist1" class="table" style="position: absolute; top: 36px; width: 100%; left: 20px; ">
+ <TABLE class="datatable" style="width: 100%; ">
+ <TBODY>
+ <TR>
+ <TD>=testlist1</TD>
+ <TD>...</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="testlist2" class="table" style="position: absolute; top: 90px; width: 100%; left: 20px; ">
+ <TABLE class="datatable" style="width: 100%; ">
+ <TBODY>
+ <TR>
+ <TD>=testlist2</TD>
+ <TD>...</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="b" class="table" style="position: absolute; top: 171px; width: 100%; left: 20px; ">
+ <TABLE class="datatable" style="width: 100%; ">
+ <TBODY>
+ <TR>
+ <TD>=b</TD>
+ <TD>...</TD>
+ </TR>
+ <TR>
+ <TD>...</TD>
+ <TD>...</TD>
+ </TR>
+ </TBODY>
+ </TABLE>
+ </SPAN>
+ <SPAN id="testhtml" class="text" style="position: absolute; top: 234px; left: 20px; ">
+ <SPAN>=testhtml</SPAN>
+ </SPAN>
+ <SPAN id="testselect" class="select" style="position: absolute; top: 234px; left: 155px; ">
+ <SELECT>
+ <OPTION>=testselect</OPTION>
+ </SELECT>
+ </SPAN>
+ <SPAN id="testlink" class="link" style="position: absolute; top: 270px; left: 20px; ">
+ <A href="=testlink">
+ <SPAN>=testlink</SPAN>
+ </A>
+ </SPAN>
+ <SPAN id="testframe" class="iframe" style="position: absolute; top: 306px; left: 20px; ">
+ <A href="/public/iframe.html">
+ <SPAN class="fakeframe">
+ <SPAN>frame ...</SPAN>
+ </SPAN>
+ </A>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/app.composite b/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/app.composite
new file mode 100644
index 0000000000..e367b69a9c
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/app.composite
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="start" promote="start"/>
+ <component x="260" y="220" name="htattrs1" title="html attrs:" color="cyan1">
+ <implementation.python script="nuvem/htattrs.py"/>
+ <service name="htattrs"/>
+ <reference target="list1" name="value"/>
+ </component>
+ <component x="190" y="80" name="htbutton1" title="html button" color="cyan1">
+ <implementation.python script="nuvem/htbutton.py"/>
+ <service name="htbutton"/>
+ <reference target="text8" name="value"/>
+ </component>
+ <component x="210" y="180" name="htcheck1" title="html checkbox" color="cyan1">
+ <implementation.python script="nuvem/htcheck.py"/>
+ <service name="htcheck"/>
+ <reference target="text9" name="value"/>
+ </component>
+ <component x="180" y="10" name="htimg1" title="html img" color="cyan1">
+ <implementation.python script="nuvem/htimg.py"/>
+ <service name="htimg"/>
+ <reference target="text1" name="value"/>
+ </component>
+ <component x="190" y="230" name="htimg2" title="html img" color="cyan1">
+ <implementation.python script="nuvem/htimg.py"/>
+ <service name="htimg"/>
+ <reference target="htattrs1" name="value"/>
+ </component>
+ <component x="180" y="50" name="htlink1" title="html link" color="cyan1">
+ <implementation.python script="nuvem/htlink.py"/>
+ <service name="htlink"/>
+ <reference target="list21" name="value"/>
+ </component>
+ <component x="400" y="330" name="htstyle1" title="html style" color="cyan1">
+ <implementation.python script="nuvem/htstyle.py"/>
+ <service name="htstyle"/>
+ <reference target="list2" name="value"/>
+ </component>
+ <component x="100" y="10" name="item1" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="htimg1" name="value"/>
+ <property>testdynimg</property>
+ </component>
+ <component x="100" y="170" name="item10" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="htcheck1" name="value"/>
+ <property>testdyncheckbox</property>
+ </component>
+ <component x="110" y="230" name="item2" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="htimg2" name="value"/>
+ <property>teststyledimg</property>
+ </component>
+ <component x="400" y="300" name="item3" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text3" name="value"/>
+ <property>onclick</property>
+ </component>
+ <component x="510" y="290" name="item4" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text4" name="value"/>
+ <property>width</property>
+ </component>
+ <component x="510" y="320" name="item5" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text5" name="value"/>
+ <property>height</property>
+ </component>
+ <component x="400" y="220" name="item6" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text10" name="value"/>
+ <property>id</property>
+ </component>
+ <component x="400" y="260" name="item7" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="text2" name="value"/>
+ <property>src</property>
+ </component>
+ <component x="90" y="50" name="item8" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="htlink1" name="value"/>
+ <property>testdynlink</property>
+ </component>
+ <component x="90" y="120" name="item9" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference target="htbutton1" name="value"/>
+ <property>testdynbutton</property>
+ </component>
+ <component name="list" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item1" name="item" clonable="true"/>
+ <reference target="item8" name="item" clonable="true"/>
+ <reference target="item9" name="item" clonable="true"/>
+ <reference target="item10" name="item" clonable="true"/>
+ <reference target="item2" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list1" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item6" name="item" clonable="true"/>
+ <reference target="item7" name="item" clonable="true"/>
+ <reference target="item3" name="item" clonable="true"/>
+ <reference target="htstyle1" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="item4" name="item" clonable="true"/>
+ <reference target="item5" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="240" y="50" name="list21" title="list2" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="text6" name="name"/>
+ <reference target="text7" name="value"/>
+ </component>
+ <component x="20" y="10" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference target="list" name="content"/>
+ </component>
+ <component x="240" y="10" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://tuscany.apache.org/images/TuscanyLogo.jpg</property>
+ </component>
+ <component x="430" y="220" name="text10" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>testimg</property>
+ </component>
+ <component x="440" y="260" name="text2" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://tuscany.apache.org/images/TuscanyLogo.jpg</property>
+ </component>
+ <component x="430" y="250" name="text3" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>alert('hey')</property>
+ </component>
+ <component x="560" y="280" name="text4" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>320px</property>
+ </component>
+ <component x="560" y="320" name="text5" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>60px</property>
+ </component>
+ <component x="280" y="50" name="text6" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>http://www.apache.org/</property>
+ </component>
+ <component x="280" y="80" name="text7" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>Apache</property>
+ </component>
+ <component x="270" y="80" name="text8" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>dynamic button</property>
+ </component>
+ <component x="300" y="180" name="text9" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>dynamic checkbox</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/app.stats b/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/app.stats
new file mode 100644
index 0000000000..2e772401c9
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/app.stats
@@ -0,0 +1 @@
+((entry (title "Test HTML generator components") (id "testwidgets3"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/htdocs/app.html
new file mode 100644
index 0000000000..393d63c2d1
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/testwidgets3/htdocs/app.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h2" class="h2" style="position: absolute; top: 0px; left: 2px; ">
+ <H2>Test widget components</H2>
+ </SPAN>
+ <SPAN id="testdynimg" class="text" style="position: absolute; top: 36px; left: 2px; ">
+ <SPAN>=testdynimg</SPAN>
+ </SPAN>
+ <SPAN id="testdynlink" class="text" style="position: absolute; top: 135px; left: 2px; ">
+ <SPAN>=testdynlink</SPAN>
+ </SPAN>
+ <SPAN id="testdynbutton" class="text" style="position: absolute; top: 171px; left: 2px; ">
+ <SPAN>=testdynbutton</SPAN>
+ </SPAN>
+ <SPAN id="testdyncheckbox" class="text" style="position: absolute; top: 207px; left: 2px; ">
+ <SPAN>=testdyncheckbox</SPAN>
+ </SPAN>
+ <SPAN id="teststyledimg" class="text" style="position: absolute; top: 243px; left: 2px; ">
+ <SPAN>=teststyledimg</SPAN>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/twsms/app.composite b/sca-cpp/trunk/hosting/server/data/apps/twsms/app.composite
new file mode 100644
index 0000000000..66523f4754
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/twsms/app.composite
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="app" targetNamespace="http://app">
+ <service name="item" promote="property"/>
+ <service name="send" promote="send"/>
+ <component x="280" y="260" name="format2" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text12" name="pattern"/>
+ <reference target="list31" name="values"/>
+ </component>
+ <component x="100" y="10" name="format4" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference target="text1" name="pattern"/>
+ <reference target="list6" name="values"/>
+ </component>
+ <component x="180" y="330" name="list11" title="list" color="yellow1">
+ <implementation.python script="nuvem/single.py"/>
+ <service name="list1"/>
+ <reference target="format2" name="value"/>
+ </component>
+ <component x="110" y="180" name="list21" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference target="text15" name="first"/>
+ <reference target="list11" name="second"/>
+ </component>
+ <component x="410" y="310" name="list31" title="list" color="yellow1">
+ <implementation.python script="nuvem/triple.py"/>
+ <service name="list3"/>
+ <reference target="param4" name="first"/>
+ <reference target="param5" name="second"/>
+ <reference target="param6" name="third"/>
+ </component>
+ <component name="list6" title="list.." color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="param1" name="item" clonable="true"/>
+ <reference target="param3" name="item" clonable="true"/>
+ <reference target="param2" name="item" clonable="true"/>
+ <reference target="text10" name="item" clonable="true"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="480" y="200" name="param1" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>sid</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="480" y="250" name="param2" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>sid</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="490" y="220" name="param3" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>token</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="430" y="310" name="param4" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>from</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="430" y="330" name="param5" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>to</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="440" y="370" name="param6" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>msg</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="80" y="10" name="post1" title="post" color="green1">
+ <implementation.cpp path="lib/http" library="libhttppost"/>
+ <service name="post"/>
+ <reference target="format4" name="url"/>
+ <reference target="list21" name="content"/>
+ </component>
+ <component x="10" y="10" name="send" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference target="post1" name="content"/>
+ </component>
+ <component x="430" y="80" name="text1" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>https://{0}:{1}@api.twilio.com/2010-04-01/Accounts/{2}/SMS/Messages</property>
+ </component>
+ <component x="490" y="270" name="text10" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>SMS/Messages</property>
+ </component>
+ <component x="410" y="280" name="text12" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>From={0}&amp;To={1}&amp;Body={2}</property>
+ </component>
+ <component x="180" y="300" name="text15" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>application/x-www-form-urlencoded</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/apps/twsms/app.stats b/sca-cpp/trunk/hosting/server/data/apps/twsms/app.stats
new file mode 100644
index 0000000000..85c97c2457
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/twsms/app.stats
@@ -0,0 +1 @@
+((entry (title "SMS send service") (id "twsms"))) \ No newline at end of file
diff --git a/sca-cpp/trunk/hosting/server/data/apps/twsms/htdocs/app.html b/sca-cpp/trunk/hosting/server/data/apps/twsms/htdocs/app.html
new file mode 100644
index 0000000000..d2eaebcdd0
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/apps/twsms/htdocs/app.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<DIV id="page">
+ <SPAN id="page:h1" class="h1" style="position: absolute; top: 0px; left: 2px; ">
+ <H1>SMS Send Service</H1>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 36px; left: 2px; ">
+ <SPAN>To send an SMS use a URL like this:</SPAN>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 63px; left: 2px; ">
+ <SPAN>http://twsms..../?sid=...&amp;token=...&amp;from=...</SPAN>
+ </SPAN>
+ <SPAN id="page:text" class="text" style="position: absolute; top: 81px; left: 2px; ">
+ <SPAN>&amp;to=...&amp;msg=...</SPAN>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/hosting/server/data/dashboards/jane@localhost/user.apps b/sca-cpp/trunk/hosting/server/data/dashboards/jane@localhost/user.apps
new file mode 100644
index 0000000000..710de5f62e
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/dashboards/jane@localhost/user.apps
@@ -0,0 +1 @@
+((entry (title "An empty test app") (id "test")))
diff --git a/sca-cpp/trunk/hosting/server/data/dashboards/jane@sca-store.com/user.apps b/sca-cpp/trunk/hosting/server/data/dashboards/jane@sca-store.com/user.apps
new file mode 100644
index 0000000000..710de5f62e
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/dashboards/jane@sca-store.com/user.apps
@@ -0,0 +1 @@
+((entry (title "An empty test app") (id "test")))
diff --git a/sca-cpp/trunk/hosting/server/data/dashboards/john@localhost/user.apps b/sca-cpp/trunk/hosting/server/data/dashboards/john@localhost/user.apps
new file mode 100644
index 0000000000..710de5f62e
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/dashboards/john@localhost/user.apps
@@ -0,0 +1 @@
+((entry (title "An empty test app") (id "test")))
diff --git a/sca-cpp/trunk/hosting/server/data/dashboards/john@sca-store.com/user.apps b/sca-cpp/trunk/hosting/server/data/dashboards/john@sca-store.com/user.apps
new file mode 100644
index 0000000000..710de5f62e
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/dashboards/john@sca-store.com/user.apps
@@ -0,0 +1 @@
+((entry (title "An empty test app") (id "test")))
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/animation/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/animation/palette.composite
new file mode 100644
index 0000000000..75cbf497b6
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/animation/palette.composite
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="frames" promote="frames"/>
+ <service name="htattrs" promote="htattrs"/>
+ <service name="htbutton" promote="htbutton"/>
+ <service name="htcheck" promote="htcheck"/>
+ <service name="htimg" promote="htimg"/>
+ <service name="htinline" promote="htinline"/>
+ <service name="htlink" promote="htlink"/>
+ <service name="htstyle" promote="htstyle"/>
+ <service name="left" promote="left"/>
+ <service name="pixels" promote="pixels"/>
+ <service name="top" promote="top"/>
+ <service name="transform" promote="transform"/>
+ <service name="transition" promote="transition"/>
+ <component x="170" y="160" name="frames" title="frames" color="white1">
+ <implementation.python script="nuvem/frames.py"/>
+ <service name="frames"/>
+ <reference name="msec"/>
+ <reference name="loop"/>
+ <reference name="content"/>
+ </component>
+ <component x="140" y="60" name="htattrs" title="attrs:" color="white1">
+ <implementation.python script="nuvem/htattrs.py"/>
+ <service name="htattrs"/>
+ <reference name="value"/>
+ </component>
+ <component x="130" y="10" name="htbutton" title="button" color="white1">
+ <implementation.python script="nuvem/htbutton.py"/>
+ <service name="htbutton"/>
+ <reference name="value"/>
+ </component>
+ <component x="250" y="10" name="htcheck" title="checkbox" color="white1">
+ <implementation.python script="nuvem/htcheck.py"/>
+ <service name="htcheck"/>
+ <reference name="value"/>
+ </component>
+ <component x="80" y="10" name="htimg" title="img" color="white1">
+ <implementation.python script="nuvem/htimg.py"/>
+ <service name="htimg"/>
+ <reference name="value"/>
+ </component>
+ <component x="80" y="60" name="htinline" title="inline" color="white1">
+ <implementation.python script="nuvem/htinline.py"/>
+ <service name="htinline"/>
+ <reference name="value"/>
+ </component>
+ <component x="200" y="10" name="htlink" title="link" color="white1">
+ <implementation.python script="nuvem/htlink.py"/>
+ <service name="htlink"/>
+ <reference name="value"/>
+ </component>
+ <component x="200" y="60" name="htstyle" title="style" color="white1">
+ <implementation.python script="nuvem/htstyle.py"/>
+ <service name="htstyle"/>
+ <reference name="value"/>
+ </component>
+ <component x="230" y="110" name="left" title="left" color="white1">
+ <implementation.python script="nuvem/left.py"/>
+ <service name="left"/>
+ <reference name="value"/>
+ </component>
+ <component x="260" y="60" name="pixels" title="pixels" color="white1">
+ <implementation.python script="nuvem/pixels.py"/>
+ <service name="pixels"/>
+ <reference name="value"/>
+ </component>
+ <component x="170" y="110" name="top" title="top" color="white1">
+ <implementation.python script="nuvem/top.py"/>
+ <service name="top"/>
+ <reference name="value"/>
+ </component>
+ <component x="80" y="160" name="transform" title="transform" color="white1">
+ <implementation.python script="nuvem/transform.py"/>
+ <service name="transform"/>
+ <reference name="x"/>
+ <reference name="y"/>
+ <reference name="d"/>
+ </component>
+ <component x="80" y="110" name="transition" title="transition" color="white1">
+ <implementation.python script="nuvem/transition.py"/>
+ <service name="transition"/>
+ <reference name="value"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/control/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/control/palette.composite
new file mode 100644
index 0000000000..f89cae2c5d
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/control/palette.composite
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="animation" promote="animation"/>
+ <service name="call" promote="call"/>
+ <service name="location" promote="location"/>
+ <service name="schedule" promote="schedule"/>
+ <service name="service" promote="service"/>
+ <service name="start" promote="start"/>
+ <service name="stop" promote="stop"/>
+ <service name="timer" promote="timer"/>
+ <component x="160" y="60" name="animation" title="animation" color="green1">
+ <implementation.python script="nuvem/animation.py"/>
+ <service name="animation" visible="false">
+ <binding.http uri="animation"/>
+ </service>
+ <reference name="n"/>
+ <reference name="loop"/>
+ <reference name="content"/>
+ </component>
+ <component x="190" y="10" name="call" title="call" color="green1">
+ <implementation.python script="nuvem/call.py"/>
+ <service name="call"/>
+ <reference name="name"/>
+ <reference name="proxy" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="80" y="60" name="location" title="location" color="green1">
+ <implementation.python script="nuvem/location.py"/>
+ <service name="location" visible="false">
+ <binding.http uri="location"/>
+ </service>
+ <reference name="content"/>
+ </component>
+ <component x="240" y="60" name="schedule" title="schedule" color="green1">
+ <implementation.python script="nuvem/schedule.py"/>
+ <service name="schedule" visible="false">
+ <binding.http uri="schedule"/>
+ </service>
+ <reference name="n"/>
+ <reference name="content"/>
+ </component>
+ <component x="240" y="10" name="service" title="{compname}" color="green1">
+ <implementation.python script="nuvem/service.py"/>
+ <service name="service" visible="false"/>
+ <reference name="content"/>
+ </component>
+ <component x="80" y="10" name="start" title="start" color="green1">
+ <implementation.python script="nuvem/start.py"/>
+ <service name="start" visible="false">
+ <binding.http uri="start"/>
+ </service>
+ <reference name="content"/>
+ </component>
+ <component x="130" y="10" name="stop" title="stop" color="green1">
+ <implementation.python script="nuvem/stop.py"/>
+ <service name="stop" visible="false">
+ <binding.http uri="stop"/>
+ </service>
+ <reference name="content"/>
+ </component>
+ <component x="80" y="110" name="timer" title="timer" color="green1">
+ <implementation.python script="nuvem/timer.py"/>
+ <service name="timer" visible="false">
+ <binding.http uri="timer"/>
+ </service>
+ <reference name="n"/>
+ <reference name="content"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/database/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/database/palette.composite
new file mode 100644
index 0000000000..926fb3fa14
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/database/palette.composite
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="delete" promote="delete"/>
+ <service name="filedb" promote="filedb"/>
+ <service name="get" promote="get"/>
+ <service name="nosqldb" promote="nosqldb"/>
+ <service name="post" promote="post"/>
+ <service name="put" promote="put"/>
+ <service name="sqldb" promote="sqldb"/>
+ <component x="270" y="60" name="delete" title="delete" color="pink1">
+ <implementation.python script="nuvem/delete.py"/>
+ <service name="delete"/>
+ <reference name="collection"/>
+ <reference name="id"/>
+ </component>
+ <component x="80" y="10" name="filedb" title="file" color="pink1">
+ <implementation.python script="nuvem/filedb.py"/>
+ <service name="filedb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="80" y="60" name="get" title="get" color="pink1">
+ <implementation.python script="nuvem/get.py"/>
+ <service name="get"/>
+ <reference name="collection"/>
+ <reference name="id"/>
+ </component>
+ <component x="140" y="10" name="nosqldb" title="index **" color="pink1">
+ <implementation.python script="nuvem/nosqldb.py"/>
+ <service name="nosqldb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="200" y="60" name="post" title="post" color="pink1">
+ <implementation.python script="nuvem/post.py"/>
+ <service name="post"/>
+ <reference name="collection"/>
+ <reference name="id"/>
+ <reference name="value"/>
+ </component>
+ <component x="140" y="60" name="put" title="put" color="pink1">
+ <implementation.python script="nuvem/put.py"/>
+ <service name="put"/>
+ <reference name="collection"/>
+ <reference name="id"/>
+ <reference name="value"/>
+ </component>
+ <component x="210" y="10" name="sqldb" title="sql **" color="pink1">
+ <implementation.python script="nuvem/sqldb.py"/>
+ <service name="sqldb"/>
+ <reference name="db" target="Cache" visible="false"/>
+ <property name="host" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/http/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/http/palette.composite
new file mode 100644
index 0000000000..13f92e8954
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/http/palette.composite
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="app" promote="app"/>
+ <service name="delete" promote="delete"/>
+ <service name="email" promote="email"/>
+ <service name="get" promote="get"/>
+ <service name="host" promote="host"/>
+ <service name="keychain" promote="keychain"/>
+ <service name="param" promote="param"/>
+ <service name="params" promote="params"/>
+ <service name="patch" promote="patch"/>
+ <service name="path" promote="path"/>
+ <service name="post" promote="post"/>
+ <service name="put" promote="put"/>
+ <service name="url" promote="url"/>
+ <service name="user" promote="user"/>
+ <component x="80" y="10" name="app" title="app" color="green1">
+ <implementation.python script="nuvem/app.py"/>
+ <service name="app"/>
+ <property name="app" visible="false"/>
+ </component>
+ <component x="80" y="220" name="delete" title="delete" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpdelete"/>
+ <service name="delete"/>
+ <reference name="url"/>
+ </component>
+ <component x="140" y="110" name="email" title="email" color="green1">
+ <implementation.python script="nuvem/email.py"/>
+ <service name="email"/>
+ <property name="email" visible="false"/>
+ </component>
+ <component x="80" y="170" name="get" title="get" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpget"/>
+ <service name="get"/>
+ <reference name="url"/>
+ </component>
+ <component x="130" y="10" name="host" title="host" color="green1">
+ <implementation.python script="nuvem/host.py"/>
+ <service name="host"/>
+ <property name="host" visible="false"/>
+ </component>
+ <component x="210" y="110" name="keychain" title="keychain" color="green1">
+ <implementation.python script="nuvem/keychain.py"/>
+ <service name="keychain"/>
+ <reference name="name"/>
+ <reference name="account" target="Accounts" visible="false"/>
+ </component>
+ <component x="150" y="60" name="param" title="?param" color="green1">
+ <implementation.python script="nuvem/param.py"/>
+ <service name="param"/>
+ <property>x</property>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="80" y="60" name="params" title="?params" color="green1">
+ <implementation.python script="nuvem/params.py"/>
+ <service name="params"/>
+ <property name="query" visible="false"/>
+ </component>
+ <component x="260" y="170" name="patch" title="patch" color="green1">
+ <implementation.cpp path="lib/http" library="libhttppatch"/>
+ <service name="patch"/>
+ <reference name="url"/>
+ <reference name="content"/>
+ </component>
+ <component x="190" y="10" name="path" title="path" color="green1">
+ <implementation.python script="nuvem/path.py"/>
+ <service name="path"/>
+ <property name="path" visible="false"/>
+ </component>
+ <component x="200" y="170" name="post" title="post" color="green1">
+ <implementation.cpp path="lib/http" library="libhttppost"/>
+ <service name="post"/>
+ <reference name="url"/>
+ <reference name="content"/>
+ </component>
+ <component x="140" y="170" name="put" title="put" color="green1">
+ <implementation.cpp path="lib/http" library="libhttpput"/>
+ <service name="put"/>
+ <reference name="url"/>
+ <reference name="content"/>
+ </component>
+ <component x="250" y="10" name="url" title="url" color="green1">
+ <implementation.python script="nuvem/url.py"/>
+ <service name="url"/>
+ <reference name="address"/>
+ <reference name="args"/>
+ </component>
+ <component x="80" y="110" name="user" title="user" color="green1">
+ <implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user" visible="false"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/lists/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/lists/palette.composite
new file mode 100644
index 0000000000..2f4051d7b9
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/lists/palette.composite
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="append" promote="append"/>
+ <service name="empty" promote="empty"/>
+ <service name="first" promote="first"/>
+ <service name="insert" promote="insert"/>
+ <service name="itemnb" promote="itemnb"/>
+ <service name="last" promote="last"/>
+ <service name="list" promote="list"/>
+ <service name="list1" promote="list1"/>
+ <service name="list2" promote="list2"/>
+ <service name="list3" promote="list3"/>
+ <service name="lookup" promote="lookup"/>
+ <service name="names" promote="names"/>
+ <service name="range" promote="range"/>
+ <service name="rest" promote="rest"/>
+ <service name="second" promote="second"/>
+ <service name="select" promote="select"/>
+ <service name="values" promote="values"/>
+ <component x="140" y="70" name="append" title="+" color="yellow1">
+ <implementation.python script="nuvem/append.py"/>
+ <service name="append"/>
+ <reference name="first"/>
+ <reference name="second"/>
+ </component>
+ <component x="80" y="70" name="empty" title="empty" color="yellow1">
+ <implementation.python script="nuvem/empty.py"/>
+ <service name="empty"/>
+ </component>
+ <component x="80" y="130" name="first" title="first" color="yellow1">
+ <implementation.python script="nuvem/first.py"/>
+ <service name="first"/>
+ <reference name="list"/>
+ </component>
+ <component x="200" y="70" name="insert" title="insert" color="yellow1">
+ <implementation.python script="nuvem/insert.py"/>
+ <service name="insert"/>
+ <reference name="value"/>
+ <reference name="list"/>
+ </component>
+ <component x="80" y="180" name="itemnb" title="item #" color="yellow1">
+ <implementation.python script="nuvem/itemnb.py"/>
+ <service name="itemnb"/>
+ <reference name="index"/>
+ <reference name="list"/>
+ </component>
+ <component x="200" y="130" name="last" title="last" color="yellow1">
+ <implementation.python script="nuvem/last.py"/>
+ <service name="last"/>
+ <reference name="list"/>
+ </component>
+ <component x="80" y="10" name="list" title="list.." color="yellow1">
+ <implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference name="item" clonable="true"/>
+ </component>
+ <component x="140" y="10" name="list1" title="list" color="yellow1">
+ <implementation.python script="nuvem/single.py"/>
+ <service name="list1"/>
+ <reference name="value"/>
+ </component>
+ <component x="200" y="10" name="list2" title="list" color="yellow1">
+ <implementation.python script="nuvem/pair.py"/>
+ <service name="list2"/>
+ <reference name="first"/>
+ <reference name="second"/>
+ </component>
+ <component x="260" y="10" name="list3" title="list" color="yellow1">
+ <implementation.python script="nuvem/triple.py"/>
+ <service name="list3"/>
+ <reference name="first"/>
+ <reference name="second"/>
+ <reference name="third"/>
+ </component>
+ <component x="160" y="180" name="lookup" title="lookup" color="yellow1">
+ <implementation.python script="nuvem/lookup.py"/>
+ <service name="lookup"/>
+ <reference name="name"/>
+ <reference name="list"/>
+ </component>
+ <component x="80" y="250" name="names" title="names" color="yellow1">
+ <implementation.python script="nuvem/names.py"/>
+ <service name="names"/>
+ <reference name="list"/>
+ </component>
+ <component x="240" y="250" name="range" title="range" color="yellow1">
+ <implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference name="first"/>
+ <reference name="last"/>
+ </component>
+ <component x="140" y="130" name="rest" title="rest" color="yellow1">
+ <implementation.python script="nuvem/rest.py"/>
+ <service name="rest"/>
+ <reference name="list"/>
+ </component>
+ <component x="250" y="130" name="second" title="second" color="yellow1">
+ <implementation.python script="nuvem/second.py"/>
+ <service name="second"/>
+ <reference name="list"/>
+ </component>
+ <component x="240" y="180" name="select" title="select" color="yellow1">
+ <implementation.python script="nuvem/select.py"/>
+ <service name="select"/>
+ <reference name="path"/>
+ <reference name="list"/>
+ </component>
+ <component x="160" y="250" name="values" title="values" color="yellow1">
+ <implementation.python script="nuvem/values.py"/>
+ <service name="values"/>
+ <reference name="list"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/logic/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/logic/palette.composite
new file mode 100644
index 0000000000..4d84272fd5
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/logic/palette.composite
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="and" promote="and"/>
+ <service name="equals" promote="equals"/>
+ <service name="greater" promote="greater"/>
+ <service name="if" promote="if"/>
+ <service name="lesser" promote="lesser"/>
+ <service name="not" promote="not"/>
+ <service name="or" promote="or"/>
+ <component x="140" y="10" name="and" title="and" color="green1">
+ <implementation.python script="nuvem/and_.py"/>
+ <service name="and"/>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+ <component x="80" y="100" name="equals" title="=" color="green1">
+ <implementation.python script="nuvem/equals.py"/>
+ <service name="equals"/>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+ <component x="200" y="100" name="greater" title="gt" color="green1">
+ <implementation.python script="nuvem/greater.py"/>
+ <service name="greater"/>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+ <component x="80" y="10" name="if" title="if" color="green1">
+ <implementation.python script="nuvem/if_.py"/>
+ <service name="if"/>
+ <reference name="condition"/>
+ <reference name="then"/>
+ <reference name="else"/>
+ </component>
+ <component x="140" y="100" name="lesser" title="lt" color="green1">
+ <implementation.python script="nuvem/lesser.py"/>
+ <service name="lesser"/>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+ <component x="260" y="10" name="not" title="not" color="green1">
+ <implementation.python script="nuvem/not_.py"/>
+ <service name="not"/>
+ <reference name="value"/>
+ </component>
+ <component x="200" y="10" name="or" title="or" color="green1">
+ <implementation.python script="nuvem/or_.py"/>
+ <service name="or"/>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/math/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/math/palette.composite
new file mode 100644
index 0000000000..7dc4e88f2f
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/math/palette.composite
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="add" promote="add"/>
+ <service name="ceil" promote="ceil"/>
+ <service name="cos" promote="cos"/>
+ <service name="distance" promote="distance"/>
+ <service name="divide" promote="divide"/>
+ <service name="floor" promote="floor"/>
+ <service name="max" promote="max"/>
+ <service name="min" promote="min"/>
+ <service name="mod" promote="mod"/>
+ <service name="multiply" promote="multiply"/>
+ <service name="pi" promote="pi"/>
+ <service name="random" promote="random"/>
+ <service name="randoms" promote="randoms"/>
+ <service name="round" promote="round"/>
+ <service name="sin" promote="sin"/>
+ <service name="subtract" promote="subtract"/>
+ <service name="sum" promote="sum"/>
+ <component x="80" y="10" name="add" title="+" color="cyan1">
+ <implementation.python script="nuvem/add.py"/>
+ <service name="add">
+ <documentation>+</documentation>
+ </service>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+ <component x="270" y="130" name="ceil" title="ceil" color="cyan1">
+ <implementation.python script="nuvem/ceil_.py"/>
+ <service name="ceil"/>
+ <reference name="x"/>
+ </component>
+ <component x="210" y="190" name="cos" title="cos" color="cyan1">
+ <implementation.python script="nuvem/cos_.py"/>
+ <service name="cos"/>
+ <reference name="x"/>
+ </component>
+ <component x="80" y="240" name="distance" title="distance **" color="cyan1">
+ <implementation.python script="nuvem/distance.py"/>
+ <service name="distance"/>
+ <reference name="location1"/>
+ <reference name="location2"/>
+ </component>
+ <component x="270" y="10" name="divide" title="/" color="cyan1">
+ <implementation.python script="nuvem/divide.py"/>
+ <service name="divide">
+ <documentation>/</documentation>
+ </service>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+ <component x="210" y="130" name="floor" title="floor" color="cyan1">
+ <implementation.python script="nuvem/floor_.py"/>
+ <service name="floor"/>
+ <reference name="x"/>
+ </component>
+ <component x="150" y="80" name="max" title="max" color="cyan1">
+ <implementation.python script="nuvem/max_.py"/>
+ <service name="max"/>
+ <reference name="l"/>
+ </component>
+ <component x="210" y="80" name="min" title="min" color="cyan1">
+ <implementation.python script="nuvem/min_.py"/>
+ <service name="min"/>
+ <reference name="l"/>
+ </component>
+ <component x="80" y="130" name="mod" title="mod" color="cyan1">
+ <implementation.python script="nuvem/mod.py"/>
+ <service name="mod"/>
+ <reference name="n"/>
+ <reference name="x"/>
+ </component>
+ <component x="210" y="10" name="multiply" title="*" color="cyan1">
+ <implementation.python script="nuvem/multiply.py"/>
+ <service name="multiply">
+ <documentation>*</documentation>
+ </service>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+ <component x="80" y="190" name="pi" title="pi" color="cyan1">
+ <implementation.python script="nuvem/pi_.py"/>
+ <service name="pi"/>
+ </component>
+ <component x="170" y="240" name="random" title="rand" color="cyan1">
+ <implementation.python script="nuvem/random_.py"/>
+ <service name="random"/>
+ <reference name="range"/>
+ </component>
+ <component x="230" y="240" name="randoms" title="rands" color="cyan1">
+ <implementation.python script="nuvem/randoms.py"/>
+ <service name="randoms"/>
+ <reference name="n"/>
+ <reference name="range"/>
+ </component>
+ <component x="150" y="130" name="round" title="round" color="cyan1">
+ <implementation.python script="nuvem/round_.py"/>
+ <service name="round"/>
+ <reference name="n"/>
+ <reference name="x"/>
+ </component>
+ <component x="150" y="190" name="sin" title="sin" color="cyan1">
+ <implementation.python script="nuvem/sin_.py"/>
+ <service name="sin"/>
+ <reference name="x"/>
+ </component>
+ <component x="150" y="10" name="subtract" title="-" color="cyan1">
+ <implementation.python script="nuvem/subtract.py"/>
+ <service name="subtract">
+ <documentation>-</documentation>
+ </service>
+ <reference name="value1"/>
+ <reference name="value2"/>
+ </component>
+ <component x="80" y="80" name="sum" title="sum" color="cyan1">
+ <implementation.python script="nuvem/sum_.py"/>
+ <service name="sum"/>
+ <reference name="l"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/python/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/python/palette.composite
new file mode 100644
index 0000000000..2cc03ae365
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/python/palette.composite
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="eval" promote="eval"/>
+ <service name="exec" promote="exec"/>
+ <component x="80" y="10" name="eval" title="expr" color="green1">
+ <implementation.python script="nuvem/eval_.py"/>
+ <service name="eval"/>
+ <reference name="py"/>
+ <reference name="ref"/>
+ </component>
+ <component x="150" y="10" name="exec" title="script" color="green1">
+ <implementation.python script="nuvem/exec_.py"/>
+ <service name="exec"/>
+ <reference name="py"/>
+ <reference name="ref"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/search/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/search/palette.composite
new file mode 100644
index 0000000000..db58cdcd08
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/search/palette.composite
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="bsearch" promote="bsearch"/>
+ <service name="gaddress" promote="gaddress"/>
+ <service name="ggeopos" promote="ggeopos"/>
+ <service name="gimages" promote="gimages"/>
+ <service name="gmap" promote="gmap"/>
+ <service name="gsearch" promote="gsearch"/>
+ <service name="gweather" promote="gweather"/>
+ <service name="traffic" promote="traffic"/>
+ <service name="ysearch" promote="ysearch"/>
+ <component x="240" y="10" name="bsearch" title="bing" color="blue1">
+ <implementation.python script="nuvem/bsearch.py"/>
+ <service name="bsearch"/>
+ <reference name="query"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://www.bing.com/search"/>
+ </reference>
+ </component>
+ <component x="140" y="60" name="gaddress" title="address" color="blue1">
+ <implementation.python script="nuvem/gaddress.py"/>
+ <service name="gaddress"/>
+ <reference name="address"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.googleapis.com/maps/api/geocode/json"/>
+ </reference>
+ </component>
+ <component x="220" y="60" name="ggeopos" title="geo position" color="blue1">
+ <implementation.python script="nuvem/ggeopos.py"/>
+ <service name="ggeopos"/>
+ <reference name="latitude"/>
+ <reference name="longitude"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.googleapis.com/maps/api/geocode/json"/>
+ </reference>
+ </component>
+ <component x="80" y="120" name="gimages" title="images" color="blue1">
+ <implementation.python script="nuvem/gimages.py"/>
+ <service name="gimages"/>
+ <reference name="query"/>
+ <reference name="s" visible="false">
+ <binding.http uri="https://ajax.googleapis.com/ajax/services/search/images"/>
+ </reference>
+ </component>
+ <component x="80" y="60" name="gmap" title="map" color="blue1">
+ <implementation.python script="nuvem/gmap.py"/>
+ <service name="gmap"/>
+ <reference name="locations"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://maps.google.com/maps/api/staticmap"/>
+ </reference>
+ </component>
+ <component x="80" y="10" name="gsearch" title="google" color="blue1">
+ <implementation.python script="nuvem/gsearch.py"/>
+ <service name="gsearch"/>
+ <reference name="query"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://ajax.googleapis.com/ajax/services/search/web"/>
+ </reference>
+ </component>
+ <component x="150" y="120" name="gweather" title="weather" color="blue1">
+ <implementation.python script="nuvem/gweather.py"/>
+ <service name="gweather"/>
+ <reference name="zip"/>
+ <reference name="ws" visible="false">
+ <binding.http uri="http://www.google.com/ig/api"/>
+ </reference>
+ </component>
+ <component x="230" y="120" name="traffic" title="traffic **" color="blue1">
+ <implementation.python script="nuvem/traffic.py"/>
+ <service name="traffic"/>
+ <reference name="location"/>
+ </component>
+ <component x="160" y="10" name="ysearch" title="yahoo" color="blue1">
+ <implementation.python script="nuvem/ysearch.py"/>
+ <service name="ysearch"/>
+ <reference name="query"/>
+ <reference name="s" visible="false">
+ <binding.http uri="http://search.yahooapis.com/WebSearchService/V1/webSearch"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/social/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/social/palette.composite
new file mode 100644
index 0000000000..5e02303857
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/social/palette.composite
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="bzprofile" promote="bzprofile"/>
+ <service name="fbalbums" promote="fbalbums"/>
+ <service name="fbfriends" promote="fbfriends"/>
+ <service name="fbgroups" promote="fbgroups"/>
+ <service name="fbprofile" promote="fbprofile"/>
+ <service name="flkalbum" promote="flkalbum"/>
+ <service name="picalbum" promote="picalbum"/>
+ <service name="twfollowers" promote="twfollowers"/>
+ <service name="twfriends" promote="twfriends"/>
+ <service name="twprofile" promote="twprofile"/>
+ <service name="twtimeline" promote="twtimeline"/>
+ <component x="80" y="260" name="bzprofile" title="buzz profile" color="blue1">
+ <implementation.python script="nuvem/bzprofile.py"/>
+ <service name="bzprofile"/>
+ <reference name="id"/>
+ <reference name="bz" visible="false">
+ <binding.http uri="https://www.googleapis.com/buzz/v1/people"/>
+ </reference>
+ </component>
+ <component x="190" y="60" name="fbalbums" title="facebook albums" color="blue1">
+ <implementation.python script="nuvem/fbalbums.py"/>
+ <service name="fbalbums"/>
+ <reference name="id"/>
+ <reference name="fb" visible="false">
+ <binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component x="190" y="10" name="fbfriends" title="facebook friends" color="blue1">
+ <implementation.python script="nuvem/fbfriends.py"/>
+ <service name="fbfriends"/>
+ <reference name="id"/>
+ <reference name="fb" visible="false">
+ <binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component x="80" y="60" name="fbgroups" title="facebook groups" color="blue1">
+ <implementation.python script="nuvem/fbgroups.py"/>
+ <service name="fbgroups"/>
+ <reference name="id"/>
+ <reference name="fb" visible="false">
+ <binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component x="80" y="10" name="fbprofile" title="facebook profile" color="blue1">
+ <implementation.python script="nuvem/fbprofile.py"/>
+ <service name="fbprofile"/>
+ <reference name="id"/>
+ <reference name="fb" visible="false">
+ <binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component x="80" y="210" name="flkalbum" title="flicker album" color="blue1">
+ <implementation.python script="nuvem/flkalbum.py"/>
+ <service name="flkalbum"/>
+ <reference name="id"/>
+ <reference name="flk" visible="false">
+ <binding.http uri="http://api.flickr.com/services/feeds/photos_public.gne"/>
+ </reference>
+ </component>
+ <component x="190" y="210" name="picalbum" title="picasa album" color="blue1">
+ <implementation.python script="nuvem/picalbum.py"/>
+ <service name="picalbum"/>
+ <reference name="id"/>
+ <reference name="pic" visible="false">
+ <binding.http uri="https://picasaweb.google.com/data/feed/api/user"/>
+ </reference>
+ </component>
+ <component x="80" y="160" name="twfollowers" title="twitter followers" color="blue1">
+ <implementation.python script="nuvem/twfollowers.py"/>
+ <service name="twfollowers"/>
+ <reference name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/statuses/followers.json"/>
+ </reference>
+ </component>
+ <component x="190" y="160" name="twfriends" title="twitter friends" color="blue1">
+ <implementation.python script="nuvem/twfriends.py"/>
+ <service name="twfriends"/>
+ <reference name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/statuses/friends.json"/>
+ </reference>
+ </component>
+ <component x="80" y="110" name="twprofile" title="twitter profile" color="blue1">
+ <implementation.python script="nuvem/twprofile.py"/>
+ <service name="twprofile"/>
+ <reference name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/users/show.json"/>
+ </reference>
+ </component>
+ <component x="190" y="110" name="twtimeline" title="twitter timeline" color="blue1">
+ <implementation.python script="nuvem/twtimeline.py"/>
+ <service name="twtimeline"/>
+ <reference name="id"/>
+ <reference name="tw" visible="false">
+ <binding.http uri="http://api.twitter.com/1/statuses/user_timeline.json"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/talk/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/talk/palette.composite
new file mode 100644
index 0000000000..90a48291ca
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/talk/palette.composite
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="sendemail" promote="sendemail"/>
+ <service name="sendgtalk" promote="sendgtalk"/>
+ <service name="twsms" promote="twsms"/>
+ <service name="voicecall" promote="voicecall"/>
+ <component x="150" y="10" name="sendemail" title="email **" color="blue1">
+ <implementation.python script="nuvem/sendemail.py"/>
+ <service name="sendemail"/>
+ <reference name="from"/>
+ <reference name="to"/>
+ <reference name="msg"/>
+ </component>
+ <component x="80" y="10" name="sendgtalk" title="gtalk" color="blue1">
+ <implementation.cpp path="lib/chat" library="libchat-sender2"/>
+ <service name="sendgtalk"/>
+ <reference name="jid"/>
+ <reference name="pass"/>
+ <reference name="to"/>
+ <reference name="msg"/>
+ </component>
+ <component x="230" y="10" name="twsms" title="sms" color="blue1">
+ <implementation.python script="nuvem/twsms.py"/>
+ <service name="twsms"/>
+ <reference name="sid"/>
+ <reference name="token"/>
+ <reference name="from"/>
+ <reference name="to"/>
+ <reference name="msg"/>
+ <reference name="s" wiredByImpl="true" visible="false"/>
+ </component>
+ <component x="80" y="120" name="voicecall" title="voice **" color="blue1">
+ <implementation.python script="nuvem/voicecall.py"/>
+ <service name="voicecall"/>
+ <reference name="to"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/text/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/text/palette.composite
new file mode 100644
index 0000000000..6b9214f6e4
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/text/palette.composite
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="contains" promote="contains"/>
+ <service name="format" promote="format"/>
+ <service name="join" promote="join"/>
+ <service name="lowercase" promote="lowercase"/>
+ <service name="parse" promote="parse"/>
+ <service name="replace" promote="replace"/>
+ <service name="split" promote="split"/>
+ <service name="uppercase" promote="uppercase"/>
+ <component x="80" y="10" name="contains" title="contains" color="cyan1">
+ <implementation.python script="nuvem/contains.py"/>
+ <service name="contains"/>
+ <reference name="search"/>
+ <reference name="string"/>
+ </component>
+ <component x="80" y="90" name="format" title="format" color="cyan1">
+ <implementation.python script="nuvem/format_.py"/>
+ <service name="format"/>
+ <reference name="pattern"/>
+ <reference name="values"/>
+ </component>
+ <component x="280" y="10" name="join" title="join" color="cyan1">
+ <implementation.python script="nuvem/join.py"/>
+ <service name="join"/>
+ <reference name="separator"/>
+ <reference name="list"/>
+ </component>
+ <component x="210" y="90" name="lowercase" title="lower" color="cyan1">
+ <implementation.python script="nuvem/lowercase.py"/>
+ <service name="lowercase"/>
+ <reference name="string"/>
+ </component>
+ <component x="150" y="90" name="parse" title="parse" color="cyan1">
+ <implementation.python script="nuvem/parse.py"/>
+ <service name="parse"/>
+ <reference name="regexp"/>
+ <reference name="string"/>
+ </component>
+ <component x="150" y="10" name="replace" title="replace" color="cyan1">
+ <implementation.python script="nuvem/replace.py"/>
+ <service name="replace"/>
+ <reference name="from"/>
+ <reference name="to"/>
+ <reference name="string"/>
+ </component>
+ <component x="220" y="10" name="split" title="split" color="cyan1">
+ <implementation.python script="nuvem/split.py"/>
+ <service name="split"/>
+ <reference name="separator"/>
+ <reference name="string"/>
+ </component>
+ <component x="270" y="90" name="uppercase" title="upper" color="cyan1">
+ <implementation.python script="nuvem/uppercase.py"/>
+ <service name="uppercase"/>
+ <reference name="string"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/transform/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/transform/palette.composite
new file mode 100644
index 0000000000..566278c44b
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/transform/palette.composite
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="filter" promote="filter"/>
+ <service name="map" promote="map"/>
+ <service name="reduce" promote="reduce"/>
+ <service name="reverse" promote="reverse"/>
+ <service name="shuffle" promote="shuffle"/>
+ <component x="160" y="10" name="filter" title="filter" color="yellow1">
+ <implementation.python script="nuvem/filter_.py"/>
+ <service name="filter"/>
+ <reference name="item"/>
+ <reference name="condition"/>
+ <reference name="list"/>
+ </component>
+ <component x="80" y="10" name="map" title="map" color="yellow1">
+ <implementation.python script="nuvem/map_.py"/>
+ <service name="map"/>
+ <reference name="item"/>
+ <reference name="transform"/>
+ <reference name="list"/>
+ </component>
+ <component x="80" y="90" name="reduce" title="reduce" color="yellow1">
+ <implementation.python script="nuvem/reduce_.py"/>
+ <service name="reduce"/>
+ <reference name="item"/>
+ <reference name="accum"/>
+ <reference name="transform"/>
+ <reference name="init"/>
+ <reference name="list"/>
+ </component>
+ <component x="220" y="10" name="reverse" title="reverse" color="yellow1">
+ <implementation.python script="nuvem/reverse.py"/>
+ <service name="reverse"/>
+ <reference name="list"/>
+ </component>
+ <component x="160" y="90" name="shuffle" title="shuffle" color="yellow1">
+ <implementation.python script="nuvem/shuffle_.py"/>
+ <service name="shuffle"/>
+ <reference name="list"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/palettes/values/palette.composite b/sca-cpp/trunk/hosting/server/data/palettes/values/palette.composite
new file mode 100644
index 0000000000..4cd3a9d14e
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/palettes/values/palette.composite
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" name="palette" targetNamespace="http://palette">
+ <service name="comment" promote="comment"/>
+ <service name="false" promote="false"/>
+ <service name="item" promote="item"/>
+ <service name="name" promote="name"/>
+ <service name="nothing" promote="nothing"/>
+ <service name="now" promote="now"/>
+ <service name="number" promote="number"/>
+ <service name="text" promote="text"/>
+ <service name="true" promote="true"/>
+ <service name="valueof" promote="valueof"/>
+ <component x="210" y="110" name="comment" title="{propval}" color="white">
+ <implementation.python script="nuvem/comment.py"/>
+ <service name="comment" visible="false"/>
+ <property>comment</property>
+ </component>
+ <component x="260" y="10" name="false" title="false" color="orange1">
+ <implementation.python script="nuvem/false_.py"/>
+ <service name="false"/>
+ </component>
+ <component x="80" y="60" name="item" title="{propval}:" color="orange1">
+ <implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <reference name="value"/>
+ <property>name</property>
+ </component>
+ <component x="150" y="60" name="name" title="" color="orange1">
+ <implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>name</property>
+ </component>
+ <component x="80" y="110" name="nothing" title="nothing" color="orange1">
+ <implementation.python script="nuvem/nothing.py"/>
+ <service name="nothing"/>
+ </component>
+ <component x="150" y="110" name="now" title="now" color="orange1">
+ <implementation.python script="nuvem/now.py"/>
+ <service name="now"/>
+ <reference name="format"/>
+ </component>
+ <component x="140" y="10" name="number" title="#" color="orange1">
+ <implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>123</property>
+ </component>
+ <component x="80" y="10" name="text" title=" '{propval}'" color="orange1">
+ <implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>text</property>
+ </component>
+ <component x="200" y="10" name="true" title="true" color="orange1">
+ <implementation.python script="nuvem/true_.py"/>
+ <service name="true"/>
+ </component>
+ <component x="210" y="60" name="valueof" title="valueof" color="orange1">
+ <implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>name</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/hosting/server/data/store/all/store.apps b/sca-cpp/trunk/hosting/server/data/store/all/store.apps
new file mode 100644
index 0000000000..caf7142403
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/store/all/store.apps
@@ -0,0 +1 @@
+((entry (title "Check my public social data") (id "me360")) (entry (title "Where are my friends") (id "nearme")) (entry (title "Where are my friends") (id "nearme2")) (entry (title "Our photos of an event") (id "ourphotos")) (entry (title "Slice") (id "slice")) (entry (title "My online store") (id "shoppingcart")) (entry (title "SMS send service") (id "twsms")) (entry (title "An empty test app") (id "test")) (entry (title "Test values and lists") (id "testvalues")) (entry (title "Test social components") (id "testsocial")) (entry (title "Test URL components") (id "testurl")) (entry (title "Test logic components") (id "testlogic")) (entry (title "Test text processing components") (id "testtext")) (entry (title "Test HTTP components") (id "testhttp")) (entry (title "Test SMS API") (id "testsms")) (entry (title "Test widgets") (id "testwidgets")) (entry (title "Test more widgets") (id "testwidgets2")) (entry (title "Test event components") (id "testevents")) (entry (title "Test search components") (id "testsearch")) (entry (title "Test database components") (id "testdb")) (entry (title "Test HTML generator components") (id "testwidgets3")) (entry (title "Test animation components") (id "testanimation")))
diff --git a/sca-cpp/trunk/hosting/server/data/store/featured/store.apps b/sca-cpp/trunk/hosting/server/data/store/featured/store.apps
new file mode 100644
index 0000000000..18bd47e8dd
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/store/featured/store.apps
@@ -0,0 +1 @@
+((entry (title "Check my public social data") (id "me360")) (entry (title "Where are my friends") (id "nearme")) (entry (title "Where are my friends") (id "nearme2")) (entry (title "Our photos of an event") (id "ourphotos")) (entry (title "Slice") (id "slice")) (entry (title "My online store") (id "shoppingcart")) (entry (title "SMS send service") (id "twsms")))
diff --git a/sca-cpp/trunk/hosting/server/data/store/new/store.apps b/sca-cpp/trunk/hosting/server/data/store/new/store.apps
new file mode 100644
index 0000000000..18bd47e8dd
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/store/new/store.apps
@@ -0,0 +1 @@
+((entry (title "Check my public social data") (id "me360")) (entry (title "Where are my friends") (id "nearme")) (entry (title "Where are my friends") (id "nearme2")) (entry (title "Our photos of an event") (id "ourphotos")) (entry (title "Slice") (id "slice")) (entry (title "My online store") (id "shoppingcart")) (entry (title "SMS send service") (id "twsms")))
diff --git a/sca-cpp/trunk/hosting/server/data/store/top/store.apps b/sca-cpp/trunk/hosting/server/data/store/top/store.apps
new file mode 100644
index 0000000000..18bd47e8dd
--- /dev/null
+++ b/sca-cpp/trunk/hosting/server/data/store/top/store.apps
@@ -0,0 +1 @@
+((entry (title "Check my public social data") (id "me360")) (entry (title "Where are my friends") (id "nearme")) (entry (title "Where are my friends") (id "nearme2")) (entry (title "Our photos of an event") (id "ourphotos")) (entry (title "Slice") (id "slice")) (entry (title "My online store") (id "shoppingcart")) (entry (title "SMS send service") (id "twsms")))