summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/hosting/server/data/apps
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/trunk/hosting/server/data/apps')
-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
69 files changed, 5994 insertions, 0 deletions
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>