You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2008/09/30 12:23:25 UTC
svn commit: r700405 - in /activemq/trunk/activemq-web-console/src/main:
java/org/apache/activemq/web/controller/ webapp/ webapp/WEB-INF/ webapp/js/
Author: dejanb
Date: Tue Sep 30 03:23:22 2008
New Revision: 700405
URL: http://svn.apache.org/viewvc?rev=700405&view=rev
Log:
patch for AMQ-1326 applied (with a few more code improvements)
Added:
activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/CopyMessage.java (with props)
activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/MoveMessage.java (with props)
Modified:
activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/DeleteMessage.java
activemq/trunk/activemq-web-console/src/main/webapp/WEB-INF/dispatcher-servlet.xml
activemq/trunk/activemq-web-console/src/main/webapp/js/common.js
activemq/trunk/activemq-web-console/src/main/webapp/message.jsp
Added: activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/CopyMessage.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/CopyMessage.java?rev=700405&view=auto
==============================================================================
--- activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/CopyMessage.java (added)
+++ activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/CopyMessage.java Tue Sep 30 03:23:22 2008
@@ -0,0 +1,76 @@
+/**
+ * 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.activemq.web.controller;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.activemq.broker.jmx.QueueViewMBean;
+import org.apache.activemq.web.BrokerFacade;
+import org.apache.activemq.web.DestinationFacade;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.mvc.Controller;
+
+/**
+ * Copies a message from one to another queue
+ *
+ * @author <a href="http://www.nighttale.net">Dejan Bosanac</a>
+ * @version $Revision$
+ */
+public class CopyMessage extends DestinationFacade implements Controller {
+ private String messageId;
+ private String destination;
+ private static final Log log = LogFactory.getLog(CopyMessage.class);
+
+ public CopyMessage(BrokerFacade brokerFacade) {
+ super(brokerFacade);
+ }
+
+ public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
+ if (messageId != null) {
+ QueueViewMBean queueView = getQueueView();
+ if (queueView != null) {
+ log.info(getJMSDestination() + "(" + messageId + ")" + " copy to " + destination);
+ queueView.copyMessageTo(messageId, destination);
+ } else {
+ log.warn("No queue named: " + getPhysicalDestinationName());
+ }
+ }
+ return redirectToBrowseView();
+ }
+
+ public String getMessageId() {
+ return messageId;
+ }
+
+ public void setMessageId(String messageId) {
+ this.messageId = messageId;
+ }
+
+
+
+ public String getDestination() {
+ return destination;
+ }
+
+ public void setDestination(String destination) {
+ this.destination = destination;
+ }
+
+}
Propchange: activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/CopyMessage.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/DeleteMessage.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/DeleteMessage.java?rev=700405&r1=700404&r2=700405&view=diff
==============================================================================
--- activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/DeleteMessage.java (original)
+++ activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/DeleteMessage.java Tue Sep 30 03:23:22 2008
@@ -22,6 +22,8 @@
import org.apache.activemq.broker.jmx.QueueViewMBean;
import org.apache.activemq.web.BrokerFacade;
import org.apache.activemq.web.DestinationFacade;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
@@ -30,6 +32,7 @@
*/
public class DeleteMessage extends DestinationFacade implements Controller {
private String messageId;
+ private static final Log log = LogFactory.getLog(DeleteMessage.class);
public DeleteMessage(BrokerFacade brokerFacade) {
super(brokerFacade);
@@ -37,12 +40,12 @@
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
if (messageId != null) {
- QueueViewMBean queueView = getQueue();
+ QueueViewMBean queueView = getQueueView();
if (queueView != null) {
- System.out.println("#### removing message: " + messageId);
+ log.info("Removing message " + getJMSDestination() + "(" + messageId + ")");
queueView.removeMessage(messageId);
} else {
- System.out.println("#### NO QUEUE!");
+ log.warn("No queue named: " + getPhysicalDestinationName());
}
}
return redirectToBrowseView();
@@ -56,9 +59,4 @@
this.messageId = messageId;
}
- protected QueueViewMBean getQueue() throws Exception {
- String name = getPhysicalDestinationName();
- System.out.println("####ĂŠlooking up queue: " + name);
- return getBrokerFacade().getQueue(name);
- }
}
Added: activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/MoveMessage.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/MoveMessage.java?rev=700405&view=auto
==============================================================================
--- activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/MoveMessage.java (added)
+++ activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/MoveMessage.java Tue Sep 30 03:23:22 2008
@@ -0,0 +1,76 @@
+/**
+ * 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.activemq.web.controller;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.activemq.broker.jmx.QueueViewMBean;
+import org.apache.activemq.web.BrokerFacade;
+import org.apache.activemq.web.DestinationFacade;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.mvc.Controller;
+
+/**
+ * Moves a message from one to another queue
+ *
+ * @author <a href="http://www.nighttale.net">Dejan Bosanac</a>
+ * @version $Revision$
+ */
+public class MoveMessage extends DestinationFacade implements Controller {
+ private String messageId;
+ private String destination;
+ private static final Log log = LogFactory.getLog(MoveMessage.class);
+
+ public MoveMessage(BrokerFacade brokerFacade) {
+ super(brokerFacade);
+ }
+
+ public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
+ if (messageId != null) {
+ QueueViewMBean queueView = getQueueView();
+ if (queueView != null) {
+ log.info("Moving message " + getJMSDestination() + "(" + messageId + ")" + " to " + destination);
+ queueView.moveMessageTo(messageId, destination);
+ } else {
+ log.warn("No queue named: " + getPhysicalDestinationName());
+ }
+ }
+ return redirectToBrowseView();
+ }
+
+ public String getMessageId() {
+ return messageId;
+ }
+
+ public void setMessageId(String messageId) {
+ this.messageId = messageId;
+ }
+
+
+
+ public String getDestination() {
+ return destination;
+ }
+
+ public void setDestination(String destination) {
+ this.destination = destination;
+ }
+
+}
Propchange: activemq/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/MoveMessage.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: activemq/trunk/activemq-web-console/src/main/webapp/WEB-INF/dispatcher-servlet.xml
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-console/src/main/webapp/WEB-INF/dispatcher-servlet.xml?rev=700405&r1=700404&r2=700405&view=diff
==============================================================================
--- activemq/trunk/activemq-web-console/src/main/webapp/WEB-INF/dispatcher-servlet.xml (original)
+++ activemq/trunk/activemq-web-console/src/main/webapp/WEB-INF/dispatcher-servlet.xml Tue Sep 30 03:23:22 2008
@@ -33,6 +33,8 @@
<bean name="/sendMessage.action" class="org.apache.activemq.web.controller.SendMessage" autowire="constructor" singleton="false"/>
<bean name="/purgeDestination.action" class="org.apache.activemq.web.controller.PurgeDestination" autowire="constructor" singleton="false"/>
<bean name="/deleteMessage.action" class="org.apache.activemq.web.controller.DeleteMessage" autowire="constructor" singleton="false"/>
+ <bean name="/copyMessage.action" class="org.apache.activemq.web.controller.CopyMessage" autowire="constructor" singleton="false"/>
+ <bean name="/moveMessage.action" class="org.apache.activemq.web.controller.MoveMessage" autowire="constructor" singleton="false"/>
<!--
- This bean resolves specific types of exception to corresponding error views.
Modified: activemq/trunk/activemq-web-console/src/main/webapp/js/common.js
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-console/src/main/webapp/js/common.js?rev=700405&r1=700404&r2=700405&view=diff
==============================================================================
--- activemq/trunk/activemq-web-console/src/main/webapp/js/common.js (original)
+++ activemq/trunk/activemq-web-console/src/main/webapp/js/common.js Tue Sep 30 03:23:22 2008
@@ -106,3 +106,16 @@
return targ;
}
+function confirmAction(id, url) {
+ //TODO i18n messages
+ var select = document.getElementById(id);
+ var selectedIndex = select.selectedIndex;
+ if (select.selectedIndex == 0) {
+ alert("Please select a value");
+ return;
+ }
+ var value = select.options[selectedIndex].value;
+ url = url.replace(/%target%/gi, value);
+ if (confirm("Are you sure?"))
+ location.href=url;
+}
\ No newline at end of file
Modified: activemq/trunk/activemq-web-console/src/main/webapp/message.jsp
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-web-console/src/main/webapp/message.jsp?rev=700405&r1=700404&r2=700405&view=diff
==============================================================================
--- activemq/trunk/activemq-web-console/src/main/webapp/message.jsp (original)
+++ activemq/trunk/activemq-web-console/src/main/webapp/message.jsp Tue Sep 30 03:23:22 2008
@@ -136,6 +136,41 @@
</table>
</td>
</tr>
+ <tr>
+ <td class="layout" colspan="2">
+ <table id="body" width="100%">
+ <thead>
+ <tr>
+ <th colspan="2">
+ Message Actions
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td colspan="2"><a href="deleteMessage.action?JMSDestination=${row.JMSDestination}&messageId=${row.JMSMessageID}">Delete</a></td>
+ </tr>
+ <tr class="odd">
+ <td><a href="javascript:confirmAction('queue', 'copyMessage.action?destination=%target%&JMSDestination=${row.JMSDestination}&messageId=${row.JMSMessageID}&JMSDestinationType=queue')">Copy</a></td>
+ <td rowspan="2">
+ <select id="queue">
+ <option value=""> -- Please select --</option>
+ <c:forEach items="${requestContext.brokerQuery.queues}" var="queues">
+ <c:if test="${queues.name != requestContext.messageQuery.JMSDestination}">
+ <option value="${queues.name}">${queues.name}</option>
+ </c:if>
+ </c:forEach>
+ </select>
+ </td>
+
+ </tr>
+ <tr class="odd">
+ <td><a href="javascript:confirmAction('queue', 'moveMessage.action?destination=%target%&JMSDestination=${row.JMSDestination}&messageId=${row.JMSMessageID}&JMSDestinationType=queue')">Move</a></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
</table>