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);
})();