diff options
16 files changed, 1518 insertions, 537 deletions
diff --git a/sandbox/thilina/geronimo_ACE/README.txt b/sandbox/thilina/geronimo_ACE/README.txt index d6cd1b4339..fd53333d2a 100644 --- a/sandbox/thilina/geronimo_ACE/README.txt +++ b/sandbox/thilina/geronimo_ACE/README.txt @@ -1,22 +1,3 @@ -<!--
- ~ 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.
- -->
-
How to build the Admin Console Extension
========================================
diff --git a/sandbox/thilina/geronimo_ACE/pom.xml b/sandbox/thilina/geronimo_ACE/pom.xml index f5f2a8e7b6..54e2a02a36 100644 --- a/sandbox/thilina/geronimo_ACE/pom.xml +++ b/sandbox/thilina/geronimo_ACE/pom.xml @@ -18,46 +18,52 @@ * under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.tuscany.geronimoace</groupId>
- <artifactId>org.apache.tuscany.geronimoace.geronimo-ace</artifactId>
- <packaging>war</packaging>
- <version>1.0-SNAPSHOT</version>
- <name>geronimo-ace</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>javax.portlet</groupId>
- <artifactId>portlet-api</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.tuscany.geronimoace</groupId>
+ <artifactId>org.apache.tuscany.geronimoace.geronimo-ace</artifactId>
+ <packaging>war</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>geronimo-ace</name>
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>portlet-api</groupId>
+ <artifactId>portlet-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.portlet</groupId>
+ <artifactId>portlet-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
- <version>2.4</version> <!-- to keep compatible with older servlet containers -->
+ <version>2.4</version>
+ <!-- to keep compatible with older servlet containers -->
<scope>provided</scope>
- </dependency>
+ </dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
- <directory>${basedir}/target</directory>
- <finalName>${artifactId}-${version}</finalName>
- <resources>
- <resource>
- <targetPath>WEB-INF</targetPath>
- <filtering>false</filtering>
- <directory>${basedir}/src/webapp/WEB-INF</directory>
- <includes>
- <include>web.xml</include>
- </includes>
+ <directory>${basedir}/target</directory>
+ <finalName>${artifactId}-${version}</finalName>
+ <resources>
+ <resource>
+ <targetPath>WEB-INF</targetPath>
+ <filtering>false</filtering>
+ <directory>${basedir}/src/webapp/WEB-INF</directory>
+ <includes>
+ <include>web.xml</include>
+ </includes>
</resource>
</resources>
</build>
diff --git a/sandbox/thilina/geronimo_ACE/src/main/java/org/apache/tuscany/geronimoace/GeronimoACE.java b/sandbox/thilina/geronimo_ACE/src/main/java/org/apache/tuscany/geronimoace/GeronimoACE.java index f55776fc0a..3eb5b82ed3 100644 --- a/sandbox/thilina/geronimo_ACE/src/main/java/org/apache/tuscany/geronimoace/GeronimoACE.java +++ b/sandbox/thilina/geronimo_ACE/src/main/java/org/apache/tuscany/geronimoace/GeronimoACE.java @@ -1,79 +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.
- */
-
-/*
- * 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";
-
-
- public void init(PortletConfig config) throws PortletException {
- super.init(config);
- // viewUrl = config.getInitParameter("view_url");
- }
-
- public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException {
- String task = request.getParameter("task");
- String domain = request.getParameter("domainName");
- if (task != null) {
- if (task.equals("list")) {
- viewUrl = "/pages/ListDomains.jsp";
- }
- }
- if (domain != null) {
- request.setAttribute("domain", domain);
- viewUrl = "/pages/ManageDomain.jsp";
- }
- response.setPortletMode(PortletMode.VIEW);
- }
-
- public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
- // Set the response to read HTML
- response.setContentType("text/html;charset=UTF-8");
-
- PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher(viewUrl);
- dispatcher.include(request, response);
-
-
- }
-
-
-}
+/* + * 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; + } + } + +} + + + diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/geronimo-web.xml b/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/geronimo-web.xml index cfd05c1866..376fe17d75 100644 --- a/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/geronimo-web.xml +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/geronimo-web.xml @@ -1,70 +1,50 @@ -<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
-
-
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
-
-
-<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.2">
- <environment>
- <moduleId>
- <groupId>org.apache.tuscany.geronimoace</groupId>
- <artifactId>geronimo-ace</artifactId>
- <version>1.0-SNAPSHOT</version>
- <type>war</type>
- </moduleId>
-
- <dependencies>
- <dependency> <!-- Put a dependancy on the hosting portal (pluto) -->
- <groupId>org.apache.geronimo.plugins</groupId>
- <artifactId>pluto-support</artifactId>
- </dependency>
- </dependencies>
- </environment>
-
- <!-- This is where the files are accessed from. (aka - portletContext) -->
- <context-root>/GeronimoACE</context-root>
-
- <!-- Start off a ACEGBean, this is the lifecycle for the portlet -->
- <gbean name="PlutoTest" class="org.apache.geronimo.pluto.AdminConsoleExtensionGBean">
- <attribute name="pageTitle">Tuscany ACE</attribute>
- <attribute name="portletContext">/GeronimoACE</attribute>
- <attribute name="portletList">[GeronimoACE]</attribute>
- <reference name="PortalContainerServices">
- <name>PlutoPortalServices</name>
- </reference>
- </gbean>
-</web-app>
+<!-- + ~ 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. + --> + + +<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.2"> + <environment> + <moduleId> + <groupId>org.apache.tuscany.geronimoace</groupId> + <artifactId>geronimo-ace</artifactId> + <version>1.0-SNAPSHOT</version> + <type>war</type> + </moduleId> + + <dependencies> + <dependency> <!-- Put a dependancy on the hosting portal (pluto) --> + <groupId>org.apache.geronimo.plugins</groupId> + <artifactId>pluto-support</artifactId> + </dependency> + </dependencies> + </environment> + + <!-- This is where the files are accessed from. (aka - portletContext) --> + <context-root>/GeronimoACE</context-root> + + <!-- Start off a ACEGBean, this is the lifecycle for the portlet --> + <gbean name="PlutoTest" class="org.apache.geronimo.pluto.AdminConsoleExtensionGBean"> + <attribute name="pageTitle">Tuscany ACE</attribute> + <attribute name="portletContext">/GeronimoACE</attribute> + <attribute name="portletList">[GeronimoACE]</attribute> + <reference name="PortalContainerServices"> + <name>PlutoPortalServices</name> + </reference> + </gbean> +</web-app> diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/portlet.xml b/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/portlet.xml index 7989f30ed3..e0456f05fc 100644 --- a/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/portlet.xml +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/portlet.xml @@ -1,40 +1,40 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
- <portlet>
- <description lang="EN">GeronimoACE</description>
- <portlet-name>GeronimoACE</portlet-name>
- <display-name lang="EN">Geronimo Admin Console for Tuscany</display-name>
- <portlet-class>org.apache.tuscany.geronimoace.GeronimoACE</portlet-class>
- <supports>
- <mime-type>text/html</mime-type>
- <portlet-mode>view</portlet-mode>
- <portlet-mode>edit</portlet-mode>
- <portlet-mode>help</portlet-mode>
- </supports>
- <supported-locale>en</supported-locale>
- <portlet-info>
- <title>Tuscany Admin Console EXtension</title>
- <short-title>Tuscany ACE</short-title>
- </portlet-info>
- </portlet>
+<!-- + ~ 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. +--> + +<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> + <portlet> + <description lang="EN">GeronimoACE</description> + <portlet-name>GeronimoACE</portlet-name> + <display-name lang="EN">Geronimo Admin Console for Tuscany</display-name> + <portlet-class>org.apache.tuscany.geronimoace.GeronimoACE</portlet-class> + <supports> + <mime-type>text/html</mime-type> + <portlet-mode>view</portlet-mode> + <portlet-mode>edit</portlet-mode> + <portlet-mode>help</portlet-mode> + </supports> + <supported-locale>en</supported-locale> + <portlet-info> + <title>Tuscany Admin Console EXtension</title> + <short-title>Tuscany ACE</short-title> + </portlet-info> + </portlet> </portlet-app>
\ No newline at end of file diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/web.xml b/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/web.xml index fea2878551..b5c0e3667b 100644 --- a/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/web.xml +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/WEB-INF/web.xml @@ -1,41 +1,22 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
--->
-
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd">
-<web-app>
-
- <!-- This is pretty standard servlet code -->
-
- <servlet>
- <servlet-name>GeronimoACE</servlet-name>
- <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
- <init-param>
- <param-name>portlet-name</param-name>
- <param-value>GeronimoACE</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>GeronimoACE</servlet-name>
- <url-pattern>/PlutoInvoker/GeronimoACE</url-pattern>
- </servlet-mapping>
-
-</web-app>
+<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" + "http://java.sun.com/dtd/web-app_2_3.dtd"> +<web-app> + + <!-- This is pretty standard servlet code --> + + <servlet> + <servlet-name>GeronimoACE</servlet-name> + <servlet-class>org.apache.pluto.core.PortletServlet</servlet-class> + <init-param> + <param-name>portlet-name</param-name> + <param-value>GeronimoACE</param-value> + </init-param> + <load-on-startup>1</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>GeronimoACE</servlet-name> + <url-pattern>/PlutoInvoker/GeronimoACE</url-pattern> + </servlet-mapping> + +</web-app> diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Cloud.html b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Cloud.html new file mode 100644 index 0000000000..ffd0ec61e1 --- /dev/null +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Cloud.html @@ -0,0 +1,400 @@ +<!-- + * 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 - 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> + <td>e.g. http://yourhost:8080</td> + </tr> + <tr> + <td>Composite namespace:</td> + <td><input type="text" name="compositeNamespace" size="50"/></td> + </td> + <td>e.g. http://your/namespace</td> + </tr> + <tr> + <td>Composite name:</td> + <td><input type="text" name="compositeName" size="50"/></td> + </td> + <td>e.g. yourcomposite</td> + </tr> + <tr> + <td>Contribution URI:</td> + <td><input type="text" name="contributionURI" size="50"/></td> + </td> + <td>e.g. yourcontrib, http://yourcontrib</td> + </tr> + </table> + <input type="button" onClick="addNode()" value="Add"/> + </form> + +</div> +</body> + +</html> diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Composite.html b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Composite.html new file mode 100644 index 0000000000..f616f61bd6 --- /dev/null +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Composite.html @@ -0,0 +1,286 @@ +<!-- + * 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> diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Files.html b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Files.html new file mode 100644 index 0000000000..5c69ba0ffc --- /dev/null +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Files.html @@ -0,0 +1,129 @@ +<!-- + * 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 - 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> diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Home.jsp b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Home.jsp index 27cb1665b6..52824e3cb9 100644 --- a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Home.jsp +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Home.jsp @@ -1,87 +1,103 @@ -<!--
-~ 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.
--->
-
-<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1" %>
-<%@ include file="header.jsp" %>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>Simple jsp page</title>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <style type="text/css">
- <!--
- .style1 {
- font-family: Verdana, Arial, Helvetica, sans-serif
- }
-
- .style2 {
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-weight: bold;
- font-size: large;
- color: #0000FF;
- }
-
- -->
- </style>
-</head>
-<body>
-<table width="398" border="0" align="center">
- <tr>
- <td width="392" align="center" valign="top">
- <div align="justify" class="style2">Tuscany SCA Domain Manager</div>
- </td>
- </tr>
-</table>
-<p> </p>
-
-<form id="form1" name="form1" method="post" action="<portlet:actionURL/>">
- <table width="200" border="0">
- <tr>
- <th scope="col"><input type="radio" name="task" value="list">List Domains</th>
- </tr>
-
- <tr>
- <td>
- <div align="center">
- <input type="submit" name="manageDomains" value="List"/>
- </div>
- </td>
- </tr>
- </table>
-</form>
-
-<p> </p>
-
-<p> </p>
-
-<p> </p>
-
-<p> </p>
-
-<p> </p>
-<table width="287" border="0" align="center">
- <tr>
- <td width="129"><span class="style1">About</span></td>
- <td width="130" class="style1"><a href="http://tuscany.apache.org/" target="_blank">Tuscany Home </a></td>
- </tr>
-</table>
-<p> </p>
-</body>
+<!-- +~ 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. +--> + +<%@ page language="java" contentType="text/html; charset=ISO-8859-1" + pageEncoding="ISO-8859-1" %> +<%@ include file="header.jsp" %> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <title>Simple jsp page</title> + <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> + <style type="text/css"> + <!-- + .style1 { + font-family: Verdana, Arial, Helvetica, sans-serif + } + + .style2 { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-weight: bold; + font-size: large; + color: #0000FF; + } + + --> + </style> +</head> +<body> +<table width="398" border="0" align="center"> + <tr> + <td width="392" align="center" valign="top"> + <div align="justify" class="style2">Tuscany SCA Domain Manager</div> + </td> + </tr> + +</table> +<p> </p> + +<form id="form1" name="form1" method="post" action="<portlet:actionURL/>"> + <table width="200" border="0"> + <tr> + <th scope="col"><input type="radio" name="task" value="workspace">Contributions</th> + <th/> + <th/> + <th/> + <th scope="col"><input type="radio" name="task" value="composites">Composites</th> + <th/> + <th/> + <th/> + <th scope="col"><input type="radio" name="task" value="cloud">Cloud</th> + <th/> + <th/> + <th/> + <th scope="col"><input type="radio" name="task" value="files">Files</th> + <th/> + <th/> + <th/> + </tr> + + <tr> + <td> + <div align="center"> + <input type="submit" name="manageDomains" value="GO"/> + </div> + </td> + </tr> + </table> +</form> + +<p> </p> + +<p> </p> + +<p> </p> + +<p> </p> + +<p> </p> +<table width="287" border="0" align="center"> + <tr> + <td width="129"><span class="style1">About</span></td> + <td width="130" class="style1"><a href="http://tuscany.apache.org/" target="_blank">Tuscany Home </a></td> + </tr> +</table> +<p> </p> +</body> </html>
\ No newline at end of file diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/ListDomains.jsp b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/ListDomains.jsp deleted file mode 100644 index 980fc3d3ce..0000000000 --- a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/ListDomains.jsp +++ /dev/null @@ -1,62 +0,0 @@ -<!--
-~ 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.
--->
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<%@ include file="header.jsp" %>
-<html>
-<head>
- <title>Untitled Document</title>
- <style type="text/css">
- <!--
- .style1 {
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-size: 14px;
- }
-
- .style3 {
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-size: 24px;
- font-weight: bold;
- color: #0033FF;
- }
-
- -->
- </style>
-</head>
-<body><p class="style3">List of Domains</p>
-
-<form action="<portlet:actionURL/>" method="post" name="form1" class="style1" id="form1">
- <p>
- <input name="domainName" type="radio" value="Test Domain1"/>
- Test Domain1</p>
-
- <p>
- <input name="domainName" type="radio" value="Test Domain2"/>
- Test Domain2</p>
-
- <p>
- <input name="domainName" type="radio" value="Test Domain3"/>
- Test Domain3</p>
-
- <p>
- <input type="submit" name="Submit" value="Manage"/>
- </p>
-</form>
-<p class="style3"> </p>
-</body>
-</html>
\ No newline at end of file diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/ManageDomain.jsp b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/ManageDomain.jsp deleted file mode 100644 index 9fe6f72175..0000000000 --- a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/ManageDomain.jsp +++ /dev/null @@ -1,75 +0,0 @@ -<!--
-~ 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.
--->
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<%@ include file="header.jsp" %>
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
- <title>Untitled Document</title>
- <style type="text/css">
- <!--
- .style1 {
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-weight: bold;
- color: #0000FF;
- }
-
- .style2 {
- font-family: Verdana, Arial, Helvetica, sans-serif
- }
-
- .style4 {
- font-family: Verdana, Arial, Helvetica, sans-serif;
- font-size: 14px;
- }
-
- -->
- </style>
-</head>
-<body><p class="style1">Managing the domain</p>
-<table width="460" border="0">
- <tr>
- <th width="244" scope="col"><span class="style2">Contributions</span></th>
- <th width="94" scope="col"><span class="style2">start</span></th>
- <th width="100" scope="col"><span class="style2">stop</span></th>
- </tr>
- <tr>
- <td>
- <div align="center"><span class="style4">test contribution1 </span></div>
- </td>
- <td>
- <div align="center"><span class="style4"> start </span></div>
- </td>
- <td>
- <div align="center"><span class="style4">stop</span></div>
- </td>
- </tr>
- <tr>
- <td><span class="style2"></span></td>
- <td><span class="style2"></span></td>
- <td><span class="style2"></span></td>
- </tr>
- <tr>
- <td><span class="style2"></span></td>
- <td><span class="style2"></span></td>
- <td><span class="style2"></span></td>
- </tr>
-</table>
-<p class="style1"> </p></body>
-</html>
\ No newline at end of file diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Workspace.html b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Workspace.html new file mode 100644 index 0000000000..11e5c3cbb1 --- /dev/null +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/Workspace.html @@ -0,0 +1,186 @@ +<!-- + * 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 - 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> + <td>e.g. yourcontrib, http://yourcontrib</td> + </tr> + <tr> + <td>Location:</td> + <td><input type="text" name="contributionLocation" size="50"/></td> + </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> diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/header.jsp b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/header.jsp index 99687d12d2..b202ba1d57 100644 --- a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/header.jsp +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/header.jsp @@ -1,21 +1,21 @@ -<!--
-~ 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.
--->
-<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
-
-<portlet:defineObjects/>
+<!-- +~ 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. +--> +<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %> + +<portlet:defineObjects/> diff --git a/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/manager.css b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/manager.css new file mode 100644 index 0000000000..9049b727aa --- /dev/null +++ b/sandbox/thilina/geronimo_ACE/src/main/webapp/pages/manager.css @@ -0,0 +1,158 @@ +/* + * 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: nowrap +} + +table { + border: 1px; + border-collapse: separate +} + +th { + font-weight: bold; + white-space: nowrap; + background-color: #e5ecf9; + color: #598edd; + text-align: left; + padding-left: 2px; + padding-right: 20px; + padding-top: 2px; + padding-bottom: 2px; + vertical-align: text-top; + border-top: 1px; + border-bottom: 1px; + border-left: 0px; + border-right: 0px; + border-style: solid; + border-top-color: #a2bae7; + border-bottom-color: #d1d3d4 +} + +td { + padding-left: 2px; + padding-top: 2px; + padding-right: 20px; + white-space: nowrap; + vertical-align: text-top +} + +input { + vertical-align: middle +} + +a:link { + color: blue +} + +a:visited { + color: blue +} + +.tdw { + padding-left: 2px; + padding-top: 2px; + padding-right: 20px; + white-space: normal; + vertical-align: text-top +} + +.hd1 { + font-size: 150%; + font-weight: bold +} + +.tbar { + margin: 0px; + padding-top: 0px; + padding-left: 0px; + padding-right: 0px; + padding-bottom: 3px; + border-bottom: 1px solid #a2bae7 +} + +.ltbar { + padding-left: 0px; + padding-top: 0px; + padding-right: 20px; + white-space: nowrap; + vertical-align: top +} + +.rtbar { + padding-left: 0px; + 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; + white-space: nowrap; + vertical-align: text-top; + background-color: #e5ecf9; + color: #598edd; +} + +.suggestHilighted { + padding-left: 2px; + padding-top: 0px; + padding-bottom: 0px; + padding-right: 2px; + white-space: nowrap; + vertical-align: text-top; + background-color: #598edd; + color: #e5ecf9; +} diff --git a/sandbox/thilina/geronimo_ACE/src/test/java/org/apache/tuscany/geronimoace/AppTest.java b/sandbox/thilina/geronimo_ACE/src/test/java/org/apache/tuscany/geronimoace/AppTest.java index fe66243097..d16f7ff55d 100644 --- a/sandbox/thilina/geronimo_ACE/src/test/java/org/apache/tuscany/geronimoace/AppTest.java +++ b/sandbox/thilina/geronimo_ACE/src/test/java/org/apache/tuscany/geronimoace/AppTest.java @@ -7,32 +7,28 @@ import junit.framework.TestSuite; /** * Unit test for simple App. */ -public class AppTest - extends TestCase -{ +public class AppTest + extends TestCase { /** * Create the test case * * @param testName name of the test case */ - public AppTest( String testName ) - { - super( testName ); + public AppTest(String testName) { + super(testName); } /** * @return the suite of tests being tested */ - public static Test suite() - { - return new TestSuite( AppTest.class ); + public static Test suite() { + return new TestSuite(AppTest.class); } /** * Rigourous Test :-) */ - public void testApp() - { - assertTrue( true ); + public void testApp() { + assertTrue(true); } } |