summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-cpp/trunk/modules/edit/apps.py14
-rw-r--r--sca-cpp/trunk/modules/edit/apps/myprofile/app.composite86
-rw-r--r--sca-cpp/trunk/modules/edit/apps/myprofile/app.html48
-rw-r--r--sca-cpp/trunk/modules/edit/apps/myprofile2/app.composite194
-rw-r--r--sca-cpp/trunk/modules/edit/apps/myprofile2/app.html48
-rw-r--r--sca-cpp/trunk/modules/edit/apps/nearme/app.composite202
-rw-r--r--sca-cpp/trunk/modules/edit/apps/nearme/app.html20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/nearme2/app.composite204
-rw-r--r--sca-cpp/trunk/modules/edit/apps/nearme2/app.html20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/store/app.composite90
-rw-r--r--sca-cpp/trunk/modules/edit/apps/store/app.html75
-rw-r--r--sca-cpp/trunk/modules/edit/apps/store2/app.composite90
-rw-r--r--sca-cpp/trunk/modules/edit/apps/store2/app.html75
-rw-r--r--sca-cpp/trunk/modules/edit/apps/store3/app.composite90
-rw-r--r--sca-cpp/trunk/modules/edit/apps/store3/app.html75
-rw-r--r--sca-cpp/trunk/modules/edit/apps/test/app.composite20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/test/app.html20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testlogic/app.composite55
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testlogic/app.html20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testsocial/app.composite100
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testsocial/app.html20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testtext/app.composite134
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testtext/app.html20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testurl/app.composite57
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testurl/app.html20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testvalues/app.composite281
-rw-r--r--sca-cpp/trunk/modules/edit/apps/testvalues/app.html20
-rw-r--r--sca-cpp/trunk/modules/edit/apps/travel/app.composite421
-rw-r--r--sca-cpp/trunk/modules/edit/apps/travel/app.html47
-rw-r--r--sca-cpp/trunk/modules/edit/dashboards/joe@localhost2
-rw-r--r--sca-cpp/trunk/modules/edit/edit.composite7
-rw-r--r--sca-cpp/trunk/modules/edit/htdocs/dash/dashboard.html2
-rw-r--r--sca-cpp/trunk/modules/edit/htdocs/dash/index.html4
-rw-r--r--sca-cpp/trunk/modules/edit/htdocs/graph/graph.html21
-rw-r--r--sca-cpp/trunk/modules/edit/htdocs/graph/graph.js39
-rw-r--r--sca-cpp/trunk/modules/edit/htdocs/menu.html18
-rw-r--r--sca-cpp/trunk/modules/edit/palettes/events/palette.composite20
-rw-r--r--sca-cpp/trunk/modules/edit/palettes/lists/palette.composite35
-rw-r--r--sca-cpp/trunk/modules/edit/palettes/logic/palette.composite14
-rw-r--r--sca-cpp/trunk/modules/edit/palettes/math/palette.composite8
-rw-r--r--sca-cpp/trunk/modules/edit/palettes/social/palette.composite31
-rw-r--r--sca-cpp/trunk/modules/edit/palettes/text/palette.composite12
-rw-r--r--sca-cpp/trunk/modules/edit/palettes/url/palette.composite14
-rw-r--r--sca-cpp/trunk/modules/edit/palettes/values/palette.composite21
-rwxr-xr-xsca-cpp/trunk/modules/edit/ssl-start57
-rwxr-xr-xsca-cpp/trunk/modules/edit/start47
-rw-r--r--sca-cpp/trunk/modules/edit/user.py5
47 files changed, 1922 insertions, 1001 deletions
diff --git a/sca-cpp/trunk/modules/edit/apps.py b/sca-cpp/trunk/modules/edit/apps.py
index fa3307bfca..d0a54ac7ed 100644
--- a/sca-cpp/trunk/modules/edit/apps.py
+++ b/sca-cpp/trunk/modules/edit/apps.py
@@ -18,23 +18,37 @@
# Apps collection implementation
import uuid
import sys
+import os
from util import *
# Convert an id to an app id
def appid(id):
return ("'" + car(id), "'app.composite")
+# Link implementation resources into an app
+def mkapplink(id):
+ try:
+ os.symlink('../../../../../nuvem/nuvem-parallel/nuvem', 'apps/' + car(id) + '/nuvem')
+ os.mkdir('apps/' + car(id) + '/htdocs')
+ os.symlink('../../../htdocs/login', 'apps/' + car(id) + '/htdocs/login');
+ os.symlink('../../../htdocs/logout', 'apps/' + car(id) + '/htdocs/logout');
+ except:
+ pass
+ return True
+
# Post a new app to the apps db
def post(collection, app, cache):
id = appid((str(uuid.uuid1()),))
comp = caddr(app)
cache.put((id,), comp)
+ mkapplink((id,))
return id
# Put an app into the apps db
def put(id, app, cache):
comp = caddr(app)
cache.put(appid(id), comp)
+ mkapplink(id)
return True
# Get an app from the apps db
diff --git a/sca-cpp/trunk/modules/edit/apps/myprofile/app.composite b/sca-cpp/trunk/modules/edit/apps/myprofile/app.composite
index 414176f316..c75b7c7179 100644
--- a/sca-cpp/trunk/modules/edit/apps/myprofile/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/myprofile/app.composite
@@ -18,47 +18,47 @@
* under the License.
-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://me360" name="me360">
- <component t:x="240" t:y="57" name="text" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
- <service name="text"/>
- <property>12345678</property>
- </component>
- <service name="opened" promote="opened"/>
- <component t:x="3" t:y="2" name="opened" t:title="when page opened" t:color="green1">
- <t:implementation.python script="opened.py"/>
- <service name="opened" t:visible="false"/>
- <reference target="assoc2" name="content"/>
- </component>
- <component t:x="135" t:y="2" name="assoc2" t:title="assoc" t:color="orange1">
- <t:implementation.python script="assoc.py"/>
- <service name="assoc"/>
- <reference target="name2" name="name"/>
- <reference target="append" name="value"/>
- </component>
- <component t:x="225" t:y="52" name="append" t:title="append" t:color="yellow1">
- <t:implementation.python script="append.py"/>
- <service name="append"/>
- <reference target="fbprofile" name="first"/>
- <reference target="twprofile" name="second"/>
- </component>
- <component t:x="297" t:y="53" name="fbprofile" t:title="facebook profile" t:color="blue1">
- <t:implementation.python script="fbprofile.py"/>
- <service name="fbprofile"/>
- <reference target="text" name="id"/>
- </component>
- <component t:x="293" t:y="105" name="twprofile" t:title="twitter profile" t:color="blue1">
- <t:implementation.python script="twprofile.py"/>
- <service name="twprofile"/>
- <reference target="text2" name="id"/>
- </component>
- <component t:x="219" t:y="0" name="name2" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>profiles</property>
- </component>
- <component t:x="358" t:y="98" name="text2" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
- <service name="text"/>
- <property>joe</property>
- </component>
+ <component t:x="240" t:y="57" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="text.py"/>
+ <service name="text"/>
+ <property>12345678</property>
+ </component>
+ <service name="opened" promote="opened"/>
+ <component t:x="3" t:y="2" name="opened" t:title="when page opened" t:color="green1">
+ <t:implementation.python script="opened.py"/>
+ <service name="opened" t:visible="false"/>
+ <reference target="assoc2" name="content"/>
+ </component>
+ <component t:x="135" t:y="2" name="assoc2" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name2" name="name"/>
+ <reference target="append" name="value"/>
+ </component>
+ <component t:x="225" t:y="52" name="append" t:title="append" t:color="yellow1">
+ <t:implementation.python script="append.py"/>
+ <service name="append"/>
+ <reference target="fbprofile" name="first"/>
+ <reference target="twprofile" name="second"/>
+ </component>
+ <component t:x="297" t:y="53" name="fbprofile" t:title="facebook profile" t:color="blue1">
+ <t:implementation.python script="fbprofile.py"/>
+ <service name="fbprofile"/>
+ <reference target="text" name="id"/>
+ </component>
+ <component t:x="293" t:y="105" name="twprofile" t:title="twitter profile" t:color="blue1">
+ <t:implementation.python script="twprofile.py"/>
+ <service name="twprofile"/>
+ <reference target="text2" name="id"/>
+ </component>
+ <component t:x="219" t:y="0" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>profiles</property>
+ </component>
+ <component t:x="358" t:y="98" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="text.py"/>
+ <service name="text"/>
+ <property>joe</property>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/myprofile/app.html b/sca-cpp/trunk/modules/edit/apps/myprofile/app.html
index f422574655..b09564dc5c 100644
--- a/sca-cpp/trunk/modules/edit/apps/myprofile/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/myprofile/app.html
@@ -18,28 +18,28 @@
* under the License.
-->
<DIV id="page">
- <SPAN id="h1" class="h1" style="position: absolute; top: 6px; left: 0px; ">
- <H1>My social profiles</H1>
- </SPAN>
- <SPAN id="getProfiles" class="button" style="position: absolute; top: 144px; left: 0px; ">
- <INPUT type="button" value="Get my profiles"/>
- </SPAN>
- <SPAN id="h2" class="h2" style="position: absolute; top: 198px; left: 0px; ">
- <H2>Facebook profile</H2>
- </SPAN>
- <SPAN id="fbprofile" class="text" style="position: absolute; top: 240px; left: 3px; ">
- <SPAN>text</SPAN>
- </SPAN>
- <SPAN id="h2" class="h2" style="position: absolute; top: 283px; left: 1px; ">
- <H2>Twitter profile</H2>
- </SPAN>
- <SPAN id="twprofile" class="text" style="position: absolute; top: 331px; left: 2px; ">
- <SPAN>text</SPAN>
- </SPAN>
- <SPAN id="twid" class="entry" style="position: absolute; top: 99px; left: 0px; ">
- <INPUT type="text" value="field" size="5"/>
- </SPAN>
- <SPAN id="fbid" class="entry" style="position: absolute; top: 56px; left: 0px; ">
- <INPUT type="text" value="field" size="5"/>
- </SPAN>
+ <SPAN id="h1" class="h1" style="position: absolute; top: 6px; left: 0px; ">
+ <H1>My social profiles</H1>
+ </SPAN>
+ <SPAN id="getProfiles" class="button" style="position: absolute; top: 144px; left: 0px; ">
+ <INPUT type="button" value="Get my profiles"/>
+ </SPAN>
+ <SPAN id="h2" class="h2" style="position: absolute; top: 198px; left: 0px; ">
+ <H2>Facebook profile</H2>
+ </SPAN>
+ <SPAN id="fbprofile" class="text" style="position: absolute; top: 240px; left: 3px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="h2" class="h2" style="position: absolute; top: 283px; left: 1px; ">
+ <H2>Twitter profile</H2>
+ </SPAN>
+ <SPAN id="twprofile" class="text" style="position: absolute; top: 331px; left: 2px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="twid" class="entry" style="position: absolute; top: 99px; left: 0px; ">
+ <INPUT type="text" value="field" size="5"/>
+ </SPAN>
+ <SPAN id="fbid" class="entry" style="position: absolute; top: 56px; left: 0px; ">
+ <INPUT type="text" value="field" size="5"/>
+ </SPAN>
</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/myprofile2/app.composite b/sca-cpp/trunk/modules/edit/apps/myprofile2/app.composite
index ef2383b1d3..86a6ce6cd1 100644
--- a/sca-cpp/trunk/modules/edit/apps/myprofile2/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/myprofile2/app.composite
@@ -18,101 +18,101 @@
* under the License.
-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://myprofile2" name="myprofile2">
- <service name="opened" promote="opened"/>
- <component t:x="0" t:y="13" name="opened" t:title="when page opened" t:color="green1">
- <t:implementation.python script="opened.py"/>
- <service name="opened" t:visible="false"/>
- <reference target="nothing" name="content"/>
- </component>
- <component t:x="133" t:y="11" name="nothing" t:color="orange1">
- <t:implementation.python script="text.py"/>
- <service name="nothing"/>
- </component>
- <service name="getProfiles" promote="getProfiles"/>
- <component name="getProfiles" t:x="0" t:y="99" t:title="when clicked" t:color="green1">
- <t:implementation.python script="clicked.py"/>
- <service name="clicked" t:visible="false"/>
- <property>getProfiles</property>
- <reference target="list5" name="content"/>
- </component>
- <component t:x="98" t:y="100" name="list5" t:title="make list" t:color="yellow1">
- <t:implementation.python script="list_.py"/>
- <service name="list"/>
- <reference target="assoc" name="first"/>
- <reference target="list6" name="rest"/>
- </component>
- <component t:x="223" t:y="140" name="fbprofile2" t:title="facebook profile" t:color="blue1">
- <t:implementation.python script="fbprofile.py"/>
- <service name="fbprofile"/>
- <reference target="find3" name="id"/>
- </component>
- <component t:x="176" t:y="144" name="list6" t:title="make list" t:color="yellow1">
- <t:implementation.python script="list_.py"/>
- <service name="list"/>
- <reference target="assoc2" name="first"/>
- <reference target="empty" name="rest"/>
- </component>
- <component t:x="176" t:y="99" name="assoc" t:title="assoc" t:color="orange1">
- <t:implementation.python script="assoc.py"/>
- <service name="assoc"/>
- <reference target="name" name="name"/>
- <reference target="fbprofile2" name="value"/>
- </component>
- <component t:x="299" t:y="269" name="twprofile2" t:title="twitter profile" t:color="blue1">
- <t:implementation.python script="twprofile.py"/>
- <service name="twprofile"/>
- <reference target="find4" name="id"/>
- </component>
- <component t:x="337" t:y="142" name="find3" t:title="find by name" t:color="yellow1">
- <t:implementation.python script="find.py"/>
- <service name="find"/>
- <reference target="name4" name="name"/>
- <reference target="params3" name="assoc"/>
- </component>
- <component t:x="439" t:y="140" name="name4" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>fbid</property>
- </component>
- <component t:x="399" t:y="344" name="find4" t:title="find by name" t:color="yellow1">
- <t:implementation.python script="find.py"/>
- <service name="find"/>
- <reference target="name5" name="name"/>
- <reference target="params4" name="assoc"/>
- </component>
- <component t:x="495" t:y="345" name="name5" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>twid</property>
- </component>
- <component t:x="221" t:y="99" name="name" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>fbprofile</property>
- </component>
- <component t:x="256" t:y="262" name="assoc2" t:title="assoc" t:color="orange1">
- <t:implementation.python script="assoc.py"/>
- <service name="assoc"/>
- <reference target="name3" name="name"/>
- <reference target="twprofile2" name="value"/>
- </component>
- <component t:x="256" t:y="424" name="empty" t:title="empty list" t:color="yellow1">
- <t:implementation.python script="empty.py"/>
- <service name="empty"/>
- </component>
- <component t:x="298" t:y="261" name="name3" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>twprofile</property>
- </component>
- <component t:x="436" t:y="183" name="params3" t:title="?params" t:color="green1">
- <t:implementation.python script="params.py"/>
- <service name="params"/>
- <property>fbid=1234567&amp;twid=joe</property>
- </component>
- <component t:x="495" t:y="345" name="params4" t:title="?params" t:color="green1">
- <t:implementation.python script="params.py"/>
- <service name="params"/>
- <property>fbid=1234567&amp;twid=joe</property>
- </component>
+ <service name="opened" promote="opened"/>
+ <component t:x="0" t:y="13" name="opened" t:title="when page opened" t:color="green1">
+ <t:implementation.python script="opened.py"/>
+ <service name="opened" t:visible="false"/>
+ <reference target="nothing" name="content"/>
+ </component>
+ <component t:x="133" t:y="11" name="nothing" t:color="orange1">
+ <t:implementation.python script="text.py"/>
+ <service name="nothing"/>
+ </component>
+ <service name="getProfiles" promote="getProfiles"/>
+ <component name="getProfiles" t:x="0" t:y="99" t:title="when clicked" t:color="green1">
+ <t:implementation.python script="clicked.py"/>
+ <service name="clicked" t:visible="false"/>
+ <property>getProfiles</property>
+ <reference target="list5" name="content"/>
+ </component>
+ <component t:x="98" t:y="100" name="list5" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="list_.py"/>
+ <service name="list"/>
+ <reference target="assoc" name="first"/>
+ <reference target="list6" name="rest"/>
+ </component>
+ <component t:x="223" t:y="140" name="fbprofile2" t:title="facebook profile" t:color="blue1">
+ <t:implementation.python script="fbprofile.py"/>
+ <service name="fbprofile"/>
+ <reference target="find3" name="id"/>
+ </component>
+ <component t:x="176" t:y="144" name="list6" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="list_.py"/>
+ <service name="list"/>
+ <reference target="assoc2" name="first"/>
+ <reference target="empty" name="rest"/>
+ </component>
+ <component t:x="176" t:y="99" name="assoc" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name" name="name"/>
+ <reference target="fbprofile2" name="value"/>
+ </component>
+ <component t:x="299" t:y="269" name="twprofile2" t:title="twitter profile" t:color="blue1">
+ <t:implementation.python script="twprofile.py"/>
+ <service name="twprofile"/>
+ <reference target="find4" name="id"/>
+ </component>
+ <component t:x="337" t:y="142" name="find3" t:title="find by name" t:color="yellow1">
+ <t:implementation.python script="find.py"/>
+ <service name="find"/>
+ <reference target="name4" name="name"/>
+ <reference target="params3" name="assoc"/>
+ </component>
+ <component t:x="439" t:y="140" name="name4" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>fbid</property>
+ </component>
+ <component t:x="399" t:y="344" name="find4" t:title="find by name" t:color="yellow1">
+ <t:implementation.python script="find.py"/>
+ <service name="find"/>
+ <reference target="name5" name="name"/>
+ <reference target="params4" name="assoc"/>
+ </component>
+ <component t:x="495" t:y="345" name="name5" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>twid</property>
+ </component>
+ <component t:x="221" t:y="99" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>fbprofile</property>
+ </component>
+ <component t:x="256" t:y="262" name="assoc2" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name3" name="name"/>
+ <reference target="twprofile2" name="value"/>
+ </component>
+ <component t:x="256" t:y="424" name="empty" t:title="empty list" t:color="yellow1">
+ <t:implementation.python script="empty.py"/>
+ <service name="empty"/>
+ </component>
+ <component t:x="298" t:y="261" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>twprofile</property>
+ </component>
+ <component t:x="436" t:y="183" name="params3" t:title="?params" t:color="green1">
+ <t:implementation.python script="params.py"/>
+ <service name="params"/>
+ <property>fbid=1234567&amp;twid=joe</property>
+ </component>
+ <component t:x="495" t:y="345" name="params4" t:title="?params" t:color="green1">
+ <t:implementation.python script="params.py"/>
+ <service name="params"/>
+ <property>fbid=1234567&amp;twid=joe</property>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/myprofile2/app.html b/sca-cpp/trunk/modules/edit/apps/myprofile2/app.html
index f422574655..b09564dc5c 100644
--- a/sca-cpp/trunk/modules/edit/apps/myprofile2/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/myprofile2/app.html
@@ -18,28 +18,28 @@
* under the License.
-->
<DIV id="page">
- <SPAN id="h1" class="h1" style="position: absolute; top: 6px; left: 0px; ">
- <H1>My social profiles</H1>
- </SPAN>
- <SPAN id="getProfiles" class="button" style="position: absolute; top: 144px; left: 0px; ">
- <INPUT type="button" value="Get my profiles"/>
- </SPAN>
- <SPAN id="h2" class="h2" style="position: absolute; top: 198px; left: 0px; ">
- <H2>Facebook profile</H2>
- </SPAN>
- <SPAN id="fbprofile" class="text" style="position: absolute; top: 240px; left: 3px; ">
- <SPAN>text</SPAN>
- </SPAN>
- <SPAN id="h2" class="h2" style="position: absolute; top: 283px; left: 1px; ">
- <H2>Twitter profile</H2>
- </SPAN>
- <SPAN id="twprofile" class="text" style="position: absolute; top: 331px; left: 2px; ">
- <SPAN>text</SPAN>
- </SPAN>
- <SPAN id="twid" class="entry" style="position: absolute; top: 99px; left: 0px; ">
- <INPUT type="text" value="field" size="5"/>
- </SPAN>
- <SPAN id="fbid" class="entry" style="position: absolute; top: 56px; left: 0px; ">
- <INPUT type="text" value="field" size="5"/>
- </SPAN>
+ <SPAN id="h1" class="h1" style="position: absolute; top: 6px; left: 0px; ">
+ <H1>My social profiles</H1>
+ </SPAN>
+ <SPAN id="getProfiles" class="button" style="position: absolute; top: 144px; left: 0px; ">
+ <INPUT type="button" value="Get my profiles"/>
+ </SPAN>
+ <SPAN id="h2" class="h2" style="position: absolute; top: 198px; left: 0px; ">
+ <H2>Facebook profile</H2>
+ </SPAN>
+ <SPAN id="fbprofile" class="text" style="position: absolute; top: 240px; left: 3px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="h2" class="h2" style="position: absolute; top: 283px; left: 1px; ">
+ <H2>Twitter profile</H2>
+ </SPAN>
+ <SPAN id="twprofile" class="text" style="position: absolute; top: 331px; left: 2px; ">
+ <SPAN>text</SPAN>
+ </SPAN>
+ <SPAN id="twid" class="entry" style="position: absolute; top: 99px; left: 0px; ">
+ <INPUT type="text" value="field" size="5"/>
+ </SPAN>
+ <SPAN id="fbid" class="entry" style="position: absolute; top: 56px; left: 0px; ">
+ <INPUT type="text" value="field" size="5"/>
+ </SPAN>
</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/nearme/app.composite b/sca-cpp/trunk/modules/edit/apps/nearme/app.composite
index 61942294ba..d3a4dffebf 100644
--- a/sca-cpp/trunk/modules/edit/apps/nearme/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/nearme/app.composite
@@ -18,105 +18,105 @@
* under the License.
-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://nearme" name="nearme">
- <component t:x="234" t:y="25" name="fbfriend" t:color="yellow1">
- <t:implementation.python script="item.py"/>
- <service name="item"/>
- <property name="property"/>
- </component>
- <component t:x="233" t:y="97" name="fbfriends" t:title="facebook friends" t:color="blue1">
- <t:implementation.python script="fbfriends.py"/>
- <service name="fbfriends"/>
- <reference target="find" name="id"/>
- </component>
- <component t:x="352" t:y="96" name="find" t:title="find by name" t:color="yellow1">
- <t:implementation.python script="find.py"/>
- <service name="find"/>
- <reference target="name" name="name"/>
- <reference target="params" name="assoc"/>
- </component>
- <component t:x="453" t:y="97" name="name" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>fbid</property>
- </component>
- <component t:x="453" t:y="138" name="params" t:title="?params" t:color="green1">
- <t:implementation.python script="params.py"/>
- <service name="params"/>
- <property>fbid=1234567</property>
- </component>
- <component t:x="274" t:y="97" name="mile" t:title="number" t:color="orange1">
- <t:implementation.python script="number.py"/>
- <service name="number"/>
- <property>1</property>
- </component>
- <component t:x="484" t:y="68" name="name2" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>id</property>
- </component>
- <component t:x="226" t:y="29" name="lesser" t:title="lt" t:color="magenta1">
- <t:implementation.python script="lesser.py"/>
- <service name="lesser"/>
- <reference target="distance" name="value1"/>
- <reference target="mile" name="value2"/>
- </component>
- <component t:x="378" t:y="25" name="text2" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
- <service name="text"/>
- <property>jane</property>
- </component>
- <component t:x="227" t:y="240" name="nothing" t:title="nothing" t:color="orange1">
- <t:implementation.python script="text.py"/>
- <service name="nothing"/>
- </component>
- <component t:x="132" t:y="31" name="if" t:title="if" t:color="magenta1">
- <t:implementation.python script="if_.py"/>
- <service name="if"/>
- <reference target="lesser" name="condition"/>
- <reference target="assoc" name="then"/>
- <reference target="nothing" name="else"/>
- </component>
- <component t:x="600" t:y="113" name="text" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
- <service name="text"/>
- <property>joe</property>
- </component>
- <service name="opened" promote="opened"/>
- <component t:x="0" t:y="22" name="opened" t:title="when page opened" t:color="green1">
- <t:implementation.python script="opened.py"/>
- <service name="opened" t:visible="false"/>
- <reference target="if" name="content"/>
- </component>
- <component t:x="175" t:y="198" name="assoc" t:title="assoc" t:color="orange1">
- <t:implementation.python script="assoc.py"/>
- <service name="assoc"/>
- <reference target="name3" name="name"/>
- <reference target="text3" name="value"/>
- </component>
- <component t:x="331" t:y="383" name="text3" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
- <service name="text"/>
- <property>jane</property>
- </component>
- <component t:x="218" t:y="195" name="name3" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>near</property>
- </component>
- <component t:x="216" t:y="23" name="distance" t:title="distance" t:color="red1">
- <t:implementation.python script="distance.py"/>
- <service name="distance"/>
- <reference target="location" name="location1"/>
- <reference target="location2" name="location2"/>
- </component>
- <component t:x="430" t:y="178" name="location" t:title="location" t:color="red1">
- <t:implementation.python script="location.py"/>
- <service name="location"/>
- <reference target="text2" name="user"/>
- </component>
- <component t:x="429" t:y="234" name="location2" t:title="location" t:color="red1">
- <t:implementation.python script="location.py"/>
- <service name="location"/>
- <reference target="text" name="user"/>
- </component>
+ <component t:x="234" t:y="25" name="fbfriend" t:color="yellow1">
+ <t:implementation.python script="item.py"/>
+ <service name="item"/>
+ <property name="property"/>
+ </component>
+ <component t:x="233" t:y="97" name="fbfriends" t:title="facebook friends" t:color="blue1">
+ <t:implementation.python script="fbfriends.py"/>
+ <service name="fbfriends"/>
+ <reference target="find" name="id"/>
+ </component>
+ <component t:x="352" t:y="96" name="find" t:title="find by name" t:color="yellow1">
+ <t:implementation.python script="find.py"/>
+ <service name="find"/>
+ <reference target="name" name="name"/>
+ <reference target="params" name="assoc"/>
+ </component>
+ <component t:x="453" t:y="97" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>fbid</property>
+ </component>
+ <component t:x="453" t:y="138" name="params" t:title="?params" t:color="green1">
+ <t:implementation.python script="params.py"/>
+ <service name="params"/>
+ <property>fbid=1234567</property>
+ </component>
+ <component t:x="274" t:y="97" name="mile" t:title="number" t:color="orange1">
+ <t:implementation.python script="number.py"/>
+ <service name="number"/>
+ <property>1</property>
+ </component>
+ <component t:x="484" t:y="68" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>id</property>
+ </component>
+ <component t:x="226" t:y="29" name="lesser" t:title="lt" t:color="magenta1">
+ <t:implementation.python script="lesser.py"/>
+ <service name="lesser"/>
+ <reference target="distance" name="value1"/>
+ <reference target="mile" name="value2"/>
+ </component>
+ <component t:x="378" t:y="25" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="text.py"/>
+ <service name="text"/>
+ <property>jane</property>
+ </component>
+ <component t:x="227" t:y="240" name="nothing" t:title="nothing" t:color="orange1">
+ <t:implementation.python script="text.py"/>
+ <service name="nothing"/>
+ </component>
+ <component t:x="132" t:y="31" name="if" t:title="if" t:color="magenta1">
+ <t:implementation.python script="if_.py"/>
+ <service name="if"/>
+ <reference target="lesser" name="condition"/>
+ <reference target="assoc" name="then"/>
+ <reference target="nothing" name="else"/>
+ </component>
+ <component t:x="600" t:y="113" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="text.py"/>
+ <service name="text"/>
+ <property>joe</property>
+ </component>
+ <service name="opened" promote="opened"/>
+ <component t:x="0" t:y="22" name="opened" t:title="when page opened" t:color="green1">
+ <t:implementation.python script="opened.py"/>
+ <service name="opened" t:visible="false"/>
+ <reference target="if" name="content"/>
+ </component>
+ <component t:x="175" t:y="198" name="assoc" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name3" name="name"/>
+ <reference target="text3" name="value"/>
+ </component>
+ <component t:x="331" t:y="383" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="text.py"/>
+ <service name="text"/>
+ <property>jane</property>
+ </component>
+ <component t:x="218" t:y="195" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>near</property>
+ </component>
+ <component t:x="216" t:y="23" name="distance" t:title="distance" t:color="red1">
+ <t:implementation.python script="distance.py"/>
+ <service name="distance"/>
+ <reference target="location" name="location1"/>
+ <reference target="location2" name="location2"/>
+ </component>
+ <component t:x="430" t:y="178" name="location" t:title="location" t:color="red1">
+ <t:implementation.python script="location.py"/>
+ <service name="location"/>
+ <reference target="text2" name="user"/>
+ </component>
+ <component t:x="429" t:y="234" name="location2" t:title="location" t:color="red1">
+ <t:implementation.python script="location.py"/>
+ <service name="location"/>
+ <reference target="text" name="user"/>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/nearme/app.html b/sca-cpp/trunk/modules/edit/apps/nearme/app.html
new file mode 100644
index 0000000000..5c7c7219bb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/nearme/app.html
@@ -0,0 +1,20 @@
+<?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"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/nearme2/app.composite b/sca-cpp/trunk/modules/edit/apps/nearme2/app.composite
index d5ed657a10..11c967111a 100644
--- a/sca-cpp/trunk/modules/edit/apps/nearme2/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/nearme2/app.composite
@@ -18,106 +18,106 @@
* under the License.
-->
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://nearme2" name="nearme2">
- <service name="every" promote="every"/>
- <component t:x="0" t:y="25" name="every" t:title="every n secs" t:color="green1">
- <t:implementation.python script="every.py"/>
- <service name="every" t:visible="false"/>
- <property>60</property>
- <reference target="gtalksend" name="content"/>
- </component>
- <component t:x="100" t:y="25" name="gtalksend" t:title="send gtalk" t:color="blue1">
- <t:implementation.python script="gtalksend.py"/>
- <service name="gtalksend"/>
- <reference target="filter" name="jid"/>
- <reference target="user" name="to"/>
- <reference target="text" name="msg"/>
- </component>
- <component t:x="184" t:y="54" name="user" t:title="user" t:color="green1">
- <t:implementation.python script="user.py"/>
- <service name="user"/>
- <property name="user"/>
- </component>
- <component t:x="183" t:y="97" name="text" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
- <service name="text"/>
- <property>Hey I'm here!</property>
- </component>
- <component t:x="184" t:y="24" name="filter" t:title="filter" t:color="yellow1">
- <t:implementation.python script="filter_.py"/>
- <service name="filter"/>
- <reference target="fbfriend" name="item"/>
- <reference target="lesser" name="condition"/>
- <reference target="fbfriends" name="list"/>
- </component>
- <component t:x="234" t:y="25" name="fbfriend" t:color="yellow1">
- <t:implementation.python script="item.py"/>
- <service name="item"/>
- <property name="property"/>
- </component>
- <component t:x="233" t:y="97" name="fbfriends" t:title="facebook friends" t:color="blue1">
- <t:implementation.python script="fbfriends.py"/>
- <service name="fbfriends"/>
- <reference target="find" name="id"/>
- </component>
- <component t:x="352" t:y="96" name="find" t:title="find by name" t:color="yellow1">
- <t:implementation.python script="find.py"/>
- <service name="find"/>
- <reference target="name" name="name"/>
- <reference target="params" name="assoc"/>
- </component>
- <component t:x="453" t:y="97" name="name" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>fbid</property>
- </component>
- <component t:x="453" t:y="138" name="params" t:title="?params" t:color="green1">
- <t:implementation.python script="params.py"/>
- <service name="params"/>
- <property>fbid=1234567</property>
- </component>
- <component t:x="235" t:y="67" name="lesser" t:title="lt" t:color="magenta1">
- <t:implementation.python script="lesser.py"/>
- <service name="lesser"/>
- <reference target="subtract" name="value1"/>
- <reference target="mile" name="value2"/>
- </component>
- <component t:x="274" t:y="97" name="mile" t:title="number" t:color="orange1">
- <t:implementation.python script="number.py"/>
- <service name="number"/>
- <property>1</property>
- </component>
- <component t:x="274" t:y="67" name="subtract" t:title="-" t:color="magenta1">
- <t:implementation.python script="subtract.py"/>
- <service name="subtract">
- <documentation>-</documentation>
- </service>
- <reference target="location" name="value1"/>
- <reference target="location2" name="value2"/>
- </component>
- <component t:x="316" t:y="68" name="location" t:title="location" t:color="red1">
- <t:implementation.python script="location.py"/>
- <service name="location"/>
- <reference target="find2" name="user"/>
- </component>
- <component t:x="316" t:y="122" name="location2" t:title="location" t:color="red1">
- <t:implementation.python script="location.py"/>
- <service name="location"/>
- <reference target="user2" name="user"/>
- </component>
- <component t:x="386" t:y="118" name="user2" t:title="user" t:color="green1">
- <t:implementation.python script="user.py"/>
- <service name="user"/>
- <property name="user"/>
- </component>
- <component t:x="386" t:y="69" name="find2" t:title="find by name" t:color="yellow1">
- <t:implementation.python script="find.py"/>
- <service name="find"/>
- <reference target="name2" name="name"/>
- <reference target="fbfriend" name="assoc"/>
- </component>
- <component t:x="484" t:y="68" name="name2" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
- <service name="name"/>
- <property>id</property>
- </component>
+ <service name="every" promote="every"/>
+ <component t:x="0" t:y="25" name="every" t:title="every n secs" t:color="green1">
+ <t:implementation.python script="every.py"/>
+ <service name="every" t:visible="false"/>
+ <property>60</property>
+ <reference target="gtalksend" name="content"/>
+ </component>
+ <component t:x="100" t:y="25" name="gtalksend" t:title="send gtalk" t:color="blue1">
+ <t:implementation.python script="gtalksend.py"/>
+ <service name="gtalksend"/>
+ <reference target="filter" name="jid"/>
+ <reference target="user" name="to"/>
+ <reference target="text" name="msg"/>
+ </component>
+ <component t:x="184" t:y="54" name="user" t:title="user" t:color="green1">
+ <t:implementation.python script="user.py"/>
+ <service name="user"/>
+ <property name="user"/>
+ </component>
+ <component t:x="183" t:y="97" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="text.py"/>
+ <service name="text"/>
+ <property>Hey I'm here!</property>
+ </component>
+ <component t:x="184" t:y="24" name="filter" t:title="filter" t:color="yellow1">
+ <t:implementation.python script="filter_.py"/>
+ <service name="filter"/>
+ <reference target="fbfriend" name="item"/>
+ <reference target="lesser" name="condition"/>
+ <reference target="fbfriends" name="list"/>
+ </component>
+ <component t:x="234" t:y="25" name="fbfriend" t:color="yellow1">
+ <t:implementation.python script="item.py"/>
+ <service name="item"/>
+ <property name="property"/>
+ </component>
+ <component t:x="233" t:y="97" name="fbfriends" t:title="facebook friends" t:color="blue1">
+ <t:implementation.python script="fbfriends.py"/>
+ <service name="fbfriends"/>
+ <reference target="find" name="id"/>
+ </component>
+ <component t:x="352" t:y="96" name="find" t:title="find by name" t:color="yellow1">
+ <t:implementation.python script="find.py"/>
+ <service name="find"/>
+ <reference target="name" name="name"/>
+ <reference target="params" name="assoc"/>
+ </component>
+ <component t:x="453" t:y="97" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>fbid</property>
+ </component>
+ <component t:x="453" t:y="138" name="params" t:title="?params" t:color="green1">
+ <t:implementation.python script="params.py"/>
+ <service name="params"/>
+ <property>fbid=1234567</property>
+ </component>
+ <component t:x="235" t:y="67" name="lesser" t:title="lt" t:color="magenta1">
+ <t:implementation.python script="lesser.py"/>
+ <service name="lesser"/>
+ <reference target="subtract" name="value1"/>
+ <reference target="mile" name="value2"/>
+ </component>
+ <component t:x="274" t:y="97" name="mile" t:title="number" t:color="orange1">
+ <t:implementation.python script="number.py"/>
+ <service name="number"/>
+ <property>1</property>
+ </component>
+ <component t:x="274" t:y="67" name="subtract" t:title="-" t:color="magenta1">
+ <t:implementation.python script="subtract.py"/>
+ <service name="subtract">
+ <documentation>-</documentation>
+ </service>
+ <reference target="location" name="value1"/>
+ <reference target="location2" name="value2"/>
+ </component>
+ <component t:x="316" t:y="68" name="location" t:title="location" t:color="red1">
+ <t:implementation.python script="location.py"/>
+ <service name="location"/>
+ <reference target="find2" name="user"/>
+ </component>
+ <component t:x="316" t:y="122" name="location2" t:title="location" t:color="red1">
+ <t:implementation.python script="location.py"/>
+ <service name="location"/>
+ <reference target="user2" name="user"/>
+ </component>
+ <component t:x="386" t:y="118" name="user2" t:title="user" t:color="green1">
+ <t:implementation.python script="user.py"/>
+ <service name="user"/>
+ <property name="user"/>
+ </component>
+ <component t:x="386" t:y="69" name="find2" t:title="find by name" t:color="yellow1">
+ <t:implementation.python script="find.py"/>
+ <service name="find"/>
+ <reference target="name2" name="name"/>
+ <reference target="fbfriend" name="assoc"/>
+ </component>
+ <component t:x="484" t:y="68" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="name.py"/>
+ <service name="name"/>
+ <property>id</property>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/nearme2/app.html b/sca-cpp/trunk/modules/edit/apps/nearme2/app.html
new file mode 100644
index 0000000000..5c7c7219bb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/nearme2/app.html
@@ -0,0 +1,20 @@
+<?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"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/store/app.composite b/sca-cpp/trunk/modules/edit/apps/store/app.composite
index 6f4bb9f43c..0c676c19b9 100644
--- a/sca-cpp/trunk/modules/edit/apps/store/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/store/app.composite
@@ -17,54 +17,44 @@
* specific language governing permissions and limitations
* under the License.
-->
-<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
- xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1"
- targetNamespace="http://store"
- name="store">
-
- <service name="Store" promote="Store"/>
- <service name="ShoppingCart" promote="ShoppingCart"/>
-
- <component name="Store" t:color="green1">
- <t:implementation.python script="store.py"/>
- <service name="Widget">
- <t:binding.http uri="store"/>
- </service>
- <reference name="catalog" target="Catalog"/>
- <reference name="shoppingCart" target="ShoppingCart"/>
- <reference name="shoppingTotal" target="ShoppingCart"/>
- </component>
-
- <component name="Catalog" t:color="yellow1">
- <t:implementation.python script="fruits-catalog.py"/>
- <property name="currencyCode">USD</property>
- <service name="Catalog">
- <t:binding.jsonrpc uri="catalog"/>
- </service>
- <reference name="currencyConverter" target="CurrencyConverter"/>
- </component>
-
- <component name="ShoppingCart" t:color="magenta1">
- <t:implementation.python script="shopping-cart.py"/>
- <service name="ShoppingCart">
- <t:binding.http uri="shoppingCart"/>
- </service>
- <reference name="cache" target="Cache"/>
- </component>
-
- <component name="CurrencyConverter" t:color="blue1">
- <t:implementation.python script="currency-converter.py"/>
- <service name="CurrencyConverter">
- <t:binding.jsonrpc uri="currencyConverter"/>
- </service>
- </component>
-
- <component name="Cache" t:color="orange1">
- <implementation.cpp path="../../components/cache" library="libmemcache"/>
- <service name="Cache">
- <t:binding.atom uri="cache"/>
- </service>
- <property name="servers">localhost:11211</property>
- </component>
-
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://store" name="store">
+ <service name="Store" promote="Store"/>
+ <service name="ShoppingCart" promote="ShoppingCart"/>
+ <component name="Store" t:color="green1">
+ <t:implementation.python script="store.py"/>
+ <service name="Widget">
+ <t:binding.http uri="store"/>
+ </service>
+ <reference name="catalog" target="Catalog"/>
+ <reference name="shoppingCart" target="ShoppingCart"/>
+ <reference name="shoppingTotal" target="ShoppingCart"/>
+ </component>
+ <component name="Catalog" t:color="yellow1">
+ <t:implementation.python script="fruits-catalog.py"/>
+ <property>USD</property>
+ <service name="Catalog">
+ <t:binding.jsonrpc uri="catalog"/>
+ </service>
+ <reference name="currencyConverter" target="CurrencyConverter"/>
+ </component>
+ <component name="ShoppingCart" t:color="magenta1">
+ <t:implementation.python script="shopping-cart.py"/>
+ <service name="ShoppingCart">
+ <t:binding.http uri="shoppingCart"/>
+ </service>
+ <reference name="cache" target="Cache"/>
+ </component>
+ <component name="CurrencyConverter" t:color="blue1">
+ <t:implementation.python script="currency-converter.py"/>
+ <service name="CurrencyConverter">
+ <t:binding.jsonrpc uri="currencyConverter"/>
+ </service>
+ </component>
+ <component name="Cache" t:color="orange1">
+ <implementation.cpp path="../../components/cache" library="libmemcache"/>
+ <service name="Cache">
+ <t:binding.atom uri="cache"/>
+ </service>
+ <property>localhost:11211</property>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/store/app.html b/sca-cpp/trunk/modules/edit/apps/store/app.html
index 3a57127751..593d0a6648 100644
--- a/sca-cpp/trunk/modules/edit/apps/store/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/store/app.html
@@ -1,32 +1,47 @@
+<?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.
+ * 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="storeh1" class="h1" style="position:absolute; left: 0px; top: 0px"><h1>Store</h1></span>
-<span id="catalogh2" class="h2" style="position:absolute; left: 0px; top: 40px"><h2>Catalog</h2></span>
-<span id="addToCart" class="button" style="position:absolute; left: 0px; top: 160px"><input type="button" value="Add to Cart"/></span>
-
-<span id="carth2" class="h2" style="position:absolute; left: 0px; top: 200px"><h2>Your Shopping Cart</h2></span>
-<span id="total" class="text" style="position:absolute; left: 0px; top: 300px"><span>total</span></span>
-
-<span id="checkout" class="button" style="position:absolute; left: 0px; top: 340px"><input type="button" value="Checkout"/></span>
-<span id="empty" class="button" style="position:absolute; left: 120px; top: 340px"><input type="button" value="Empty"/></span>
-<span id="feed" class="link" style="position:absolute; left: 240px; top: 340px"><a href="shoppingCart/"><span>(feed)</span></a></span>
-
-</div>
+<DIV id="page">
+ <SPAN id="storeh1" class="h1" style="position: absolute; top: 0px; left: 0px; ">
+ <H1>Store</H1>
+ </SPAN>
+ <SPAN id="catalogh2" class="h2" style="position: absolute; top: 40px; left: 0px; ">
+ <H2>Catalog</H2>
+ </SPAN>
+ <SPAN id="addToCart" class="button" style="position: absolute; top: 160px; left: 0px; ">
+ <INPUT type="button" value="Add to Cart"/>
+ </SPAN>
+ <SPAN id="carth2" class="h2" style="position: absolute; top: 200px; left: 0px; ">
+ <H2>Your Shopping Cart</H2>
+ </SPAN>
+ <SPAN id="total" class="text" style="position: absolute; top: 300px; left: 0px; ">
+ <SPAN>total</SPAN>
+ </SPAN>
+ <SPAN id="checkout" class="button" style="position: absolute; top: 340px; left: 0px; ">
+ <INPUT type="button" value="Checkout"/>
+ </SPAN>
+ <SPAN id="empty" class="button" style="position: absolute; top: 340px; left: 120px; ">
+ <INPUT type="button" value="Empty"/>
+ </SPAN>
+ <SPAN id="feed" class="link" style="position: absolute; top: 340px; left: 240px; ">
+ <A href="shoppingCart/">
+ <SPAN>(feed)</SPAN>
+ </A>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/store2/app.composite b/sca-cpp/trunk/modules/edit/apps/store2/app.composite
index 4a549b37c1..b75877c67f 100644
--- a/sca-cpp/trunk/modules/edit/apps/store2/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/store2/app.composite
@@ -17,54 +17,44 @@
* specific language governing permissions and limitations
* under the License.
-->
-<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
- xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1"
- targetNamespace="http://store"
- name="store">
-
- <service name="Store" promote="Store"/>
- <service name="ShoppingCart" promote="ShoppingCart"/>
-
- <component name="Store" t:color="green1">
- <t:implementation.python script="store.py"/>
- <service name="Widget">
- <t:binding.http uri="store"/>
- </service>
- <reference name="catalog" target="Catalog" t:align="bottom"/>
- <reference name="shoppingCart" target="ShoppingCart"/>
- <reference name="shoppingTotal" target="ShoppingCart"/>
- </component>
-
- <component name="Catalog" t:color="yellow1">
- <t:implementation.python script="fruits-catalog.py"/>
- <property name="currencyCode">USD</property>
- <service name="Catalog" t:align="top">
- <t:binding.jsonrpc uri="catalog"/>
- </service>
- <reference name="currencyConverter" t:align="bottom" target="CurrencyConverter"/>
- </component>
-
- <component name="ShoppingCart" t:color="magenta1">
- <t:implementation.python script="shopping-cart.py"/>
- <service name="ShoppingCart">
- <t:binding.http uri="shoppingCart"/>
- </service>
- <reference name="cache" target="Cache"/>
- </component>
-
- <component name="CurrencyConverter" t:color="blue1">
- <t:implementation.python script="currency-converter.py"/>
- <service name="CurrencyConverter" t:align="top">
- <t:binding.jsonrpc uri="currencyConverter"/>
- </service>
- </component>
-
- <component name="Cache" t:color="orange1">
- <implementation.cpp path="../../components/cache" library="libmemcache"/>
- <service name="Cache">
- <t:binding.atom uri="cache"/>
- </service>
- <property name="servers">localhost:11211</property>
- </component>
-
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://store" name="store">
+ <service name="Store" promote="Store"/>
+ <service name="ShoppingCart" promote="ShoppingCart"/>
+ <component name="Store" t:color="green1">
+ <t:implementation.python script="store.py"/>
+ <service name="Widget">
+ <t:binding.http uri="store"/>
+ </service>
+ <reference name="catalog" target="Catalog" t:align="bottom"/>
+ <reference name="shoppingCart" target="ShoppingCart"/>
+ <reference name="shoppingTotal" target="ShoppingCart"/>
+ </component>
+ <component name="Catalog" t:color="yellow1">
+ <t:implementation.python script="fruits-catalog.py"/>
+ <property>USD</property>
+ <service name="Catalog" t:align="top">
+ <t:binding.jsonrpc uri="catalog"/>
+ </service>
+ <reference name="currencyConverter" t:align="bottom" target="CurrencyConverter"/>
+ </component>
+ <component name="ShoppingCart" t:color="magenta1">
+ <t:implementation.python script="shopping-cart.py"/>
+ <service name="ShoppingCart">
+ <t:binding.http uri="shoppingCart"/>
+ </service>
+ <reference name="cache" target="Cache"/>
+ </component>
+ <component name="CurrencyConverter" t:color="blue1">
+ <t:implementation.python script="currency-converter.py"/>
+ <service name="CurrencyConverter" t:align="top">
+ <t:binding.jsonrpc uri="currencyConverter"/>
+ </service>
+ </component>
+ <component name="Cache" t:color="orange1">
+ <implementation.cpp path="../../components/cache" library="libmemcache"/>
+ <service name="Cache">
+ <t:binding.atom uri="cache"/>
+ </service>
+ <property>localhost:11211</property>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/store2/app.html b/sca-cpp/trunk/modules/edit/apps/store2/app.html
index 3a57127751..593d0a6648 100644
--- a/sca-cpp/trunk/modules/edit/apps/store2/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/store2/app.html
@@ -1,32 +1,47 @@
+<?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.
+ * 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="storeh1" class="h1" style="position:absolute; left: 0px; top: 0px"><h1>Store</h1></span>
-<span id="catalogh2" class="h2" style="position:absolute; left: 0px; top: 40px"><h2>Catalog</h2></span>
-<span id="addToCart" class="button" style="position:absolute; left: 0px; top: 160px"><input type="button" value="Add to Cart"/></span>
-
-<span id="carth2" class="h2" style="position:absolute; left: 0px; top: 200px"><h2>Your Shopping Cart</h2></span>
-<span id="total" class="text" style="position:absolute; left: 0px; top: 300px"><span>total</span></span>
-
-<span id="checkout" class="button" style="position:absolute; left: 0px; top: 340px"><input type="button" value="Checkout"/></span>
-<span id="empty" class="button" style="position:absolute; left: 120px; top: 340px"><input type="button" value="Empty"/></span>
-<span id="feed" class="link" style="position:absolute; left: 240px; top: 340px"><a href="shoppingCart/"><span>(feed)</span></a></span>
-
-</div>
+<DIV id="page">
+ <SPAN id="storeh1" class="h1" style="position: absolute; top: 0px; left: 0px; ">
+ <H1>Store</H1>
+ </SPAN>
+ <SPAN id="catalogh2" class="h2" style="position: absolute; top: 40px; left: 0px; ">
+ <H2>Catalog</H2>
+ </SPAN>
+ <SPAN id="addToCart" class="button" style="position: absolute; top: 160px; left: 0px; ">
+ <INPUT type="button" value="Add to Cart"/>
+ </SPAN>
+ <SPAN id="carth2" class="h2" style="position: absolute; top: 200px; left: 0px; ">
+ <H2>Your Shopping Cart</H2>
+ </SPAN>
+ <SPAN id="total" class="text" style="position: absolute; top: 300px; left: 0px; ">
+ <SPAN>total</SPAN>
+ </SPAN>
+ <SPAN id="checkout" class="button" style="position: absolute; top: 340px; left: 0px; ">
+ <INPUT type="button" value="Checkout"/>
+ </SPAN>
+ <SPAN id="empty" class="button" style="position: absolute; top: 340px; left: 120px; ">
+ <INPUT type="button" value="Empty"/>
+ </SPAN>
+ <SPAN id="feed" class="link" style="position: absolute; top: 340px; left: 240px; ">
+ <A href="shoppingCart/">
+ <SPAN>(feed)</SPAN>
+ </A>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/store3/app.composite b/sca-cpp/trunk/modules/edit/apps/store3/app.composite
index 9ec440435e..735052fe03 100644
--- a/sca-cpp/trunk/modules/edit/apps/store3/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/store3/app.composite
@@ -17,54 +17,44 @@
* specific language governing permissions and limitations
* under the License.
-->
-<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
- xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1"
- targetNamespace="http://store"
- name="store">
-
- <service name="Store" promote="Store"/>
- <service name="ShoppingCart" promote="ShoppingCart"/>
-
- <component name="Store" t:color="green1">
- <t:implementation.python script="store.py"/>
- <service name="Widget">
- <t:binding.http uri="store"/>
- </service>
- <reference name="catalog" target="Catalog"/>
- <reference name="shoppingCart" target="ShoppingCart"/>
- <reference name="shoppingTotal" target="ShoppingCart"/>
- </component>
-
- <component name="Catalog" t:color="yellow1">
- <t:implementation.python script="fruits-catalog.py"/>
- <property name="currencyCode">USD</property>
- <service name="Catalog">
- <t:binding.jsonrpc uri="catalog"/>
- </service>
- <reference name="currencyConverter" t:align="bottom" target="CurrencyConverter"/>
- </component>
-
- <component name="ShoppingCart" t:color="magenta1">
- <t:implementation.python script="shopping-cart.py"/>
- <service name="ShoppingCart">
- <t:binding.http uri="shoppingCart"/>
- </service>
- <reference name="cache" target="Cache"/>
- </component>
-
- <component name="CurrencyConverter" t:color="blue1">
- <t:implementation.python script="currency-converter.py"/>
- <service name="CurrencyConverter" t:align="top">
- <t:binding.jsonrpc uri="currencyConverter"/>
- </service>
- </component>
-
- <component name="Cache" t:color="orange1">
- <implementation.cpp path="../../components/cache" library="libmemcache"/>
- <service name="Cache">
- <t:binding.atom uri="cache"/>
- </service>
- <property name="servers">localhost:11211</property>
- </component>
-
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://store" name="store">
+ <service name="Store" promote="Store"/>
+ <service name="ShoppingCart" promote="ShoppingCart"/>
+ <component name="Store" t:color="green1">
+ <t:implementation.python script="store.py"/>
+ <service name="Widget">
+ <t:binding.http uri="store"/>
+ </service>
+ <reference name="catalog" target="Catalog"/>
+ <reference name="shoppingCart" target="ShoppingCart"/>
+ <reference name="shoppingTotal" target="ShoppingCart"/>
+ </component>
+ <component name="Catalog" t:color="yellow1">
+ <t:implementation.python script="fruits-catalog.py"/>
+ <property>USD</property>
+ <service name="Catalog">
+ <t:binding.jsonrpc uri="catalog"/>
+ </service>
+ <reference name="currencyConverter" t:align="bottom" target="CurrencyConverter"/>
+ </component>
+ <component name="ShoppingCart" t:color="magenta1">
+ <t:implementation.python script="shopping-cart.py"/>
+ <service name="ShoppingCart">
+ <t:binding.http uri="shoppingCart"/>
+ </service>
+ <reference name="cache" target="Cache"/>
+ </component>
+ <component name="CurrencyConverter" t:color="blue1">
+ <t:implementation.python script="currency-converter.py"/>
+ <service name="CurrencyConverter" t:align="top">
+ <t:binding.jsonrpc uri="currencyConverter"/>
+ </service>
+ </component>
+ <component name="Cache" t:color="orange1">
+ <implementation.cpp path="../../components/cache" library="libmemcache"/>
+ <service name="Cache">
+ <t:binding.atom uri="cache"/>
+ </service>
+ <property>localhost:11211</property>
+ </component>
</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/store3/app.html b/sca-cpp/trunk/modules/edit/apps/store3/app.html
index 3a57127751..593d0a6648 100644
--- a/sca-cpp/trunk/modules/edit/apps/store3/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/store3/app.html
@@ -1,32 +1,47 @@
+<?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.
+ * 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="storeh1" class="h1" style="position:absolute; left: 0px; top: 0px"><h1>Store</h1></span>
-<span id="catalogh2" class="h2" style="position:absolute; left: 0px; top: 40px"><h2>Catalog</h2></span>
-<span id="addToCart" class="button" style="position:absolute; left: 0px; top: 160px"><input type="button" value="Add to Cart"/></span>
-
-<span id="carth2" class="h2" style="position:absolute; left: 0px; top: 200px"><h2>Your Shopping Cart</h2></span>
-<span id="total" class="text" style="position:absolute; left: 0px; top: 300px"><span>total</span></span>
-
-<span id="checkout" class="button" style="position:absolute; left: 0px; top: 340px"><input type="button" value="Checkout"/></span>
-<span id="empty" class="button" style="position:absolute; left: 120px; top: 340px"><input type="button" value="Empty"/></span>
-<span id="feed" class="link" style="position:absolute; left: 240px; top: 340px"><a href="shoppingCart/"><span>(feed)</span></a></span>
-
-</div>
+<DIV id="page">
+ <SPAN id="storeh1" class="h1" style="position: absolute; top: 0px; left: 0px; ">
+ <H1>Store</H1>
+ </SPAN>
+ <SPAN id="catalogh2" class="h2" style="position: absolute; top: 40px; left: 0px; ">
+ <H2>Catalog</H2>
+ </SPAN>
+ <SPAN id="addToCart" class="button" style="position: absolute; top: 160px; left: 0px; ">
+ <INPUT type="button" value="Add to Cart"/>
+ </SPAN>
+ <SPAN id="carth2" class="h2" style="position: absolute; top: 200px; left: 0px; ">
+ <H2>Your Shopping Cart</H2>
+ </SPAN>
+ <SPAN id="total" class="text" style="position: absolute; top: 300px; left: 0px; ">
+ <SPAN>total</SPAN>
+ </SPAN>
+ <SPAN id="checkout" class="button" style="position: absolute; top: 340px; left: 0px; ">
+ <INPUT type="button" value="Checkout"/>
+ </SPAN>
+ <SPAN id="empty" class="button" style="position: absolute; top: 340px; left: 120px; ">
+ <INPUT type="button" value="Empty"/>
+ </SPAN>
+ <SPAN id="feed" class="link" style="position: absolute; top: 340px; left: 240px; ">
+ <A href="shoppingCart/">
+ <SPAN>(feed)</SPAN>
+ </A>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/modules/edit/apps/test/app.composite b/sca-cpp/trunk/modules/edit/apps/test/app.composite
new file mode 100644
index 0000000000..337694ceb9
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/test/app.composite
@@ -0,0 +1,20 @@
+<?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" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://test" name="test"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/test/app.html b/sca-cpp/trunk/modules/edit/apps/test/app.html
new file mode 100644
index 0000000000..5c7c7219bb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/test/app.html
@@ -0,0 +1,20 @@
+<?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"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/testlogic/app.composite b/sca-cpp/trunk/modules/edit/apps/testlogic/app.composite
new file mode 100644
index 0000000000..242a49c013
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testlogic/app.composite
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testlogic" name="testlogic">
+ <service name="if" promote="if"/>
+ <component t:x="34" t:y="24" name="if" t:title="if" t:color="magenta1">
+ <t: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 t:x="123" t:y="21" name="item" t:title="item" t:color="yellow1">
+ <t:implementation.python script="nuvem/item.py"/>
+ <service name="item"/>
+ <property>item</property>
+ </component>
+ <component t:x="75" t:y="24" name="greater" t:title="gt" t:color="magenta1">
+ <t:implementation.python script="nuvem/greater.py"/>
+ <service name="greater"/>
+ <reference target="item" name="value1"/>
+ <reference target="number" name="value2"/>
+ </component>
+ <component t:x="118" t:y="66" name="number" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>5</property>
+ </component>
+ <component t:x="78" t:y="118" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>greater than 5</property>
+ </component>
+ <component t:x="76" t:y="162" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>not greater than 5</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testlogic/app.html b/sca-cpp/trunk/modules/edit/apps/testlogic/app.html
new file mode 100644
index 0000000000..5c7c7219bb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testlogic/app.html
@@ -0,0 +1,20 @@
+<?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"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/testsocial/app.composite b/sca-cpp/trunk/modules/edit/apps/testsocial/app.composite
new file mode 100644
index 0000000000..17188aae1e
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testsocial/app.composite
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testsocial" name="testsocial">
+ <component t:x="317" t:y="44" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>100001053301307</property>
+ </component>
+ <component t:x="166" t:y="52" name="fbprofile" t:title="facebook profile" t:color="blue1">
+ <t:implementation.python script="nuvem/fbprofile.py"/>
+ <service name="fbprofile"/>
+ <reference target="text" name="id"/>
+ <reference name="fb" t:visible="false">
+ <t:binding.http uri="https://graph.facebook.com"/>
+ </reference>
+ </component>
+ <component t:x="111" t:y="18" name="assoc" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name" name="name"/>
+ <reference target="fbprofile" name="value"/>
+ </component>
+ <component t:x="187" t:y="155" name="assoc2" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name2" name="name"/>
+ <reference target="twprofile" name="value"/>
+ </component>
+ <component t:x="169" t:y="17" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>facebook</property>
+ </component>
+ <component t:x="68" t:y="350" name="list" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc" name="first"/>
+ <reference target="list2" name="rest"/>
+ </component>
+ <component t:x="66" t:y="14" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>me360</property>
+ </component>
+ <component t:x="131" t:y="12" name="me360" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name3" name="name"/>
+ <reference target="list" name="value"/>
+ </component>
+ <service name="page" promote="page"/>
+ <component t:x="0" t:y="12" name="page" t:title="when page opened" t:color="green1">
+ <t:implementation.python script="nuvem/page.py"/>
+ <service name="page" t:visible="false">
+ <t:binding.http uri="index.html"/>
+ </service>
+ <reference target="me360" name="content"/>
+ </component>
+ <component t:x="269" t:y="163" name="list2" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc2" name="first"/>
+ <reference name="rest"/>
+ </component>
+ <component t:x="404" t:y="162" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>twitter</property>
+ </component>
+ <component t:x="505" t:y="204" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>jsdelfino</property>
+ </component>
+ <component t:x="410" t:y="205" name="twprofile" t:title="twitter profile" t:color="blue1">
+ <t:implementation.python script="nuvem/twprofile.py"/>
+ <service name="twprofile"/>
+ <reference target="text3" name="id"/>
+ <reference name="tw" t:visible="false">
+ <t:binding.http uri="http://api.twitter.com/1/users/show.json"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testsocial/app.html b/sca-cpp/trunk/modules/edit/apps/testsocial/app.html
new file mode 100644
index 0000000000..5c7c7219bb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testsocial/app.html
@@ -0,0 +1,20 @@
+<?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"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/testtext/app.composite b/sca-cpp/trunk/modules/edit/apps/testtext/app.composite
new file mode 100644
index 0000000000..8309ca0018
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testtext/app.composite
@@ -0,0 +1,134 @@
+<?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" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testtext" name="testtext">
+ <service name="contains" promote="contains"/>
+ <component t:x="34" t:y="14" name="contains" t:title="contains" t:color="magenta1">
+ <t:implementation.python script="nuvem/contains.py"/>
+ <service name="contains"/>
+ <reference target="text10" name="search"/>
+ <reference target="text9" name="string"/>
+ </component>
+ <service name="split" promote="split"/>
+ <component t:x="36" t:y="152" name="split" t:title="split" t:color="magenta1">
+ <t:implementation.python script="nuvem/split.py"/>
+ <service name="split"/>
+ <reference target="text11" name="separator"/>
+ <reference target="text12" name="string"/>
+ </component>
+ <service name="join" promote="join"/>
+ <component t:x="543" t:y="20" name="join" t:title="join" t:color="magenta1">
+ <t:implementation.python script="nuvem/join.py"/>
+ <service name="join"/>
+ <reference target="text6" name="separator"/>
+ <reference target="list" name="list"/>
+ </component>
+ <service name="replace" promote="replace"/>
+ <component t:x="310" t:y="21" name="replace" t:title="replace" t:color="magenta1">
+ <t: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>
+ <service name="lowercase" promote="lowercase"/>
+ <component t:x="305" t:y="307" name="lowercase" t:title="lowercase" t:color="magenta1">
+ <t:implementation.python script="nuvem/lowercase.py"/>
+ <service name="lowercase"/>
+ <reference target="text2" name="string"/>
+ </component>
+ <service name="uppercase" promote="uppercase"/>
+ <component t:x="306" t:y="222" name="uppercase" t:title="uppercase" t:color="magenta1">
+ <t:implementation.python script="nuvem/uppercase.py"/>
+ <service name="uppercase"/>
+ <reference target="text" name="string"/>
+ </component>
+ <component t:x="391" t:y="223" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abc</property>
+ </component>
+ <component t:x="391" t:y="150" name="text2" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>ABC</property>
+ </component>
+ <component t:x="376" t:y="81" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abcxdefxghi</property>
+ </component>
+ <component t:x="377" t:y="20" name="text4" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>x</property>
+ </component>
+ <component t:x="376" t:y="63" name="text5" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>y</property>
+ </component>
+ <component t:x="88" t:y="256" name="list" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text7" name="first"/>
+ <reference target="list2" name="rest"/>
+ </component>
+ <component t:x="165" t:y="288" name="list2" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="text8" name="first"/>
+ <reference name="rest"/>
+ </component>
+ <component t:x="165" t:y="262" name="text7" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abc</property>
+ </component>
+ <component t:x="244" t:y="302" name="text8" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>def</property>
+ </component>
+ <component t:x="107" t:y="56" name="text9" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abcdef</property>
+ </component>
+ <component t:x="107" t:y="14" name="text10" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>cd</property>
+ </component>
+ <component t:x="587" t:y="20" name="text6" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>x</property>
+ </component>
+ <component t:x="85" t:y="156" name="text11" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>x</property>
+ </component>
+ <component t:x="89" t:y="193" name="text12" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abcxdefxghi</property>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testtext/app.html b/sca-cpp/trunk/modules/edit/apps/testtext/app.html
new file mode 100644
index 0000000000..5c7c7219bb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testtext/app.html
@@ -0,0 +1,20 @@
+<?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"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/testurl/app.composite b/sca-cpp/trunk/modules/edit/apps/testurl/app.composite
new file mode 100644
index 0000000000..e1998e1f46
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testurl/app.composite
@@ -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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testurl" name="testurl">
+ <service name="host" promote="host"/>
+ <component t:x="29" t:y="14" name="host" t:title="host" t:color="green1">
+ <t:implementation.python script="nuvem/host.py"/>
+ <service name="host"/>
+ <property name="host"/>
+ </component>
+ <service name="path" promote="path"/>
+ <component t:x="29" t:y="80" name="path" t:title="path" t:color="green1">
+ <t:implementation.python script="nuvem/path.py"/>
+ <service name="path"/>
+ <property name="path"/>
+ </component>
+ <service name="params" promote="params"/>
+ <component t:x="28" t:y="141" name="params" t:title="?params" t:color="green1">
+ <t:implementation.python script="nuvem/params.py"/>
+ <service name="params"/>
+ <property name="params"/>
+ </component>
+ <service name="user" promote="user"/>
+ <component t:x="25" t:y="205" name="user" t:title="user" t:color="green1">
+ <t:implementation.python script="nuvem/user.py"/>
+ <service name="user"/>
+ <property name="user"/>
+ </component>
+ <service name="realm" promote="realm"/>
+ <component t:x="22" t:y="265" name="realm" t:title="realm" t:color="green1">
+ <t:implementation.python script="nuvem/realm.py"/>
+ <service name="realm"/>
+ <property name="realm"/>
+ </component>
+ <service name="email" promote="email"/>
+ <component t:x="26" t:y="328" name="email" t:title="email" t:color="green1">
+ <t:implementation.python script="nuvem/email.py"/>
+ <service name="email"/>
+ <property name="email"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testurl/app.html b/sca-cpp/trunk/modules/edit/apps/testurl/app.html
new file mode 100644
index 0000000000..5c7c7219bb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testurl/app.html
@@ -0,0 +1,20 @@
+<?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"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/testvalues/app.composite b/sca-cpp/trunk/modules/edit/apps/testvalues/app.composite
new file mode 100644
index 0000000000..2ee6ee8312
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testvalues/app.composite
@@ -0,0 +1,281 @@
+<?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" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://testvalues" name="testvalues">
+ <service name="text" promote="text"/>
+ <component t:x="7" t:y="14" name="text" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>xyz</property>
+ </component>
+ <service name="name" promote="name"/>
+ <component t:x="5" t:y="71" name="name" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>abc</property>
+ </component>
+ <service name="true" promote="true"/>
+ <component t:x="5" t:y="140" name="true" t:title="true" t:color="orange1">
+ <t:implementation.python script="nuvem/true_.py"/>
+ <service name="true"/>
+ </component>
+ <service name="false" promote="false"/>
+ <component t:x="6" t:y="205" name="false" t:title="false" t:color="orange1">
+ <t:implementation.python script="nuvem/false_.py"/>
+ <service name="false"/>
+ </component>
+ <service name="nothing" promote="nothing"/>
+ <component t:x="4" t:y="263" name="nothing" t:title="nothing" t:color="orange1">
+ <t:implementation.python script="nuvem/nothing.py"/>
+ <service name="nothing"/>
+ </component>
+ <component t:x="190" t:y="250" name="list" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="number2" name="first"/>
+ <reference target="list2" name="rest"/>
+ </component>
+ <component t:x="286" t:y="213" name="list2" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="number3" name="first"/>
+ <reference name="rest"/>
+ </component>
+ <component t:x="285" t:y="170" name="number2" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>123</property>
+ </component>
+ <component t:x="359" t:y="214" name="number3" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>456</property>
+ </component>
+ <service name="find" promote="find"/>
+ <component t:x="728" t:y="9" name="find" t:title="find by name" t:color="yellow1">
+ <t:implementation.python script="nuvem/find.py"/>
+ <service name="find"/>
+ <reference target="name3" name="name"/>
+ <reference target="list3" name="assoc"/>
+ </component>
+ <component t:x="283" t:y="351" name="name3" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>d</property>
+ </component>
+ <component t:x="281" t:y="390" name="list3" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc2" name="first"/>
+ <reference target="list4" name="rest"/>
+ </component>
+ <component t:x="360" t:y="392" name="assoc2" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name4" name="name"/>
+ <reference target="text3" name="value"/>
+ </component>
+ <component t:x="420" t:y="390" name="name4" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>a</property>
+ </component>
+ <component t:x="421" t:y="436" name="text3" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>abc</property>
+ </component>
+ <component t:x="358" t:y="487" name="list4" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="assoc3" name="first"/>
+ <reference name="rest"/>
+ </component>
+ <component t:x="433" t:y="485" name="assoc3" t:title="assoc" t:color="orange1">
+ <t:implementation.python script="nuvem/assoc.py"/>
+ <service name="assoc"/>
+ <reference target="name5" name="name"/>
+ <reference target="text4" name="value"/>
+ </component>
+ <component t:x="495" t:y="486" name="name5" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>d</property>
+ </component>
+ <component t:x="787" t:y="217" name="text4" t:title="text" t:color="orange1">
+ <t:implementation.python script="nuvem/text.py"/>
+ <service name="text"/>
+ <property>def</property>
+ </component>
+ <component t:x="433" t:y="37" name="range" t:title="range" t:color="yellow1">
+ <t:implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference target="number4" name="first"/>
+ <reference target="number5" name="last"/>
+ </component>
+ <component t:x="378" t:y="48" name="number4" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component t:x="378" t:y="90" name="number5" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>10</property>
+ </component>
+ <service name="first" promote="first"/>
+ <component t:x="93" t:y="10" name="first" t:title="first item" t:color="yellow1">
+ <t:implementation.python script="nuvem/first.py"/>
+ <service name="first"/>
+ <reference target="list" name="list"/>
+ </component>
+ <service name="rest" promote="rest"/>
+ <component t:x="408" t:y="6" name="rest" t:title="rest of list" t:color="yellow1">
+ <t:implementation.python script="nuvem/rest.py"/>
+ <service name="rest"/>
+ <reference target="list5" name="list"/>
+ </component>
+ <component t:x="210" t:y="210" name="list5" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="number" name="first"/>
+ <reference target="list6" name="rest"/>
+ </component>
+ <component t:x="286" t:y="251" name="list6" t:title="make list" t:color="yellow1">
+ <t:implementation.python script="nuvem/list_.py"/>
+ <service name="list"/>
+ <reference target="number7" name="first"/>
+ <reference name="rest"/>
+ </component>
+ <component t:x="284" t:y="207" name="number" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>12</property>
+ </component>
+ <component t:x="361" t:y="249" name="number7" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>34</property>
+ </component>
+ <service name="empty" promote="empty"/>
+ <component t:x="5" t:y="320" name="empty" t:title="empty list" t:color="yellow1">
+ <t:implementation.python script="nuvem/empty.py"/>
+ <service name="empty"/>
+ </component>
+ <service name="itemnb" promote="itemnb"/>
+ <component t:x="97" t:y="184" name="itemnb" t:title="item number" t:color="yellow1">
+ <t:implementation.python script="nuvem/itemnb.py"/>
+ <service name="itemnb"/>
+ <reference target="number8" name="index"/>
+ <reference target="foreach" name="list"/>
+ </component>
+ <component t:x="208" t:y="187" name="number8" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>3</property>
+ </component>
+ <component t:x="228" t:y="324" name="multiply" t:title="*" t:color="magenta1">
+ <t:implementation.python script="nuvem/multiply.py"/>
+ <service name="multiply">
+ <documentation>*</documentation>
+ </service>
+ <reference target="valueof" name="value1"/>
+ <reference target="number6" name="value2"/>
+ </component>
+ <component t:x="228" t:y="358" name="reverse" t:title="reverse" t:color="yellow1">
+ <t:implementation.python script="nuvem/reverse.py"/>
+ <service name="reverse"/>
+ <reference target="range" name="list"/>
+ </component>
+ <component t:x="225" t:y="293" name="name2" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>nb</property>
+ </component>
+ <service name="reduce" promote="reduce"/>
+ <component t:x="486" t:y="191" name="reduce" t:title="reduce" t:color="yellow1">
+ <t: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="range2" name="list"/>
+ </component>
+ <component t:x="449" t:y="259" name="name6" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>sum</property>
+ </component>
+ <component t:x="442" t:y="299" name="name7" t:title="name" t:color="orange1">
+ <t:implementation.python script="nuvem/name.py"/>
+ <service name="name"/>
+ <property>i</property>
+ </component>
+ <component t:x="444" t:y="341" name="add" t:title="+" t:color="magenta1">
+ <t:implementation.python script="nuvem/add.py"/>
+ <service name="add">
+ <documentation>+</documentation>
+ </service>
+ <reference target="valueof2" name="value1"/>
+ <reference target="valueof3" name="value2"/>
+ </component>
+ <component t:x="444" t:y="437" name="range2" t:title="range" t:color="yellow1">
+ <t:implementation.python script="nuvem/range_.py"/>
+ <service name="range"/>
+ <reference target="number9" name="first"/>
+ <reference target="number10" name="last"/>
+ </component>
+ <component t:x="498" t:y="437" name="number9" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>0</property>
+ </component>
+ <component t:x="547" t:y="403" name="number10" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>10</property>
+ </component>
+ <component t:x="226" t:y="373" name="number6" t:title="number" t:color="orange1">
+ <t:implementation.python script="nuvem/number.py"/>
+ <service name="number"/>
+ <property>2</property>
+ </component>
+ <component t:x="226" t:y="331" name="valueof" t:title="value of" t:color="orange1">
+ <t:implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>nb</property>
+ </component>
+ <component t:x="533" t:y="265" name="valueof2" t:title="value of" t:color="orange1">
+ <t:implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>sum</property>
+ </component>
+ <component t:x="533" t:y="307" name="valueof3" t:title="value of" t:color="orange1">
+ <t:implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property>i</property>
+ </component>
+ <component t:x="193" t:y="226" name="foreach" t:title="foreach" t:color="yellow1">
+ <t:implementation.python script="nuvem/map_.py"/>
+ <service name="foreach"/>
+ <reference target="name2" name="item"/>
+ <reference target="multiply" name="transform"/>
+ <reference target="reverse" name="list"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/testvalues/app.html b/sca-cpp/trunk/modules/edit/apps/testvalues/app.html
new file mode 100644
index 0000000000..5c7c7219bb
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/apps/testvalues/app.html
@@ -0,0 +1,20 @@
+<?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"/>
diff --git a/sca-cpp/trunk/modules/edit/apps/travel/app.composite b/sca-cpp/trunk/modules/edit/apps/travel/app.composite
index b4cef31135..40a260e0a9 100644
--- a/sca-cpp/trunk/modules/edit/apps/travel/app.composite
+++ b/sca-cpp/trunk/modules/edit/apps/travel/app.composite
@@ -1,240 +1,181 @@
-<?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"
- xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1"
- targetNamespace="http://tuscanyscatours.com/"
- name="travel">
-
- <service name="SCAToursUserInterface" promote="SCAToursUserInterface"/>
-
- <component name="SCAToursUserInterface" t:color="green1">
- <t:implementation.widget location="scatours.html"/>
- <service name="Widget">
- <t:binding.http uri="/scatours"/>
- </service>
- <reference name="scaToursCatalog" target="SCATours/SCAToursSearch" t:align="bottom">
- <t:binding.jsonrpc/>
- </reference>
- <!-- Comment out multiple references wired to the same target -->
- <!--
- <reference name="scaToursBooking" target="SCATours/SCAToursBooking">
- <t:binding.jsonrpc/>
- </reference>
- <reference name="scaToursCart" target="SCATours/SCAToursCart">
- <t:binding.jsonrpc/>
- </reference>
- -->
- </component>
-
- <component name="SCATours">
- <implementation.java class="com.tuscanyscatours.impl.SCAToursImpl"/>
- <service name="SCAToursSearch" t:align="top">
- <t:binding.jsonrpc/>
- </service>
- <!-- Comment out multiple services -->
- <!--
- <service name="SCAToursBooking">
- <t:binding.jsonrpc/>
- </service>
- <service name="SCAToursCart">
- <t:binding.jsonrpc/>
- </service>
- -->
- <reference name="travelCatalogSearch" target="TravelCatalog/TravelCatalogSearch"/>
- <reference name="tripBooking" target="TripBooking"/>
- <!-- Comment out multiple references wired to the same target -->
- <!--
- <reference name="cartInitialize" target="ShoppingCart/CartInitialize"/>
- -->
- <reference name="cartCheckout" target="ShoppingCart/CartCheckout"/>
- </component>
-
- <component name="CreditCardPayment">
- <implementation.java class="com.tuscanyscatours.payment.creditcard.impl.CreditCardPaymentImpl" />
- <service name="CreditCardPayment">
- <interface.wsdl interface="http://www.tuscanyscatours.com/CreditCardPayment/#wsdl.interface(CreditCardPayment)" />
- <binding.ws uri="http://localhost:8082/CreditCardPayment" requires="authentication"/>
- <binding.sca/>
- </service>
- </component>
-
- <component name="CurrencyConverter">
- <implementation.java class="com.tuscanyscatours.currencyconverter.impl.CurrencyConverterImpl" />
- <service name="CurrencyConverter"/>
- </component>
-
- <component name="HotelPartner" t:color="orange1">
- <implementation.java class="com.tuscanyscatours.hotel.impl.HotelImpl"/>
- <service name="Search">
- <binding.ws name="searchws" uri="http://localhost:8086/Hotel/Search"/>
- <!-- t:binding.jsonrpc name="searchjsonrpc"/-->
- <callback>
- <binding.ws/>
- </callback>
- </service>
- <service name="Book"/>
- </component>
-
- <component name="FlightPartner" t:color="orange1">
- <implementation.java class="com.tuscanyscatours.flight.impl.FlightImpl"/>
- <service name="Search">
- <interface.java interface="com.tuscanyscatours.common.Search"
- callbackInterface="com.tuscanyscatours.common.SearchCallback"/>
- <binding.ws name="searchws" uri="http://localhost:8086/Flight/Search"/>
- <t:binding.jsonrpc name="searchjsonrpc"/>
- <callback>
- <binding.ws/>
- </callback>
- </service>
- <service name="Book"/>
- </component>
-
- <component name="CarPartner" t:color="orange1">
- <implementation.java class="com.tuscanyscatours.car.impl.CarImpl"/>
- <service name="Search">
- <binding.ws name="searchws" uri="http://localhost:8086/Car/Search"/>
- <t:binding.jsonrpc name="searchjsonrpc"/>
- <callback>
- <binding.ws/>
- </callback>
- </service>
- <service name="Book"/>
- </component>
-
- <component name="TravelCatalog">
- <implementation.java class="com.tuscanyscatours.travelcatalog.impl.TravelCatalogImpl"/>
- <service name="TravelCatalogSearch"/>
- <!-- Wire to placeholder component representing external endpoint -->
- <reference name="hotelSearch" target="HotelSearch">
- <binding.ws uri="http://localhost:8086/Hotel/Search"/>
- <callback>
- <binding.ws name="callback"
- uri="http://localhost:8084/Hotel/SearchCallback"/>
- </callback>
- </reference>
- <!-- Wire to placeholder component representing external endpoint -->
- <reference name="flightSearch" target="FlightSearch">
- <interface.java interface="com.tuscanyscatours.common.Search"
- callbackInterface="com.tuscanyscatours.common.SearchCallback"/>
- <binding.ws uri="http://localhost:8086/Flight/Search"/>
- <callback>
- <binding.ws name="callback"
- uri="http://localhost:8084/Flight/SearchCallback"/>
- </callback>
- </reference>
- <!-- Wire to placeholder component representing external endpoint -->
- <reference name="carSearch" target="CarSearch">
- <binding.ws uri="http://localhost:8086/Car/Search"/>
- <callback>
- <binding.ws name="callback"
- uri="http://localhost:8084/Car/SearchCallback"/>
- </callback>
- </reference>
- <!-- Wire to placeholder component representing external endpoint -->
- <reference name="tripSearch" target="TripSearch">
- <binding.ws uri="http://localhost:8085/Trip/Search"/>
- <callback>
- <binding.ws name="callback"
- uri="http://localhost:8084/Trip/SearchCallback"/>
- </callback>
- </reference>
- <reference name="currencyConverter" target="CurrencyConverter">
- </reference>
- <property name="quoteCurrencyCode">GBP</property>
- </component>
-
- <component name="TripBooking">
- <implementation.java class="com.tuscanyscatours.tripbooking.impl.TripBookingImpl"/>
- <service name="TripBooking"/>
- <reference name="hotelBook" target="HotelPartner/Book"/>
- <reference name="flightBook" target="FlightPartner/Book"/>
- <reference name="carBook" target="CarPartner/Book"/>
- <reference name="tripBook" target="TripPartner/Book"/>
- <reference name="cartUpdates" target="ShoppingCart/CartUpdates"/>
- </component>
-
- <component name="TripPartner" t:color="orange1">
- <implementation.java class="com.tuscanyscatours.trip.impl.TripImpl"/>
- <service name="Search">
- <binding.ws name="searchws" uri="http://localhost:8085/Trip/Search"/>
- <t:binding.jsonrpc name="searchjsonrpc"/>
- <callback>
- <binding.ws/>
- </callback>
- </service>
- <service name="Book"/>
- </component>
-
- <component name="ShoppingCart">
- <implementation.java class="com.tuscanyscatours.shoppingcart.impl.ShoppingCartImpl"/>
- <reference name="cartStore" target="CartStore" t:align="bottom"/>
- <!-- Wire to placeholder component representing external endpoint -->
- <reference name="payment" target="Payment">
- <binding.ws uri="http://localhost:8081/Payment" />
- </reference>
- </component>
-
- <component name="CartStore" t:color="yellow1">
- <!-- Add service element to specify alignment -->
- <service name="CartStore" t:align="top"/>
- <implementation.java class="com.tuscanyscatours.shoppingcart.impl.CartStoreImpl"/>
- </component>
-
- <component name="Payment">
- <implementation.spring location="Payment-context.xml"/>
- <service name="Payment">
- <binding.ws uri="http://localhost:8081/Payment"/>
- </service>
- <!-- Wire to placeholder component representing external endpoint -->
- <reference name="creditCardPaymentReference" target="CreditCardPayment">
- <binding.ws uri="http://localhost:8082/CreditCardPayment" requires="authentication"/>
- </reference>
- <reference name="emailGateway" target="EmailGateway"/>
- <reference name="customerRegistry" target="CustomerRegistry"/>
- <property name="transactionFee">1.23</property>
- </component>
-
- <component name="CustomerRegistry">
- <implementation.java class="com.tuscanyscatours.customer.impl.CustomerRegistryImpl" />
- </component>
-
- <component name="EmailGateway">
- <implementation.java class="com.tuscanyscatours.emailgateway.impl.EmailGatewayImpl" />
- </component>
-
- <!-- Add placeholder components representing external endpoints -->
- <component name="HotelSearch" t:color="red1">
- <service name="HotelSearch"/>
- <implementation.java class="com.tuscanyscatours.PlaceHolderImpl" />
- </component>
- <component name="FlightSearch" t:color="red1">
- <service name="FlightSearch"/>
- <implementation.java class="com.tuscanyscatours.PlaceHolderImpl" />
- </component>
- <component name="CarSearch" t:color="red1">
- <service name="CarSearch"/>
- <implementation.java class="com.tuscanyscatours.PlaceHolderImpl" />
- </component>
- <component name="TripSearch" t:color="red1">
- <service name="TripSearch"/>
- <implementation.java class="com.tuscanyscatours.PlaceHolderImpl" />
- </component>
-
-</composite>
+<?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" xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://tuscanyscatours.com/" name="travel">
+ <service name="SCAToursUserInterface" promote="SCAToursUserInterface"/>
+ <component name="SCAToursUserInterface" t:color="green1">
+ <t:implementation.widget location="scatours.html"/>
+ <service name="Widget">
+ <t:binding.http uri="/scatours"/>
+ </service>
+ <reference name="scaToursCatalog" target="SCATours/SCAToursSearch" t:align="bottom">
+ <t:binding.jsonrpc></t:binding.jsonrpc>
+ </reference>
+ </component>
+ <component name="SCATours">
+ <implementation.java class="com.tuscanyscatours.impl.SCAToursImpl"/>
+ <service name="SCAToursSearch" t:align="top">
+ <t:binding.jsonrpc></t:binding.jsonrpc>
+ </service>
+ <reference name="travelCatalogSearch" target="TravelCatalog/TravelCatalogSearch"/>
+ <reference name="tripBooking" target="TripBooking"/>
+ <reference name="cartCheckout" target="ShoppingCart/CartCheckout"/>
+ </component>
+ <component name="CreditCardPayment">
+ <implementation.java class="com.tuscanyscatours.payment.creditcard.impl.CreditCardPaymentImpl"/>
+ <service name="CreditCardPayment">
+ <interface.wsdl interface="http://www.tuscanyscatours.com/CreditCardPayment/#wsdl.interface(CreditCardPayment)"/>
+ <binding.ws uri="http://localhost:8082/CreditCardPayment" requires="authentication"/>
+ <binding.sca></binding.sca>
+ </service>
+ </component>
+ <component name="CurrencyConverter">
+ <implementation.java class="com.tuscanyscatours.currencyconverter.impl.CurrencyConverterImpl"/>
+ <service name="CurrencyConverter"/>
+ </component>
+ <component name="HotelPartner" t:color="orange1">
+ <implementation.java class="com.tuscanyscatours.hotel.impl.HotelImpl"/>
+ <service name="Search">
+ <binding.ws name="searchws" uri="http://localhost:8086/Hotel/Search"/>
+ <callback>
+ <binding.ws></binding.ws>
+ </callback>
+ </service>
+ <service name="Book"/>
+ </component>
+ <component name="FlightPartner" t:color="orange1">
+ <implementation.java class="com.tuscanyscatours.flight.impl.FlightImpl"/>
+ <service name="Search">
+ <interface.java interface="com.tuscanyscatours.common.Search" callbackInterface="com.tuscanyscatours.common.SearchCallback"/>
+ <binding.ws name="searchws" uri="http://localhost:8086/Flight/Search"/>
+ <t:binding.jsonrpc name="searchjsonrpc"/>
+ <callback>
+ <binding.ws></binding.ws>
+ </callback>
+ </service>
+ <service name="Book"/>
+ </component>
+ <component name="CarPartner" t:color="orange1">
+ <implementation.java class="com.tuscanyscatours.car.impl.CarImpl"/>
+ <service name="Search">
+ <binding.ws name="searchws" uri="http://localhost:8086/Car/Search"/>
+ <t:binding.jsonrpc name="searchjsonrpc"/>
+ <callback>
+ <binding.ws></binding.ws>
+ </callback>
+ </service>
+ <service name="Book"/>
+ </component>
+ <component name="TravelCatalog">
+ <implementation.java class="com.tuscanyscatours.travelcatalog.impl.TravelCatalogImpl"/>
+ <service name="TravelCatalogSearch"/>
+ <reference name="hotelSearch" target="HotelSearch">
+ <binding.ws uri="http://localhost:8086/Hotel/Search"/>
+ <callback>
+ <binding.ws name="callback" uri="http://localhost:8084/Hotel/SearchCallback"/>
+ </callback>
+ </reference>
+ <reference name="flightSearch" target="FlightSearch">
+ <interface.java interface="com.tuscanyscatours.common.Search" callbackInterface="com.tuscanyscatours.common.SearchCallback"/>
+ <binding.ws uri="http://localhost:8086/Flight/Search"/>
+ <callback>
+ <binding.ws name="callback" uri="http://localhost:8084/Flight/SearchCallback"/>
+ </callback>
+ </reference>
+ <reference name="carSearch" target="CarSearch">
+ <binding.ws uri="http://localhost:8086/Car/Search"/>
+ <callback>
+ <binding.ws name="callback" uri="http://localhost:8084/Car/SearchCallback"/>
+ </callback>
+ </reference>
+ <reference name="tripSearch" target="TripSearch">
+ <binding.ws uri="http://localhost:8085/Trip/Search"/>
+ <callback>
+ <binding.ws name="callback" uri="http://localhost:8084/Trip/SearchCallback"/>
+ </callback>
+ </reference>
+ <reference name="currencyConverter" target="CurrencyConverter"/>
+ <property>GBP</property>
+ </component>
+ <component name="TripBooking">
+ <implementation.java class="com.tuscanyscatours.tripbooking.impl.TripBookingImpl"/>
+ <service name="TripBooking"/>
+ <reference name="hotelBook" target="HotelPartner/Book"/>
+ <reference name="flightBook" target="FlightPartner/Book"/>
+ <reference name="carBook" target="CarPartner/Book"/>
+ <reference name="tripBook" target="TripPartner/Book"/>
+ <reference name="cartUpdates" target="ShoppingCart/CartUpdates"/>
+ </component>
+ <component name="TripPartner" t:color="orange1">
+ <implementation.java class="com.tuscanyscatours.trip.impl.TripImpl"/>
+ <service name="Search">
+ <binding.ws name="searchws" uri="http://localhost:8085/Trip/Search"/>
+ <t:binding.jsonrpc name="searchjsonrpc"/>
+ <callback>
+ <binding.ws></binding.ws>
+ </callback>
+ </service>
+ <service name="Book"/>
+ </component>
+ <component name="ShoppingCart">
+ <implementation.java class="com.tuscanyscatours.shoppingcart.impl.ShoppingCartImpl"/>
+ <reference name="cartStore" target="CartStore" t:align="bottom"/>
+ <reference name="payment" target="Payment">
+ <binding.ws uri="http://localhost:8081/Payment"/>
+ </reference>
+ </component>
+ <component name="CartStore" t:color="yellow1">
+ <service name="CartStore" t:align="top"/>
+ <implementation.java class="com.tuscanyscatours.shoppingcart.impl.CartStoreImpl"/>
+ </component>
+ <component name="Payment">
+ <implementation.spring location="Payment-context.xml"/>
+ <service name="Payment">
+ <binding.ws uri="http://localhost:8081/Payment"/>
+ </service>
+ <reference name="creditCardPaymentReference" target="CreditCardPayment">
+ <binding.ws uri="http://localhost:8082/CreditCardPayment" requires="authentication"/>
+ </reference>
+ <reference name="emailGateway" target="EmailGateway"/>
+ <reference name="customerRegistry" target="CustomerRegistry"/>
+ <property>1.23</property>
+ </component>
+ <component name="CustomerRegistry">
+ <implementation.java class="com.tuscanyscatours.customer.impl.CustomerRegistryImpl"/>
+ </component>
+ <component name="EmailGateway">
+ <implementation.java class="com.tuscanyscatours.emailgateway.impl.EmailGatewayImpl"/>
+ </component>
+ <component name="HotelSearch" t:color="red1">
+ <service name="HotelSearch"/>
+ <implementation.java class="com.tuscanyscatours.PlaceHolderImpl"/>
+ </component>
+ <component name="FlightSearch" t:color="red1">
+ <service name="FlightSearch"/>
+ <implementation.java class="com.tuscanyscatours.PlaceHolderImpl"/>
+ </component>
+ <component name="CarSearch" t:color="red1">
+ <service name="CarSearch"/>
+ <implementation.java class="com.tuscanyscatours.PlaceHolderImpl"/>
+ </component>
+ <component name="TripSearch" t:color="red1">
+ <service name="TripSearch"/>
+ <implementation.java class="com.tuscanyscatours.PlaceHolderImpl"/>
+ </component>
+</composite>
diff --git a/sca-cpp/trunk/modules/edit/apps/travel/app.html b/sca-cpp/trunk/modules/edit/apps/travel/app.html
index f016acfe51..ff320ac5b0 100644
--- a/sca-cpp/trunk/modules/edit/apps/travel/app.html
+++ b/sca-cpp/trunk/modules/edit/apps/travel/app.html
@@ -1,24 +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.
+ * 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="header" class="h1" style="position:absolute; left: 0px; top: 0px"><h1>Welcome to SCATours Online Travel</h1></span>
-<span id="book" class="button" style="position:absolute; left: 0px; top: 60px"><input type="button" value="Book a Trip"/></span>
-
-</div>
+<DIV id="page">
+ <SPAN id="header" class="h1" style="position: absolute; top: 0px; left: 0px; ">
+ <H1>Welcome to SCATours Online Travel</H1>
+ </SPAN>
+ <SPAN id="book" class="button" style="position: absolute; top: 60px; left: 0px; ">
+ <INPUT type="button" value="Book a Trip"/>
+ </SPAN>
+</DIV>
diff --git a/sca-cpp/trunk/modules/edit/dashboards/joe@localhost b/sca-cpp/trunk/modules/edit/dashboards/joe@localhost
index 2ca0d505d3..0d5faf04f6 100644
--- a/sca-cpp/trunk/modules/edit/dashboards/joe@localhost
+++ b/sca-cpp/trunk/modules/edit/dashboards/joe@localhost
@@ -1 +1 @@
-(("An App that shows my Aggregated Social Profile" "myprofile" ()) ("An advanced version of the Aggregated Social Profile App" "myprofile2" ()) ("An App that shows Friends Near Me" "nearme" ()) ("An advanced version of the Friends Near Me App" "nearme2" ()) ("Sample Online Store App" "store" ()) ("Layout Variation of the Online Store App" "store2" ()) ("Another Variation of the Online Store App" "store3" ()) ("Travel Tutorial App" "travel" ()) ("An Empty Test App" "test" ())) \ No newline at end of file
+(("An App that shows my Aggregated Social Profile" "myprofile" ()) ("An advanced version of the Aggregated Social Profile App" "myprofile2" ()) ("An App that shows Friends Near Me" "nearme" ()) ("An advanced version of the Friends Near Me App" "nearme2" ()) ("Sample Online Store App" "store" ()) ("Layout Variation of the Online Store App" "store2" ()) ("Another Variation of the Online Store App" "store3" ()) ("Travel Tutorial App" "travel" ()) ("An Empty Test App" "test" ()) ("Test Values and Lists" "testvalues" ()) ("Test Social Components" "testsocial" ()) ("Test URL Components" "testurl" ()) ("Test Logic Components" "testlogic" ()) ("Test Text Processing Components" "testtext" ())) \ No newline at end of file
diff --git a/sca-cpp/trunk/modules/edit/edit.composite b/sca-cpp/trunk/modules/edit/edit.composite
index c5996e2db1..3a8c67f9bc 100644
--- a/sca-cpp/trunk/modules/edit/edit.composite
+++ b/sca-cpp/trunk/modules/edit/edit.composite
@@ -25,7 +25,7 @@
<component name="User">
<t:implementation.python script="user.py"/>
<property name="user">?</property>
- <property name="email">joe@localhost</property>
+ <property name="email">?</property>
<property name="nickname">?</property>
<property name="fullname">?</property>
<property name="firstname">?</property>
@@ -36,6 +36,11 @@
</service>
</component>
+ <component name="MenuWidget">
+ <t:implementation.widget location="/menu.html"/>
+ <reference name="user" target="User"/>
+ </component>
+
<component name="EditWidget">
<t:implementation.widget location="/index.html"/>
<reference name="dashboard" target="Dashboard"/>
diff --git a/sca-cpp/trunk/modules/edit/htdocs/dash/dashboard.html b/sca-cpp/trunk/modules/edit/htdocs/dash/dashboard.html
index 9d63253830..3307d193ca 100644
--- a/sca-cpp/trunk/modules/edit/htdocs/dash/dashboard.html
+++ b/sca-cpp/trunk/modules/edit/htdocs/dash/dashboard.html
@@ -146,7 +146,7 @@ $('createAppOKButton').onclick = function() {
var entry = atom.writeATOMEntry(app);
dashboard.put(name, car(entry));
getapps();
- div.style.visibility = 'hidden';
+ $('newApp').style.visibility = 'hidden';
return false;
};
diff --git a/sca-cpp/trunk/modules/edit/htdocs/dash/index.html b/sca-cpp/trunk/modules/edit/htdocs/dash/index.html
index 834bca6201..308afdb13a 100644
--- a/sca-cpp/trunk/modules/edit/htdocs/dash/index.html
+++ b/sca-cpp/trunk/modules/edit/htdocs/dash/index.html
@@ -43,7 +43,9 @@ ui.loadwidget('menu', '/menu.html');
<script type="text/javascript">
// Load the dashboard
-ui.loadiframe('dashboard', 'dashboard.html');
+$('dashboard').innerHTML =
+ '<iframe id="dashboardFrame" style="height: 5000px; width: 100%; border: 0px;" scrolling="no" frameborder="0" src="dashboard.html"></iframe>';
+
</script>
</body>
</html>
diff --git a/sca-cpp/trunk/modules/edit/htdocs/graph/graph.html b/sca-cpp/trunk/modules/edit/htdocs/graph/graph.html
index 6de3617651..e03cc6038d 100644
--- a/sca-cpp/trunk/modules/edit/htdocs/graph/graph.html
+++ b/sca-cpp/trunk/modules/edit/htdocs/graph/graph.html
@@ -39,6 +39,7 @@
<th class="thr" style="padding-left: 4px; padding-top: 0px; padding-bottom: 0px;">
<input id="compName" type="text" value="component name" style="position: relative; width: 200px;"/>
<input id="propValue" type="text" value="property value" style="position: relative; width: 300px;"/>
+<span id="compValue" style="position: relative"></span>
</th>
<th class="thl thr" style="padding-top: 0px; padding-bottom: 0px; padding-right: 0px; text-align: right;">
@@ -99,7 +100,7 @@ function getapp(name, g) {
'</composite>';
composite = readXML(mklist(x));
}
- graph.edit(composite, graph.composite(composite, graph.mkpath().move(palcx,0)), g);
+ graph.edit(name, composite, graph.composite(composite, graph.mkpath().move(palcx,0)), g);
});
}
@@ -147,7 +148,7 @@ $('saveButton').onclick = function(e) {
};
// Create editor graph area
-var g = graph.mkgraph(graph.mkpath().move(0,40), $('compName'), $('propValue'));
+var g = graph.mkgraph(graph.mkpath().move(0,40), $('compName'), $('propValue'), $('compValue'));
var bg = graph.mkgroup(graph.mkpath());
// Install the palettes
@@ -155,14 +156,14 @@ var gpalettes = new Array();
var spalette = 'events';
var pos = graph.mkpath();
installpalette('events', pos.rmove(0,0), g, bg, spalette, gpalettes);
-installpalette('values', pos.rmove(0,50), g, bg, spalette, gpalettes);
-installpalette('url', pos.rmove(0, 50), g, bg, spalette, gpalettes);
-installpalette('lists', pos.rmove(0, 50), g, bg, spalette, gpalettes);
-installpalette('text', pos.rmove(0, 50), g, bg, spalette, gpalettes);
-installpalette('logic', pos.rmove(0, 50), g, bg, spalette, gpalettes);
-installpalette('math', pos.rmove(0, 50), g, bg, spalette, gpalettes);
-installpalette('social', pos.rmove(0, 50), g, bg, spalette, gpalettes);
-installpalette('sensors', pos.rmove(0, 50), g, bg, spalette, gpalettes);
+installpalette('values', pos.rmove(0,40), g, bg, spalette, gpalettes);
+installpalette('url', pos.rmove(0, 40), g, bg, spalette, gpalettes);
+installpalette('lists', pos.rmove(0, 40), g, bg, spalette, gpalettes);
+installpalette('text', pos.rmove(0, 40), g, bg, spalette, gpalettes);
+installpalette('logic', pos.rmove(0, 40), g, bg, spalette, gpalettes);
+installpalette('math', pos.rmove(0, 40), g, bg, spalette, gpalettes);
+installpalette('social', pos.rmove(0, 40), g, bg, spalette, gpalettes);
+installpalette('sensors', pos.rmove(0, 40), g, bg, spalette, gpalettes);
// Get and display the current app
getapp(appname, g);
diff --git a/sca-cpp/trunk/modules/edit/htdocs/graph/graph.js b/sca-cpp/trunk/modules/edit/htdocs/graph/graph.js
index fa202d6b86..7273dae1bf 100644
--- a/sca-cpp/trunk/modules/edit/htdocs/graph/graph.js
+++ b/sca-cpp/trunk/modules/edit/htdocs/graph/graph.js
@@ -56,7 +56,7 @@ var trashcx = 230;
var proxcx = 20;
var proxcy = 20;
var buttoncx = 70;
-var buttoncy = 40;
+var buttoncy = 30;
var curvsz = 6;
var tabsz = 3;
@@ -114,7 +114,7 @@ if (ui.isIE()) {
/**
* Make a VML graph.
*/
- graph.mkgraph = function(pos, cname, pvalue) {
+ graph.mkgraph = function(pos, cname, pvalue, cvalue) {
// Create div element to host the graph
var div = document.createElement('div');
@@ -160,6 +160,7 @@ if (ui.isIE()) {
// Reset current selection
cname.value = '';
pvalue.value = '';
+ cvalue.innerHTML = '';
return false;
}
@@ -185,6 +186,7 @@ if (ui.isIE()) {
// Update the component name and property value fields
cname.value = graph.selected.id;
pvalue.value = graph.property(graph.selected.comp);
+ cvalue.innerHTML = graph.compvaluelink(vmlg.appname, graph.selected.id);
return false;
};
@@ -232,6 +234,7 @@ if (ui.isIE()) {
graph.selected = null;
cname.value = '';
pvalue.value = '';
+ cvalue.innerHTML = '';
}
}
@@ -281,6 +284,7 @@ if (ui.isIE()) {
var compos = scdl.composite(svg.compos);
cname.value = graph.ucid(cname.value, compos);
graph.selected.id = cname.value;
+ cvalue.innerHTML = graph.compvaluelink(svg.appname, graph.selected.id);
setElement(compos, graph.renamecomp(graph.selected.comp, compos, cname.value));
// Refresh the composite
@@ -575,7 +579,7 @@ if (ui.isIE()) {
/**
* Make an SVG graph.
*/
- graph.mkgraph = function(pos, cname, pvalue) {
+ graph.mkgraph = function(pos, cname, pvalue, cvalue) {
// Create a div element to host the graph
var div = document.createElement('div');
@@ -624,6 +628,7 @@ if (ui.isIE()) {
// Reset current selection
cname.value = '';
pvalue.value = '';
+ cvalue.innerHTML ='';
return false;
}
@@ -649,6 +654,7 @@ if (ui.isIE()) {
// Update the component name and property value fields
cname.value = graph.selected.id;
pvalue.value = graph.property(graph.selected.comp);
+ cvalue.innerHTML = graph.compvaluelink(svg.appname, graph.selected.id);
return false;
};
@@ -699,6 +705,7 @@ if (ui.isIE()) {
graph.selected = null;
cname.value = '';
pvalue.value = '';
+ cvalue.innerHTML = '';
}
}
@@ -766,6 +773,7 @@ if (ui.isIE()) {
var compos = scdl.composite(svg.compos);
cname.value = graph.ucid(cname.value, compos);
graph.selected.id = cname.value;
+ cvalue.innerHTML = graph.compvaluelink(svg.appname, graph.selected.id);
setElement(compos, graph.renamecomp(graph.selected.comp, compos, cname.value));
// Refresh the composite
@@ -1121,7 +1129,7 @@ graph.lsvcs = function(comp) {
*/
graph.brefs = function(comp) {
return memo(comp, 'brefs', function() {
- return filter(function(r) { return scdl.align(r) == 'bottom'; }, scdl.references(comp));
+ return filter(function(r) { return scdl.align(r) == 'bottom' && scdl.visible(r) != 'false'; }, scdl.references(comp));
});
};
@@ -1130,7 +1138,11 @@ graph.brefs = function(comp) {
*/
graph.rrefs = function(comp) {
return memo(comp, 'rrefs', function() {
- return filter(function(r) { var a = scdl.align(r); return a == null || a == 'right'; }, scdl.references(comp));
+ return filter(function(r) {
+ var a = scdl.align(r);
+ var v = scdl.visible(r);
+ return (a == null || a == 'right') && v != 'false';
+ }, scdl.references(comp));
});
};
@@ -1791,12 +1803,25 @@ graph.refresh = function(g) {
* Display and enable editing of a composite and the graphical
* nodes that represent it.
*/
-graph.edit = function(compos, nodes, g, cname, pvalue) {
+graph.edit = function(appname, compos, nodes, g) {
- // Store the composite in the graphical canvas
+ // Store the appname and composite in the graphical canvas
+ g.appname = appname;
g.compos = compos;
// Display the composite nodes
return graph.display(nodes, g);
};
+/**
+ * Return the link to a component value.
+ */
+graph.compvaluelink = function(appname, cname) {
+ var scheme = 'http';
+ var domain = "sca-store.com";
+ var port = '8090';
+ var link = scheme + '://' + appname + '.' + domain + ':' + port + '/components/' + cname;
+ return '<a href="' + link + '">' + link + '</a>';
+
+};
+
diff --git a/sca-cpp/trunk/modules/edit/htdocs/menu.html b/sca-cpp/trunk/modules/edit/htdocs/menu.html
index d46fd8a882..d60d80b1cb 100644
--- a/sca-cpp/trunk/modules/edit/htdocs/menu.html
+++ b/sca-cpp/trunk/modules/edit/htdocs/menu.html
@@ -21,6 +21,7 @@
<link rel="stylesheet" type="text/css" href="/ui.css">
<script type="text/javascript" src="/util.js"></script>
<script type="text/javascript" src="/ui.js"></script>
+<script type="text/javascript" src="/component.js"></script>
</head>
<body>
<div id="menu"></div>
@@ -28,6 +29,21 @@
<script type="text/javascript">
ui.installwidget();
+var menuWidget = sca.component("MenuWidget");
+var user = sca.defun(sca.reference(menuWidget, "user"), "id");
+
+/**
+ * Display the current signed in user.
+ */
+function userMenu() {
+ function UserMenu() {
+ this.content = function() {
+ return '<span><b>' + user.id() + '</b></span>';
+ };
+ }
+ return new UserMenu();
+}
+
/**
* Return the current app name.
*/
@@ -41,7 +57,7 @@ var name = appname();
mdiv.innerHTML = ui.menubar(
append(mklist(ui.menu('Home', '/'), ui.menu('Dashboard', '/dash')),
(isNil(name) || name == 'undefined')? mklist() : mklist(ui.menu('Composition', '/graph/?app=' + name), ui.menu('Page', '/page/?app=' + name), ui.menu('Settings', '/app/?app=' + name))),
- mklist(ui.menu('Sign out', '/logout')));
+ mklist(userMenu(), ui.menu('Sign out', '/logout')));
</script>
</body>
diff --git a/sca-cpp/trunk/modules/edit/palettes/events/palette.composite b/sca-cpp/trunk/modules/edit/palettes/events/palette.composite
index 375576b863..7629315f60 100644
--- a/sca-cpp/trunk/modules/edit/palettes/events/palette.composite
+++ b/sca-cpp/trunk/modules/edit/palettes/events/palette.composite
@@ -22,25 +22,27 @@
targetNamespace="http://events"
name="palette">
- <service name="opened" promote="opened"/>
- <service name="clicked" promote="clicked"/>
+ <service name="page" promote="page"/>
+ <service name="button" promote="button"/>
<service name="every" promote="every"/>
- <component name="opened" t:title="when page opened" t:color="green1">
- <t:implementation.python script="opened.py"/>
- <service name="opened" t:visible="false"/>
+ <component name="page" t:title="when page opened" t:color="green1">
+ <t:implementation.python script="nuvem/page.py"/>
+ <service name="page" t:visible="false">
+ <t:binding.http uri="index.html"/>
+ </service>
<reference name="content"/>
</component>
- <component name="clicked" t:title="when clicked" t:color="green1">
- <t:implementation.python script="clicked.py"/>
- <service name="clicked" t:visible="false"/>
+ <component name="button" t:title="when clicked" t:color="green1">
+ <t:implementation.python script="nuvem/button.py"/>
+ <service name="button" t:visible="false"/>
<property name="property">button</property>
<reference name="content"/>
</component>
<component name="every" t:title="every n secs" t:color="green1">
- <t:implementation.python script="every.py"/>
+ <t:implementation.python script="nuvem/every.py"/>
<service name="every" t:visible="false"/>
<property name="property">60</property>
<reference name="content"/>
diff --git a/sca-cpp/trunk/modules/edit/palettes/lists/palette.composite b/sca-cpp/trunk/modules/edit/palettes/lists/palette.composite
index 42cc4ea249..89b5e6234a 100644
--- a/sca-cpp/trunk/modules/edit/palettes/lists/palette.composite
+++ b/sca-cpp/trunk/modules/edit/palettes/lists/palette.composite
@@ -29,7 +29,6 @@
<service name="itemnb" promote="itemnb"/>
<service name="find" promote="find"/>
<service name="foreach" promote="foreach"/>
- <service name="item" promote="item"/>
<service name="filter" promote="filter"/>
<service name="reduce" promote="reduce"/>
<service name="range" promote="range"/>
@@ -37,59 +36,53 @@
<service name="reverse" promote="reverse"/>
<component name="list" t:title="make list" t:color="yellow1">
- <t:implementation.python script="list_.py"/>
+ <t:implementation.python script="nuvem/list_.py"/>
<service name="list"/>
<reference name="first"/>
<reference name="rest"/>
</component>
<component name="first" t:title="first item" t:color="yellow1">
- <t:implementation.python script="first.py"/>
+ <t:implementation.python script="nuvem/first.py"/>
<service name="first"/>
<reference name="list"/>
</component>
<component name="rest" t:title="rest of list" t:color="yellow1">
- <t:implementation.python script="rest.py"/>
+ <t:implementation.python script="nuvem/rest.py"/>
<service name="rest"/>
<reference name="list"/>
</component>
<component name="empty" t:title="empty list" t:color="yellow1">
- <t:implementation.python script="empty.py"/>
+ <t:implementation.python script="nuvem/empty.py"/>
<service name="empty"/>
</component>
<component name="itemnb" t:title="item number" t:color="yellow1">
- <t:implementation.python script="itemnb.py"/>
+ <t:implementation.python script="nuvem/itemnb.py"/>
<service name="itemnb"/>
<reference name="index"/>
<reference name="list"/>
</component>
<component name="find" t:title="find by name" t:color="yellow1">
- <t:implementation.python script="find.py"/>
+ <t:implementation.python script="nuvem/find.py"/>
<service name="find"/>
<reference name="name"/>
<reference name="assoc"/>
</component>
<component name="foreach" t:title="foreach" t:color="yellow1">
- <t:implementation.python script="foreach.py"/>
+ <t:implementation.python script="nuvem/map_.py"/>
<service name="foreach"/>
<reference name="item"/>
<reference name="transform"/>
<reference name="list"/>
</component>
- <component name="item" t:color="yellow1">
- <t:implementation.python script="item.py"/>
- <service name="item"/>
- <property name="property"></property>
- </component>
-
<component name="filter" t:title="filter" t:color="yellow1">
- <t:implementation.python script="filter_.py"/>
+ <t:implementation.python script="nuvem/filter_.py"/>
<service name="filter"/>
<reference name="item"/>
<reference name="condition"/>
@@ -97,30 +90,30 @@
</component>
<component name="reduce" t:title="reduce" t:color="yellow1">
- <t:implementation.python script="reduce.py"/>
+ <t:implementation.python script="nuvem/reduce_.py"/>
<service name="reduce"/>
- <reference name="transform"/>
- <reference name="initial"/>
<reference name="item"/>
+ <reference name="accum"/>
+ <reference name="transform"/>
<reference name="list"/>
</component>
<component name="range" t:title="range" t:color="yellow1">
- <t:implementation.python script="range.py"/>
+ <t:implementation.python script="nuvem/range_.py"/>
<service name="range"/>
<reference name="first"/>
<reference name="last"/>
</component>
<component name="append" t:title="append" t:color="yellow1">
- <t:implementation.python script="append.py"/>
+ <t:implementation.python script="nuvem/append.py"/>
<service name="append"/>
<reference name="first"/>
<reference name="second"/>
</component>
<component name="reverse" t:title="reverse" t:color="yellow1">
- <t:implementation.python script="reverse.py"/>
+ <t:implementation.python script="nuvem/reverse.py"/>
<service name="reverse"/>
<reference name="list"/>
</component>
diff --git a/sca-cpp/trunk/modules/edit/palettes/logic/palette.composite b/sca-cpp/trunk/modules/edit/palettes/logic/palette.composite
index 97de7f2ee2..e24d93a987 100644
--- a/sca-cpp/trunk/modules/edit/palettes/logic/palette.composite
+++ b/sca-cpp/trunk/modules/edit/palettes/logic/palette.composite
@@ -31,7 +31,7 @@
<service name="lesser" promote="lesser"/>
<component name="if" t:title="if" t:color="magenta1">
- <t:implementation.python script="if_.py"/>
+ <t:implementation.python script="nuvem/if_.py"/>
<service name="if"/>
<reference name="condition"/>
<reference name="then"/>
@@ -39,41 +39,41 @@
</component>
<component name="and" t:title="and" t:color="magenta1">
- <t:implementation.python script="and_.py"/>
+ <t:implementation.python script="nuvem/and_.py"/>
<service name="and"/>
<reference name="value1"/>
<reference name="value2"/>
</component>
<component name="or" t:title="or" t:color="magenta1">
- <t:implementation.python script="or_.py"/>
+ <t:implementation.python script="nuvem/or_.py"/>
<service name="or"/>
<reference name="value1"/>
<reference name="value2"/>
</component>
<component name="not" t:title="not" t:color="magenta1">
- <t:implementation.python script="not_.py"/>
+ <t:implementation.python script="nuvem/not_.py"/>
<service name="not"/>
<reference name="value"/>
</component>
<component name="equals" t:title="=" t:color="magenta1">
- <t:implementation.python script="equals.py"/>
+ <t:implementation.python script="nuvem/equals.py"/>
<service name="equals"/>
<reference name="value1"/>
<reference name="value2"/>
</component>
<component name="greater" t:title="gt" t:color="magenta1">
- <t:implementation.python script="greater.py"/>
+ <t:implementation.python script="nuvem/greater.py"/>
<service name="greater"/>
<reference name="value1"/>
<reference name="value2"/>
</component>
<component name="lesser" t:title="lt" t:color="magenta1">
- <t:implementation.python script="lesser.py"/>
+ <t:implementation.python script="nuvem/lesser.py"/>
<service name="lesser"/>
<reference name="value1"/>
<reference name="value2"/>
diff --git a/sca-cpp/trunk/modules/edit/palettes/math/palette.composite b/sca-cpp/trunk/modules/edit/palettes/math/palette.composite
index baac096c37..61638b50a2 100644
--- a/sca-cpp/trunk/modules/edit/palettes/math/palette.composite
+++ b/sca-cpp/trunk/modules/edit/palettes/math/palette.composite
@@ -28,7 +28,7 @@
<service name="subtract" promote="subtract"/>
<component name="multiply" t:title="*" t:color="magenta1">
- <t:implementation.python script="multiply.py"/>
+ <t:implementation.python script="nuvem/multiply.py"/>
<service name="multiply">
<documentation>*</documentation>
</service>
@@ -37,7 +37,7 @@
</component>
<component name="divide" t:title="/" t:color="magenta1">
- <t:implementation.python script="divide.py"/>
+ <t:implementation.python script="nuvem/divide.py"/>
<service name="divide">
<documentation>/</documentation>
</service>
@@ -46,7 +46,7 @@
</component>
<component name="add" t:title="+" t:color="magenta1">
- <t:implementation.python script="add.py"/>
+ <t:implementation.python script="nuvem/add.py"/>
<service name="add">
<documentation>+</documentation>
</service>
@@ -55,7 +55,7 @@
</component>
<component name="subtract" t:title="-" t:color="magenta1">
- <t:implementation.python script="subtract.py"/>
+ <t:implementation.python script="nuvem/subtract.py"/>
<service name="subtract">
<documentation>-</documentation>
</service>
diff --git a/sca-cpp/trunk/modules/edit/palettes/social/palette.composite b/sca-cpp/trunk/modules/edit/palettes/social/palette.composite
index bb1342b1a4..c0d24c2550 100644
--- a/sca-cpp/trunk/modules/edit/palettes/social/palette.composite
+++ b/sca-cpp/trunk/modules/edit/palettes/social/palette.composite
@@ -35,55 +35,64 @@
<service name="smssend" promote="smssend"/>
<component name="fbprofile" t:title="facebook profile" t:color="blue1">
- <t:implementation.python script="fbprofile.py"/>
+ <t:implementation.python script="nuvem/fbprofile.py"/>
<service name="fbprofile"/>
<reference name="id"/>
+ <reference name="fb" t:visible="false">
+ <t:binding.http uri="https://graph.facebook.com"/>
+ </reference>
</component>
<component name="fbalbum" t:title="facebook album" t:color="blue1">
- <t:implementation.python script="fbalbum.py"/>
+ <t:implementation.python script="nuvem/fbalbum.py"/>
<service name="fbalbum"/>
<reference name="id"/>
</component>
<component name="fbfriends" t:title="facebook friends" t:color="blue1">
- <t:implementation.python script="fbfriends.py"/>
+ <t:implementation.python script="nuvem/fbfriends.py"/>
<service name="fbfriends"/>
<reference name="id"/>
</component>
<component name="fbgroup" t:title="facebook group" t:color="blue1">
- <t:implementation.python script="fbgroup.py"/>
+ <t:implementation.python script="nuvem/fbgroup.py"/>
<service name="fbgroup"/>
<reference name="id"/>
</component>
<component name="twprofile" t:title="twitter profile" t:color="blue1">
- <t:implementation.python script="twprofile.py"/>
+ <t:implementation.python script="nuvem/twprofile.py"/>
<service name="twprofile"/>
<reference name="id"/>
+ <reference name="tw" t:visible="false">
+ <t:binding.http uri="http://api.twitter.com/1/users/show.json"/>
+ </reference>
</component>
<component name="twfriends" t:title="twitter friends" t:color="blue1">
- <t:implementation.python script="twfriends.py"/>
+ <t:implementation.python script="nuvem/twfriends.py"/>
<service name="twfriends"/>
<reference name="id"/>
</component>
<component name="twstatus" t:title="twitter status" t:color="blue1">
- <t:implementation.python script="twstatus.py"/>
+ <t:implementation.python script="nuvem/twstatus.py"/>
<service name="twstatus"/>
<reference name="id"/>
</component>
<component name="twtimeline" t:title="twitter timeline" t:color="blue1">
- <t:implementation.python script="twtimeline.py"/>
+ <t:implementation.python script="nuvem/twtimeline.py"/>
<service name="twtimeline"/>
<reference name="id"/>
+ <reference name="tw" t:visible="false">
+ <t:binding.http uri="http://api.twitter.com/1/statuses/user_timeline.json"/>
+ </reference>
</component>
<component name="gtalksend" t:title="send gtalk" t:color="blue1">
- <t:implementation.python script="gtalksend.py"/>
+ <t:implementation.python script="nuvem/gtalksend.py"/>
<service name="gtalksend"/>
<reference name="jid"/>
<reference name="to"/>
@@ -91,13 +100,13 @@
</component>
<component name="gtalkreceive" t:title="when gtalk received" t:color="blue1">
- <t:implementation.python script="gtalkreceive.py"/>
+ <t:implementation.python script="nuvem/gtalkreceive.py"/>
<service name="gtalkreceive"/>
<reference name="jid"/>
</component>
<component name="smssend" t:title="send sms" t:color="blue1">
- <t:implementation.python script="smssend.py"/>
+ <t:implementation.python script="nuvem/smssend.py"/>
<service name="smssend"/>
<reference name="user"/>
<reference name="to"/>
diff --git a/sca-cpp/trunk/modules/edit/palettes/text/palette.composite b/sca-cpp/trunk/modules/edit/palettes/text/palette.composite
index 8fe220d2db..3550a6507c 100644
--- a/sca-cpp/trunk/modules/edit/palettes/text/palette.composite
+++ b/sca-cpp/trunk/modules/edit/palettes/text/palette.composite
@@ -30,28 +30,28 @@
<service name="uppercase" promote="uppercase"/>
<component name="contains" t:title="contains" t:color="magenta1">
- <t:implementation.python script="contains.py"/>
+ <t:implementation.python script="nuvem/contains.py"/>
<service name="contains"/>
<reference name="search"/>
<reference name="string"/>
</component>
<component name="split" t:title="split" t:color="magenta1">
- <t:implementation.python script="split.py"/>
+ <t:implementation.python script="nuvem/split.py"/>
<service name="split"/>
<reference name="separator"/>
<reference name="string"/>
</component>
<component name="join" t:title="join" t:color="magenta1">
- <t:implementation.python script="join.py"/>
+ <t:implementation.python script="nuvem/join.py"/>
<service name="join"/>
<reference name="separator"/>
<reference name="list"/>
</component>
<component name="replace" t:title="replace" t:color="magenta1">
- <t:implementation.python script="replace.py"/>
+ <t:implementation.python script="nuvem/replace.py"/>
<service name="replace"/>
<reference name="from"/>
<reference name="to"/>
@@ -59,13 +59,13 @@
</component>
<component name="lowercase" t:title="lowercase" t:color="magenta1">
- <t:implementation.python script="lowercase.py"/>
+ <t:implementation.python script="nuvem/lowercase.py"/>
<service name="lowercase"/>
<reference name="string"/>
</component>
<component name="uppercase" t:title="uppercase" t:color="magenta1">
- <t:implementation.python script="uppercase.py"/>
+ <t:implementation.python script="nuvem/uppercase.py"/>
<service name="uppercase"/>
<reference name="string"/>
</component>
diff --git a/sca-cpp/trunk/modules/edit/palettes/url/palette.composite b/sca-cpp/trunk/modules/edit/palettes/url/palette.composite
index 2c62fcef57..3a85322e51 100644
--- a/sca-cpp/trunk/modules/edit/palettes/url/palette.composite
+++ b/sca-cpp/trunk/modules/edit/palettes/url/palette.composite
@@ -30,37 +30,37 @@
<service name="email" promote="email"/>
<component name="host" t:title="host" t:color="green1">
- <t:implementation.python script="host.py"/>
+ <t:implementation.python script="nuvem/host.py"/>
<service name="host"/>
<property name="host"></property>
</component>
<component name="path" t:title="path" t:color="green1">
- <t:implementation.python script="path.py"/>
+ <t:implementation.python script="nuvem/path.py"/>
<service name="path"/>
<property name="path"></property>
</component>
<component name="params" t:title="?params" t:color="green1">
- <t:implementation.python script="params.py"/>
+ <t:implementation.python script="nuvem/params.py"/>
<service name="params"/>
- <property name="params"></property>
+ <property name="query"></property>
</component>
<component name="user" t:title="user" t:color="green1">
- <t:implementation.python script="user.py"/>
+ <t:implementation.python script="nuvem/user.py"/>
<service name="user"/>
<property name="user"></property>
</component>
<component name="realm" t:title="realm" t:color="green1">
- <t:implementation.python script="realm.py"/>
+ <t:implementation.python script="nuvem/realm.py"/>
<service name="realm"/>
<property name="realm"></property>
</component>
<component name="email" t:title="email" t:color="green1">
- <t:implementation.python script="email.py"/>
+ <t:implementation.python script="nuvem/email.py"/>
<service name="email"/>
<property name="email"></property>
</component>
diff --git a/sca-cpp/trunk/modules/edit/palettes/values/palette.composite b/sca-cpp/trunk/modules/edit/palettes/values/palette.composite
index 36fce09269..ab881b45f9 100644
--- a/sca-cpp/trunk/modules/edit/palettes/values/palette.composite
+++ b/sca-cpp/trunk/modules/edit/palettes/values/palette.composite
@@ -25,48 +25,55 @@
<service name="text" promote="text"/>
<service name="number" promote="number"/>
<service name="name" promote="name"/>
+ <service name="valueof" promote="valueof"/>
<service name="assoc" promote="assoc"/>
<service name="nothing" promote="nothing"/>
<service name="true" promote="true"/>
<service name="false" promote="false"/>
<component name="text" t:title="text" t:color="orange1">
- <t:implementation.python script="text.py"/>
+ <t:implementation.python script="nuvem/text.py"/>
<service name="text"/>
<property name="property">abc</property>
</component>
<component name="number" t:title="number" t:color="orange1">
- <t:implementation.python script="number.py"/>
+ <t:implementation.python script="nuvem/number.py"/>
<service name="number"/>
<property name="property">0</property>
</component>
<component name="name" t:title="name" t:color="orange1">
- <t:implementation.python script="name.py"/>
+ <t:implementation.python script="nuvem/name.py"/>
<service name="name"/>
<property name="property">name</property>
</component>
+ <component name="valueof" t:title="value of" t:color="orange1">
+ <t:implementation.python script="nuvem/valueof.py"/>
+ <service name="valueof"/>
+ <property name="name">name</property>
+ </component>
+
<component name="assoc" t:title="assoc" t:color="orange1">
- <t:implementation.python script="assoc.py"/>
+ <t:implementation.python script="nuvem/assoc.py"/>
<service name="assoc"/>
<reference name="name"/>
<reference name="value"/>
</component>
<component name="nothing" t:title="nothing" t:color="orange1">
- <t:implementation.python script="text.py"/>
+ <t:implementation.python script="nuvem/nothing.py"/>
<service name="nothing"/>
</component>
<component name="true" t:title="true" t:color="orange1">
- <t:implementation.python script="true_.py"/>
+ <t:implementation.python script="nuvem/true_.py"/>
<service name="true"/>
</component>
<component name="false" t:title="false" t:color="orange1">
- <t:implementation.python script="false_.py"/>
+ <t:implementation.python script="nuvem/false_.py"/>
<service name="false"/>
</component>
diff --git a/sca-cpp/trunk/modules/edit/ssl-start b/sca-cpp/trunk/modules/edit/ssl-start
index b8e73438e7..5e0429755a 100755
--- a/sca-cpp/trunk/modules/edit/ssl-start
+++ b/sca-cpp/trunk/modules/edit/ssl-start
@@ -17,21 +17,62 @@
# specific language governing permissions and limitations
# under the License.
-../../modules/http/ssl-ca-conf tmp localhost
-../../modules/http/ssl-cert-conf tmp localhost
-../http/httpd-conf tmp localhost 8090 htdocs
+# For this module to work, add the app domains to your /etc/hosts as follows:
+# 127.0.0.1 sca-store.com joe.sca-store.com jane.sca-store.com myprofile.sca-store.com myprofile2.sca-store.com nearme.sca-store.com nearme2.sca-store.com testvalues.sca-store.com testurl.sca-store.com testsocial.sca-store.com testlogic.sca-store.com testtext.sca-store.com
+
+here=`readlink -f $0`; here=`dirname $here`
+jsprefix=`readlink -f $here/../js`
+
+# Create SSL certificates
+../../modules/http/ssl-ca-conf tmp sca-store.com
+../../modules/http/ssl-cert-conf tmp sca-store.com server
+../../modules/http/ssl-cert-conf tmp *.sca-store.com vhost
+
+# Configure server with virtual hosting
+../../modules/http/httpd-conf tmp sca-store.com 8090 htdocs
+../../modules/http/vhost-conf tmp apps htdocs
../../modules/http/httpd-ssl-conf tmp 8453
+../../modules/http/vhost-ssl-conf tmp
+
+# Configure authentication
../../modules/http/open-auth-conf tmp
-../../modules/http/passwd-auth-conf tmp foo foo
-../server/server-conf tmp
-../python/python-conf tmp
+../../modules/http/passwd-auth-conf tmp joe joe
+../../modules/http/passwd-auth-conf tmp jane jane
+
+# Configure Python component support
+../../modules/server/server-conf tmp
+../../modules/python/python-conf tmp
+
+# Configure app home pages
+cat >>tmp/conf/dvhost.conf <<EOF
+# Redirect to app home page
+RewriteEngine On
+RewriteRule ^/$ /index.html [R]
+
+EOF
+
+# Configure SCA contributions
cat >>tmp/conf/httpd.conf <<EOF
# Configure SCA Composite
SCAContribution `pwd`/
SCAComposite edit.composite
+# Configure SCA Composite for mass dynamic virtual Hosting
+SCAVirtualContribution `pwd`/apps/
+SCAVirtualComposite app.composite
+
EOF
-../../components/cache/memcached-start 11211
-../http/httpd-start tmp
+# Configure look and feel
+cat >>tmp/conf/httpd.conf <<EOF
+# Override CSS
+Alias /ui.css $jsprefix/htdocs/uicyan.css
+
+EOF
+
+# Start memcached
+../../components/cache/memcached-start
+
+# Start server
+../../modules/http/httpd-start tmp
diff --git a/sca-cpp/trunk/modules/edit/start b/sca-cpp/trunk/modules/edit/start
index 2c9502b2c6..938b0bf205 100755
--- a/sca-cpp/trunk/modules/edit/start
+++ b/sca-cpp/trunk/modules/edit/start
@@ -17,24 +17,63 @@
# specific language governing permissions and limitations
# under the License.
+# For this module to work, add the app domains to your /etc/hosts as follows:
+# 127.0.0.1 sca-store.com joe.sca-store.com jane.sca-store.com myprofile.sca-store.com myprofile2.sca-store.com nearme.sca-store.com nearme2.sca-store.com testvalues.sca-store.com testurl.sca-store.com testsocial.sca-store.com testlogic.sca-store.com testtext.sca-store.com
+
here=`readlink -f $0`; here=`dirname $here`
jsprefix=`readlink -f $here/../js`
-../http/httpd-conf tmp localhost 8090 htdocs
-cat >>tmp/conf/httpd.conf <<EOF
-# Override CSS
-Alias /ui.css $jsprefix/htdocs/uicyan.css
+# Configure server with virtual hosting
+../../modules/http/httpd-conf tmp sca-store.com 8090 htdocs
+../../modules/http/vhost-conf tmp apps htdocs
+
+# Configure authentication
+../../modules/http/open-auth-conf tmp
+../../modules/http/passwd-auth-conf tmp joe joe
+../../modules/http/passwd-auth-conf tmp jane jane
+cat >>tmp/conf/dvhost.conf <<EOF
+# Grant access to apps
+<Location />
+AuthType None
+Require all granted
+</Location>
EOF
+
+# Configure Python component support
../server/server-conf tmp
../python/python-conf tmp
+
+# Configure app home pages
+cat >>tmp/conf/dvhost.conf <<EOF
+# Redirect to app home page
+RewriteEngine On
+RewriteRule ^/$ /index.html [R]
+
+EOF
+
+# Configure SCA contributions
cat >>tmp/conf/httpd.conf <<EOF
# Configure SCA Composite
SCAContribution `pwd`/
SCAComposite edit.composite
+# Configure SCA Composite for mass dynamic virtual Hosting
+SCAVirtualContribution `pwd`/apps/
+SCAVirtualComposite app.composite
+
EOF
+# Configure look and feel
+cat >>tmp/conf/httpd.conf <<EOF
+# Override CSS
+Alias /ui.css $jsprefix/htdocs/uicyan.css
+
+EOF
+
+# Start memcached
../../components/cache/memcached-start 11211
+
+# Start server
../http/httpd-start tmp
diff --git a/sca-cpp/trunk/modules/edit/user.py b/sca-cpp/trunk/modules/edit/user.py
index 2eb65a8ea4..227722ac48 100644
--- a/sca-cpp/trunk/modules/edit/user.py
+++ b/sca-cpp/trunk/modules/edit/user.py
@@ -23,5 +23,6 @@ def id(user, email, nick, full, first, last, realm):
return email.eval()
if nick.eval() != '?':
return nick.eval() + '@' + realm.eval()
- return user.eval() + '@' + realm.eval()
-
+ if user.eval() != '?':
+ return user.eval() + '@' + realm.eval()
+ return 'joe@localhost'