From bdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a Mon Sep 17 00:00:00 2001 From: dims Date: Tue, 17 Jun 2008 00:23:01 +0000 Subject: Move Tuscany from Incubator to top level. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68 --- branches/sca-java-0.99/distribution/webapp/pom.xml | 285 +++++++++++++++++++++ .../sca/webapp/ContributionUploaderServlet.java | 116 +++++++++ .../webapp/src/main/webapp/WEB-INF/web.xml | 59 +++++ .../main/webapp/sca-contributions/safeToDelete.tmp | 1 + .../webapp/src/main/webapp/scaDomainInfo.jsp | 74 ++++++ 5 files changed, 535 insertions(+) create mode 100644 branches/sca-java-0.99/distribution/webapp/pom.xml create mode 100644 branches/sca-java-0.99/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/ContributionUploaderServlet.java create mode 100644 branches/sca-java-0.99/distribution/webapp/src/main/webapp/WEB-INF/web.xml create mode 100644 branches/sca-java-0.99/distribution/webapp/src/main/webapp/sca-contributions/safeToDelete.tmp create mode 100644 branches/sca-java-0.99/distribution/webapp/src/main/webapp/scaDomainInfo.jsp (limited to 'branches/sca-java-0.99/distribution/webapp') diff --git a/branches/sca-java-0.99/distribution/webapp/pom.xml b/branches/sca-java-0.99/distribution/webapp/pom.xml new file mode 100644 index 0000000000..0aa6763063 --- /dev/null +++ b/branches/sca-java-0.99/distribution/webapp/pom.xml @@ -0,0 +1,285 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca + 0.99-incubating-SNAPSHOT + ../../pom.xml + + + Apache Tuscany WebApp Runtime + tuscany-webapp + war + + + + ${pom.groupId} + tuscany-assembly + ${pom.version} + + + ${pom.groupId} + tuscany-assembly-xml + ${pom.version} + + + ${pom.groupId} + tuscany-binding-dwr + ${pom.version} + + + ${pom.groupId} + tuscany-binding-ejb + ${pom.version} + + + ${pom.groupId} + tuscany-binding-feed + ${pom.version} + + + ${pom.groupId} + tuscany-binding-http + ${pom.version} + + + ${pom.groupId} + tuscany-binding-jsonrpc + ${pom.version} + + + ${pom.groupId} + tuscany-binding-notification + ${pom.version} + + + ${pom.groupId} + tuscany-binding-rmi + ${pom.version} + + + ${pom.groupId} + tuscany-binding-sca + ${pom.version} + + + ${pom.groupId} + tuscany-binding-sca-xml + ${pom.version} + + + ${pom.groupId} + tuscany-binding-ws + ${pom.version} + + + ${pom.groupId} + tuscany-binding-ws-axis2 + ${pom.version} + + + javax.servlet + servlet-api + + + junit + junit + + + + + ${pom.groupId} + tuscany-binding-ws-xml + ${pom.version} + + + ${pom.groupId} + tuscany-contribution + ${pom.version} + + + ${pom.groupId} + tuscany-contribution-impl + ${pom.version} + + + ${pom.groupId} + tuscany-contribution-java + ${pom.version} + + + ${pom.groupId} + tuscany-contribution-namespace + ${pom.version} + + + ${pom.groupId} + tuscany-core + ${pom.version} + + + ${pom.groupId} + tuscany-core-databinding + ${pom.version} + + + ${pom.groupId} + tuscany-core-spi + ${pom.version} + + + ${pom.groupId} + tuscany-databinding + ${pom.version} + + + ${pom.groupId} + tuscany-databinding-axiom + ${pom.version} + + + ${pom.groupId} + tuscany-databinding-jaxb + ${pom.version} + + + ${pom.groupId} + tuscany-databinding-sdo + ${pom.version} + + + ${pom.groupId} + tuscany-databinding-sdo-axiom + ${pom.version} + + + ${pom.groupId} + tuscany-host-embedded + ${pom.version} + + + ${pom.groupId} + tuscany-host-http + ${pom.version} + + + ${pom.groupId} + tuscany-host-rmi + ${pom.version} + + + ${pom.groupId} + tuscany-host-webapp + ${pom.version} + + + ${pom.groupId} + tuscany-interface + ${pom.version} + + + ${pom.groupId} + tuscany-interface-java + ${pom.version} + + + ${pom.groupId} + tuscany-interface-java-xml + ${pom.version} + + + ${pom.groupId} + tuscany-interface-wsdl + ${pom.version} + + + ${pom.groupId} + tuscany-interface-wsdl-xml + ${pom.version} + + + ${pom.groupId} + tuscany-implementation-java + ${pom.version} + + + ${pom.groupId} + tuscany-implementation-java-xml + ${pom.version} + + + ${pom.groupId} + tuscany-implementation-java-runtime + ${pom.version} + + + ${pom.groupId} + tuscany-implementation-resource + ${pom.version} + + + ${pom.groupId} + tuscany-implementation-script + ${pom.version} + + + ${pom.groupId} + tuscany-implementation-spring + ${pom.version} + + + ${pom.groupId} + tuscany-policy + ${pom.version} + + + ${pom.groupId} + tuscany-policy-xml + ${pom.version} + + + ${pom.groupId} + sca-api + ${pom.version} + + + javax.servlet + servlet-api + 2.3 + provided + + + commons-fileupload + commons-fileupload + 1.2 + + + commons-io + commons-io + 1.1 + + + + + tuscany + + diff --git a/branches/sca-java-0.99/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/ContributionUploaderServlet.java b/branches/sca-java-0.99/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/ContributionUploaderServlet.java new file mode 100644 index 0000000000..402a118948 --- /dev/null +++ b/branches/sca-java-0.99/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/ContributionUploaderServlet.java @@ -0,0 +1,116 @@ +/* + * 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.sca.webapp; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Iterator; +import java.util.List; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.FileItemFactory; +import org.apache.commons.fileupload.FileUploadException; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.commons.fileupload.servlet.ServletFileUpload; + +import org.apache.tuscany.sca.host.webapp.HotUpdateContextListener; + +/** + * A Servlet to upload a contribution file. + */ +public class ContributionUploaderServlet extends HttpServlet { + + private static final long serialVersionUID = System.currentTimeMillis(); + + private File repository; + + @Override + public void init(ServletConfig config) throws ServletException { + ServletContext servletContext = config.getServletContext(); + repository = new File(servletContext.getRealPath(HotUpdateContextListener.REPOSITORY_FOLDER_NAME)); + } + + @Override + public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { + // Check that we have a file upload request + boolean isMultipart = ServletFileUpload.isMultipartContent(request); + if (!isMultipart) { + throw new RuntimeException("Need multipart content"); + } + + // Create a factory for disk-based file items + FileItemFactory factory = new DiskFileItemFactory(); + + // Create a new file upload handler + ServletFileUpload upload = new ServletFileUpload(factory); + + try { + // Parse the request + List /* FileItem */ items = upload.parseRequest(request); + // Process the uploaded items + Iterator iter = items.iterator(); + while (iter.hasNext()) { + FileItem item = (FileItem) iter.next(); + + if (!item.isFormField()) { + String fileName = item.getName(); + int index = fileName.lastIndexOf("\\") + 1; + String uploadedFileName = repository.getAbsolutePath() + "/" + fileName.substring(index); + File uploadedFile = new File(uploadedFileName); + item.write(uploadedFile); + } + } + } + catch(FileUploadException e) { + throw new RuntimeException(e); + } + catch(Throwable e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + + setResponse(response, request); + } + + private void setResponse(HttpServletResponse response, HttpServletRequest request) throws IOException { + response.setContentType("text/html"); + PrintWriter out = response.getWriter(); + out.println(""); + out.println(""); + out.println("Apache Tuscany WebApp Runtime"); + out.println(""); + out.println(""); + out.println("

Composite file uploaded

"); + int port = request.getServerPort(); + String portSubStr = ((port == -1) ? "" : (":" + request.getServerPort())); + String backPath = request.getScheme() + "://" + request.getServerName() + portSubStr + request.getContextPath(); + out.println("Go back"); + out.println(""); + out.println(""); + } +} diff --git a/branches/sca-java-0.99/distribution/webapp/src/main/webapp/WEB-INF/web.xml b/branches/sca-java-0.99/distribution/webapp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..b52c43c506 --- /dev/null +++ b/branches/sca-java-0.99/distribution/webapp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,59 @@ + + + + + + + Apache Tuscany WebApp Runtime + + + org.apache.tuscany.sca.host.webapp.HotUpdateContextListener + + + + org.apache.commons.fileupload.servlet.FileCleanerCleanup + + + + TuscanyServlet + org.apache.tuscany.sca.host.webapp.TuscanyServlet + + + + ContributionUploaderServlet + org.apache.tuscany.sca.webapp.ContributionUploaderServlet + + + + TuscanyServlet + /sca/* + + + + ContributionUploaderServlet + /ContributionUploader + + + + scaDomainInfo.jsp + + + diff --git a/branches/sca-java-0.99/distribution/webapp/src/main/webapp/sca-contributions/safeToDelete.tmp b/branches/sca-java-0.99/distribution/webapp/src/main/webapp/sca-contributions/safeToDelete.tmp new file mode 100644 index 0000000000..4efe4b5db3 --- /dev/null +++ b/branches/sca-java-0.99/distribution/webapp/src/main/webapp/sca-contributions/safeToDelete.tmp @@ -0,0 +1 @@ +File just to get the sca-contributions folder included in webapp \ No newline at end of file diff --git a/branches/sca-java-0.99/distribution/webapp/src/main/webapp/scaDomainInfo.jsp b/branches/sca-java-0.99/distribution/webapp/src/main/webapp/scaDomainInfo.jsp new file mode 100644 index 0000000000..5a85060d4c --- /dev/null +++ b/branches/sca-java-0.99/distribution/webapp/src/main/webapp/scaDomainInfo.jsp @@ -0,0 +1,74 @@ +<%-- + * 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 import="org.apache.tuscany.sca.host.embedded.SCADomain"%> +<%@ page import="org.apache.tuscany.sca.host.embedded.management.ComponentManager"%> +<%@ page import="org.apache.tuscany.sca.assembly.ComponentService"%> +<%@ page import="org.apache.tuscany.sca.assembly.Binding"%> + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<% + SCADomain scaDomain = (SCADomain) application.getAttribute("org.apache.tuscany.sca.SCADomain"); + ComponentManager componentManager = scaDomain.getComponentManager(); +%> + +Apache Tuscany WebApp Runtime + + +Apache Tuscany WebApp Runtime +
+Components in SCA Domain: + <% + java.util.Iterator i = componentManager.getComponentNames().iterator(); + while (i.hasNext()) { + String compName = i.next().toString(); + + %>
<%=compName%>
<% + + org.apache.tuscany.sca.assembly.Component comp = componentManager.getComponent(compName); + java.util.Iterator j = comp.getServices().iterator(); + while (j.hasNext()) { + ComponentService compService = (ComponentService)j.next(); + + %><%=" - Service: " + compService.getName()%>
<% + + java.util.Iterator k = compService.getBindings().iterator(); + while (k.hasNext()) { + Binding b = (Binding)k.next(); + String bindingType = b.getClass().getName(); + + %><%="-- Binding: " + b.getName() + "(" + bindingType.substring(bindingType.lastIndexOf('.')+1) + ") URI: " + b.getURI()%>
<% + } + } + } + %> +
+ +
+You can fill in a composite file to upload + +
+Composite file to upload:
+
+ to upload the composite file +
+ + + + -- cgit v1.2.3