TUSCANY-2391, apply lates patch from Thilina Buddhika
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@682109 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b4815bb289
commit
75936da5fc
6 changed files with 1329 additions and 364 deletions
|
|
@ -1,78 +1,78 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.geronimoace;
|
||||
|
||||
import javax.portlet.*;
|
||||
import java.io.IOException;
|
||||
|
||||
public class GeronimoACE extends GenericPortlet {
|
||||
private String viewUrl = "/pages/Home.jsp"; // viewUrl is set to the home page by default
|
||||
boolean isHome = true; // used for navigating back to the home page.
|
||||
|
||||
|
||||
public void init(PortletConfig config) throws PortletException {
|
||||
super.init(config);
|
||||
}
|
||||
|
||||
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException {
|
||||
isHome = true;
|
||||
String task = request.getParameter("task"); // getting request parameters task and domain name
|
||||
String domain = request.getParameter("domainName");
|
||||
if (task != null) {
|
||||
if (task.equals("composites")) { // if the request is for Composites,forwarding to Composites.html
|
||||
viewUrl = "/pages/Composite.html";
|
||||
}
|
||||
if (task.equals("workspace")) { // if the request is for Contributions,forwarding to workspace.html
|
||||
viewUrl = "/pages/Workspace.html";
|
||||
}
|
||||
if (task.equals("cloud")) { // if the request is for Clouds,forwarding to Cloud.html
|
||||
viewUrl = "/pages/Cloud.html";
|
||||
}
|
||||
if (task.equals("files")) { // iif the request is for Files,forwarding to Files.html
|
||||
viewUrl = "/pages/Files.html";
|
||||
}
|
||||
}
|
||||
|
||||
response.setPortletMode(PortletMode.VIEW); // by changing portlet mode, doview methos is called again.
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
|
||||
// Set the response to read HTML
|
||||
response.setContentType("text/html;charset=UTF-8");
|
||||
|
||||
if (isHome) {
|
||||
// dispatching to the appropriate page
|
||||
PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher(viewUrl);
|
||||
dispatcher.include(request, response);
|
||||
isHome = false;
|
||||
} else {
|
||||
// dispatching to the home page.
|
||||
PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/pages/Home.jsp");
|
||||
dispatcher.include(request, response);
|
||||
isHome = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package org.apache.tuscany.geronimoace;
|
||||
|
||||
import javax.portlet.*;
|
||||
import java.io.IOException;
|
||||
|
||||
public class GeronimoACE extends GenericPortlet {
|
||||
private String viewUrl = "/pages/Home.jsp"; // viewUrl is set to the home page by default
|
||||
boolean isHome = true; // used for navigating back to the home page.
|
||||
|
||||
|
||||
public void init(PortletConfig config) throws PortletException {
|
||||
super.init(config);
|
||||
}
|
||||
|
||||
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException {
|
||||
isHome = true;
|
||||
String task = request.getParameter("task"); // getting request parameters task and domain name
|
||||
String domain = request.getParameter("domainName");
|
||||
if (task != null) {
|
||||
if (task.equals("composites")) { // if the request is for Composites,forwarding to Composites.html
|
||||
viewUrl = "/pages/Composite.jsp";
|
||||
}
|
||||
if (task.equals("workspace")) { // if the request is for Contributions,forwarding to workspace.html
|
||||
viewUrl = "/pages/Workspace.jsp";
|
||||
}
|
||||
if (task.equals("cloud")) { // if the request is for Clouds,forwarding to Cloud.html
|
||||
viewUrl = "/pages/Cloud.jsp";
|
||||
}
|
||||
if (task.equals("files")) { // iif the request is for Files,forwarding to Files.html
|
||||
viewUrl = "/pages/Files.jsp";
|
||||
}
|
||||
}
|
||||
|
||||
response.setPortletMode(PortletMode.VIEW); // by changing portlet mode, doview methos is called again.
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
|
||||
// Set the response to read HTML
|
||||
response.setContentType("text/html;charset=UTF-8");
|
||||
|
||||
if (isHome) {
|
||||
// dispatching to the appropriate page
|
||||
PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher(viewUrl);
|
||||
dispatcher.include(request, response);
|
||||
isHome = false;
|
||||
} else {
|
||||
// dispatching to the home page.
|
||||
PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher("/pages/Home.jsp");
|
||||
dispatcher.include(request, response);
|
||||
isHome = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
384
sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Cloud.jsp
Normal file
384
sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Cloud.jsp
Normal file
|
|
@ -0,0 +1,384 @@
|
|||
<%--
|
||||
Created by IntelliJ IDEA.
|
||||
User: thilinamb
|
||||
Date: Jul 30, 2008
|
||||
Time: 3:13:19 PM
|
||||
To change this template use File | Settings | File Templates.
|
||||
--%>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ include file="header.jsp" %>
|
||||
<html>
|
||||
<head><title>SCA Domain - Cloud</title>
|
||||
|
||||
<script type="text/javascript" src="cloud.js"></script>
|
||||
<script type="text/javascript" src="utils.js"></script>
|
||||
|
||||
<script language="JavaScript">
|
||||
|
||||
//@Reference
|
||||
var cloudComposite = new Reference("cloudComposite");
|
||||
|
||||
//@Reference
|
||||
var domainComposite = new Reference("domainComposite");
|
||||
|
||||
//@Reference
|
||||
var processCollection = new Reference("processCollection");
|
||||
|
||||
function getNodes() {
|
||||
cloudComposite.get("", getNodesResponse);
|
||||
}
|
||||
|
||||
function contributionURI(id) {
|
||||
var i = id.indexOf(';');
|
||||
return id.substring(10, i);
|
||||
}
|
||||
|
||||
function compositeName(id) {
|
||||
var i = id.indexOf(';');
|
||||
return id.substring(i + 1);
|
||||
}
|
||||
|
||||
function compositeLocalName(id) {
|
||||
name = compositeName(id);
|
||||
var i = name.indexOf(';');
|
||||
return name.substring(i + 1);
|
||||
}
|
||||
|
||||
var nodeNames;
|
||||
|
||||
function getNodesResponse(feed) {
|
||||
nodeNames = new Array();
|
||||
if (feed != null) {
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
var composites = "";
|
||||
composites += '<table width="100%">';
|
||||
composites += '<tr><th>Node</th><th>Status</th><th>Composite</th>' +
|
||||
'<th>Contribution</th><th>Node Config</th></tr>';
|
||||
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var nodeId = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
|
||||
var links = entries[i].getElementsByTagName("link");
|
||||
var nodeLink = undefined;
|
||||
var compositeLink = undefined;
|
||||
var compositeId = "composite:undefined;undefined;undefined";
|
||||
var uri = '<span style="color: red">unknown</span>';
|
||||
var qname = undefined;
|
||||
for (var l = 0; l < links.length; l++) {
|
||||
var a = links[l].getAttribute('rel');
|
||||
if (a == undefined) {
|
||||
nodeLink = links[l].getAttribute('href');
|
||||
} else if (a == 'related') {
|
||||
compositeLink = links[l].getAttribute('href');
|
||||
var c = compositeLink.indexOf('composite:');
|
||||
compositeId = compositeLink.substring(c);
|
||||
uri = contributionURI(compositeId);
|
||||
qname = compositeName(compositeId);
|
||||
}
|
||||
}
|
||||
|
||||
var nodeName = compositeLocalName(nodeId);
|
||||
nodeNames[i] = nodeName;
|
||||
|
||||
var content = "";
|
||||
if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
|
||||
content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
|
||||
}
|
||||
|
||||
composites += '<tr>'
|
||||
if (content.indexOf('<span id="problem"') != -1) {
|
||||
composites += '<td><input name="composites" type="checkbox" value="' + nodeId + '">' +
|
||||
'<a href=\"' + nodeLink + '\">' + nodeName + '</a></td>';
|
||||
composites += '<td><span id="status_' + nodeName + '">unknown</span></td>';
|
||||
composites += '<td>' + content + '</td>';
|
||||
composites += '<td>' + uri + '</td>';
|
||||
} else {
|
||||
composites += '<td><input name="composites" type="checkbox" value="' + nodeId + '">' +
|
||||
'<a href=\"' + nodeLink + '\">' + nodeName + '</a></td>';
|
||||
composites += '<td><span id="status_' + nodeName + '">unknown</span></td>';
|
||||
composites += '<td><a href=\"' + compositeLink + '\">' + qname + '</a></td>';
|
||||
composites += '<td><a href="/contribution/' + uri + '">' + uri + '</a></td>';
|
||||
}
|
||||
composites += '<td><a href="/node-config/' + nodeName + '"><img src="icons/feed-icon.png" border="0"></a></td>';
|
||||
composites += '</tr>';
|
||||
}
|
||||
composites += '</table>';
|
||||
document.getElementById("composites").innerHTML = composites;
|
||||
|
||||
processCollection.get("", getProcessesResponse);
|
||||
}
|
||||
}
|
||||
|
||||
function getProcessesResponse(feed) {
|
||||
if (feed != null) {
|
||||
var nodeStatus = new Array();
|
||||
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var nodeName = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
|
||||
nodeStatus[nodeName] = 'started';
|
||||
}
|
||||
|
||||
for (var i = 0; i < nodeNames.length; i++) {
|
||||
var element = document.getElementById('status_' + nodeNames[i]);
|
||||
var nodeName = nodeNames[i];
|
||||
if (nodeStatus[nodeName] == null) {
|
||||
element.innerHTML = '<span>stopped</span>';
|
||||
} else {
|
||||
element.innerHTML = '<span><a style="color: green" href="/processes/?node=' + nodeName + '">started</a></span>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteNode() {
|
||||
var composites = array(document.cloudCompositeForm.composites);
|
||||
for (var i = 0; i < composites.length; i++) {
|
||||
if (composites[i].checked) {
|
||||
var id = composites[i].value;
|
||||
cloudComposite.del(id, deleteNodeResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteNodeResponse() {
|
||||
getNodes();
|
||||
}
|
||||
|
||||
function addNode() {
|
||||
var nodeName = document.newNodeForm.nodeName.value;
|
||||
var nodeURI = document.newNodeForm.nodeURI.value;
|
||||
var compositeNamespace = document.newNodeForm.compositeNamespace.value;
|
||||
var compositeName = document.newNodeForm.compositeName.value;
|
||||
var contributionURI = document.newNodeForm.contributionURI.value;
|
||||
var id = 'composite:' +
|
||||
'http://tuscany.apache.org/cloud' + ';' +
|
||||
'http://tuscany.apache.org/cloud' + ';' +
|
||||
nodeName;
|
||||
|
||||
var entry = '<entry xmlns="http://www.w3.org/2005/Atom">\n' +
|
||||
'<id>' + id + '</id>\n' +
|
||||
'<content type="text/xml">\n' +
|
||||
'<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"\n' +
|
||||
' xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"\n' +
|
||||
' targetNamespace="http://tuscany.apache.org/cloud"\n' +
|
||||
' xmlns:c="' + compositeNamespace + '"\n' +
|
||||
' name="' + nodeName + '">\n' +
|
||||
'\n' +
|
||||
' <component name="' + nodeName + '">\n' +
|
||||
' <t:implementation.node uri="' + contributionURI + '" composite="c:' + compositeName + '"/>\n' +
|
||||
' <service name="Node">\n' +
|
||||
' <binding.ws uri="' + nodeURI + '"/>\n' +
|
||||
' <t:binding.http uri="' + nodeURI + '"/>\n' +
|
||||
' <t:binding.jsonrpc uri="' + nodeURI + '"/>\n' +
|
||||
' <t:binding.atom uri="' + nodeURI + '"/>\n' +
|
||||
' </service>\n' +
|
||||
' </component>\n' +
|
||||
'</composite>' +
|
||||
'</content>' +
|
||||
'</entry>';
|
||||
cloudComposite.post(entry, addNodeResponse);
|
||||
}
|
||||
|
||||
function addNodeResponse() {
|
||||
document.newNodeForm.nodeName.value = "";
|
||||
document.newNodeForm.nodeURI.value = "";
|
||||
document.newNodeForm.compositeNamespace.value = "";
|
||||
document.newNodeForm.compositeName.value = "";
|
||||
document.newNodeForm.contributionURI.value = "";
|
||||
getNodes();
|
||||
}
|
||||
|
||||
function startNode() {
|
||||
var composites = array(document.cloudCompositeForm.composites);
|
||||
for (var i = 0; i < composites.length; i++) {
|
||||
if (composites[i].checked) {
|
||||
var id = nodeNames[i];
|
||||
|
||||
var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' +
|
||||
'<id>' + id + '</id>' +
|
||||
'</entry>';
|
||||
processCollection.post(entry, startNodeResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function startNodeResponse() {
|
||||
processCollection.get("", getProcessesResponse);
|
||||
|
||||
for (var i = 0; i < composites.length; i++) {
|
||||
if (composites[i].checked) {
|
||||
composites[i].checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function stopNode() {
|
||||
var composites = array(document.cloudCompositeForm.composites);
|
||||
for (var i = 0; i < composites.length; i++) {
|
||||
if (composites[i].checked) {
|
||||
var id = nodeNames[i];
|
||||
processCollection.del(id, stopNodeResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function stopNodeResponse() {
|
||||
processCollection.get("", getProcessesResponse);
|
||||
|
||||
for (var i = 0; i < composites.length; i++) {
|
||||
if (composites[i].checked) {
|
||||
composites[i].checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var deployedComposites = new Array();
|
||||
|
||||
function getComposites() {
|
||||
domainComposite.get("", getCompositesResponse);
|
||||
}
|
||||
|
||||
function getCompositesResponse(feed) {
|
||||
if (feed != null) {
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
|
||||
deployedComposites[id] = id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function suggestCompositeNamespaces() {
|
||||
var namespaces = new Array();
|
||||
for (var uri in deployedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var ns = qname.substring(0, qname.indexOf(';'));
|
||||
namespaces[ns] = ns;
|
||||
}
|
||||
return array(namespaces);
|
||||
}
|
||||
|
||||
function suggestCompositeNames() {
|
||||
var inputns = document.newNodeForm.compositeNamespace.value;
|
||||
var names = new Array();
|
||||
for (var uri in deployedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var sc = qname.indexOf(';');
|
||||
var ns = qname.substring(0, sc);
|
||||
var name = qname.substring(sc + 1);
|
||||
if (ns == inputns || inputns == "") {
|
||||
names[name] = name;
|
||||
}
|
||||
}
|
||||
return array(names);
|
||||
}
|
||||
|
||||
function suggestContributionURIs() {
|
||||
var inputns = document.newNodeForm.compositeNamespace.value;
|
||||
var inputname = document.newNodeForm.compositeName.value;
|
||||
var uris = new Array();
|
||||
for (var uri in deployedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var sc = qname.indexOf(';');
|
||||
var ns = qname.substring(0, sc);
|
||||
var name = qname.substring(sc + 1);
|
||||
if ((ns == inputns || inputns == "") && (name == inputname || inputname == "")) {
|
||||
var curi = contributionURI(uri);
|
||||
uris[curi] = curi;
|
||||
}
|
||||
}
|
||||
return array(uris);
|
||||
}
|
||||
|
||||
function init() {
|
||||
toolbar();
|
||||
getNodes();
|
||||
getComposites();
|
||||
suggest(document.newNodeForm.compositeNamespace, suggestCompositeNamespaces);
|
||||
suggest(document.newNodeForm.compositeName, suggestCompositeNames);
|
||||
suggest(document.newNodeForm.contributionURI, suggestContributionURIs);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/pages/manager.css">
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<div id="toolbar"></div>
|
||||
|
||||
<div id="cloudComposite">
|
||||
<br>
|
||||
<span class=hd1>
|
||||
SCA Domain<br><br>
|
||||
<b>Cloud</b>
|
||||
</span>
|
||||
<br><br>
|
||||
Here is the list of SCA nodes configured in your SCA domain cloud.
|
||||
<br><br>
|
||||
|
||||
<form name="cloudCompositeForm">
|
||||
<div id="composites">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Node</th>
|
||||
<th>Status</th>
|
||||
<th>Composite</th>
|
||||
<th>Contribution</th>
|
||||
<th>Node Config</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<input type="button" value="Start" onclick="startNode()"/>
|
||||
<input type="button" value="Stop" onclick="stopNode()"/>
|
||||
<input type="button" value="Delete" onclick="deleteNode()"/>
|
||||
</form>
|
||||
|
||||
<br><br>
|
||||
|
||||
<form name="newNodeForm">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th>Add a Node</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add a node to the cloud. The node will run the SCA components declared in the specified composite.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Node name:</td>
|
||||
<td><input type="text" name="nodeName" size="50"/></td>
|
||||
<td>e.g. YourNode</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Node URI:</td>
|
||||
<td><input type="text" name="nodeURI" size="50"/></td>
|
||||
<td>e.g. http://yourhost:8080</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Composite namespace:</td>
|
||||
<td><input type="text" name="compositeNamespace" size="50"/></td>
|
||||
<td>e.g. http://your/namespace</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Composite name:</td>
|
||||
<td><input type="text" name="compositeName" size="50"/></td>
|
||||
<td>e.g. yourcomposite</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Contribution URI:</td>
|
||||
<td><input type="text" name="contributionURI" size="50"/></td>
|
||||
<td>e.g. yourcontrib, http://yourcontrib</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="button" onClick="addNode()" value="Add"/>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,286 +1,291 @@
|
|||
<!--
|
||||
* 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.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>SCA Domain - Domain Composite</title>
|
||||
|
||||
<script type="text/javascript" src="composite.js"></script>
|
||||
<script type="text/javascript" src="utils.js"></script>
|
||||
|
||||
<script language="JavaScript">
|
||||
|
||||
//@Reference
|
||||
var domainComposite = new Reference("domainComposite");
|
||||
|
||||
//@Reference
|
||||
var workspace = new Reference("workspace");
|
||||
|
||||
function getComposites() {
|
||||
domainComposite.get("", getCompositesResponse);
|
||||
}
|
||||
|
||||
function contributionURI(id) {
|
||||
var i = id.indexOf(';');
|
||||
return id.substring(10, i);
|
||||
}
|
||||
|
||||
function compositeName(id) {
|
||||
var i = id.indexOf(';');
|
||||
return id.substring(i + 1);
|
||||
}
|
||||
|
||||
function getCompositesResponse(feed) {
|
||||
if (feed != null) {
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
var composites = "";
|
||||
composites += '<table width="100%">';
|
||||
composites += '<tr><th>Composite</th>' +
|
||||
'<th>Contribution</th>' +
|
||||
'<th>Components</th>' +
|
||||
'</tr>';
|
||||
//'<th>Composite Configuration</th>' +
|
||||
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
|
||||
var link = entries[i].getElementsByTagName("link")[0].getAttribute("href");
|
||||
var uri = contributionURI(id);
|
||||
var qname = compositeName(id);
|
||||
|
||||
var content = "";
|
||||
if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
|
||||
content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
|
||||
}
|
||||
var components = '';
|
||||
var bs = content.indexOf('<span id="components">');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
components = content.substring(bs, es + 7);
|
||||
} else {
|
||||
bs = content.indexOf('<span id="problem"');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
components = content.substring(bs, es + 7);
|
||||
}
|
||||
}
|
||||
|
||||
composites += '<tr>'
|
||||
composites += '<td><input name="composites" type="checkbox" value="' + id + '">';
|
||||
composites += '<a href=\"' + link + '\">' + qname + '</a></td>';
|
||||
composites += '<td><a href="/contribution/' + uri + '">' + uri + '</a></td>';
|
||||
composites += '<td class=tdw>' + components + '</td>';
|
||||
//composites += '<td><a href="/composite-config/?composite=' + id + '"><img src="icons/feed-icon.png" border="0"></a></td>';
|
||||
composites += '</tr>';
|
||||
}
|
||||
composites += '</table>';
|
||||
document.getElementById("composites").innerHTML = composites;
|
||||
}
|
||||
}
|
||||
|
||||
function deleteComposite() {
|
||||
var composites = array(document.domainCompositeForm.composites);
|
||||
for (var i = 0; i < composites.length; i++) {
|
||||
if (composites[i].checked) {
|
||||
var id = composites[i].value;
|
||||
domainComposite.del(id, deleteCompositeResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteCompositeResponse() {
|
||||
getComposites();
|
||||
}
|
||||
|
||||
function addComposite() {
|
||||
var id = 'composite:' +
|
||||
document.newCompositeForm.contributionURI.value + ';' +
|
||||
document.newCompositeForm.compositeNamespace.value + ';' +
|
||||
document.newCompositeForm.compositeName.value;
|
||||
var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' +
|
||||
'<title>' + id + '</title>' +
|
||||
'<id>' + id + '</id>' +
|
||||
'</entry>';
|
||||
domainComposite.post(entry, addCompositeResponse);
|
||||
}
|
||||
|
||||
function addCompositeResponse() {
|
||||
document.newCompositeForm.compositeNamespace.value = "";
|
||||
document.newCompositeForm.compositeName.value = "";
|
||||
document.newCompositeForm.contributionURI.value = "";
|
||||
getComposites();
|
||||
}
|
||||
|
||||
var contributedComposites = new Array();
|
||||
|
||||
function getContributions() {
|
||||
workspace.get("", getContributionsResponse);
|
||||
}
|
||||
|
||||
function getContributionsResponse(feed) {
|
||||
if (feed != null) {
|
||||
contributedComposites = new Array();
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
|
||||
var content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
|
||||
var bs = content.indexOf('<span id="deployables">');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
content = content.substring(bs, es + 7);
|
||||
for (; ;) {
|
||||
var bc = content.indexOf('composite:');
|
||||
if (bc == -1) {
|
||||
break;
|
||||
}
|
||||
var ec = content.indexOf('">', bc);
|
||||
if (ec == -1) {
|
||||
break;
|
||||
}
|
||||
var uri = content.substring(bc, ec);
|
||||
contributedComposites[uri] = uri;
|
||||
content = content.substring(ec + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function suggestCompositeNamespaces() {
|
||||
var namespaces = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var ns = qname.substring(0, qname.indexOf(';'));
|
||||
namespaces[ns] = ns;
|
||||
}
|
||||
return array(namespaces);
|
||||
}
|
||||
|
||||
function suggestCompositeNames() {
|
||||
var inputns = document.newCompositeForm.compositeNamespace.value;
|
||||
var names = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var sc = qname.indexOf(';');
|
||||
var ns = qname.substring(0, sc);
|
||||
var name = qname.substring(sc + 1);
|
||||
if (ns == inputns || inputns == "") {
|
||||
names[name] = name;
|
||||
}
|
||||
}
|
||||
return array(names);
|
||||
}
|
||||
|
||||
function suggestContributionURIs() {
|
||||
var inputns = document.newCompositeForm.compositeNamespace.value;
|
||||
var inputname = document.newCompositeForm.compositeName.value;
|
||||
var uris = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var sc = qname.indexOf(';');
|
||||
var ns = qname.substring(0, sc);
|
||||
var name = qname.substring(sc + 1);
|
||||
if ((ns == inputns || inputns == "") && (name == inputname || inputname == "")) {
|
||||
var curi = contributionURI(uri);
|
||||
uris[curi] = curi;
|
||||
}
|
||||
}
|
||||
return array(uris);
|
||||
}
|
||||
|
||||
function init() {
|
||||
toolbar();
|
||||
getComposites();
|
||||
getContributions();
|
||||
suggest(document.newCompositeForm.compositeNamespace, suggestCompositeNamespaces);
|
||||
suggest(document.newCompositeForm.compositeName, suggestCompositeNames);
|
||||
suggest(document.newCompositeForm.contributionURI, suggestContributionURIs);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="manager.css">
|
||||
</head>
|
||||
|
||||
<body onload="init()">
|
||||
<div id="toolbar"></div>
|
||||
|
||||
<div id="domainComposite">
|
||||
<br>
|
||||
<span class=hd1>
|
||||
SCA Domain<br><br>
|
||||
<b>Domain Composite</b>
|
||||
</span>
|
||||
<br><br>
|
||||
Here is the list of SCA composites currently included as top-level composites in your SCA domain.
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
<form name="domainCompositeForm">
|
||||
<form name="domainCompositeForm">
|
||||
<div id="composites">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Composite</th>
|
||||
<th>Contribution</th>
|
||||
<th>Components</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<input type="button" value="Delete" onclick="deleteComposite()"/>
|
||||
</form>
|
||||
|
||||
<br><br>
|
||||
|
||||
<form name="newCompositeForm">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th>Add Composite</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add an SCA composite describing your SCA service components.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Composite namespace:</td>
|
||||
<td><input type="text" name="compositeNamespace" size="50"/></td>
|
||||
<td>e.g. http://your/namespace</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Composite name:</td>
|
||||
<td><input type="text" name="compositeName" size="50"/></td>
|
||||
<td>e.g. yourcomposite</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Contribution URI:</td>
|
||||
<td><input type="text" name="contributionURI" size="50"/></td>
|
||||
<td>e.g. yourcontrib, http://yourcontrib</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="button" onClick="addComposite()" value="Add"/>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<!--
|
||||
* 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.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>SCA Domain - Domain Composite</title>
|
||||
|
||||
<script type="text/javascript" src="composite.js"></script>
|
||||
<script type="text/javascript" src="utils.js"></script>
|
||||
|
||||
<script language="JavaScript">
|
||||
|
||||
//@Reference
|
||||
var domainComposite = new Reference("domainComposite");
|
||||
|
||||
//@Reference
|
||||
var workspace = new Reference("workspace");
|
||||
|
||||
function getComposites() {
|
||||
domainComposite.get("", getCompositesResponse);
|
||||
}
|
||||
|
||||
function contributionURI(id) {
|
||||
var i = id.indexOf(';');
|
||||
return id.substring(10, i);
|
||||
}
|
||||
|
||||
function compositeName(id) {
|
||||
var i = id.indexOf(';');
|
||||
return id.substring(i + 1);
|
||||
}
|
||||
|
||||
function getCompositesResponse(feed) {
|
||||
if (feed != null) {
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
var composites = "";
|
||||
composites += '<table width="100%">';
|
||||
composites += '<tr><th>Composite</th>' +
|
||||
'<th>Contribution</th>' +
|
||||
'<th>Components</th>' +
|
||||
'</tr>';
|
||||
//'<th>Composite Configuration</th>' +
|
||||
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
|
||||
var link = entries[i].getElementsByTagName("link")[0].getAttribute("href");
|
||||
var uri = contributionURI(id);
|
||||
var qname = compositeName(id);
|
||||
|
||||
var content = "";
|
||||
if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
|
||||
content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
|
||||
}
|
||||
var components = '';
|
||||
var bs = content.indexOf('<span id="components">'); http://localhost:8080/console/portal//Tuscany ACE/__pm0x3GeronimoACE0x2GeronimoACE!353877598|0_view
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
components = content.substring(bs, es + 7);
|
||||
} else {
|
||||
bs = content.indexOf('<span id="problem"');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
components = content.substring(bs, es + 7);
|
||||
}
|
||||
}
|
||||
|
||||
composites += '<tr>'
|
||||
composites += '<td><input name="composites" type="checkbox" value="' + id + '">';
|
||||
composites += '<a href=\"' + link + '\">' + qname + '</a></td>';
|
||||
composites += '<td><a href="/contribution/' + uri + '">' + uri + '</a></td>';
|
||||
composites += '<td class=tdw>' + components + '</td>';
|
||||
//composites += '<td><a href="/composite-config/?composite=' + id + '"><img src="icons/feed-icon.png" border="0"></a></td>';
|
||||
composites += '</tr>';
|
||||
}
|
||||
composites += '</table>';
|
||||
document.getElementById("composites").innerHTML = composites;
|
||||
}
|
||||
}
|
||||
|
||||
function deleteComposite() {
|
||||
Console.Out.WriteLine("This will generate an exception.");
|
||||
var composites = array(document.domainCompositeForm.composites);
|
||||
for (var i = 0; i < composites.length; i++) {
|
||||
if (composites[i].checked) {
|
||||
var id = composites[i].value;
|
||||
domainComposite.del(id, deleteCompositeResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteCompositeResponse() {
|
||||
|
||||
getComposites();
|
||||
}
|
||||
|
||||
function addComposite() {
|
||||
var id = 'composite:' +
|
||||
document.newCompositeForm.contributionURI.value + ';' +
|
||||
document.newCompositeForm.compositeNamespace.value + ';' +
|
||||
document.newCompositeForm.compositeName.value;
|
||||
var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' +
|
||||
'<title>' + id + '</title>' +
|
||||
'<id>' + id + '</id>' +
|
||||
'</entry>';
|
||||
domainComposite.post(entry, addCompositeResponse);
|
||||
}
|
||||
|
||||
function addCompositeResponse() {
|
||||
document.newCompositeForm.compositeNamespace.value = "";
|
||||
document.newCompositeForm.compositeName.value = "";
|
||||
document.newCompositeForm.contributionURI.value = "";
|
||||
getComposites();
|
||||
}
|
||||
|
||||
var contributedComposites = new Array();
|
||||
|
||||
function getContributions() {
|
||||
workspace.get("", getContributionsResponse);
|
||||
}
|
||||
|
||||
function getContributionsResponse(feed) {
|
||||
if (feed != null) {
|
||||
contributedComposites = new Array();
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
|
||||
var content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
|
||||
var bs = content.indexOf('<span id="deployables">');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
content = content.substring(bs, es + 7);
|
||||
for (; ;) {
|
||||
var bc = content.indexOf('composite:');
|
||||
if (bc == -1) {
|
||||
break;
|
||||
}
|
||||
var ec = content.indexOf('">', bc);
|
||||
if (ec == -1) {
|
||||
break;
|
||||
}
|
||||
var uri = content.substring(bc, ec);
|
||||
contributedComposites[uri] = uri;
|
||||
content = content.substring(ec + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function suggestCompositeNamespaces() {
|
||||
var namespaces = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var ns = qname.substring(0, qname.indexOf(';'));
|
||||
namespaces[ns] = ns;
|
||||
}
|
||||
return array(namespaces);
|
||||
}
|
||||
|
||||
function suggestCompositeNames() {
|
||||
var inputns = document.newCompositeForm.compositeNamespace.value;
|
||||
var names = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var sc = qname.indexOf(';');
|
||||
var ns = qname.substring(0, sc);
|
||||
var name = qname.substring(sc + 1);
|
||||
if (ns == inputns || inputns == "") {
|
||||
names[name] = name;
|
||||
}
|
||||
}
|
||||
return array(names);
|
||||
}
|
||||
|
||||
function suggestContributionURIs() {
|
||||
var inputns = document.newCompositeForm.compositeNamespace.value;
|
||||
var inputname = document.newCompositeForm.compositeName.value;
|
||||
var uris = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var sc = qname.indexOf(';');
|
||||
var ns = qname.substring(0, sc);
|
||||
var name = qname.substring(sc + 1);
|
||||
if ((ns == inputns || inputns == "") && (name == inputname || inputname == "")) {
|
||||
var curi = contributionURI(uri);
|
||||
uris[curi] = curi;
|
||||
}
|
||||
}
|
||||
return array(uris);
|
||||
}
|
||||
function echo(){
|
||||
|
||||
}
|
||||
|
||||
function init() {
|
||||
toolbar();
|
||||
getComposites();
|
||||
getContributions();
|
||||
suggest(document.newCompositeForm.compositeNamespace, suggestCompositeNamespaces);
|
||||
suggest(document.newCompositeForm.compositeName, suggestCompositeNames);
|
||||
suggest(document.newCompositeForm.contributionURI, suggestContributionURIs);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="manager.css">
|
||||
</head>
|
||||
|
||||
<body onload="init()">
|
||||
<div id="toolbar"></div>
|
||||
|
||||
<div id="domainComposite">
|
||||
<br>
|
||||
<span class=hd1>
|
||||
SCA Domain<br><br>
|
||||
<b>Domain Composite</b>
|
||||
</span>
|
||||
<br><br>
|
||||
Here is the list of SCA composites currently included as top-level composites in your SCA domain.
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
<form name="domainCompositeForm">
|
||||
<form name="domainCompositeForm">
|
||||
<div id="composites">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Composite</th>
|
||||
<th>Contribution</th>
|
||||
<th>Components</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<input type="button" value="Delete" onclick="deleteComposite()"/>
|
||||
</form>
|
||||
|
||||
<br><br>
|
||||
|
||||
<form name="newCompositeForm">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th>Add Composite</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add an SCA composite describing your SCA service components.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Composite namespace:</td>
|
||||
<td><input type="text" name="compositeNamespace" size="50"/></td>
|
||||
<td>e.g. http://your/namespace</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Composite name:</td>
|
||||
<td><input type="text" name="compositeName" size="50"/></td>
|
||||
<td>e.g. yourcomposite</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Contribution URI:</td>
|
||||
<td><input type="text" name="contributionURI" size="50"/></td>
|
||||
<td>e.g. yourcontrib, http://yourcontrib</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="button" onClick="addComposite()" value="Add"/>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
282
sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Composite.jsp
Normal file
282
sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Composite.jsp
Normal file
|
|
@ -0,0 +1,282 @@
|
|||
<%--
|
||||
Created by IntelliJ IDEA.
|
||||
User: thilinamb
|
||||
Date: Jul 25, 2008
|
||||
Time: 5:52:31 PM
|
||||
To change this template use File | Settings | File Templates.
|
||||
--%>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ include file="header.jsp" %>
|
||||
<html>
|
||||
<head>
|
||||
<title>SCA Domain - Domain Composite</title>
|
||||
|
||||
<script type="text/javascript" src="composite.js"></script>
|
||||
<script type="text/javascript" src="utils.js"></script>
|
||||
|
||||
<script language="JavaScript">
|
||||
|
||||
//@Reference
|
||||
var domainComposite = new Reference("domainComposite");
|
||||
|
||||
//@Reference
|
||||
var workspace = new Reference("workspace");
|
||||
|
||||
function getComposites() {
|
||||
domainComposite.get("", getCompositesResponse);
|
||||
}
|
||||
|
||||
function contributionURI(id) {
|
||||
var i = id.indexOf(';');
|
||||
return id.substring(10, i);
|
||||
}
|
||||
|
||||
function compositeName(id) {
|
||||
var i = id.indexOf(';');
|
||||
return id.substring(i + 1);
|
||||
}
|
||||
|
||||
function getCompositesResponse(feed) {
|
||||
if (feed != null) {
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
var composites = "";
|
||||
composites += '<table width="100%">';
|
||||
composites += '<tr><th>Composite</th>' +
|
||||
'<th>Contribution</th>' +
|
||||
'<th>Components</th>' +
|
||||
'</tr>';
|
||||
//'<th>Composite Configuration</th>' +
|
||||
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
|
||||
var link = entries[i].getElementsByTagName("link")[0].getAttribute("href");
|
||||
var uri = contributionURI(id);
|
||||
var qname = compositeName(id);
|
||||
|
||||
var content = "";
|
||||
if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
|
||||
content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
|
||||
}
|
||||
var components = '';
|
||||
var bs = content.indexOf('<span id="components">');
|
||||
http://localhost:8080/console/portal//Tuscany ACE/__pm0x3GeronimoACE0x2GeronimoACE!353877598|0_view
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
components = content.substring(bs, es + 7);
|
||||
} else {
|
||||
bs = content.indexOf('<span id="problem"');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
components = content.substring(bs, es + 7);
|
||||
}
|
||||
}
|
||||
|
||||
composites += '<tr>'
|
||||
composites += '<td><input name="composites" type="checkbox" value="' + id + '">';
|
||||
composites += '<a href=\"' + link + '\">' + qname + '</a></td>';
|
||||
composites += '<td><a href="/contribution/' + uri + '">' + uri + '</a></td>';
|
||||
composites += '<td class=tdw>' + components + '</td>';
|
||||
//composites += '<td><a href="/composite-config/?composite=' + id + '"><img src="icons/feed-icon.png" border="0"></a></td>';
|
||||
composites += '</tr>';
|
||||
}
|
||||
composites += '</table>';
|
||||
document.getElementById("composites").innerHTML = composites;
|
||||
}
|
||||
}
|
||||
|
||||
function deleteComposite() {
|
||||
Console.Out.WriteLine("Testing was Successfull !!!");
|
||||
var composites = array(document.domainCompositeForm.composites);
|
||||
for (var i = 0; i < composites.length; i++) {
|
||||
if (composites[i].checked) {
|
||||
var id = composites[i].value;
|
||||
domainComposite.del(id, deleteCompositeResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteCompositeResponse() {
|
||||
getComposites();
|
||||
}
|
||||
|
||||
function addComposite() {
|
||||
var id = 'composite:' +
|
||||
document.newCompositeForm.contributionURI.value + ';' +
|
||||
document.newCompositeForm.compositeNamespace.value + ';' +
|
||||
document.newCompositeForm.compositeName.value;
|
||||
var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' +
|
||||
'<title>' + id + '</title>' +
|
||||
'<id>' + id + '</id>' +
|
||||
'</entry>';
|
||||
domainComposite.post(entry, addCompositeResponse);
|
||||
}
|
||||
|
||||
function addCompositeResponse() {
|
||||
document.newCompositeForm.compositeNamespace.value = "";
|
||||
document.newCompositeForm.compositeName.value = "";
|
||||
document.newCompositeForm.contributionURI.value = "";
|
||||
getComposites();
|
||||
}
|
||||
|
||||
var contributedComposites = new Array();
|
||||
|
||||
function getContributions() {
|
||||
workspace.get("", getContributionsResponse);
|
||||
}
|
||||
|
||||
function getContributionsResponse(feed) {
|
||||
if (feed != null) {
|
||||
contributedComposites = new Array();
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
|
||||
var content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
|
||||
var bs = content.indexOf('<span id="deployables">');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
content = content.substring(bs, es + 7);
|
||||
for (; ;) {
|
||||
var bc = content.indexOf('composite:');
|
||||
if (bc == -1) {
|
||||
break;
|
||||
}
|
||||
var ec = content.indexOf('">', bc);
|
||||
if (ec == -1) {
|
||||
break;
|
||||
}
|
||||
var uri = content.substring(bc, ec);
|
||||
contributedComposites[uri] = uri;
|
||||
content = content.substring(ec + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function suggestCompositeNamespaces() {
|
||||
var namespaces = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var ns = qname.substring(0, qname.indexOf(';'));
|
||||
namespaces[ns] = ns;
|
||||
}
|
||||
return array(namespaces);
|
||||
}
|
||||
|
||||
function suggestCompositeNames() {
|
||||
var inputns = document.newCompositeForm.compositeNamespace.value;
|
||||
var names = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var sc = qname.indexOf(';');
|
||||
var ns = qname.substring(0, sc);
|
||||
var name = qname.substring(sc + 1);
|
||||
if (ns == inputns || inputns == "") {
|
||||
names[name] = name;
|
||||
}
|
||||
}
|
||||
return array(names);
|
||||
}
|
||||
|
||||
function suggestContributionURIs() {
|
||||
var inputns = document.newCompositeForm.compositeNamespace.value;
|
||||
var inputname = document.newCompositeForm.compositeName.value;
|
||||
var uris = new Array();
|
||||
for (var uri in contributedComposites) {
|
||||
var qname = compositeName(uri);
|
||||
var sc = qname.indexOf(';');
|
||||
var ns = qname.substring(0, sc);
|
||||
var name = qname.substring(sc + 1);
|
||||
if ((ns == inputns || inputns == "") && (name == inputname || inputname == "")) {
|
||||
var curi = contributionURI(uri);
|
||||
uris[curi] = curi;
|
||||
}
|
||||
}
|
||||
return array(uris);
|
||||
}
|
||||
function echo() {
|
||||
return "hello";
|
||||
}
|
||||
|
||||
function init() {
|
||||
toolbar();
|
||||
getComposites();
|
||||
getContributions();
|
||||
suggest(document.newCompositeForm.compositeNamespace, suggestCompositeNamespaces);
|
||||
suggest(document.newCompositeForm.compositeName, suggestCompositeNames);
|
||||
suggest(document.newCompositeForm.contributionURI, suggestContributionURIs);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="manager.css">
|
||||
</head>
|
||||
|
||||
<body onload="init()">
|
||||
<div id="toolbar"></div>
|
||||
|
||||
<div id="domainComposite">
|
||||
<br>
|
||||
<span class=hd1>
|
||||
SCA Domain<br><br>
|
||||
<b>Domain Composite</b>
|
||||
</span>
|
||||
<br><br>
|
||||
Here is the list of SCA composites currently included as top-level composites in your SCA domain.
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
<form name="domainCompositeForm" action="<portlet:actionURL/>" method="post">
|
||||
<form name="domainCompositeForm">
|
||||
<div id="composites">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Composite</th>
|
||||
<th>Contribution</th>
|
||||
<th>Components</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<input type="button" value="Delete" onclick="deleteComposite()"/>
|
||||
</form>
|
||||
|
||||
<br><br>
|
||||
|
||||
<form name="newCompositeForm">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th>Add Composite</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add an SCA composite describing your SCA service components.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Composite namespace:</td>
|
||||
<td><input type="text" name="compositeNamespace" size="50"/></td>
|
||||
<td>e.g. http://your/namespace</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Composite name:</td>
|
||||
<td><input type="text" name="compositeName" size="50"/></td>
|
||||
<td>e.g. yourcomposite</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Contribution URI:</td>
|
||||
<td><input type="text" name="contributionURI" size="50"/></td>
|
||||
<td>e.g. yourcontrib, http://yourcontrib</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="button" onClick="addComposite()" value="Add"/>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
120
sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Files.jsp
Normal file
120
sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Files.jsp
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
<%--
|
||||
Created by IntelliJ IDEA.
|
||||
User: thilinamb
|
||||
Date: Jul 30, 2008
|
||||
Time: 3:18:21 PM
|
||||
To change this template use File | Settings | File Templates.
|
||||
--%>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ include file="header.jsp" %>
|
||||
<html>
|
||||
<head>
|
||||
<head>
|
||||
<title>SCA Domain - Contribution File Server</title>
|
||||
|
||||
<script type="text/javascript" src="files.js"></script>
|
||||
<script type="text/javascript" src="utils.js"></script>
|
||||
|
||||
<script language="JavaScript">
|
||||
|
||||
//@Reference
|
||||
var files = new Reference("files");
|
||||
|
||||
function getFiles() {
|
||||
files.get("", getFilesResponse);
|
||||
}
|
||||
|
||||
function getFilesResponse(feed) {
|
||||
if (feed != null) {
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
var list = '<table width="100%"><tr><th>Files</th></tr>';
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
|
||||
var location = entries[i].getElementsByTagName("link")[0].getAttribute("href");
|
||||
list += '<tr><td><input name="files" type="checkbox" value="' + id + '">' +
|
||||
'<a href=\"' + location + '\">' + id + '</a></td></tr>';
|
||||
}
|
||||
list += "</table>";
|
||||
document.getElementById("files").innerHTML = list;
|
||||
}
|
||||
}
|
||||
|
||||
function deleteFile() {
|
||||
var list = array(document.filesForm.files);
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
if (list[i].checked) {
|
||||
var id = list[i].value;
|
||||
files.del(id, deleteFileResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteFileResponse() {
|
||||
getFiles();
|
||||
}
|
||||
|
||||
function uploadFile() {
|
||||
document.uploadFileForm.submit();
|
||||
}
|
||||
|
||||
function init() {
|
||||
toolbar();
|
||||
getFiles();
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/pages/manager.css">
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<div id="toolbar"></div>
|
||||
|
||||
<div id="fileServer">
|
||||
<br>
|
||||
<span class=hd1>
|
||||
SCA Domain<br><br>
|
||||
<b>File Server</b>
|
||||
</span>
|
||||
<br><br>
|
||||
This is a simple ATOM-based file server useful to share files if you don't have an FTP, SVN or Maven repository.
|
||||
<br><br>
|
||||
|
||||
<form name="filesForm">
|
||||
<div id="files">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Files</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<input type="button" value="Delete" onclick="deleteFile()"/>
|
||||
</form>
|
||||
|
||||
<br><br>
|
||||
|
||||
<form method="post" name="uploadFileForm" enctype='multipart/form-data' action='/files'>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th>Upload File</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Upload a file to the server.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td>File:</td>
|
||||
<td><input type="file" name="file" size="50"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
<input type="button" onClick="uploadFile()" value="Upload"/>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
174
sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Workspace.jsp
Normal file
174
sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Workspace.jsp
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
<%--
|
||||
Created by IntelliJ IDEA.
|
||||
User: thilinamb
|
||||
Date: Jul 30, 2008
|
||||
Time: 3:20:23 PM
|
||||
To change this template use File | Settings | File Templates.
|
||||
--%>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%@ include file="header.jsp" %>
|
||||
<html>
|
||||
<head>
|
||||
<title>SCA Domain - Contributions</title>
|
||||
|
||||
<script type="text/javascript" src="workspace.js"></script>
|
||||
<script type="text/javascript" src="utils.js"></script>
|
||||
|
||||
<script language="JavaScript">
|
||||
|
||||
//@Reference
|
||||
var workspace = new Reference("workspace");
|
||||
|
||||
function getContributions() {
|
||||
workspace.get("", getContributionsResponse);
|
||||
}
|
||||
|
||||
function getContributionsResponse(feed) {
|
||||
if (feed != null) {
|
||||
var entries = feed.getElementsByTagName("entry");
|
||||
var contributions = "";
|
||||
contributions += '<table width="100%">';
|
||||
contributions += '<tr><th>Contribution</th><th>Dependencies</td><th>Deployable Composites</th></tr>';
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
|
||||
var location = entries[i].getElementsByTagName("link")[0].getAttribute("href");
|
||||
var content = '';
|
||||
if (entries[i].getElementsByTagName("content")[0].firstChild != null) {
|
||||
content = entries[i].getElementsByTagName("content")[0].firstChild.nodeValue;
|
||||
}
|
||||
|
||||
contributions += '<tr>';
|
||||
contributions += '<td><input name="contributions" type="checkbox" value="' + id + '">' +
|
||||
'<a href=\"' + location + '\">' + id + '</a></td>';
|
||||
|
||||
var dependencies = '';
|
||||
var bs = content.indexOf('<span id="dependencies">');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
dependencies = content.substring(bs, es + 7);
|
||||
}
|
||||
|
||||
var deployables = '';
|
||||
var bs = content.indexOf('<span id="deployables">');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
deployables = content.substring(bs, es + 7);
|
||||
}
|
||||
|
||||
var problems = "";
|
||||
var bs = content.indexOf('<span id="problems" ');
|
||||
if (bs != -1) {
|
||||
var es = content.indexOf('</span>', bs);
|
||||
if (dependencies.length != 0) {
|
||||
problems = '<br>';
|
||||
}
|
||||
problems += content.substring(bs, es + 7);
|
||||
}
|
||||
|
||||
contributions += '<td class=tdw>' + dependencies + problems + ' </td>';
|
||||
contributions += '<td class=tdw>' + deployables + '</td>';
|
||||
contributions += '</tr>';
|
||||
}
|
||||
contributions += '</table>';
|
||||
document.getElementById("contributions").innerHTML = contributions;
|
||||
}
|
||||
}
|
||||
|
||||
function deleteContribution() {
|
||||
var contributions = array(document.workspaceForm.contributions);
|
||||
for (var i = 0; i < contributions.length; i++) {
|
||||
if (contributions[i].checked) {
|
||||
var id = contributions[i].value;
|
||||
workspace.del(id, deleteContributionResponse);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function deleteContributionResponse() {
|
||||
getContributions();
|
||||
}
|
||||
|
||||
function addContribution() {
|
||||
var id = document.newContributionForm.contributionID.value;
|
||||
var location = document.newContributionForm.contributionLocation.value;
|
||||
var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' +
|
||||
'<title>Contribution - ' + id + '</title>' +
|
||||
'<id>' + id + '</id>' +
|
||||
'<link href="' + location + '" />' +
|
||||
'</entry>';
|
||||
workspace.post(entry, addContributionResponse);
|
||||
}
|
||||
|
||||
function addContributionResponse() {
|
||||
document.newContributionForm.contributionID.value = "";
|
||||
document.newContributionForm.contributionLocation.value = "";
|
||||
getContributions();
|
||||
}
|
||||
|
||||
function init() {
|
||||
toolbar();
|
||||
getContributions();
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/pages/manager.css">
|
||||
</head>
|
||||
<body onload="init()">
|
||||
<div id="toolbar"></div>
|
||||
|
||||
<div id="workspace">
|
||||
<br>
|
||||
<span class=hd1>
|
||||
SCA Domain<br><br>
|
||||
<b>Contributions</b></span>
|
||||
<br><br>
|
||||
Here is the list of SCA contributions currently available in your SCA domain.
|
||||
<br><br>
|
||||
|
||||
<form name="workspaceForm">
|
||||
<div id="contributions">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Contribution</th>
|
||||
<th>Dependencies</th>
|
||||
<th>Deployable Composites</th>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<br/>
|
||||
<input type="button" value="Delete" onclick="deleteContribution()"/>
|
||||
</form>
|
||||
|
||||
<br><br>
|
||||
|
||||
<form name="newContributionForm">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<th>Add Contribution</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Add an SCA contribution containing your application artifacts to the SCA domain.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Contribution URI:</td>
|
||||
<td><input type="text" name="contributionID" size="50"/></td>
|
||||
<td>e.g. yourcontrib, http://yourcontrib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Location:</td>
|
||||
<td><input type="text" name="contributionLocation" size="50"/></td>
|
||||
<td>e.g. http://host/yourjar.jar, file:/yourdir, file:/yourjar.jar</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="button" onClick="addContribution()" value="Add"/>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue