Author: tveronezi
Date: Wed Jun  6 13:33:07 2012
New Revision: 1346883

URL: http://svn.apache.org/viewvc?rev=1346883&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-205
uploading the file

Added:
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
      - copied, changed from r1346796, 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java
Modified:
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/util/Obj.js
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/view/ApplicationViewApps.js

Copied: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
 (from r1346796, 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java)
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java?p2=openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java&p1=openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java&r1=1346796&r2=1346883&rev=1346883&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/ConsoleServlet.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
 Wed Jun  6 13:33:07 2012
@@ -17,61 +17,50 @@
 
 package org.apache.tomee.webapp.servlet;
 
-import javax.script.ScriptEngine;
-import javax.script.ScriptEngineManager;
-import javax.script.ScriptException;
+import com.google.gson.Gson;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
+
+import javax.naming.NamingException;
 import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import javax.servlet.annotation.MultipartConfig;
+import javax.servlet.http.*;
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.lang.System;
+import java.util.HashMap;
 import java.util.Map;
 
-public class ConsoleServlet extends HttpServlet {
+
+public class FileUploadServlet extends HttpServlet {
+    public static final Logger LOGGER = 
Logger.getInstance(LogCategory.OPENEJB, FileUploadServlet.class);
 
     @Override
     protected void doPost(HttpServletRequest req, final HttpServletResponse 
resp) throws ServletException, IOException {
-        final ScriptEngineManager manager = new ScriptEngineManager();
-        final HttpSession session = req.getSession();
-
-        String engineName = req.getParameter("engineName");
-        if (engineName == null || "".equals(engineName.trim())) {
-            engineName = "JavaScript";
-        }
-        final ScriptEngine engine = manager.getEngineByName(engineName);
-
-        engine.put("req", req);
-        engine.put("resp", resp);
-
-        engine.put("util", new Utility() {
-
+        final File tempDir = (File) 
getServletContext().getAttribute("javax.servlet.context.tempdir");
 
-            @Override
-            public void write(Object obj) throws Exception {
-                resp.getWriter().write(String.valueOf(obj));
-            }
+        final Part filePart = req.getPart("file");
+        final String filename = getFileName(filePart);
+        final File file = new File(tempDir, filename);
+        filePart.write(file.getAbsolutePath());
+
+        final Map<String, Object> result = new HashMap<String, Object>();
+        result.put("file", file.getAbsolutePath());
+
+        resp.setContentType("text/plain");
+        resp.setCharacterEncoding("UTF-8");
+        resp.getWriter().write(new Gson().toJson(result));
+    }
 
-            @Override
-            public void save(String key, Object obj) {
-                Map<String, Object> objects = (Map<String, Object>) 
session.getAttribute("objects");
-                objects.put(key, obj);
+    private String getFileName(Part part) {
+        String partHeader = part.getHeader("content-disposition");
+        for (String cd : partHeader.split(";")) {
+            if (cd.trim().startsWith("filename")) {
+                return cd.substring(cd.indexOf('=') + 1).trim().replace("\"", 
"");
             }
-        });
-
-        String scriptCode = req.getParameter("scriptCode");
-        if (scriptCode == null || "".equals(scriptCode.trim())) {
-            scriptCode = "var a = 0;";
         }
-        try {
-            engine.eval(scriptCode);
-        } catch (ScriptException e) {
-            throw new ServletException(e);
-        }
-    }
-
-    private interface Utility {
-        void write(Object obj) throws Exception;
-        void save(String key, Object obj);
+        return null;
     }
 }

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml?rev=1346883&r1=1346882&r2=1346883&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml 
(original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml 
Wed Jun  6 13:33:07 2012
@@ -22,128 +22,143 @@
          version="3.0" metadata-complete="true">
 
 
-  <display-name>OpenEJB Loader Application</display-name>
+    <display-name>OpenEJB Loader Application</display-name>
 
-  <listener>
-    
<listener-class>org.apache.tomee.webapp.listener.UserSessionListener</listener-class>
-  </listener>
-
-  <servlet>
-    <servlet-name>LoaderServlet</servlet-name>
-    <servlet-class>org.apache.tomee.loader.LoaderServlet</servlet-class>
-    <load-on-startup>0</load-on-startup>
-  </servlet>
-
-  <servlet>
-    <servlet-name>ServerServlet</servlet-name>
-    
<servlet-class>org.apache.openejb.server.httpd.ServerServlet</servlet-class>
-  </servlet>
-
-  <servlet>
-    <servlet-name>InstallerServlet</servlet-name>
-    <servlet-class>org.apache.tomee.installer.InstallerServlet</servlet-class>
-  </servlet>
-
-  <servlet>
-    <servlet-name>WsConsole</servlet-name>
-    
<servlet-class>org.apache.tomee.webapp.servlet.ConsoleServlet</servlet-class>
-  </servlet>
-
-  <servlet>
-    <servlet-name>WsJndi</servlet-name>
-    <servlet-class>org.apache.tomee.webapp.servlet.JndiServlet</servlet-class>
-  </servlet>
-
-  <servlet>
-    <servlet-name>WsTest</servlet-name>
-    <servlet-class>org.apache.tomee.webapp.servlet.TestServlet</servlet-class>
-  </servlet>
-
-  <servlet-mapping>
-    <servlet-name>ServerServlet</servlet-name>
-    <url-pattern>/ejb/*</url-pattern>
-  </servlet-mapping>
-
-  <servlet-mapping>
-    <servlet-name>InstallerServlet</servlet-name>
-    <url-pattern>/installer</url-pattern>
-  </servlet-mapping>
-
-  <servlet-mapping>
-    <servlet-name>WsConsole</servlet-name>
-    <url-pattern>/ws/console/*</url-pattern>
-  </servlet-mapping>
-
-  <servlet-mapping>
-    <servlet-name>WsJndi</servlet-name>
-    <url-pattern>/ws/jndi/*</url-pattern>
-  </servlet-mapping>
-
-  <servlet-mapping>
-    <servlet-name>WsTest</servlet-name>
-    <url-pattern>/ws/test/*</url-pattern>
-  </servlet-mapping>
-
-  <!-- basic security to replace context.xml and allow remote accesses -->
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>Admin Installer</web-resource-name>
-      <url-pattern>/installer</url-pattern>
-    </web-resource-collection>
-    <auth-constraint>
-      <role-name>tomee-admin</role-name>
-    </auth-constraint>
-  </security-constraint>
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>Admin Webservices</web-resource-name>
-      <url-pattern>/ws/*</url-pattern>
-    </web-resource-collection>
-    <auth-constraint>
-      <role-name>tomee-admin</role-name>
-    </auth-constraint>
-  </security-constraint>
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>Admin Interface</web-resource-name>
-      <url-pattern>*.jsp</url-pattern>
-    </web-resource-collection>
-    <auth-constraint>
-      <role-name>tomee-admin</role-name>
-    </auth-constraint>
-  </security-constraint>
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>Admin Style</web-resource-name>
-      <url-pattern>/css/*</url-pattern>
-    </web-resource-collection>
-    <auth-constraint>
-      <role-name>tomee-admin</role-name>
-    </auth-constraint>
-  </security-constraint>
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>Admin Images</web-resource-name>
-      <url-pattern>/images/*</url-pattern>
-    </web-resource-collection>
-    <auth-constraint>
-      <role-name>tomee-admin</role-name>
-    </auth-constraint>
-  </security-constraint>
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>Admin Javascript</web-resource-name>
-      <url-pattern>/js/*</url-pattern>
-    </web-resource-collection>
-    <auth-constraint>
-      <role-name>tomee-admin</role-name>
-    </auth-constraint>
-  </security-constraint>
-  <login-config>
-    <auth-method>BASIC</auth-method>
-    <realm-name>TomEE Webapp</realm-name>
-  </login-config>
-  <security-role>
-    <role-name>tomee-admin</role-name>
-  </security-role>
+    <listener>
+        
<listener-class>org.apache.tomee.webapp.listener.UserSessionListener</listener-class>
+    </listener>
+
+    <servlet>
+        <servlet-name>LoaderServlet</servlet-name>
+        <servlet-class>org.apache.tomee.loader.LoaderServlet</servlet-class>
+        <load-on-startup>0</load-on-startup>
+    </servlet>
+
+    <servlet>
+        <servlet-name>ServerServlet</servlet-name>
+        
<servlet-class>org.apache.openejb.server.httpd.ServerServlet</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>InstallerServlet</servlet-name>
+        
<servlet-class>org.apache.tomee.installer.InstallerServlet</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>FileUploadServlet</servlet-name>
+        
<servlet-class>org.apache.tomee.webapp.servlet.FileUploadServlet</servlet-class>
+        <multipart-config>
+            <max-file-size>20848820</max-file-size>
+            <max-request-size>418018841</max-request-size>
+            <file-size-threshold>1048576</file-size-threshold>
+        </multipart-config>
+    </servlet>
+
+    <servlet>
+        <servlet-name>WsConsole</servlet-name>
+        
<servlet-class>org.apache.tomee.webapp.servlet.ConsoleServlet</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>WsJndi</servlet-name>
+        
<servlet-class>org.apache.tomee.webapp.servlet.JndiServlet</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>WsTest</servlet-name>
+        
<servlet-class>org.apache.tomee.webapp.servlet.TestServlet</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>ServerServlet</servlet-name>
+        <url-pattern>/ejb/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>InstallerServlet</servlet-name>
+        <url-pattern>/installer</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>FileUploadServlet</servlet-name>
+        <url-pattern>/upload/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>WsConsole</servlet-name>
+        <url-pattern>/ws/console/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>WsJndi</servlet-name>
+        <url-pattern>/ws/jndi/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>WsTest</servlet-name>
+        <url-pattern>/ws/test/*</url-pattern>
+    </servlet-mapping>
+
+    <!-- basic security to replace context.xml and allow remote accesses -->
+    <security-constraint>
+        <web-resource-collection>
+            <web-resource-name>Admin Installer</web-resource-name>
+            <url-pattern>/installer</url-pattern>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>tomee-admin</role-name>
+        </auth-constraint>
+    </security-constraint>
+    <security-constraint>
+        <web-resource-collection>
+            <web-resource-name>Admin Webservices</web-resource-name>
+            <url-pattern>/ws/*</url-pattern>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>tomee-admin</role-name>
+        </auth-constraint>
+    </security-constraint>
+    <security-constraint>
+        <web-resource-collection>
+            <web-resource-name>Admin Interface</web-resource-name>
+            <url-pattern>*.jsp</url-pattern>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>tomee-admin</role-name>
+        </auth-constraint>
+    </security-constraint>
+    <security-constraint>
+        <web-resource-collection>
+            <web-resource-name>Admin Style</web-resource-name>
+            <url-pattern>/css/*</url-pattern>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>tomee-admin</role-name>
+        </auth-constraint>
+    </security-constraint>
+    <security-constraint>
+        <web-resource-collection>
+            <web-resource-name>Admin Images</web-resource-name>
+            <url-pattern>/images/*</url-pattern>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>tomee-admin</role-name>
+        </auth-constraint>
+    </security-constraint>
+    <security-constraint>
+        <web-resource-collection>
+            <web-resource-name>Admin Javascript</web-resource-name>
+            <url-pattern>/js/*</url-pattern>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>tomee-admin</role-name>
+        </auth-constraint>
+    </security-constraint>
+    <login-config>
+        <auth-method>BASIC</auth-method>
+        <realm-name>TomEE Webapp</realm-name>
+    </login-config>
+    <security-role>
+        <role-name>tomee-admin</role-name>
+    </security-role>
 </web-app>

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/util/Obj.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/util/Obj.js?rev=1346883&r1=1346882&r2=1346883&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/util/Obj.js 
(original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/util/Obj.js 
Wed Jun  6 13:33:07 2012
@@ -19,6 +19,15 @@
 
 TOMEE.utils = {
     getSafe:function (obj, defaultValue) {
+        if(obj instanceof Function) {
+            try {
+                return obj();
+
+            } catch(ex) {
+                return defaultValue;
+            }
+        }
+
         if(obj) {
             return obj;
         }

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/view/ApplicationViewApps.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/view/ApplicationViewApps.js?rev=1346883&r1=1346882&r2=1346883&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/view/ApplicationViewApps.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/view/ApplicationViewApps.js
 Wed Jun  6 13:33:07 2012
@@ -72,6 +72,14 @@ TOMEE.ApplicationViewApps = function (cf
         content.append(map.main);
 
         (function() {
+            var fileUploadedHandler = function(event) {
+                fileForm.myFrame.unbind('load', fileUploadedHandler);
+                var text = TOMEE.utils.getSafe(function() {
+                    return 
fileForm.myFrame.contents().first()[0].body.innerText;
+                }, '')
+                alert(text);
+            };
+
             var frameId = TOMEE.Sequence.next('uploadFrame');
             var fileForm= TOMEE.el.getElMap({
                 elName:'main',
@@ -102,6 +110,7 @@ TOMEE.ApplicationViewApps = function (cf
                         },
                         listeners:{
                             'change':function (event) {
+                                fileForm.myFrame.bind('load', 
fileUploadedHandler);
                                 fileForm.main.submit();
                             }
                         }
@@ -110,9 +119,7 @@ TOMEE.ApplicationViewApps = function (cf
 
             });
 
-            fileForm.myFrame.bind('load', function(event) {
-                alert('Done');
-            });
+
 
             content.append(fileForm.main);
         })();


Reply via email to