Added: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.css
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.css?rev=1086674&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.css 
(added)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.css 
Tue Mar 29 18:26:07 2011
@@ -0,0 +1,217 @@
+/*
+ * 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.
+ */
+
+body {
+white-space: margin: 0px;
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+}
+
+.delayed {
+visibility: hidden;
+}
+
+table {
+border: 0px; border-collapse: collapse; border-color: #a2bae7; border-style: 
solid;
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+overflow: visible;
+}
+
+.trb {
+border-bottom: 1px; border-bottom-style: solid; border-color: #dcdcdc;
+}
+
+th {
+font-weight: bold; background-color: #e5ecf9; color: #000000;
+text-align: left; padding-left: 2px; padding-right: 8px; padding-top: 2px; 
padding-bottom: 4px; vertical-align: text-top; white-space: nowrap;
+border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+border-style: solid; border-top-color: #a2bae7; border-bottom-color: #d1d3d4; 
border-left-color: #a2bae7; border-right-color: #a2bae7;
+overflow: hidden;
+}
+
+.section {
+font-weight: bold; background-color: #e5ecf9; color: #000000;
+text-align: left; padding-left: 2px; padding-right: 8px; padding-top: 2px; 
padding-bottom: 4px; vertical-align: text-top; white-space: nowrap;
+border-top: 1px; border-bottom: 1px; border-left: 0px; border-right: 0px;
+border-style: solid; border-top-color: #a2bae7; border-bottom-color: #d1d3d4; 
border-left-color: #a2bae7; border-right-color: #a2bae7;
+overflow: hidden;
+}
+
+.thl {
+border-left: 0px;
+}
+
+.thr {
+border-right: 0px;
+}
+
+.ths {
+padding: 0px;
+}
+
+td {
+padding-left: 2px; padding-top: 2px; padding-right: 8px; white-space: nowrap; 
vertical-align: text-top; border: 0px;
+}
+
+.tdl {
+border-right: 1px; border-style: solid; border-color: #a2bae7; width: 10px;
+}
+
+.tdr {
+border-left: 1px; border-style: solid; border-color: #a2bae7;
+}
+
+.tdw {
+padding-left: 2px; padding-top: 2px; padding-right: 8px; white-space: normal; 
vertical-align: text-top;
+}
+
+.datatdl {
+border-right: 1px; border-top: 1px; border-bottom: 1px; border-style: solid; 
border-color: #dcdcdc; width: 10px;
+}
+
+.datatdr {
+border-left: 1px; border-top: 1px; border-bottom: 1px; border-style: solid; 
border-color: #dcdcdc;
+}
+
+.datatable {
+border-top: 1px; border-bottom: 1px; border-style: solid; border-color: 
#dcdcdc;
+overflow: visible;
+}
+
+.databg {
+opacity: .6;  
+-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+filter: alpha(opacity=60);
+}
+
+.widgetframe {
+visibility: hidden; width: 0px; height: 0px; border: 0px;
+}
+
+.loadedframe {
+width: 100%; height: 100%; border: 0px;
+margin: 0px; padding: 0px;
+}
+
+input {
+vertical-align: middle;
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+-webkit-text-size-adjust: 140%;
+}
+
+textarea {
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+}
+
+a:link {
+color: #598edd;
+text-decoration: none
+}
+
+a:visited {
+color: #598edd;
+text-decoration: none
+}
+
+.amenu {
+color: #598edd;
+text-decoration: none
+}
+
+.smenu {
+font-weight: bold;
+color: #000000;
+text-decoration: none
+}
+
+h1 {
+font-size: 200%; font-weight: bold;
+vertical-align: middle;
+margin: 0px;
+}
+
+h2 {
+font-size: 150%; font-weight: bold;
+vertical-align: middle;
+margin: 0px;
+}
+
+.hd1 {
+font-size: 200%; font-weight: bold;
+}
+
+.hd2 {
+font-size: 150%; font-weight: bold;
+}
+
+img {
+border: 0px;
+}
+
+.imgbutton {
+width: 142px; height: 64px; margin-left: 20px; margin-right: 20px; padding: 
0px; border: 1px;
+cursor: pointer; cursor: hand;
+}
+
+.tbar {
+margin: 0px;
+padding-top: 0px; padding-left: 0px; padding-right: 0px; padding-bottom: 3px;
+border-bottom: 1px solid #a2bae7; border-collapse: separate;
+}
+
+.ltbar {
+padding-left: 0px; padding-top: 0px; padding-right: 8px; white-space: nowrap; 
vertical-align: top;
+}
+
+.rtbar {
+padding-left: 8px; padding-right: 0px; padding-top: 0px; white-space: nowrap; 
vertical-align: top;
+text-align: right;
+}
+
+.suggest {
+background-color: #e5ecf9; color: #598edd;
+border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+border-style: solid; border-top-color: #a2bae7; border-bottom-color: #d1d3d4;
+border-left-color: #d1d3d4; border-right-color: #d1d3d4;
+position: absolute;
+overflow: auto; overflow-x: hidden;
+cursor: default;
+padding: 0px; margin: 0px;
+}
+
+.suggestTable {
+border: 0px; border-collapse: separate;
+padding-left: 5px; padding-right: 5px; padding-top: 2px; padding-bottom: 2px; 
+margin: 0px;
+}
+
+.suggestItem {
+padding-left: 2px; padding-top: 0px; padding-bottom: 0px; padding-right: 2px; 
vertical-align: text-top;
+background-color: #e5ecf9; color: #598edd;
+}
+
+.suggestHilighted {
+padding-left: 2px; padding-top: 0px; padding-bottom: 0px; padding-right: 2px; 
vertical-align: text-top;
+background-color: #598edd; color: #e5ecf9;
+}
+
+v\: * {
+behavior:url(#default#VML);
+display:inline-block; 
+}
+

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.css
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.js
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.js?rev=1086674&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.js 
(added)
+++ tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.js 
Tue Mar 29 18:26:07 2011
@@ -0,0 +1,333 @@
+/*
+ * 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.    
+ */
+
+/**
+ * UI utility functions.
+ */
+
+var ui = {};
+
+/**
+ * Return true if the current browser is Internet Explorer.
+ */
+ui.isIE = function() {
+    if (typeof ui.isIE.detected != 'undefined')
+        return ui.isIE.detected;
+    ui.isIE.detected = navigator.appName == 'Microsoft Internet Explorer';
+    return ui.isIE.detected;
+};
+
+/**
+ * Build a menu bar.
+ */ 
+ui.menu = function(name, href) {
+    function Menu(n, h) {
+        this.name = n;
+        this.href = h;
+
+        this.content = function() {
+            function complete(uri) {
+                var q = uri.indexOf('?');
+                if (q != -1)
+                    return complete(uri.substr(0, q));
+                if (uri.match('.*\.html$'))
+                    return uri;
+                if (uri.match('.*/$'))
+                    return uri + 'index.html';
+                return uri + '/index.html';
+            }
+
+            if (complete(this.href) != complete(window.top.location.pathname))
+                return '<a href="' + this.href + '" target="_parent"><span 
class=amenu>' + this.name + '</span></a>';
+            return '<a href="' + this.href + '" target="_parent"><span 
class=smenu>' + this.name + '</span></a>';
+        };
+    }
+    return new Menu(name, href);
+};
+
+ui.menubar = function(left, right) {
+    var bar = '<table cellpadding="0" cellspacing="0" width="100%" 
class=tbar><tr>' +
+    '<td class=ltbar><table border="0" cellspacing="0" cellpadding="0"><tr>';
+    for (i in left)
+        bar = bar + '<td class=ltbar>' + left[i].content() + '</td>'
+
+    bar = bar + '</tr></table></td>' +
+    '<td class=rtbar><table border="0" cellpadding="0" cellspacing="0" 
align="right"><tr>';
+    for (i in right)
+        bar = bar + '<td class=rtbar>' + right[i].content() + '</td>'
+
+    bar = bar + '</tr></table></td></tr></table>';
+    return bar;
+};
+ 
+/**
+ * Autocomplete / suggest support for input fields
+ * To use it declare a 'suggest' function as follows:
+ * function suggestItems() {
+ *       return new Array('abc', 'def', 'ghi');
+ * }
+ * then hook it to an input field as follows:
+ * suggest(document.yourForm.yourInputField, suggestItems);
+ */ 
+ui.selectSuggestion = function(node, value) {
+    for (;;) {
+        node = node.parentNode;
+        if (node.tagName.toLowerCase() == 'div')
+              break;
+    }
+    node.selectSuggestion(value);
+};
+
+ui.hilightSuggestion = function(node, over) {
+    if (over)
+        node.className = 'suggestHilighted';
+    node.className = 'suggestItem';
+};
+
+ui.suggest = function(input, suggestFunction) {
+    input.suggest = suggestFunction;
+      
+    input.selectSuggestion = function(value) {
+        this.hideSuggestDiv();
+        this.value = value;
+    }
+    
+    input.hideSuggestDiv = function() {
+        if (this.suggestDiv != null) {
+            this.suggestDiv.style.visibility = 'hidden';
+        }
+    }
+    
+    input.showSuggestDiv = function() {
+        if (this.suggestDiv == null) {
+            this.suggestDiv = document.createElement('div');
+            this.suggestDiv.input = this;
+            this.suggestDiv.className = 'suggest';
+            input.parentNode.insertBefore(this.suggestDiv, input);
+            this.suggestDiv.style.visibility = 'hidden';
+            this.suggestDiv.style.zIndex = '99';
+            
+            this.suggestDiv.selectSuggestion = function(value) {
+                this.input.selectSuggestion(value);
+            }
+        }
+        
+        var values = this.suggest();
+        var items = '';
+        for (var i = 0; i < values.length; i++) {
+            if (values[i].indexOf(this.value) == -1)
+                continue;
+            if (items.length == 0)
+                items += '<table class=suggestTable>';
+            items += '<tr><td class="suggestItem" ' +
+            'onmouseover="ui.hilightSuggestion(this, true)" 
onmouseout="ui.hilightSuggestion(this, false)" ' +
+            'onmousedown="ui.selectSuggestion(this, \'' + values[i] + '\')">' 
+ values[i] + '</td></tr>';
+        }
+        if (items.length != 0)
+            items += '</table>';
+        this.suggestDiv.innerHTML = items;
+        
+        if (items.length != 0) {
+            var node = input;              
+            var left = 0;
+            var top = 0;
+            for (;;) {
+                left += node.offsetLeft;
+                top += node.offsetTop;
+                node = node.offsetParent;
+                if (node.tagName.toLowerCase() == 'body')
+                  break;
+            }
+            this.suggestDiv.style.left = left;
+            this.suggestDiv.style.top = top + input.offsetHeight;
+            this.suggestDiv.style.visibility = 'visible';
+        } else
+            this.suggestDiv.style.visibility = 'hidden';
+    }
+      
+    input.onkeydown = function(event) {
+        this.showSuggestDiv();
+    };
+
+    input.onkeyup = function(event) {
+        this.showSuggestDiv();
+    };
+
+    input.onmousedown = function(event) {
+        this.showSuggestDiv();
+    };
+
+    input.onblur = function(event) {
+        setTimeout(function() { input.hideSuggestDiv(); }, 50);
+    };
+};
+
+/**
+ * Return the content document of a window.
+ */
+ui.content = function(win) {
+    if (!isNil(win.document))
+        return win.document;
+    if (!isNil(win.contentDocument))
+        return win.contentDocument;
+    return null;
+};
+
+/**
+ * Return a child element of a node with the given id.
+ */
+ui.elementByID = function(node, id) {
+    for (var i in node.childNodes) {
+        var child = node.childNodes[i];
+        if (child.id == id)
+            return child;
+        var gchild = ui.elementByID(child, id);
+        if (gchild != null)
+            return gchild;
+    }
+    return null;
+};
+
+/**
+ * Return the current document, or a child element with the given id.
+ */
+function $(id) {
+    if (id == document) {
+        if (!isNil(document.widget))
+            return document.widget;
+        return document;
+    }
+    return ui.elementByID($(document), id);
+};
+
+/**
+ * Return a dictionary of the query parameters.
+ */
+ui.queryParams = function() {
+    var qp = new Array();
+    var qs = window.location.search.substring(1).split('&');
+    for (var i = 0; i < qs.length; i++) {
+        var e = qs[i].indexOf('=');
+        if (e > 0)
+            qp[qs[i].substring(0, e)] = unescape(qs[i].substring(e + 1));
+    }
+    return qp;
+}
+
+/**
+ * Bind a widget iframe to an element.
+ */
+ui.widgets = {};
+ui.onload = {};
+
+ui.loadwidget = function(el, doc, cb) {
+    var f = el + 'Frame';
+    window.ui.widgets[f] = el;
+    window.ui.onload[f] = cb;
+    var div = document.createElement('div');
+    div.id = f + 'Div';
+    div.innerHTML = '<iframe id="' + f + '" class="widgetframe" scrolling="no" 
frameborder="0" src="' + doc + '" 
onload="window.ui.onload[this.id]()"></iframe>';
+    document.body.appendChild(div);
+    return f;
+};
+
+/**
+ * Show the current document body.
+ */
+ui.showbody = function() {
+    document.body.style.visibility = 'visible';
+};
+
+/**
+ * Install a widget into the element bound to its iframe.
+ */
+ui.installwidget = function() {
+    if (isNil(window.parent) || isNil(window.parent.ui) || 
isNil(window.parent.ui.widgets))
+        return true;
+    var pdoc = ui.content(window.parent);
+    for (w in window.parent.ui.widgets) {
+        var ww = ui.elementByID(pdoc, w).contentWindow;
+        if (ww == window) {
+            document.widget = ui.elementByID(pdoc, 
window.parent.ui.widgets[w]);
+            document.widget.innerHTML = document.body.innerHTML;
+            return true;
+        }
+    }
+    return true;
+};
+
+/**
+ * Load an iframe into an element.
+ */
+ui.loadiframe = function(el, doc) {
+    var f = el + 'Frame';
+    $(el).innerHTML =
+        '<iframe id="' + f + '" class="loadedframe" scrolling="no" 
frameborder="0" src="' + doc + '"></iframe>';
+    return f;
+};
+
+/**
+ * Convert a CSS position to a numeric position.
+ */
+ui.csspos = function(p) {
+    if (p == '')
+        return 0;
+    return Number(p.substr(0, p.length - 2));
+};
+
+/**
+ * Convert a list of elements to an HTML table.
+ */
+ui.datatable = function(l) {
+    log('datatable', writeValue(l));
+
+    function indent(i) {
+        if (i == 0)
+            return '';
+        return '&nbsp;&nbsp;' + indent(i - 1);
+    }
+
+    function rows(l, i) {
+        if (isNil(l))
+            return '';
+        var e = car(l);
+
+        if (!isList(e))
+            return rows(expandElementValues("'value", l), i);
+
+        if (elementHasValue(e)) {
+            var v = elementValue(e);
+            if (!isList(v)) {
+                return '<tr><td class="datatdl">' + indent(i) + 
elementName(e).slice(1) + '</td>' +
+                    '<td class="datatdr">' + v + '</td></tr>' +
+                    rows(cdr(l), i);
+            }
+
+            return rows(expandElementValues(elementName(e), v), i) + 
rows(cdr(l), i);
+        }
+
+        return '<tr><td class="datatdl">' + indent(i) + 
elementName(e).slice(1) + '</td>' +
+            '<td class="datatdr">' + '</td></tr>' +
+            rows(elementChildren(e), i + 1) +
+            rows(cdr(l), i);
+    }
+
+    return '<table class="datatable ' + (window.name == 'dataFrame'? ' databg' 
: '') + '" style="width: 100%;">' + rows(l, 0) + '</table>';
+}
+

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/ui.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uiblue.css
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uiblue.css?rev=1086674&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uiblue.css
 (added)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uiblue.css
 Tue Mar 29 18:26:07 2011
@@ -0,0 +1,173 @@
+/*
+ * 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.
+ */
+
+body {
+white-space: margin: 0px;
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+}
+
+table {
+border: 0px; border-collapse: collapse; border-color: #000000; border-style: 
solid;
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+}
+
+th {
+font-weight: bold; background-color: #3b5998; color: #ffffff;
+text-align: left; padding-left: 2px; padding-right: 8px; padding-top: 2px; 
padding-bottom: 4px; vertical-align: text-top;
+border-top: 1px; border-bottom: 1px; border-left: 0px; border-right: 0px;
+border-style: solid; border-top-color: #000000; border-bottom-color: #000000;
+}
+
+.thl {
+border-left: 0px;
+}
+
+.thr {
+border-right: 0px;
+}
+
+.ths {
+padding: 0px;
+}
+
+td {
+padding-left: 2px; padding-top: 2px; padding-right: 8px; white-space: nowrap; 
vertical-align: text-top;
+}
+
+.tdl {
+border-right: 1px;
+}
+
+.tdr {
+border-left: 1px;
+}
+
+.tdw {
+padding-left: 2px; padding-top: 2px; padding-right: 8px; white-space: normal; 
vertical-align: text-top;
+}
+
+.widgetframe {
+visibility: hidden; width: 0px; height: 0px; border: 0px;
+}
+
+.loadedframe {
+width: 100%; height: 100%; border: 0px;
+margin: 0px; padding: 0px;
+}
+
+input {
+vertical-align: middle;
+-webkit-text-size-adjust: 140%;
+}
+
+textarea {
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+}
+
+a:link {
+color: #3b5998;
+}
+
+a:visited {
+color: #3b5998;
+}
+
+.amenu {
+font-weight: bold;
+color: #ffffff;
+}
+
+.smenu {
+font-weight: bold;
+color: #ffffff;
+}
+
+h1 {
+font-size: 200%; font-weight: bold;
+vertical-align: middle;
+margin: 0px;
+}
+
+h2 {
+font-size: 150%; font-weight: bold;
+vertical-align: middle;
+margin: 0px;
+}
+
+.hd1 {
+font-size: 200%; font-weight: bold;
+}
+
+.hd2 {
+font-size: 150%; font-weight: bold;
+}
+
+.imgbutton {
+width: 142px; height: 64px; margin-left: 20px; margin-right: 20px; padding: 
0px; border: 1px;
+cursor: pointer; cursor: hand;
+}
+
+.tbar {
+font-weight: bold; background-color: #3b5998; color: #ffffff;
+margin: 0px;
+padding-top: 4px; padding-left: 2px; padding-right: 8px; padding-bottom: 8px; 
vertical-align: text-top;
+border-bottom: 1px solid #000000; border-collapse: separate;
+}
+
+.ltbar {
+padding-left: 0px; padding-top: 0px; padding-right: 16px; white-space: nowrap; 
vertical-align: top;
+}
+
+.rtbar {
+padding-left: 8px; padding-right: 0px; padding-top: 0px; white-space: nowrap; 
vertical-align: top;
+text-align: right;
+}
+
+.suggest {
+background-color: #e5ecf9; color: #598edd;
+border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+border-style: solid; border-top-color: #a2bae7; border-bottom-color: #d1d3d4;
+border-left-color: #d1d3d4; border-right-color: #d1d3d4;
+position: absolute;
+overflow: auto; overflow-x: hidden;
+cursor: default;
+padding: 0px; margin: 0px;
+}
+
+.suggestTable {
+border: 0px; border-collapse: separate;
+padding-left: 5px; padding-right: 5px; padding-top: 2px; padding-bottom: 2px; 
+margin: 0px;
+}
+
+.suggestItem {
+padding-left: 2px; padding-top: 0px; padding-bottom: 0px; padding-right: 2px; 
vertical-align: text-top;
+background-color: #e5ecf9; color: #598edd;
+}
+
+.suggestHilighted {
+padding-left: 2px; padding-top: 0px; padding-bottom: 0px; padding-right: 2px; 
vertical-align: text-top;
+background-color: #598edd; color: #e5ecf9;
+}
+
+v\: * {
+behavior:url(#default#VML);
+display:inline-block; 
+}
+

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uiblue.css
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uicyan.css
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uicyan.css?rev=1086674&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uicyan.css
 (added)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uicyan.css
 Tue Mar 29 18:26:07 2011
@@ -0,0 +1,217 @@
+/*
+ * 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.
+ */
+
+body {
+white-space: margin: 0px;
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+}
+
+.delayed {
+visibility: hidden;
+}
+
+table {
+border: 0px; border-collapse: collapse; border-color: #a2bae7; border-style: 
solid;
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+overflow: visible;
+}
+
+.trb {
+border-bottom: 1px; border-bottom-style: solid; border-color: #dcdcdc;
+}
+
+th {
+font-weight: bold; background-color: #e5ecf9; color: #000000;
+text-align: left; padding-left: 2px; padding-right: 8px; padding-top: 2px; 
padding-bottom: 4px; vertical-align: text-top; white-space: nowrap;
+border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+border-style: solid; border-top-color: #a2bae7; border-bottom-color: #d1d3d4; 
border-left-color: #a2bae7; border-right-color: #a2bae7;
+overflow: hidden;
+}
+
+.section {
+font-weight: bold; background-color: #e5ecf9; color: #000000;
+text-align: left; padding-left: 2px; padding-right: 8px; padding-top: 2px; 
padding-bottom: 4px; vertical-align: text-top; white-space: nowrap;
+border-top: 1px; border-bottom: 1px; border-left: 0px; border-right: 0px;
+border-style: solid; border-top-color: #a2bae7; border-bottom-color: #d1d3d4; 
border-left-color: #a2bae7; border-right-color: #a2bae7;
+overflow: hidden;
+}
+
+.thl {
+border-left: 0px;
+}
+
+.thr {
+border-right: 0px;
+}
+
+.ths {
+padding: 0px;
+}
+
+td {
+padding-left: 2px; padding-top: 2px; padding-right: 8px; white-space: nowrap; 
vertical-align: text-top; border: 0px;
+}
+
+.tdl {
+border-right: 1px; border-style: solid; border-color: #a2bae7; width: 10px;
+}
+
+.tdr {
+border-left: 1px; border-style: solid; border-color: #a2bae7;
+}
+
+.tdw {
+padding-left: 2px; padding-top: 2px; padding-right: 8px; white-space: normal; 
vertical-align: text-top;
+}
+
+.datatdl {
+border-right: 1px; border-top: 1px; border-bottom: 1px; border-style: solid; 
border-color: #dcdcdc; width: 10px;
+}
+
+.datatdr {
+border-left: 1px; border-top: 1px; border-bottom: 1px; border-style: solid; 
border-color: #dcdcdc;
+}
+
+.datatable {
+border-top: 1px; border-bottom: 1px; border-style: solid; border-color: 
#dcdcdc;
+overflow: visible;
+}
+
+.databg {
+opacity: .6;  
+-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+filter: alpha(opacity=60);
+}
+
+.widgetframe {
+visibility: hidden; width: 0px; height: 0px; border: 0px;
+}
+
+.loadedframe {
+width: 100%; height: 100%; border: 0px;
+margin: 0px; padding: 0px;
+}
+
+input {
+vertical-align: middle;
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+-webkit-text-size-adjust: 140%;
+}
+
+textarea {
+font-family: arial,sans-serif; font-style: normal; font-variant: normal; 
font-size: 13px;
+}
+
+a:link {
+color: #598edd;
+text-decoration: none
+}
+
+a:visited {
+color: #598edd;
+text-decoration: none
+}
+
+.amenu {
+color: #598edd;
+text-decoration: none
+}
+
+.smenu {
+font-weight: bold;
+color: #000000;
+text-decoration: none
+}
+
+h1 {
+font-size: 200%; font-weight: bold;
+vertical-align: middle;
+margin: 0px;
+}
+
+h2 {
+font-size: 150%; font-weight: bold;
+vertical-align: middle;
+margin: 0px;
+}
+
+.hd1 {
+font-size: 200%; font-weight: bold;
+}
+
+.hd2 {
+font-size: 150%; font-weight: bold;
+}
+
+img {
+border: 0px;
+}
+
+.imgbutton {
+width: 142px; height: 64px; margin-left: 20px; margin-right: 20px; padding: 
0px; border: 1px;
+cursor: pointer; cursor: hand;
+}
+
+.tbar {
+margin: 0px;
+padding-top: 0px; padding-left: 0px; padding-right: 0px; padding-bottom: 3px;
+border-bottom: 1px solid #a2bae7; border-collapse: separate;
+}
+
+.ltbar {
+padding-left: 0px; padding-top: 0px; padding-right: 8px; white-space: nowrap; 
vertical-align: top;
+}
+
+.rtbar {
+padding-left: 8px; padding-right: 0px; padding-top: 0px; white-space: nowrap; 
vertical-align: top;
+text-align: right;
+}
+
+.suggest {
+background-color: #e5ecf9; color: #598edd;
+border-top: 1px; border-bottom: 1px; border-left: 1px; border-right: 1px;
+border-style: solid; border-top-color: #a2bae7; border-bottom-color: #d1d3d4;
+border-left-color: #d1d3d4; border-right-color: #d1d3d4;
+position: absolute;
+overflow: auto; overflow-x: hidden;
+cursor: default;
+padding: 0px; margin: 0px;
+}
+
+.suggestTable {
+border: 0px; border-collapse: separate;
+padding-left: 5px; padding-right: 5px; padding-top: 2px; padding-bottom: 2px; 
+margin: 0px;
+}
+
+.suggestItem {
+padding-left: 2px; padding-top: 0px; padding-bottom: 0px; padding-right: 2px; 
vertical-align: text-top;
+background-color: #e5ecf9; color: #598edd;
+}
+
+.suggestHilighted {
+padding-left: 2px; padding-top: 0px; padding-bottom: 0px; padding-right: 2px; 
vertical-align: text-top;
+background-color: #598edd; color: #e5ecf9;
+}
+
+v\: * {
+behavior:url(#default#VML);
+display:inline-block; 
+}
+

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/uicyan.css
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/util.js
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/util.js?rev=1086674&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/util.js 
(added)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/util.js 
Tue Mar 29 18:26:07 2011
@@ -0,0 +1,343 @@
+/*
+ * 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.    
+ */
+
+/**
+ * Simple utility functions.
+ */
+
+/**
+ * Scheme-like lists.
+ */
+function cons(car, cdr) {
+    var a = new Array();
+    a.push(car);
+    return a.concat(cdr);
+}
+
+function car(l) {
+    return l[0];
+}
+
+function first(l) {
+    return car(l);
+}
+
+function cdr(l) {
+    return l.slice(1);
+}
+
+function rest(l) {
+    return cdr(l);
+}
+
+function cadr(l) {
+    return car(cdr(l));
+}
+
+function cddr(l) {
+    return cdr(cdr(l));
+}
+
+function caddr(l) {
+    return car(cddr(l));
+}
+
+function cdddr(l) {
+    return cdr(cdr(cdr(l)));
+}
+
+function cadddr(l) {
+    return car(cdddr(l));
+}
+
+function append(a, b) {
+    return a.concat(b);
+}
+
+function reverse(l) {
+    return l.slice(0).reverse();
+}
+
+function range(a, b) {
+    var l = new Array();
+    for (var x = a; x < b; x++)
+        l.push(x);
+    return l;
+}
+
+function isNil(v) {
+    if (v == null || typeof v == 'undefined' || (v.constructor == Array && 
v.length == 0))
+        return true;
+    return false;
+}
+
+function isSymbol(v) {
+    if (typeof v == 'string' && v.slice(0, 1) == "'")
+        return true;
+    return false;
+}
+
+function isString(v) {
+    if (typeof v == 'string' && v.slice(0, 1) != "'")
+        return true;
+    return false;
+}
+
+function isList(v) {
+    if (v != null && typeof v != 'undefined' && v.constructor == Array)
+        return true;
+    return false;
+}
+
+function isTaggedList(v, t) {
+    if (isList(v) && !isNil(v) && car(v) == t)
+        return true;
+    return false;
+}
+
+var emptylist = new Array();
+
+function mklist() {
+    if (arguments.length == 0)
+        return emptylist;
+    var a = new Array();
+    for (i = 0; i < arguments.length; i++)
+        a[i] = arguments[i];
+    return a;
+}
+
+function length(l) {
+    return l.length;
+}
+
+/**
+ * Scheme-like associations.
+ */
+function assoc(k, l) {
+    if (isNil(l))
+        return mklist();
+    if (k == car(car(l)))
+        return car(l);
+    return assoc(k, cdr(l));
+}
+
+/**
+ * Map, filter and reduce functions.
+ */
+function map(f, l) {
+    if (isNil(l))
+        return l;
+    return cons(f(car(l)), map(f, cdr(l)));
+}
+
+function filter(f, l) {
+    if (isNil(l))
+        return l;
+    if (f(car(l)))
+        return cons(car(l), filter(f, cdr(l)));
+    return filter(f, cdr(l));
+}
+
+function reduce(f, i, l) {
+    if (isNil(l))
+        return i;
+    return reduce(f, f(i, car(l)), cdr(l));
+}
+
+/**
+ * Split a path into a list of segments.
+ */
+function tokens(path) {
+    return filter(function(s) { return length(s) != 0; }, path.split("/"));
+}
+
+/**
+ * Log a value.
+ */
+var rconsole;
+
+function log(v) {
+    try {
+        var s = '';
+        for (i = 0; i < arguments.length; i++) {
+            s = s + writeValue(arguments[i]);
+            if (i < arguments.length)
+                s = s + ' ';
+        }
+
+        if (rconsole) {
+            try {
+                rconsole.log(s);
+            } catch (e) {}
+        }
+        try {
+            console.log(s);
+        } catch (e) {}
+    } catch (e) {}
+    return true;
+}
+
+/**
+ * Dump an object to the debug console.
+ */
+function debug(o) {
+    try {
+        for (f in o) {
+            try {
+                log('debug ' + f + '=' + o[f]);
+            } catch (e) {}
+        }
+    } catch (e) {}
+    return true;
+}
+
+/**
+ * Simple assert function.
+ */
+function AssertException() {
+}
+
+AssertException.prototype.toString = function () {
+    return 'AssertException';
+};
+
+function assert(exp) {
+    if (!exp)
+        throw new AssertException();
+}
+
+/**
+ * Write a list of strings.
+ */
+function writeStrings(l) {
+    if (isNil(l))
+        return '';
+    return car(l) + writeStrings(cdr(l));
+}
+
+/**
+ * Write a value using a Scheme-like syntax.
+ */
+function writeValue(v) {
+    function writePrimitive(p) {
+        if (isSymbol(p))
+            return '' + p.substring(1);
+        if (isString(p))
+            return '"' + p + '"';
+        return '' + p;
+    }
+
+    function writeList(l) {
+        if (isNil(l))
+            return '';
+        return ' ' + writeValue(car(l)) + writeList(cdr(l));
+    }
+
+    if (!isList(v))
+        return writePrimitive(v);
+    if (isNil(v))
+        return '()';
+    return '(' + writeValue(car(v)) + writeList(cdr(v)) + ')';
+}
+
+/**
+ * Apply a function and memoize its result.
+ */
+function memo(obj, key, f) {
+    if (!obj[memo])
+        obj.memo = {};
+    if (obj.memo[key])
+        return obj.memo[key];
+    return obj.memo[key] = f();
+}
+
+/**
+ * Un-memoize store results.
+ */
+function unmemo(obj) {
+    obj.memo = {};
+    return true;
+}
+
+/**
+ * Returns a list of the properties of an object.
+ */
+function properties(o) {
+    var a = new Array();
+    for (p in o)
+        a.push(p);
+    return a;
+}
+
+/**
+ * Functions with side effects. Use with moderation.
+ */
+
+/**
+ * Set the car of a list.
+ */
+function setcar(l, v) {
+    l[0] = v;
+    return l;
+}
+
+/**
+ * Set the cadr of a list.
+ */
+function setcadr(l, v) {
+    l[1] = v;
+    return l;
+}
+
+/**
+ * Set the caddr of a list.
+ */
+function setcaddr(l, v) {
+    l[2] = v;
+    return l;
+}
+
+/**
+ * Append the elements of a list to a list.
+ */
+function setappend(a, b) {
+    if (isNil(b))
+        return a;
+    a.push(car(b));
+    return setappend(a, cdr(b));
+}
+
+/**
+ * Set the cdr of a list.
+ */
+function setcdr(a, b) {
+    a.length = 1;
+    return setappend(a, b);
+}
+
+/**
+ * Set the contents of a list.
+ */
+function setlist(a, b) {
+    if (b == a)
+        return b;
+    a.length = 0;
+    return setappend(a, b);
+}
+

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/util.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/xmlutil.js
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/xmlutil.js?rev=1086674&view=auto
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/xmlutil.js
 (added)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/xmlutil.js
 Tue Mar 29 18:26:07 2011
@@ -0,0 +1,262 @@
+/*
+ * 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.    
+ */
+
+/**
+ * XML handling functions.
+ */
+
+/**
+ * Convert a DOM node list to a regular list.
+ */
+function nodeList(n) {
+    var l = new Array();
+    if (isNil(n))
+        return l;
+    for (var i = 0; i < n.length; i++)
+        l[i] = n[i];
+    return l;
+}
+
+/**
+ * Append a list of nodes to a parent node.
+ */
+function appendNodes(nodes, p) {
+    if (isNil(nodes))
+        return p;
+    p.appendChild(car(nodes));
+    return appendNodes(cdr(nodes), p);
+};
+
+/**
+ * Return the child attributes of an element.
+ */
+function childAttributes(e) {
+    return filter(function(n) { return n.nodeType == 2; }, 
nodeList(e.attributes));
+}
+
+/**
+ * Return the child elements of an element.
+ */
+function childElements(e) {
+    return filter(function(n) { return n.nodeType == 1; }, 
nodeList(e.childNodes));
+}
+
+/**
+ * Return the child text nodes of an element.
+ */
+function childText(e) {
+    function trim(s) {
+        return s.replace(/^\s*/, '').replace(/\s*$/, '');
+    }
+    return filter(function(n) { return n.nodeType == 3 && trim(n.nodeValue) != 
''; }, nodeList(e.childNodes));
+}
+
+/**
+ * Read a list of XML attributes.
+ */
+function readAttributes(p, a) {
+    if (isNil(a))
+        return a;
+    var x = car(a);
+    return cons(mklist(attribute, "'" + x.nodeName, x.nodeValue), 
readAttributes(p, cdr(a)));
+}
+
+/**
+ * Read an XML element.
+ */
+function readElement(e, childf) {
+    var l = append(append(mklist(element, "'" + e.nodeName), readAttributes(e, 
childf(e))), readElements(childElements(e), childf));
+    var t = childText(e);
+    if (isNil(t))
+        return l;
+    return append(l, mklist(car(t).nodeValue));
+}
+
+/**
+ * Read a list of XML elements.
+ */
+function readElements(l, childf) {
+    if (isNil(l))
+        return l;
+    return cons(readElement(car(l), childf), readElements(cdr(l), childf));
+}
+
+/**
+ * Return true if a list of strings contains an XML document.
+ */
+function isXML(l) {
+    if (isNil(l))
+        return false;
+    return car(l).substring(0, 5) == '<?xml';
+}
+
+/**
+ * Parse a list of strings representing an XML document.
+ */
+function parseXML(l) {
+    var s = writeStrings(l);
+    if (window.DOMParser) {
+        var p = new DOMParser();
+        return p.parseFromString(s, "text/xml");
+    }
+    var doc;
+    try {
+        doc = new ActiveXObject("MSXML2.DOMDocument");
+    } catch (e) {
+        doc = new ActiveXObject("Microsoft.XMLDOM");
+    }
+    doc.async = 'false';
+    doc.loadXML(s); 
+    return doc;
+}
+
+/**
+ * Read a list of values from an XML document.
+ */
+function readXMLDocument(doc) {
+    var root = childElements(doc);
+    if (isNil(root))
+        return mklist();
+    return mklist(readElement(car(root), childAttributes));
+}
+
+/**
+ * Read a list of values from an XHTML element.
+ */
+function readXHTMLElement(xhtml) {
+    // Special XHTML attribute filtering on IE
+    function ieChildAttributes(e) {
+        var a = filter(function(n) {
+            // Filter out empty and internal DOM attributes
+            if (n.nodeType != 2 || isNil(n.nodeValue) || n.nodeValue == '')
+                return false;
+            if (n.nodeName == 'contentEditable' || n.nodeName == 'maxLength' 
|| n.nodeName == 'loop' || n.nodeName == 'start')
+                return false;
+            return true;
+        }, nodeList(e.attributes));
+
+        if (e.style.cssText == '')
+            return a;
+
+        // Add style attribute
+        var sa = new Object();
+        sa.nodeName = 'style';
+        sa.nodeValue = e.style.cssText;
+        return cons(sa, a);
+    }
+
+    var childf = (typeof(XMLSerializer) != 'undefined')? childAttributes : 
ieChildAttributes;
+    return mklist(readElement(xhtml, childf));
+}
+
+/**
+ * Read a list of values from a list of strings representing an XML document.
+ */
+function readXML(l) {
+    return readXMLDocument(parseXML(l));
+}
+
+/**
+ * Return a list of strings representing an XML document.
+ */
+function writeXMLDocument(doc) {
+    if (typeof(XMLSerializer) != 'undefined')
+        return mklist(new XMLSerializer().serializeToString(doc));
+    return mklist(doc.xml);
+}
+
+/**
+ * Write a list of XML element and attribute tokens.
+ */
+function expandElementValues(n, l) {
+    if (isNil(l))
+        return l;
+    return cons(cons(element, cons(n, car(l))), expandElementValues(n, 
cdr(l)));
+}
+
+function writeList(l, node, doc) {
+    if (isNil(l))
+        return node;
+
+    var token = car(l);
+    if (isTaggedList(token, attribute)) {
+        node.setAttribute(attributeName(token).substring(1), '' + 
attributeValue(token));
+
+    } else if (isTaggedList(token, element)) {
+
+        function mkelem(tok, doc) {
+            function xmlns(l) {
+                if (isNil(l))
+                    return null;
+                var t = car(l);
+                if (isTaggedList(t, attribute)) {
+                    if (attributeName(t).substring(1) == 'xmlns')
+                        return attributeValue(t);
+                }
+                return xmlns(cdr(l));
+            }
+
+            var ns = xmlns(elementChildren(tok));
+            if (ns == null || !doc.createElementNS)
+                return doc.createElement(elementName(tok).substring(1));
+            return doc.createElementNS(ns, elementName(tok).substring(1));
+        }
+
+        if (elementHasValue(token)) {
+            var v = elementValue(token);
+            if (isList(v)) {
+                var e = expandElementValues(elementName(token), v);
+                writeList(e, node, doc);
+            } else {
+                var child = mkelem(token, doc);
+                writeList(elementChildren(token), child, doc);
+                node.appendChild(child);
+            }
+        } else {
+            var child = mkelem(token, doc);
+            writeList(elementChildren(token), child, doc);
+            node.appendChild(child);
+        }
+    } else
+        node.appendChild(doc.createTextNode('' + token));
+
+    writeList(cdr(l), node, doc);
+    return node;
+}
+
+/**
+ * Make a new XML document.
+ */
+function mkXMLDocument() { 
+    if (document.implementation && document.implementation.createDocument)
+        return document.implementation.createDocument('', '', null); 
+    return new ActiveXObject("MSXML2.DOMDocument"); 
+}
+
+/**
+ * Convert a list of values to a list of strings representing an XML document.
+ */
+function writeXML(l, xmlTag) {
+    var doc = mkXMLDocument();
+    writeList(l, doc, doc);
+    if (!xmlTag)
+        return writeXMLDocument(doc);
+    return mklist('<?xml version="1.0" encoding="UTF-8"?>\n' + 
writeXMLDocument(doc) + '\n');
+}
+

Propchange: 
tuscany/sca-java-2.x/trunk/modules/node-manager/src/test/resources/ui/xmlutil.js
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tuscany/sca-java-2.x/trunk/modules/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/pom.xml?rev=1086674&r1=1086673&r2=1086674&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/modules/pom.xml Tue Mar 29 18:26:07 2011
@@ -116,6 +116,7 @@
         <module>node-impl</module>
         <module>node-launcher</module>
         <module>node-launcher-equinox</module>
+        <module>node-manager</module>
         <module>policy-security</module>
         <module>policy-wspolicy</module>
         <!--module>policy-xml-ws</module-->


Reply via email to