You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2012/06/06 17:31:57 UTC
svn commit: r1346948 - in /openejb/trunk/openejb/tomee:
tomee-plus-webapp/src/main/webapp/WEB-INF/
tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/
tomee-webapp/src/main/webapp/WEB-INF/
tomee-webapp/src/main/webapp/js/tomee/ tomee-webapp/src...
Author: tveronezi
Date: Wed Jun 6 15:31:56 2012
New Revision: 1346948
URL: http://svn.apache.org/viewvc?rev=1346948&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-205
preparing the deployment servlet
Added:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java
- copied, changed from r1346883, openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
Modified:
openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/Application.js
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationController.js
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationModel.js
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/view/ApplicationViewApps.js
Modified: openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml?rev=1346948&r1=1346947&r2=1346948&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml (original)
+++ openejb/trunk/openejb/tomee/tomee-plus-webapp/src/main/webapp/WEB-INF/web.xml Wed Jun 6 15:31:56 2012
@@ -55,6 +55,11 @@
</servlet>
<servlet>
+ <servlet-name>DeployServlet</servlet-name>
+ <servlet-class>org.apache.tomee.webapp.servlet.DeployServlet</servlet-class>
+ </servlet>
+
+ <servlet>
<servlet-name>WsConsole</servlet-name>
<servlet-class>org.apache.tomee.webapp.servlet.ConsoleServlet</servlet-class>
</servlet>
@@ -85,6 +90,11 @@
</servlet-mapping>
<servlet-mapping>
+ <servlet-name>DeployServlet</servlet-name>
+ <url-pattern>/deploy/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
<servlet-name>WsConsole</servlet-name>
<url-pattern>/ws/console/*</url-pattern>
</servlet-mapping>
Copied: openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java (from r1346883, openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java?p2=openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java&p1=openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java&r1=1346883&r2=1346948&rev=1346948&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/DeployServlet.java Wed Jun 6 15:31:56 2012
@@ -21,46 +21,33 @@ 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.annotation.MultipartConfig;
-import javax.servlet.http.*;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
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 FileUploadServlet extends HttpServlet {
- public static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB, FileUploadServlet.class);
+public class DeployServlet extends HttpServlet {
+ public static final Logger LOGGER = Logger.getInstance(LogCategory.OPENEJB, DeployServlet.class);
@Override
protected void doPost(HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
- final File tempDir = (File) getServletContext().getAttribute("javax.servlet.context.tempdir");
+ final String path = req.getParameter("path");
+ final File file = new File(path);
- final Part filePart = req.getPart("file");
- final String filename = getFileName(filePart);
- final File file = new File(tempDir, filename);
- filePart.write(file.getAbsolutePath());
+ //TODO: deploy the file as David said (DeployerEjb)
+ //TODO: avoid sending the full file path. I dont think this is safe
final Map<String, Object> result = new HashMap<String, Object>();
result.put("file", file.getAbsolutePath());
+ result.put("deployed", Boolean.TRUE);
resp.setContentType("text/plain");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().write(new Gson().toJson(result));
}
-
- 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("\"", "");
- }
- }
- return null;
- }
}
Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java?rev=1346948&r1=1346947&r2=1346948&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/FileUploadServlet.java Wed Jun 6 15:31:56 2012
@@ -21,15 +21,13 @@ 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.annotation.MultipartConfig;
-import javax.servlet.http.*;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.Part;
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;
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=1346948&r1=1346947&r2=1346948&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 15:31:56 2012
@@ -55,6 +55,11 @@
</servlet>
<servlet>
+ <servlet-name>DeployServlet</servlet-name>
+ <servlet-class>org.apache.tomee.webapp.servlet.DeployServlet</servlet-class>
+ </servlet>
+
+ <servlet>
<servlet-name>WsConsole</servlet-name>
<servlet-class>org.apache.tomee.webapp.servlet.ConsoleServlet</servlet-class>
</servlet>
@@ -85,6 +90,11 @@
</servlet-mapping>
<servlet-mapping>
+ <servlet-name>DeployServlet</servlet-name>
+ <url-pattern>/deploy/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
<servlet-name>WsConsole</servlet-name>
<url-pattern>/ws/console/*</url-pattern>
</servlet-mapping>
Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/Application.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/Application.js?rev=1346948&r1=1346947&r2=1346948&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/Application.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/Application.js Wed Jun 6 15:31:56 2012
@@ -27,4 +27,6 @@ $(document).ready(function () {
TOMEE.ApplicationController();
});
-TOMEE.baseURL = '/tomee/';
+TOMEE.baseURL = function(url) {
+ return '/tomee/' + url;
+};
Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationController.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationController.js?rev=1346948&r1=1346947&r2=1346948&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationController.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationController.js Wed Jun 6 15:31:56 2012
@@ -27,6 +27,10 @@ TOMEE.ApplicationController = function (
//The views communicate with the controller (or other components) through this object
var channel = TOMEE.ApplicationChannel({});
+ var model = TOMEE.ApplicationModel({
+ channel:channel
+ });
+
var appsView = TOMEE.ApplicationViewApps({
channel:channel
});
@@ -119,6 +123,14 @@ TOMEE.ApplicationController = function (
alert('name: ' + params.bean.text);
});
+ channel.bind('deploy.file.uploaded', function (params) {
+ model.deployApp(params.file);
+ });
+
+ channel.bind('app.deployment.result', function (params) {
+ alert('file: ' + params.file + '; deployed: ' + params.deployed + ';');
+ });
+
var view = TOMEE.ApplicationView({
channel:channel,
groups:{
Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationModel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationModel.js?rev=1346948&r1=1346947&r2=1346948&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationModel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/js/tomee/ApplicationModel.js Wed Jun 6 15:31:56 2012
@@ -26,77 +26,30 @@ TOMEE.ApplicationModel = function (cfg)
var channel = cfg.channel;
- /**
- * Prepare internal values.
- *
- * @param data request json value
- */
- var prepareDataMethod = cfg.prepareDataMethod;
- if(!prepareDataMethod) {
- throw "You need to give me the prepareDataMethod";
- }
-
- var methodType = cfg.methodType;
- if(!methodType) {
- throw "You need to give me the methodType (GET, POST, PUT etc)";
- }
-
- var url = cfg.url;
- if(!url) {
- throw "You need to give me the url";
- }
-
- //holder for all the request parameters.
- var requestParameters = {};
-
- //keep tracking of the current request
- //so we can cancel it if necessary
- var currentRequest = null;
-
-
- /**
- * Delayed task for the remote request.
- */
- var load = new TOMEE.DelayedTask({
- callback: function () {
- //if we already have a running request, cancel it.
- if (currentRequest) {
- currentRequest.abort();
+ var request = function (params) {
+ $.ajax({
+ url:params.url,
+ type:params.method,
+ data:params.data,
+ dataType:'json',
+ success:params.success,
+ error:params.error
}
+ );
+ };
- //start a new request
- currentRequest = $.ajax({
- type: methodType,
- dataType: 'json',
- data: requestParameters,
- url: url,
- success: function (data) {
- prepareDataMethod(data);
- channel.send('connection_new_data', {});
+ return {
+ deployApp:function (path) {
+ request({
+ method:'POST',
+ url:TOMEE.baseURL('deploy'),
+ data:{
+ path:path
},
- error: function (data) {
- channel.send('connection_exception', {});
+ success:function (data) {
+ channel.send('app.deployment.result', data);
}
});
}
- });
-
- var getRequestParameter = function (key) {
- return requestParameters[key];
- };
-
- var setRequestParameter = function (key, value) {
- requestParameters[key] = value;
- };
-
- return {
- setRequestParameter: setRequestParameter,
- getRequestParameter: getRequestParameter,
- load: function () {
- //wait 1 second before triggering this request
- //the user may be still selecting his parameters
- //the last calling thread will trigger the request
- load.delay(1000);
- }
};
};
\ No newline at end of file
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=1346948&r1=1346947&r2=1346948&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 15:31:56 2012
@@ -76,8 +76,11 @@ TOMEE.ApplicationViewApps = function (cf
fileForm.myFrame.unbind('load', fileUploadedHandler);
var text = TOMEE.utils.getSafe(function() {
return fileForm.myFrame.contents().first()[0].body.innerText;
- }, '')
- alert(text);
+ }, '');
+
+ var json = jQuery.parseJSON(text);
+
+ channel.send('deploy.file.uploaded', json);
};
var frameId = TOMEE.Sequence.next('uploadFrame');
@@ -88,7 +91,7 @@ TOMEE.ApplicationViewApps = function (cf
style:'background-color:#EEE; border-top: 1px solid #E5E5E5; height: 30px;margin-bottom: 0px;',
method: 'post',
enctype: 'multipart/form-data',
- action: TOMEE.baseURL + 'upload',
+ action: TOMEE.baseURL('upload'),
target: frameId
},
children:[
@@ -116,11 +119,8 @@ TOMEE.ApplicationViewApps = function (cf
}
}
]
-
});
-
-
content.append(fileForm.main);
})();