summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-0.99/distribution/webapp/src
diff options
context:
space:
mode:
authordims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
committerdims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
commitbdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a (patch)
tree38a92061c0793434c4be189f1d70c3458b6bc41d /branches/sca-java-0.99/distribution/webapp/src
Move Tuscany from Incubator to top level.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-0.99/distribution/webapp/src')
-rw-r--r--branches/sca-java-0.99/distribution/webapp/src/main/java/org/apache/tuscany/sca/webapp/ContributionUploaderServlet.java116
-rw-r--r--branches/sca-java-0.99/distribution/webapp/src/main/webapp/WEB-INF/web.xml59
-rw-r--r--branches/sca-java-0.99/distribution/webapp/src/main/webapp/sca-contributions/safeToDelete.tmp1
-rw-r--r--branches/sca-java-0.99/distribution/webapp/src/main/webapp/scaDomainInfo.jsp74
4 files changed, 250 insertions, 0 deletions
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("<html>");
+ out.println("<head>");
+ out.println("<title>Apache Tuscany WebApp Runtime</title>");
+ out.println("</head>");
+ out.println("<body>");
+ out.println("<h2>Composite file uploaded</h2>");
+ int port = request.getServerPort();
+ String portSubStr = ((port == -1) ? "" : (":" + request.getServerPort()));
+ String backPath = request.getScheme() + "://" + request.getServerName() + portSubStr + request.getContextPath();
+ out.println("Go <a href=\"" + backPath + "\">back</a>");
+ out.println("</body>");
+ out.println("</html>");
+ }
+}
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 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * 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>
+
+ <display-name>Apache Tuscany WebApp Runtime</display-name>
+
+ <listener>
+ <listener-class>org.apache.tuscany.sca.host.webapp.HotUpdateContextListener</listener-class>
+ </listener>
+
+ <listener>
+ <listener-class>org.apache.commons.fileupload.servlet.FileCleanerCleanup</listener-class>
+ </listener>
+
+ <servlet>
+ <servlet-name>TuscanyServlet</servlet-name>
+ <servlet-class>org.apache.tuscany.sca.host.webapp.TuscanyServlet</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>ContributionUploaderServlet</servlet-name>
+ <servlet-class>org.apache.tuscany.sca.webapp.ContributionUploaderServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>TuscanyServlet</servlet-name>
+ <url-pattern>/sca/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>ContributionUploaderServlet</servlet-name>
+ <url-pattern>/ContributionUploader</url-pattern>
+ </servlet-mapping>
+
+ <welcome-file-list id="WelcomeFileList">
+ <welcome-file>scaDomainInfo.jsp</welcome-file>
+ </welcome-file-list>
+
+</web-app>
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();
+%>
+<html>
+<head><title>Apache Tuscany WebApp Runtime</title></head>
+
+<body>
+Apache Tuscany WebApp Runtime
+<br>
+Components in SCA Domain:
+ <%
+ java.util.Iterator i = componentManager.getComponentNames().iterator();
+ while (i.hasNext()) {
+ String compName = i.next().toString();
+
+ %><br><%=compName%><br><%
+
+ 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()%><br><%
+
+ 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()%><br><%
+ }
+ }
+ }
+ %>
+<br>
+
+<hr>
+You can fill in a composite file to upload
+
+<form method='POST' enctype='multipart/form-data' action='/tuscany/ContributionUploader'>
+Composite file to upload: <input type=file name=upfile><br>
+<br>
+<input type=submit value=Press> to upload the composite file
+</form>
+
+</body>
+</html>
+