You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by bh...@apache.org on 2007/03/27 11:07:32 UTC
svn commit: r522821 - in /incubator/qpid/trunk/qpid/java:
broker/src/main/java/org/apache/qpid/server/queue/
broker/src/test/java/org/apache/qpid/server/queue/
distribution/src/main/assembly/
management/eclipse-plugin/src/main/java/org/apache/qpid/mana...
Author: bhupendrab
Date: Tue Mar 27 02:07:30 2007
New Revision: 522821
URL: http://svn.apache.org/viewvc?view=rev&rev=522821
Log:
merged from M2 (r521792:522567) QPID-408 QPID-421 QPID-428
Added:
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NumberVerifyListener.java
- copied unchanged from r522567, incubator/qpid/branches/M2/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NumberVerifyListener.java
Modified:
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ManagedQueue.java
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java
incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueAlertTest.java
incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java
incubator/qpid/trunk/qpid/java/distribution/src/main/assembly/bin.xml
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedServer.java
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AddServer.java
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/ReconnectServer.java
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/MBeanUtility.java
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java
incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java
Modified: incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java Tue Mar 27 02:07:30 2007
@@ -118,7 +118,7 @@
/** max allowed number of messages on a queue. */
@Configured(path = "maximumMessageCount", defaultValue = "0")
- public int _maximumMessageCount;
+ public long _maximumMessageCount;
/** max queue depth for the queue */
@Configured(path = "maximumQueueDepth", defaultValue = "0")
@@ -350,12 +350,12 @@
return _totalMessagesReceived.get();
}
- public int getMaximumMessageCount()
+ public long getMaximumMessageCount()
{
return _maximumMessageCount;
}
- public void setMaximumMessageCount(int value)
+ public void setMaximumMessageCount(long value)
{
_maximumMessageCount = value;
}
Modified: incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java Tue Mar 27 02:07:30 2007
@@ -20,6 +20,8 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.Date;
+import java.text.SimpleDateFormat;
import javax.management.JMException;
import javax.management.MBeanException;
@@ -44,6 +46,7 @@
import org.apache.qpid.framing.CommonContentHeaderProperties;
import org.apache.qpid.framing.ContentHeaderBody;
import org.apache.qpid.framing.AMQShortString;
+import org.apache.qpid.framing.BasicContentHeaderProperties;
import org.apache.qpid.framing.abstraction.ContentChunk;
import org.apache.qpid.server.management.AMQManagedObject;
import org.apache.qpid.server.management.MBeanConstructor;
@@ -58,8 +61,8 @@
@MBeanDescription("Management Interface for AMQQueue")
public class AMQQueueMBean extends AMQManagedObject implements ManagedQueue, QueueNotificationListener
{
-
private static final Logger _logger = Logger.getLogger(AMQQueueMBean.class);
+ private static final SimpleDateFormat _dateFormat = new SimpleDateFormat("MM-dd-yy HH:mm:ss.SSS z");
/**
* Since the MBean is not associated with a real channel we can safely create our own store context
@@ -197,12 +200,12 @@
return _queue.getReceivedMessageCount();
}
- public Integer getMaximumMessageCount()
+ public Long getMaximumMessageCount()
{
return _queue.getMaximumMessageCount();
}
- public void setMaximumMessageCount(Integer value)
+ public void setMaximumMessageCount(Long value)
{
_queue.setMaximumMessageCount(value);
}
@@ -370,8 +373,7 @@
AMQMessage msg = list.get(i - 1);
ContentHeaderBody headerBody = msg.getContentHeaderBody();
// Create header attributes list
- CommonContentHeaderProperties headerProperties = (CommonContentHeaderProperties) headerBody.properties;
- String[] headerAttributes = headerProperties.toString().split(",");
+ String[] headerAttributes = getMessageHeaderProperties(headerBody);
Object[] itemValues = {msg.getMessageId(), headerAttributes, headerBody.bodySize, msg.isRedelivered()};
CompositeData messageData = new CompositeDataSupport(_messageDataType, _msgAttributeNames, itemValues);
_messageList.put(messageData);
@@ -383,6 +385,35 @@
}
return _messageList;
+ }
+
+ private String[] getMessageHeaderProperties(ContentHeaderBody headerBody)
+ {
+ List<String> list = new ArrayList<String>();
+ BasicContentHeaderProperties headerProperties = (BasicContentHeaderProperties) headerBody.properties;
+ list.add("reply-to = " + headerProperties.getReplyToAsString());
+ list.add("propertyFlags = " + headerProperties.getPropertyFlags());
+ list.add("ApplicationID = " + headerProperties.getAppIdAsString());
+ list.add("ClusterID = " + headerProperties.getClusterIdAsString());
+ list.add("UserId = " + headerProperties.getUserIdAsString());
+ list.add("JMSMessageID = " + headerProperties.getMessageIdAsString());
+ list.add("JMSCorrelationID = " + headerProperties.getCorrelationIdAsString());
+
+ int delMode = headerProperties.getDeliveryMode();
+ list.add("JMSDeliveryMode = " + (delMode == 1 ? "Persistent" : "Non_Persistent"));
+
+ list.add("JMSPriority = " + headerProperties.getPriority());
+ list.add("JMSType = " + headerProperties.getType());
+
+ long longDate = headerProperties.getExpiration();
+ String strDate = (longDate != 0) ? _dateFormat.format(new Date(longDate)) : null;
+ list.add("JMSExpiration = " + strDate);
+
+ longDate = headerProperties.getTimestamp();
+ strDate = (longDate != 0) ? _dateFormat.format(new Date(longDate)) : null;
+ list.add("JMSTimestamp = " + strDate);
+
+ return list.toArray(new String[list.size()]);
}
/**
Modified: incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ConcurrentSelectorDeliveryManager.java Tue Mar 27 02:07:30 2007
@@ -401,7 +401,10 @@
_lock.lock();
AMQMessage message = _messages.poll();
- _totalMessageSize.addAndGet(-message.getSize());
+ if (message != null)
+ {
+ _totalMessageSize.addAndGet(-message.getSize());
+ }
_lock.unlock();
}
@@ -539,7 +542,7 @@
{
subscriberHasPendingResend(false, sub, null);
//better to use the above method as this keeps all the tracking in one location.
-// _hasContent.remove(sub);
+ // _hasContent.remove(sub);
}
_extraMessages.decrementAndGet();
@@ -552,7 +555,10 @@
}
}
- _totalMessageSize.addAndGet(-message.getSize());
+ if ((message != null) && (messageQueue == _messages))
+ {
+ _totalMessageSize.addAndGet(-message.getSize());
+ }
}
catch (AMQException e)
{
Modified: incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ManagedQueue.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ManagedQueue.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ManagedQueue.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/ManagedQueue.java Tue Mar 27 02:07:30 2007
@@ -156,7 +156,7 @@
* @return maximum muber of message allowed to be stored in the queue.
* @throws IOException
*/
- Integer getMaximumMessageCount() throws IOException;
+ Long getMaximumMessageCount() throws IOException;
/**
* Sets the maximum number of messages allowed to be stored in the queue.
@@ -164,7 +164,7 @@
* @throws IOException
*/
@MBeanAttribute(name="MaximumMessageCount", description="Threshold high value for number of undelivered messages in the queue")
- void setMaximumMessageCount(Integer value) throws IOException;
+ void setMaximumMessageCount(Long value) throws IOException;
/**
* This is useful for setting notifications or taking required action if the size of messages
Modified: incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/NotificationCheck.java Tue Mar 27 02:07:30 2007
@@ -27,7 +27,7 @@
boolean notifyIfNecessary(AMQMessage msg, AMQQueue queue, QueueNotificationListener listener)
{
int msgCount = queue.getMessageCount();
- final int maximumMessageCount = queue.getMaximumMessageCount();
+ final long maximumMessageCount = queue.getMaximumMessageCount();
if (maximumMessageCount!= 0 && msgCount >= maximumMessageCount)
{
listener.notifyClients(this, queue, msgCount + ": Maximum count on queue threshold ("+ maximumMessageCount +") breached.");
Modified: incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueAlertTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueAlertTest.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueAlertTest.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueAlertTest.java Tue Mar 27 02:07:30 2007
@@ -42,7 +42,7 @@
/** This class tests all the alerts an AMQQueue can throw based on threshold values of different parameters */
public class AMQQueueAlertTest extends TestCase
{
- private final static int MAX_MESSAGE_COUNT = 50;
+ private final static long MAX_MESSAGE_COUNT = 50;
private final static long MAX_MESSAGE_AGE = 250; // 0.25 sec
private final static long MAX_MESSAGE_SIZE = 2000; // 2 KB
private final static long MAX_QUEUE_DEPTH = 10000; // 10 KB
@@ -175,7 +175,7 @@
new AMQShortString("consumer_tag"), true, null, false, false);
_queueMBean = (AMQQueueMBean) _queue.getManagedObject();
- _queueMBean.setMaximumMessageCount(9999); // Set a high value, because this is not being tested
+ _queueMBean.setMaximumMessageCount(9999l); // Set a high value, because this is not being tested
_queueMBean.setMaximumQueueDepth(MAX_QUEUE_DEPTH);
// Send messages(no of message to be little more than what can cause a Queue_Depth alert)
@@ -268,9 +268,9 @@
_virtualHost = applicationRegistry.getVirtualHostRegistry().getVirtualHost("test");
}
- private void sendMessages(int messageCount, long size) throws AMQException
+ private void sendMessages(long messageCount, long size) throws AMQException
{
- AMQMessage[] messages = new AMQMessage[messageCount];
+ AMQMessage[] messages = new AMQMessage[(int)messageCount];
for (int i = 0; i < messages.length; i++)
{
messages[i] = message(false, size);
Modified: incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/AMQQueueMBeanTest.java Tue Mar 27 02:07:30 2007
@@ -116,7 +116,7 @@
public void testGeneralProperties()
{
long maxQueueDepth = 1000; // in bytes
- _queueMBean.setMaximumMessageCount(50000);
+ _queueMBean.setMaximumMessageCount(50000l);
_queueMBean.setMaximumMessageSize(2000l);
_queueMBean.setMaximumQueueDepth(maxQueueDepth);
Modified: incubator/qpid/trunk/qpid/java/distribution/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/distribution/src/main/assembly/bin.xml?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/distribution/src/main/assembly/bin.xml (original)
+++ incubator/qpid/trunk/qpid/java/distribution/src/main/assembly/bin.xml Tue Mar 27 02:07:30 2007
@@ -95,6 +95,12 @@
<fileMode>420</fileMode>
</file>
<file>
+ <source>../broker/etc/passwdVhost</source>
+ <outputDirectory>qpid-${qpid.version}/etc</outputDirectory>
+ <destName>passwdVhost</destName>
+ <fileMode>420</fileMode>
+ </file>
+ <file>
<source>../broker/etc/qpid-server.conf</source>
<outputDirectory>qpid-${qpid.version}/etc</outputDirectory>
<destName>qpid-server.conf</destName>
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java Tue Mar 27 02:07:30 2007
@@ -20,6 +20,8 @@
*/
package org.apache.qpid.management.ui;
+import static org.apache.qpid.management.ui.Constants.CONNECTION_PROTOCOLS;
+
/**
* Contains constants for the application
* @author Bhupendra Bhardwaj
@@ -44,6 +46,11 @@
public final static String RESULT = "Result";
public final static String VIRTUAL_HOST = "VirtualHost";
public final static String DEFAULT_VH = "Default";
+ public final static String DEFAULT_USERNAME = "guest";
+ public final static String DEFAULT_PASSWORD = "guest";
+
+ public final static String USERNAME = "Username";
+ public final static String PASSWORD = "Password";
// Attributes and operations are used to customize the GUI for Qpid. If these are changes in the
// Qpid server, then these should be updated accordingly
@@ -65,9 +72,13 @@
public final static String EXCHANGE_TYPE = "ExchangeType";
public final static String[] EXCHANGE_TYPE_VALUES = {"direct", "topic", "headers"};
public final static String[] BOOLEAN_TYPE_VALUES = {"false", "true"};
- public final static String[] ATTRIBUTE_TABLE_TITLES = {"Attribute Name", "Value"};
+ public final static String[] ATTRIBUTE_TABLE_TITLES = {"Attribute Name", "Value"};
+ public static final String[] CONNECTION_PROTOCOLS ={"RMI"};
+ public static final String DEFAULT_PROTOCOL = CONNECTION_PROTOCOLS[0];
public final static String ACTION_ADDSERVER = "New Connection";
+ public final static String ACTION_RECONNECT = "Reconnect";
+ public final static String ACTION_LOGIN = "Login";
public final static String QUEUE_SORT_BY_NAME = "Queue Name";
public final static String QUEUE_SORT_BY_DEPTH = "Queue Depth";
@@ -105,4 +116,11 @@
public final static int OPERATION_IMPACT_ACTION = 1;
public final static int OPERATION_IMPACT_ACTIONINFO = 2;
public final static int OPERATION_IMPACT_UNKNOWN = 3;
+
+ public final static String ERROR_SERVER_CONNECTION = "Server could not be connected";
+ public final static String INFO_PROTOCOL = "Please select the protocol";
+ public final static String INFO_HOST_ADDRESS = "Please enter the host address";
+ public final static String INFO_HOST_PORT = "Please enter the port number";
+ public final static String INFO_USERNAME = "Please enter the " + USERNAME;
+ public final static String INFO_PASSWORD = "Please enter the " + PASSWORD;
}
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedServer.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedServer.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedServer.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ManagedServer.java Tue Mar 27 02:07:30 2007
@@ -20,60 +20,84 @@
*/
package org.apache.qpid.management.ui;
+import static org.apache.qpid.management.ui.Constants.DEFAULT_PROTOCOL;
/**
* Class representing a server being managed eg. MBeanServer
* @author Bhupendra Bhardwaj
*/
public class ManagedServer extends ManagedObject
{
- private String host;
- private String port;
- private String url;
- private String domain;
-
- public ManagedServer(String host, String port, String domain)
- {
- this.host = host;
- this.port = port;
- this.domain = domain;
- setName(host + ":" + port);
+ private String _host;
+ private int _port;
+ private String _url;
+ private String _domain;
+ private String _user;
+ private String _password;
+ private String _protocol = DEFAULT_PROTOCOL;
+
+ public ManagedServer(String host, int port, String domain)
+ {
+ this(host, port, domain, null, null);
}
- public ManagedServer(String url, String domain)
+ public ManagedServer(String host, int port, String domain, String user, String password)
{
- this.url = url;
- this.domain = domain;
+ setName(host + ":" + port);
+ _host = host;
+ _port = port;
+ _domain = domain;
+ _url = getRMIURL(host, port);
+ _user = user;
+ _password = password;
}
-
+
public String getDomain()
{
- return domain;
+ return _domain;
}
public String getHost()
{
- return host;
+ return _host;
}
- public String getPort()
+ public int getPort()
{
- return port;
+ return _port;
}
public String getUrl()
{
- return url;
+ return _url;
+ }
+
+ public String getProtocol()
+ {
+ return _protocol;
}
- public void setHostAndPort(String host, String port)
+ public String getPassword()
{
- this.host = host;
- this.port = port;
- setName(host + ":" + port);
+ return _password;
+ }
+
+ public void setPassword(String password)
+ {
+ _password = password;
+ }
+
+ public String getUser()
+ {
+ return _user;
+ }
+
+ public void setUser(String user)
+ {
+ _user = user;
}
- public void setUrl(String url)
+ private String getRMIURL(String host, int port)
{
- this.url = url;
+ return "service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi";
}
}
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AddServer.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AddServer.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AddServer.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/AddServer.java Tue Mar 27 02:07:30 2007
@@ -20,11 +20,13 @@
*/
package org.apache.qpid.management.ui.actions;
+import static org.apache.qpid.management.ui.Constants.*;
+
import org.apache.qpid.management.ui.ApplicationRegistry;
import org.apache.qpid.management.ui.ApplicationWorkbenchAdvisor;
-import org.apache.qpid.management.ui.Constants;
import org.apache.qpid.management.ui.exceptions.InfoRequiredException;
import org.apache.qpid.management.ui.views.NavigationView;
+import org.apache.qpid.management.ui.views.NumberVerifyListener;
import org.apache.qpid.management.ui.views.ViewUtility;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -34,8 +36,6 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
@@ -51,8 +51,17 @@
public class AddServer/* extends Action*/ implements IWorkbenchWindowActionDelegate
{
private IWorkbenchWindow _window;
- private static final String[] _connectionTypes ={"RMI"};
private static final String[] _domains ={"org.apache.qpid"};
+
+ private NavigationView _navigationView;
+ private String _transport = DEFAULT_PROTOCOL;
+ private String _host;
+ private String _port;
+ private String _domain;
+ private String _user;
+ private String _password;
+
+ private boolean _addServer;
public AddServer()
{
@@ -76,20 +85,38 @@
{
if(_window != null)
{
+ reset();
+ createAddServerPopup();
try
{
- // TODO
- //_window.getActivePage().showView(NavigationView.ID, Integer.toString(0), IWorkbenchPage.VIEW_ACTIVATE);
- //_window.getActivePage().showView(MBeanView.ID, Integer.toString(0), IWorkbenchPage.VIEW_ACTIVATE);
+ if (_addServer)
+ {
+ getNavigationView().addNewServer(_transport, _host, Integer.parseInt(_port), _domain, _user, _password);
+ }
}
- catch (Exception ex)
+ catch(InfoRequiredException ex)
{
-
+ ViewUtility.popupInfoMessage("New connection", ex.getMessage());
+ }
+ catch(Exception ex)
+ {
+ IStatus status = new Status(IStatus.ERROR, ApplicationWorkbenchAdvisor.PERSPECTIVE_ID,
+ IStatus.OK, ex.getMessage(), ex.getCause());
+ ErrorDialog.openError(_window.getShell(), "Error", ERROR_SERVER_CONNECTION, status);
}
- createWidgets();
}
}
+ private void reset()
+ {
+ _addServer = false;
+ _host = null;
+ _port = null;
+ _domain = null;
+ _user = null;
+ _password = null;
+ }
+
/**
* Selection in the workbench has been changed. We
* can change the state of the 'real' action here
@@ -117,6 +144,15 @@
this._window = window;
}
+ private NavigationView getNavigationView()
+ {
+ if (_navigationView == null)
+ {
+ _navigationView = (NavigationView)_window.getActivePage().findView(NavigationView.ID);
+ }
+
+ return _navigationView;
+ }
/*
public void run()
@@ -127,18 +163,49 @@
}
}
*/
- private void createWidgets()
+
+ /**
+ * Creates the shell and then opens the popup where user can enter new connection details.
+ * Connects to the new server and adds the server in the navigation page.
+ * Pops up any error occured in connecting to the new server
+ */
+ private void createAddServerPopup()
{
Display display = Display.getCurrent();
final Shell shell = new Shell(display, SWT.BORDER | SWT.CLOSE);
- shell.setText(Constants.ACTION_ADDSERVER);
- shell.setImage(ApplicationRegistry.getImage(Constants.CONSOLE_IMAGE));
+ shell.setText(ACTION_ADDSERVER);
+ shell.setImage(ApplicationRegistry.getImage(CONSOLE_IMAGE));
shell.setLayout(new GridLayout());
int x = display.getBounds().width;
int y = display.getBounds().height;
- shell.setBounds(x/4, y/4, 425, 250);
-
+ shell.setBounds(x/3, y/3, 425, 275);
+
+ createWidgets(shell);
+
+ shell.open();
+ _window.getShell().setEnabled(false);
+
+ while (!shell.isDisposed())
+ {
+ if (!display.readAndDispatch())
+ {
+ display.sleep();
+ }
+ }
+
+ //If you create it, you dispose it.
+ shell.dispose();
+
+ // enable the main shell
+ _window.getShell().setEnabled(true);
+ _window.getShell().open();
+ }
+
+ // Creates SWT widgets for the user to add server connection details.
+ // Adds listeners to the widgets to take appropriate action
+ private void createWidgets(final Shell shell)
+ {
Composite composite = new Composite(shell, SWT.NONE);
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
GridLayout layout = new GridLayout(2, false);
@@ -148,15 +215,18 @@
layout.marginWidth = 20;
composite.setLayout(layout);
+ /* Commenting this, as there is only one protocol at the moment.
+ * This can be uncommented and enhanced, if more protocols are added in future
Label name = new Label(composite, SWT.NONE);
name.setText("Connection Type");
GridData layoutData = new GridData(SWT.TRAIL, SWT.TOP, false, false);
name.setLayoutData(layoutData);
final Combo comboTransport = new Combo(composite, SWT.READ_ONLY);
- comboTransport.setItems(_connectionTypes);
+ comboTransport.setItems(CONNECTION_PROTOCOLS);
comboTransport.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
comboTransport.select(0);
+ */
Label host = new Label(composite, SWT.NONE);
host.setText("Host");
@@ -166,20 +236,6 @@
textHost.setText("");
textHost.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
textHost.setFocus();
- /*
- //Commented so that it lets users copy paste the host name from somewhere else
- textHost.addVerifyListener(new VerifyListener(){
- public void verifyText(VerifyEvent event)
- {
- if (!(Character.isLetterOrDigit(event.character) ||
- (event.character == '.') ||
- (event.character == '\b') ))
- {
- event.doit = false;
- }
- }
- });
- */
Label port = new Label(composite, SWT.NONE);
port.setText("Port");
@@ -188,20 +244,9 @@
final Text textPort = new Text(composite, SWT.BORDER);
textPort.setText("");
textPort.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
- /* commented to allow copy paste on this window
- textPort.addVerifyListener(new VerifyListener(){
- public void verifyText(VerifyEvent event)
- {
- if (textPort.getText().length() == 4)
- event.doit = false;
- else if (!(Character.isDigit(event.character) ||
- (event.character == '\b')))
- {
- event.doit = false;
- }
- }
- });
- */
+ // Verify if the value entered is numeric
+ textPort.addVerifyListener(new NumberVerifyListener());
+
Label domain = new Label(composite, SWT.NONE);
domain.setText("Domain");
@@ -212,75 +257,96 @@
comboDomain.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
comboDomain.select(0);
+
+ Label user = new Label(composite, SWT.NONE);
+ user.setText(USERNAME);
+ user.setLayoutData(new GridData(SWT.TRAIL, SWT.TOP, false, false));
+
+ final Text textUser = new Text(composite, SWT.BORDER);
+ textUser.setText(DEFAULT_USERNAME);
+ textUser.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ Label password = new Label(composite, SWT.NONE);
+ password.setText(PASSWORD);
+ password.setLayoutData(new GridData(SWT.TRAIL, SWT.TOP, false, false));
+
+ final Text textPwd = new Text(composite, SWT.BORDER | SWT.SINGLE | SWT.PASSWORD);
+ textPwd.setText(DEFAULT_PASSWORD);
+ //textPwd.setEchoChar('*');
+ textPwd.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
Composite buttonsComposite = new Composite(composite, SWT.NONE);
buttonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
buttonsComposite.setLayout(new GridLayout(2, true));
final Button connectButton = new Button(buttonsComposite, SWT.PUSH | SWT.CENTER);
- connectButton.setText(Constants.BUTTON_CONNECT);
+ connectButton.setText(BUTTON_CONNECT);
GridData gridData = new GridData (SWT.TRAIL, SWT.BOTTOM, true, true);
gridData.widthHint = 100;
connectButton.setLayoutData(gridData);
- connectButton.setFont(ApplicationRegistry.getFont(Constants.FONT_BUTTON));
+ connectButton.setFont(ApplicationRegistry.getFont(FONT_BUTTON));
connectButton.addSelectionListener(new SelectionAdapter(){
- public void widgetSelected(SelectionEvent event)
+ public void widgetSelected(SelectionEvent event)
+ {
+ _host = textHost.getText();
+ if ((_host == null) || (_host.trim().length() == 0))
{
- String transport = comboTransport.getText();
- String host = textHost.getText();
- String port = textPort.getText();
- String domain = comboDomain.getText();
-
- NavigationView view = (NavigationView)_window.getActivePage().findView(NavigationView.ID);
- try
- {
- view.addNewServer(transport, host, port, domain);
-
- if (!connectButton.getShell().isDisposed())
- connectButton.getShell().dispose();
- }
- catch(InfoRequiredException ex)
- {
- ViewUtility.popupInfoMessage("New connection", ex.getMessage());
- }
- catch(Exception ex)
- {
- IStatus status = new Status(IStatus.ERROR, ApplicationWorkbenchAdvisor.PERSPECTIVE_ID,
- IStatus.OK, ex.getMessage(), ex.getCause());
- ErrorDialog.openError(shell, "Error", "Server could not be added", status);
- }
+ ViewUtility.popupInfoMessage(ACTION_ADDSERVER, INFO_HOST_ADDRESS);
+ textHost.setText("");
+ textHost.setFocus();
+ return;
}
- });
+
+ _port = textPort.getText();
+ if ((_port == null) || (_port.trim().length() == 0))
+ {
+ ViewUtility.popupInfoMessage(ACTION_ADDSERVER, INFO_HOST_PORT);
+ textPort.setText("");
+ textPort.setFocus();
+ return;
+ }
+
+ _user = textUser.getText();
+ if ((_user == null) || (_user.trim().length() == 0))
+ {
+ ViewUtility.popupInfoMessage(ACTION_ADDSERVER, INFO_USERNAME);
+ textUser.setText("");
+ textUser.setFocus();
+ return;
+ }
+
+ _password = textPwd.getText();
+ if (_password == null)
+ {
+ ViewUtility.popupInfoMessage(ACTION_ADDSERVER, INFO_PASSWORD);
+ textPwd.setText("");
+ textPwd.setFocus();
+ return;
+ }
+
+ _domain = comboDomain.getText();
+ _addServer = true;
+
+ if (!connectButton.getShell().isDisposed())
+ {
+ connectButton.getShell().dispose();
+ }
+ }
+ });
final Button cancelButton = new Button(buttonsComposite, SWT.PUSH);
- cancelButton.setText(Constants.BUTTON_CANCEL);
+ cancelButton.setText(BUTTON_CANCEL);
gridData = new GridData (SWT.LEAD, SWT.BOTTOM, true, true);
gridData.widthHint = 100;
cancelButton.setLayoutData(gridData);
- cancelButton.setFont(ApplicationRegistry.getFont(Constants.FONT_BUTTON));
+ cancelButton.setFont(ApplicationRegistry.getFont(FONT_BUTTON));
cancelButton.addSelectionListener(new SelectionAdapter(){
- public void widgetSelected(SelectionEvent event)
- {
- shell.dispose();
- }
- });
-
- shell.open();
- _window.getShell().setEnabled(false);
- while (!shell.isDisposed())
- {
- if (!display.readAndDispatch())
+ public void widgetSelected(SelectionEvent event)
{
- display.sleep();
+ shell.dispose();
}
- }
-
- //If you create it, you dispose it.
- shell.dispose();
-
- // enable the main shell
- _window.getShell().setEnabled(true);
- _window.getShell().open();
+ });
}
}
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/ReconnectServer.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/ReconnectServer.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/ReconnectServer.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/actions/ReconnectServer.java Tue Mar 27 02:07:30 2007
@@ -20,21 +20,44 @@
*/
package org.apache.qpid.management.ui.actions;
+import static org.apache.qpid.management.ui.Constants.*;
+
+import org.apache.qpid.management.ui.ApplicationRegistry;
import org.apache.qpid.management.ui.ApplicationWorkbenchAdvisor;
+import org.apache.qpid.management.ui.Constants;
import org.apache.qpid.management.ui.exceptions.InfoRequiredException;
import org.apache.qpid.management.ui.views.NavigationView;
+import org.apache.qpid.management.ui.views.TreeObject;
import org.apache.qpid.management.ui.views.ViewUtility;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
public class ReconnectServer implements IWorkbenchWindowActionDelegate
{
private IWorkbenchWindow _window;
+ private NavigationView _navigationView;
+ private String _title;
+ private String _serverName;
+ private String _user;
+ private String _password;
+ private boolean _connect;
/**
* Selection in the workbench has been changed. We
@@ -68,14 +91,36 @@
this._window = window;
}
+ private NavigationView getNavigationView()
+ {
+ if (_navigationView == null)
+ {
+ _navigationView = (NavigationView)_window.getActivePage().findView(NavigationView.ID);
+ }
+
+ return _navigationView;
+ }
+
public void run(IAction action)
{
if(_window != null)
{
- NavigationView view = (NavigationView)_window.getActivePage().findView(NavigationView.ID);
try
{
- view.reconnect();
+ reset();
+ // Check if a server node is selected to be reconnected.
+ TreeObject serverNode = getNavigationView().getSelectedServerNode();
+ _serverName = serverNode.getName();
+ _title = ACTION_LOGIN + " (" + _serverName + ")";
+
+ // Get the login details(username/password)
+ createLoginPopup();
+
+ if (_connect)
+ {
+ // Connect the server
+ getNavigationView().reconnect(_user, _password);
+ }
}
catch(InfoRequiredException ex)
{
@@ -85,8 +130,136 @@
{
IStatus status = new Status(IStatus.ERROR, ApplicationWorkbenchAdvisor.PERSPECTIVE_ID,
IStatus.OK, ex.getMessage(), ex.getCause());
- ErrorDialog.openError(_window.getShell(), "Error", "Server could not be connected", status);
+ ErrorDialog.openError(_window.getShell(), "Error", ERROR_SERVER_CONNECTION, status);
}
}
}
+
+ private void reset()
+ {
+ _connect = false;
+ _user = null;
+ _password = null;
+ }
+
+ // Create the login popup fot th user to enter usernaem and password
+ private void createLoginPopup()
+ {
+ Display display = Display.getCurrent();
+ final Shell shell = new Shell(display, SWT.BORDER | SWT.CLOSE);
+ shell.setText(_title);
+ shell.setImage(ApplicationRegistry.getImage(CONSOLE_IMAGE));
+ shell.setLayout(new GridLayout());
+
+ int x = display.getBounds().width;
+ int y = display.getBounds().height;
+ shell.setBounds(x/3, y/3, 350, 200);
+
+ createWidgets(shell);
+
+ shell.open();
+ _window.getShell().setEnabled(false);
+
+ while (!shell.isDisposed())
+ {
+ if (!display.readAndDispatch())
+ {
+ display.sleep();
+ }
+ }
+
+ //If you create it, you dispose it.
+ shell.dispose();
+
+ // enable the main shell
+ _window.getShell().setEnabled(true);
+ _window.getShell().open();
+ }
+
+ // Creates the SWT widgets in the popup shell, to enter username and password.
+ // Adds listeners to the widgets to take appropriate action
+ private void createWidgets(final Shell shell)
+ {
+ Composite composite = new Composite(shell, SWT.NONE);
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ GridLayout layout = new GridLayout(2, false);
+ layout.horizontalSpacing = 10;
+ layout.verticalSpacing = 10;
+ layout.marginHeight = 20;
+ layout.marginWidth = 20;
+ composite.setLayout(layout);
+
+ Label user = new Label(composite, SWT.NONE);
+ user.setText(USERNAME);
+ user.setLayoutData(new GridData(SWT.TRAIL, SWT.TOP, false, false));
+
+ final Text textUser = new Text(composite, SWT.BORDER);
+ textUser.setText(DEFAULT_USERNAME);
+ textUser.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+ // Put cursor on this field
+ textUser.setFocus();
+
+ Label password = new Label(composite, SWT.NONE);
+ password.setText(PASSWORD);
+ password.setLayoutData(new GridData(SWT.TRAIL, SWT.TOP, false, false));
+
+ final Text textPwd = new Text(composite, SWT.BORDER | SWT.SINGLE | SWT.PASSWORD);
+ textPwd.setText(DEFAULT_PASSWORD);
+ textPwd.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
+
+ Composite buttonsComposite = new Composite(composite, SWT.NONE);
+ buttonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
+ buttonsComposite.setLayout(new GridLayout(2, true));
+
+
+ final Button connectButton = new Button(buttonsComposite, SWT.PUSH | SWT.CENTER);
+ connectButton.setText(Constants.BUTTON_CONNECT);
+ GridData gridData = new GridData (SWT.TRAIL, SWT.BOTTOM, true, true);
+ gridData.widthHint = 100;
+ connectButton.setLayoutData(gridData);
+ connectButton.setFont(ApplicationRegistry.getFont(Constants.FONT_BUTTON));
+ connectButton.addSelectionListener(new SelectionAdapter(){
+ public void widgetSelected(SelectionEvent event)
+ {
+ _user = textUser.getText();
+ if ((_user == null) || (_user.trim().length() == 0))
+ {
+ ViewUtility.popupInfoMessage(_title, INFO_USERNAME);
+ textUser.setText("");
+ textUser.setFocus();
+ return;
+ }
+
+ _password = textPwd.getText();
+ if (_password == null)
+ {
+ ViewUtility.popupInfoMessage(_title, INFO_PASSWORD);
+ textPwd.setText("");
+ textPwd.setFocus();
+ return;
+ }
+
+ _connect = true;
+
+ if (!connectButton.getShell().isDisposed())
+ {
+ connectButton.getShell().dispose();
+ }
+ }
+ });
+
+ final Button cancelButton = new Button(buttonsComposite, SWT.PUSH);
+ cancelButton.setText(Constants.BUTTON_CANCEL);
+ gridData = new GridData (SWT.LEAD, SWT.BOTTOM, true, true);
+ gridData.widthHint = 100;
+ cancelButton.setLayoutData(gridData);
+ cancelButton.setFont(ApplicationRegistry.getFont(Constants.FONT_BUTTON));
+ cancelButton.addSelectionListener(new SelectionAdapter(){
+ public void widgetSelected(SelectionEvent event)
+ {
+ shell.dispose();
+ }
+ });
+ }
+
}
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java Tue Mar 27 02:07:30 2007
@@ -83,7 +83,9 @@
{
super(server);
JMXServiceURL jmxUrl = new JMXServiceURL(server.getUrl());
- Map<String, Object> env = null;
+ Map<String, Object> env = new HashMap<String, Object>();
+ String[] creds = {server.getUser(), server.getPassword()};
+ env.put(JMXConnector.CREDENTIALS, creds);
_jmxc = JMXConnectorFactory.connect(jmxUrl, env);
_mbsc = _jmxc.getMBeanServerConnection();
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/MBeanUtility.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/MBeanUtility.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/MBeanUtility.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/MBeanUtility.java Tue Mar 27 02:07:30 2007
@@ -21,6 +21,7 @@
package org.apache.qpid.management.ui.jmx;
import java.io.IOException;
+import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
@@ -65,6 +66,9 @@
String debug = System.getProperty("debug");
_debug = "true".equalsIgnoreCase(debug) ? true : false;
}
+
+ public static final BigInteger MAX_LONG = BigInteger.valueOf(Long.MAX_VALUE);
+ public static final BigInteger MAX_INT = BigInteger.valueOf(Integer.MAX_VALUE);
/**
* Retrieves the MBeanInfo from MBeanServer and stores in the application registry
* @param mbean managed bean
@@ -333,10 +337,19 @@
Object newValue = value;
if (attribute.getDataType().equals(Long.class.getName()))
{
+ if (MAX_LONG.compareTo(new BigInteger(value)) == -1)
+ {
+ throw new ManagementConsoleException("Entered value is too big for \"" +
+ ViewUtility.getDisplayText(attribute.getName()) + "\"");
+ }
newValue = new Long(Long.parseLong(value));
}
else if (attribute.getDataType().equals(Integer.class.getName()))
{
+ if (MAX_INT.compareTo(new BigInteger(value)) == -1)
+ {
+ throw new ManagementConsoleException("Entered value is too big for " + attribute.getName());
+ }
newValue = new Integer(Integer.parseInt(value));
}
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/AttributesTabControl.java Tue Mar 27 02:07:30 2007
@@ -488,7 +488,7 @@
GridData layoutData = new GridData(SWT.TRAIL, SWT.TOP, false, false);
label.setLayoutData(layoutData);
Text value = new Text(parent, SWT.BEGINNING | SWT.BORDER |SWT.READ_ONLY);
- value.setText(attribute.getName());
+ value.setText(ViewUtility.getDisplayText(attribute.getName()));
value.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
@@ -527,23 +527,7 @@
{
style = SWT.BEGINNING | SWT.BORDER;
value = new Text(parent, style);
- value.addVerifyListener(new VerifyListener()
- {
- public void verifyText(VerifyEvent event)
- {
- String string = event.text;
- char [] chars = new char [string.length ()];
- string.getChars (0, chars.length, chars, 0);
- for (int i=0; i<chars.length; i++)
- {
- if (!('0' <= chars [i] && chars [i] <= '9'))
- {
- event.doit = false;
- return;
- }
- }
- }
- });
+ value.addVerifyListener(new NumberVerifyListener());
// set data to access in the listener
parent.setData(attribute);
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java Tue Mar 27 02:07:30 2007
@@ -215,11 +215,6 @@
}
}
- private String getRMIURL(String host)
- {
- return "service:jmx:rmi:///jndi/rmi://" + host + "/jmxrmi";
- }
-
/**
* Adds a new server node in the navigation view if server connection is successful.
* @param transportProtocol
@@ -228,24 +223,30 @@
* @param domain
* @throws Exception
*/
- public void addNewServer(String transportProtocol, String host, String port, String domain)
- throws Exception
+ public void addNewServer(String transportProtocol, String host, int port,
+ String domain, String user, String pwd) throws Exception
{
String serverAddress = host + ":" + port;
String url = null;
- ManagedServer managedServer = null;
+ ManagedServer managedServer = new ManagedServer(host, port, domain, user, pwd);
if ("RMI".equals(transportProtocol))
{
- url = getRMIURL(serverAddress);
+ url = managedServer.getUrl();
List<TreeObject> list = _serversRootNode.getChildren();
for (TreeObject node : list)
{
if (url.equals(node.getUrl()))
- throw new InfoRequiredException("Server " + serverAddress + " is already added");
+ {
+ // Server is already in the list of added servers, so now connect it.
+ // Set the server node as selected and then connect it.
+ _treeViewer.setSelection(new StructuredSelection(node));
+ reconnect(user, pwd);
+ return;
+ }
}
- managedServer = new ManagedServer(url, domain);
+ // The server is not in the list of already added servers, so now connect and add it.
managedServer.setName(serverAddress);
createRMIServerConnection(managedServer);
}
@@ -710,14 +711,16 @@
* Connects the selected server node
* @throws Exception
*/
- public void reconnect() throws Exception
+ public void reconnect(String user, String password) throws Exception
{
TreeObject selectedNode = getSelectedServerNode();
ManagedServer managedServer = (ManagedServer)selectedNode.getManagedObject();
if(_managedServerMap.containsKey(managedServer))
{
throw new InfoRequiredException("Server " + managedServer.getName() + " is already connected");
- }
+ }
+ managedServer.setUser(user);
+ managedServer.setPassword(password);
createRMIServerConnection(managedServer);
// put the server in the managed server map
@@ -880,7 +883,7 @@
return list;
}
- private TreeObject getSelectedServerNode() throws Exception
+ public TreeObject getSelectedServerNode() throws Exception
{
IStructuredSelection ss = (IStructuredSelection)_treeViewer.getSelection();
TreeObject selectedNode = (TreeObject)ss.getFirstElement();
@@ -935,11 +938,9 @@
{
for (String serverAddress : serversList)
{
- String url = getRMIURL(serverAddress);
- ManagedServer managedServer = new ManagedServer(url, "org.apache.qpid");
- managedServer.setName(serverAddress);
+ String[] server = serverAddress.split(":");
+ ManagedServer managedServer = new ManagedServer(server[0], Integer.parseInt(server[1]), "org.apache.qpid");
TreeObject serverNode = new TreeObject(serverAddress, NODE_TYPE_SERVER);
- serverNode.setUrl(url);
serverNode.setManagedObject(managedServer);
_serversRootNode.addChild(serverNode);
}
Modified: incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java?view=diff&rev=522821&r1=522820&r2=522821
==============================================================================
--- incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java (original)
+++ incubator/qpid/trunk/qpid/java/perftests/src/main/java/org/apache/qpid/requestreply/PingPongProducer.java Tue Mar 27 02:07:30 2007
@@ -39,6 +39,7 @@
import org.apache.qpid.client.AMQNoConsumersException;
import org.apache.qpid.client.AMQQueue;
import org.apache.qpid.client.AMQTopic;
+import org.apache.qpid.client.AMQSession;
import org.apache.qpid.client.message.TestMessageFactory;
import org.apache.qpid.exchange.ExchangeDefaults;
import org.apache.qpid.jms.MessageProducer;
@@ -723,6 +724,12 @@
if ((remainingCount % _txBatchSize) == 0)
{
commitTx(_consumerSession);
+ if (!_consumerSession.getTransacted() &&
+ _consumerSession.getAcknowledgeMode() == Session.CLIENT_ACKNOWLEDGE)
+ {
+ // Acknowledge the messages when the session is not transacted but client_ack
+ ((AMQSession) _consumerSession).acknowledge();
+ }
}
// Forward the message and remaining count to any interested chained message listener.