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/10/20 22:52:01 UTC
svn commit: r1400512 - in /openejb/trunk/openejb/tomee/tomee-webapp/src/main:
java/org/apache/tomee/webapp/servlet/CommandExecutorServlet.java
webapp/WEB-INF/web.xml webapp/app/js/ApplicationModel.js
Author: tveronezi
Date: Sat Oct 20 20:52:01 2012
New Revision: 1400512
URL: http://svn.apache.org/viewvc?rev=1400512&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-490
Added:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/CommandExecutorServlet.java
Modified:
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/WEB-INF/web.xml
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js
Added: openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/CommandExecutorServlet.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/CommandExecutorServlet.java?rev=1400512&view=auto
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/CommandExecutorServlet.java (added)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/java/org/apache/tomee/webapp/servlet/CommandExecutorServlet.java Sat Oct 20 20:52:01 2012
@@ -0,0 +1,43 @@
+/*
+ * 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.tomee.webapp.servlet;
+
+import org.apache.tomee.webapp.JsonExecutor;
+import org.apache.tomee.webapp.command.CommandExecutor;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Map;
+
+public class CommandExecutorServlet extends HttpServlet {
+
+ @Override
+ protected void doPost(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
+ JsonExecutor.execute(req, resp, new JsonExecutor.Executor() {
+ @Override
+ public void call(Map<String, Object> json) throws Exception {
+ final CommandExecutor executor = new CommandExecutor();
+ final Map<String, Object> result = executor.execute(req.getParameter("strParam"));
+ json.putAll(result);
+ }
+ });
+ }
+}
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=1400512&r1=1400511&r2=1400512&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 Sat Oct 20 20:52:01 2012
@@ -71,6 +71,17 @@
<!-- ************************************************************************************** -->
<servlet>
+ <servlet-name>commandServlet</servlet-name>
+ <servlet-class>org.apache.tomee.webapp.servlet.CommandExecutorServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>commandServlet</servlet-name>
+ <url-pattern>/command</url-pattern>
+ </servlet-mapping>
+
+ <!-- ************************************************************************************** -->
+
+ <servlet>
<servlet-name>ServerServlet</servlet-name>
<servlet-class>org.apache.openejb.server.httpd.ServerServlet</servlet-class>
</servlet>
Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js?rev=1400512&r1=1400511&r2=1400512&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/ApplicationModel.js Sat Oct 20 20:52:01 2012
@@ -66,7 +66,8 @@ TOMEE.ApplicationModel = function () {
}
function createSocket() {
- var socket = null,
+ var isFake = false,
+ socket = null,
host = (function () {
var suffix = '/tomee/socket';
var path = window.document.location.host + suffix;
@@ -81,7 +82,39 @@ TOMEE.ApplicationModel = function () {
} else if ('MozWebSocket' in window) {
socket = new MozWebSocket(host);
} else {
- throw 'WebSocket is not supported by this browser.';
+ socket = (function () {
+ // We need to simulate the socket object.
+ // This browser does not have it.
+ isFake = true;
+
+ var readyStateON = true;
+
+ function send(str) {
+ $.ajax({
+ url:'/tomee/command',
+ type:'POST',
+ dataType:'text',
+ data:{
+ strParam:str
+ },
+ error:function (data) {
+ socket.onerror(data);
+ },
+ success:function (data) {
+ socket.onmessage({
+ data:data
+ });
+ }
+ }
+ );
+ }
+
+ return {
+ readyState:readyStateON,
+ OPEN:readyStateON,
+ send:send
+ }
+ })();
}
socket.onopen = function () {
@@ -92,7 +125,6 @@ TOMEE.ApplicationModel = function () {
channel.send('server-connection', 'socket-connection-closed', {});
};
-
socket.onerror = function (message) {
channel.send('server-connection', 'socket-connection-error', {
message:message
@@ -118,6 +150,10 @@ TOMEE.ApplicationModel = function () {
}
};
+ if (isFake) {
+ socket.onopen();
+ }
+
return socket;
}
@@ -143,8 +179,8 @@ TOMEE.ApplicationModel = function () {
method:'POST',
dataType:'json',
data:bean.params,
- success:function(data) {
- if(bean.callback) {
+ success:function (data) {
+ if (bean.callback) {
bean.callback(data);
}
channel.send('server-command-callback-success', bean.servlet, {