Author: rgodfrey
Date: Fri Mar 16 21:17:55 2012
New Revision: 1301771
URL: http://svn.apache.org/viewvc?rev=1301771&view=rev
Log:
NO-JIRA : [Java config] updates to the connection JMX MBean and adapter
Added:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Connection.java
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/StatisticsAdapter.java
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
Added:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java?rev=1301771&view=auto
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java
(added)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java
Fri Mar 16 21:17:55 2012
@@ -0,0 +1,205 @@
+package org.apache.qpid.server.jmx.mbeans;
+
+import javax.management.NotCompliantMBeanException;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.jmx.AMQManagedObject;
+import org.apache.qpid.server.jmx.ManagedObjectRegistry;
+import org.apache.qpid.server.model.VirtualHost;
+
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+abstract class AbstractStatisticsGatheringMBean<T extends ConfiguredObject>
extends AMQManagedObject
+{
+ private long _lastStatupDateTime;
+ private long _statUpdatePeriod = 5000L;
+ private long _messagesReceived;
+ private long _messagesSent;
+ private long _bytesReceived;
+ private long _bytesSent;
+ private double _messageReceivedRate;
+ private double _messageSentRate;
+ private double _bytesReceivedRate;
+ private double _bytesSentRate;
+ private double _peakMessageReceivedRate;
+ private double _peakMessageSentRate;
+ private double _peakBytesReceivedRate;
+ private double _peakBytesSentRate;
+ private final T _configuredObject;
+
+ protected AbstractStatisticsGatheringMBean(Class<?> managementInterface,
+ String typeName,
+ ManagedObjectRegistry registry,
+ T object) throws
NotCompliantMBeanException
+ {
+ super(managementInterface, typeName, registry);
+ _configuredObject = object;
+ initStats();
+ }
+
+ protected void initStats()
+ {
+ _lastStatupDateTime = System.currentTimeMillis();
+
+ _messagesReceived = getStatistic(VirtualHost.MESSAGES_IN);
+ _messagesSent = getStatistic(VirtualHost.MESSAGES_OUT);
+ _bytesReceived = getStatistic(VirtualHost.BYTES_IN);
+ _bytesSent = getStatistic(VirtualHost.BYTES_OUT);
+ }
+
+ protected synchronized void updateStats()
+ {
+ long time = System.currentTimeMillis();
+ final long period = time - _lastStatupDateTime;
+ if(period > _statUpdatePeriod)
+ {
+ long messagesReceived = getStatistic(VirtualHost.MESSAGES_IN);
+ long messagesSent = getStatistic(VirtualHost.MESSAGES_OUT);
+ long bytesReceived = getStatistic(VirtualHost.BYTES_IN);
+ long bytesSent = getStatistic(VirtualHost.BYTES_OUT);
+
+ double messageReceivedRate = (double)(messagesReceived -
_messagesReceived) / (double)period;
+ double messageSentRate = (double)(messagesSent - _messagesSent) /
(double)period;
+ double bytesReceivedRate = (double)(bytesReceived -
_bytesReceived) / (double)period;
+ double bytesSentRate = (double)(bytesSent - _bytesSent) /
(double)period;
+
+ _messagesReceived = messagesReceived;
+ _messagesSent = messagesSent;
+ _bytesReceived = bytesReceived;
+ _bytesSent = bytesSent;
+
+ _messageReceivedRate = messageReceivedRate;
+ _messageSentRate = messageSentRate;
+ _bytesReceivedRate = bytesReceivedRate;
+ _bytesSentRate = bytesSentRate;
+
+ if(messageReceivedRate > _peakMessageReceivedRate)
+ {
+ _peakMessageReceivedRate = messageReceivedRate;
+ }
+
+ if(messageSentRate > _peakMessageSentRate)
+ {
+ _peakMessageSentRate = messageSentRate;
+ }
+
+ if(bytesReceivedRate > _peakBytesReceivedRate)
+ {
+ _peakBytesReceivedRate = bytesReceivedRate;
+ }
+
+ if(bytesSentRate > _peakBytesSentRate)
+ {
+ _peakBytesSentRate = bytesSentRate;
+ }
+
+ }
+ }
+
+ private long getStatistic(String name)
+ {
+ return (Long) getConfiguredObject().getStatistics().getStatistic(name);
+ }
+
+ public synchronized void resetStatistics() throws Exception
+ {
+ updateStats();
+ //TODO
+ }
+
+ public synchronized double getPeakMessageDeliveryRate()
+ {
+ updateStats();
+ return _peakMessageSentRate;
+ }
+
+ public synchronized double getPeakDataDeliveryRate()
+ {
+ updateStats();
+ return _peakBytesSentRate;
+ }
+
+ public synchronized double getMessageDeliveryRate()
+ {
+ updateStats();
+ return _messageSentRate;
+ }
+
+ public synchronized double getDataDeliveryRate()
+ {
+ updateStats();
+ return _bytesSentRate;
+ }
+
+ public synchronized long getTotalMessagesDelivered()
+ {
+ updateStats();
+ return _messagesSent;
+ }
+
+ public synchronized long getTotalDataDelivered()
+ {
+ updateStats();
+ return _bytesSent;
+ }
+
+ protected final T getConfiguredObject()
+ {
+ return _configuredObject;
+ }
+
+ public synchronized double getPeakMessageReceiptRate()
+ {
+ updateStats();
+ return _peakMessageReceivedRate;
+ }
+
+ public synchronized double getPeakDataReceiptRate()
+ {
+ updateStats();
+ return _peakBytesReceivedRate;
+ }
+
+ public synchronized double getMessageReceiptRate()
+ {
+ updateStats();
+ return _messageReceivedRate;
+ }
+
+ public synchronized double getDataReceiptRate()
+ {
+ updateStats();
+ return _bytesReceivedRate;
+ }
+
+ public synchronized long getTotalMessagesReceived()
+ {
+ updateStats();
+ return _messagesReceived;
+ }
+
+ public synchronized long getTotalDataReceived()
+ {
+ updateStats();
+ return _bytesReceived;
+ }
+
+ public synchronized boolean isStatisticsEnabled()
+ {
+ updateStats();
+ return false; //TODO
+ }
+}
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java
Fri Mar 16 21:17:55 2012
@@ -21,33 +21,29 @@
package org.apache.qpid.server.jmx.mbeans;
+import java.io.IOException;
+import java.util.Date;
+import javax.management.JMException;
+import javax.management.ObjectName;
+import javax.management.openmbean.TabularData;
import org.apache.qpid.management.common.mbeans.ManagedConnection;
-import
org.apache.qpid.management.common.mbeans.annotations.MBeanOperationParameter;
-import org.apache.qpid.server.jmx.AMQManagedObject;
import org.apache.qpid.server.jmx.ManagedObject;
import org.apache.qpid.server.model.Connection;
-import javax.management.JMException;
-import javax.management.openmbean.TabularData;
-import java.io.IOException;
-import java.util.Date;
-
-public class ConnectionMBean extends AMQManagedObject implements
ManagedConnection
+public class ConnectionMBean extends
AbstractStatisticsGatheringMBean<Connection> implements ManagedConnection
{
private final VirtualHostMBean _virtualHostMBean;
- private final Connection _connection;
public ConnectionMBean(Connection conn, VirtualHostMBean virtualHostMBean)
throws JMException
{
- super(ManagedConnection.class, ManagedConnection.TYPE,
virtualHostMBean.getRegistry());
+ super(ManagedConnection.class, ManagedConnection.TYPE,
virtualHostMBean.getRegistry(), conn);
_virtualHostMBean = virtualHostMBean;
- _connection = conn;
register();
}
public String getObjectInstanceName()
{
- return _connection.getName();
+ return ObjectName.quote(getRemoteAddress());
}
@Override
@@ -58,22 +54,22 @@ public class ConnectionMBean extends AMQ
public String getClientId()
{
- return null; // TODO - Implement
+ return (String)
getConfiguredObject().getAttribute(Connection.CLIENT_ID);
}
public String getAuthorizedId()
{
- return null; // TODO - Implement
+ return (String)
getConfiguredObject().getAttribute(Connection.PRINCIPAL);
}
public String getVersion()
{
- return null; // TODO - Implement
+ return (String)
getConfiguredObject().getAttribute(Connection.CLIENT_VERSION);
}
public String getRemoteAddress()
{
- return null; // TODO - Implement
+ return (String)
getConfiguredObject().getAttribute(Connection.REMOTE_ADDRESS);
}
public Date getLastIoTime()
@@ -83,7 +79,7 @@ public class ConnectionMBean extends AMQ
public Long getMaximumNumberOfChannels()
{
- return null; // TODO - Implement
+ return (Long)
getConfiguredObject().getAttribute(Connection.SESSION_COUNT_LIMIT);
}
public TabularData channels() throws IOException, JMException
@@ -91,14 +87,12 @@ public class ConnectionMBean extends AMQ
return null; // TODO - Implement
}
- public void commitTransactions(
- @MBeanOperationParameter(name = "channel Id", description =
"channel Id") int channelId) throws JMException
+ public void commitTransactions(int channelId) throws JMException
{
// TODO - Implement
}
- public void rollbackTransactions(
- @MBeanOperationParameter(name = "channel Id", description =
"channel Id") int channelId) throws JMException
+ public void rollbackTransactions(int channelId) throws JMException
{
// TODO - Implement
}
@@ -108,78 +102,10 @@ public class ConnectionMBean extends AMQ
// TODO - Implement
}
- public void resetStatistics() throws Exception
- {
- // TODO - Implement
- }
-
- public double getPeakMessageDeliveryRate()
- {
- return 0; // TODO - Implement
- }
-
- public double getPeakDataDeliveryRate()
- {
- return 0; // TODO - Implement
- }
-
- public double getMessageDeliveryRate()
- {
- return 0; // TODO - Implement
- }
-
- public double getDataDeliveryRate()
- {
- return 0; // TODO - Implement
- }
-
- public long getTotalMessagesDelivered()
- {
- return 0; // TODO - Implement
- }
-
- public long getTotalDataDelivered()
- {
- return 0; // TODO - Implement
- }
-
- public double getPeakMessageReceiptRate()
- {
- return 0; // TODO - Implement
- }
-
- public double getPeakDataReceiptRate()
- {
- return 0; // TODO - Implement
- }
-
- public double getMessageReceiptRate()
- {
- return 0; // TODO - Implement
- }
-
- public double getDataReceiptRate()
- {
- return 0; // TODO - Implement
- }
-
- public long getTotalMessagesReceived()
- {
- return 0; // TODO - Implement
- }
-
- public long getTotalDataReceived()
- {
- return 0; // TODO - Implement
- }
-
- public boolean isStatisticsEnabled()
- {
- return false; // TODO - Implement
- }
public void setStatisticsEnabled(boolean enabled)
{
// TODO - Implement
+ updateStats();
}
}
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
Fri Mar 16 21:17:55 2012
@@ -258,7 +258,7 @@ public class ExchangeMBean extends AMQMa
@MBeanOperationParameter(name = ManagedQueue.TYPE, description =
"Queue name") String queueName,
@MBeanOperationParameter(name = "Binding", description = "New
binding") String binding) throws JMException
{
- //To change body of implemented methods use File | Settings | File
Templates.
+ // TODO
}
public void removeBinding(
@@ -266,6 +266,6 @@ public class ExchangeMBean extends AMQMa
@MBeanOperationParameter(name = "Binding", description = "Binding
key") String binding)
throws IOException, JMException
{
- //To change body of implemented methods use File | Settings | File
Templates.
+ // TODO
}
}
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
Fri Mar 16 21:17:55 2012
@@ -21,27 +21,28 @@
package org.apache.qpid.server.jmx.mbeans;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import javax.management.JMException;
+import javax.management.MBeanException;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
import org.apache.qpid.management.common.mbeans.ManagedBroker;
import org.apache.qpid.management.common.mbeans.ManagedExchange;
import org.apache.qpid.management.common.mbeans.ManagedQueue;
import org.apache.qpid.management.common.mbeans.annotations.MBeanConstructor;
import org.apache.qpid.management.common.mbeans.annotations.MBeanDescription;
import
org.apache.qpid.management.common.mbeans.annotations.MBeanOperationParameter;
-import org.apache.qpid.server.jmx.AMQManagedObject;
import org.apache.qpid.server.jmx.ManagedObject;
-import org.apache.qpid.server.model.Queue;
-
-import javax.management.JMException;
-import javax.management.MBeanException;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import org.apache.qpid.server.model.LifetimePolicy;
+import org.apache.qpid.server.model.State;
+import org.apache.qpid.server.model.VirtualHost;
@MBeanDescription("This MBean exposes the broker level management features")
-public class VirtualHostManagerMBean extends AMQManagedObject implements
ManagedBroker
+public class VirtualHostManagerMBean extends
AbstractStatisticsGatheringMBean<VirtualHost> implements ManagedBroker
{
private final VirtualHostMBean _virtualHostMBean;
@@ -49,11 +50,12 @@ public class VirtualHostManagerMBean ext
@MBeanConstructor("Creates the Broker Manager MBean")
public VirtualHostManagerMBean(VirtualHostMBean virtualHostMBean) throws
JMException
{
- super(ManagedBroker.class, ManagedBroker.TYPE,
virtualHostMBean.getRegistry());
+ super(ManagedBroker.class, ManagedBroker.TYPE,
virtualHostMBean.getRegistry(), virtualHostMBean.getVirtualHost());
_virtualHostMBean = virtualHostMBean;
register();
}
-
+
+
public String getObjectInstanceName()
{
return _virtualHostMBean.getName();
@@ -112,14 +114,12 @@ public class VirtualHostManagerMBean ext
}
- public void createNewExchange(
- @MBeanOperationParameter(name = "name", description = "Name of the
new exchange") String name,
- @MBeanOperationParameter(name = "ExchangeType", description =
"Type of the exchange") String type,
- @MBeanOperationParameter(name = "durable",
- description = "true if the Exchang should
be durable") boolean durable)
+ public void createNewExchange(String name, String type, boolean durable)
throws IOException, JMException, MBeanException
{
- //TODO
+ getConfiguredObject().createExchange(name, State.ACTIVE, durable,
+ LifetimePolicy.PERMANENT, 0l, type,
Collections.EMPTY_MAP);
+
}
public void unregisterExchange(
@@ -129,26 +129,17 @@ public class VirtualHostManagerMBean ext
//TODO
}
- public void createNewQueue(
- @MBeanOperationParameter(name = "queue name", description = "Name
of the new queue") String queueName,
- @MBeanOperationParameter(name = "owner", description = "Owner
name") String owner,
- @MBeanOperationParameter(name = "durable",
- description = "true if the queue should
be durable") boolean durable)
+ public void createNewQueue(String queueName, String owner, boolean durable)
throws IOException, JMException, MBeanException
{
- //TODO
+ createNewQueue(queueName, owner, durable, Collections.EMPTY_MAP);
}
- public void createNewQueue(
- @MBeanOperationParameter(name = "queue name", description = "Name
of the new queue") String queueName,
- @MBeanOperationParameter(name = "owner", description = "Owner
name") String owner,
- @MBeanOperationParameter(name = "durable",
- description = "true if the queue should
be durable") boolean durable,
- @MBeanOperationParameter(name = "arguments",
- description = "Map of arguments")
Map<String, Object> arguments)
+ public void createNewQueue(String queueName, String owner, boolean
durable, Map<String, Object> arguments)
throws IOException, JMException
{
- //TODO
+ // TODO - ignores owner (not sure that this isn't actually a good
thing though)
+ getConfiguredObject().createQueue(queueName, State.ACTIVE,durable,
LifetimePolicy.PERMANENT,0l, arguments);
}
public void deleteQueue(
@@ -158,76 +149,6 @@ public class VirtualHostManagerMBean ext
//TODO
}
- public void resetStatistics() throws Exception
- {
- //TODO
- }
-
- public double getPeakMessageDeliveryRate()
- {
- return 0; //TODO
- }
-
- public double getPeakDataDeliveryRate()
- {
- return 0; //TODO
- }
-
- public double getMessageDeliveryRate()
- {
- return 0; //TODO
- }
-
- public double getDataDeliveryRate()
- {
- return 0; //TODO
- }
-
- public long getTotalMessagesDelivered()
- {
- return 0; //TODO
- }
-
- public long getTotalDataDelivered()
- {
- return 0; //TODO
- }
-
- public double getPeakMessageReceiptRate()
- {
- return 0; //TODO
- }
-
- public double getPeakDataReceiptRate()
- {
- return 0; //TODO
- }
-
- public double getMessageReceiptRate()
- {
- return 0; //TODO
- }
-
- public double getDataReceiptRate()
- {
- return 0; //TODO
- }
-
- public long getTotalMessagesReceived()
- {
- return 0; //TODO
- }
-
- public long getTotalDataReceived()
- {
- return 0; //TODO
- }
-
- public boolean isStatisticsEnabled()
- {
- return false; //TODO
- }
-
@Override
public ObjectName getObjectName() throws MalformedObjectNameException
Modified:
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Connection.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Connection.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Connection.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Connection.java
Fri Mar 16 21:17:55 2012
@@ -20,10 +20,41 @@
*/
package org.apache.qpid.server.model;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
public interface Connection extends ConfiguredObject
{
+
+ // Statistics
+
+ // Attributes
+
+ public static final String CLIENT_ID = "clientId";
+ public static final String CLIENT_VERSION = "clientVersion";
+ public static final String INCOMING = "incoming";
+ public static final String LOCAL_ADDRESS = "localAddress";
+ public static final String PRINCIPAL = "principal";
+ public static final String PROPERTIES = "properties";
+ public static final String REMOTE_ADDRESS = "remoteAddress";
+ public static final String REMOTE_PROCESS_NAME = "remoteProcessName";
+ public static final String REMOTE_PROCESS_PID = "remoteProcessPid";
+ public static final String SESSION_COUNT_LIMIT = "sessionCountLimit";
+
+ public static final Collection<String> AVAILABLE_ATTRIBUTES =
+ Collections.unmodifiableCollection(
+ Arrays.asList( CLIENT_ID,
+ CLIENT_VERSION,
+ INCOMING,
+ LOCAL_ADDRESS,
+ PRINCIPAL,
+ PROPERTIES,
+ REMOTE_ADDRESS,
+ REMOTE_PROCESS_NAME,
+ REMOTE_PROCESS_PID,
+ SESSION_COUNT_LIMIT));
+
//children
Collection<Session> getSessions();
}
Modified:
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java
Fri Mar 16 21:17:55 2012
@@ -21,11 +21,38 @@
package org.apache.qpid.server.model;
import java.security.AccessControlException;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.Map;
public interface VirtualHost extends ConfiguredObject
{
+ // Statistics
+
+ public static final String BYTES_IN = "bytesIn";
+ public static final String BYTES_OUT = "bytesOut";
+ public static final String BYTES_RETAINED = "bytesRetained";
+ public static final String LOCAL_TRANSACTION_BEGINS =
"localTransactionBegins";
+ public static final String LOCAL_TRANSACTION_ROLLBACKS =
"localTransactionRollbacks";
+ public static final String MESSAGES_IN = "messagesIn";
+ public static final String MESSAGES_OUT = "messagesOut";
+ public static final String MESSAGES_RETAINED = "messagesRetained";
+ public static final String STATE_CHANGED = "stateChanged";
+ public static final String XA_TRANSACTION_BRANCH_ENDS =
"xaTransactionBranchEnds";
+ public static final String XA_TRANSACTION_BRANCH_STARTS =
"xaTransactionBranchStarts";
+ public static final String XA_TRANSACTION_BRANCH_SUSPENDS =
"xaTransactionBranchSuspends";
+
+ public static final Collection<String> AVAILABLE_STATISTICS =
+ Collections.unmodifiableList(
+ Arrays.asList(BYTES_IN, BYTES_OUT, BYTES_RETAINED,
LOCAL_TRANSACTION_BEGINS,
+ LOCAL_TRANSACTION_ROLLBACKS, MESSAGES_IN,
MESSAGES_OUT, MESSAGES_RETAINED, STATE_CHANGED,
+ XA_TRANSACTION_BRANCH_ENDS,
XA_TRANSACTION_BRANCH_STARTS, XA_TRANSACTION_BRANCH_SUSPENDS));
+
+ // Attributes
+
+
+
String getReplicationGroupName();
//children
Modified:
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
Fri Mar 16 21:17:55 2012
@@ -23,7 +23,9 @@ package org.apache.qpid.server.model.ada
import java.security.AccessControlException;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import org.apache.qpid.server.model.Connection;
@@ -37,6 +39,9 @@ import org.apache.qpid.server.protocol.A
final class ConnectionAdapter extends AbstractAdapter implements Connection
{
+
+
+
private AMQConnectionModel _connection;
private final Map<AMQSessionModel, SessionAdapter> _sessionAdapters =
@@ -75,7 +80,7 @@ final class ConnectionAdapter extends Ab
public String getName()
{
- return _connection.getLogSubject().toLogString();
+ return _connection.getRemoteAddressString();
}
public String setName(final String currentName, final String desiredName)
@@ -122,6 +127,106 @@ final class ConnectionAdapter extends Ab
return 0; //TODO
}
+ @Override
+ public Object getAttribute(String name)
+ {
+ if(name.equals(CLIENT_ID))
+ {
+ return _connection.getClientId();
+ }
+ else if(name.equals(CLIENT_VERSION))
+ {
+ return _connection.getClientVersion();
+ }
+ else if(name.equals(INCOMING))
+ {
+
+ }
+ else if(name.equals(LOCAL_ADDRESS))
+ {
+
+ }
+ else if(name.equals(PRINCIPAL))
+ {
+ return _connection.getPrincipalAsString();
+ }
+ else if(name.equals(PROPERTIES))
+ {
+
+ }
+ else if(name.equals(REMOTE_ADDRESS))
+ {
+ return _connection.getRemoteAddressString();
+ }
+ else if(name.equals(REMOTE_PROCESS_NAME))
+ {
+
+ }
+ else if(name.equals(REMOTE_PROCESS_PID))
+ {
+
+ }
+ else if(name.equals(SESSION_COUNT_LIMIT))
+ {
+ return _connection.getSessionCountLimit();
+ }
+ return super.getAttribute(name);
+ }
+
+ @Override
+ public Object setAttribute(String name, Object expected, Object desired)
throws IllegalStateException, AccessControlException, IllegalArgumentException
+ {
+ if(name.equals(CLIENT_ID))
+ {
+
+ }
+ else if(name.equals(CLIENT_VERSION))
+ {
+
+ }
+ else if(name.equals(INCOMING))
+ {
+
+ }
+ else if(name.equals(LOCAL_ADDRESS))
+ {
+
+ }
+ else if(name.equals(PRINCIPAL))
+ {
+
+ }
+ else if(name.equals(PROPERTIES))
+ {
+
+ }
+ else if(name.equals(REMOTE_ADDRESS))
+ {
+
+ }
+ else if(name.equals(REMOTE_PROCESS_NAME))
+ {
+
+ }
+ else if(name.equals(REMOTE_PROCESS_PID))
+ {
+
+ }
+ else if(name.equals(SESSION_COUNT_LIMIT))
+ {
+
+ }
+ return super.setAttribute(name, expected, desired);
+ }
+
+ @Override
+ public Collection<String> getAttributeNames()
+ {
+ final HashSet<String> attrNames = new
HashSet<String>(super.getAttributeNames());
+ attrNames.addAll(Connection.AVAILABLE_ATTRIBUTES);
+ return Collections.unmodifiableCollection(attrNames);
+ }
+
public Statistics getStatistics()
{
return _statistics;
Modified:
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/StatisticsAdapter.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/StatisticsAdapter.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/StatisticsAdapter.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/StatisticsAdapter.java
Fri Mar 16 21:17:55 2012
@@ -1,10 +1,9 @@
package org.apache.qpid.server.model.adapter;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import org.apache.qpid.server.model.Statistics;
import org.apache.qpid.server.stats.StatisticsCounter;
@@ -31,29 +30,24 @@ class StatisticsAdapter implements Stati
private final Map<String, StatisticsCounter> _statistics =
new HashMap<String, StatisticsCounter>();
-
- private static final Collection<String> STATISTIC_NAMES;
-
- static
- {
- List<String> names = new ArrayList<String>(16);
- for(String stat : new String[] {"bytes-in", "bytes-out", "msgs-in",
"msgs-out"})
- {
- for(String type : new String[] {"total","rate","peak"})
- {
- names.add(stat + "-" + type);
- }
- }
- STATISTIC_NAMES = Collections.unmodifiableCollection(names);
- }
+
+ private static final String BYTES_IN = "bytesIn";
+ private static final String BYTES_OUT = "bytesOut";
+ private static final String MESSAGES_IN = "messagesIn";
+ private static final String MESSAGES_OUT = "messagesOut";
+
+ private static final Collection<String> STATISTIC_NAMES =
+ Collections.unmodifiableCollection(Arrays.asList(BYTES_IN,
BYTES_OUT, MESSAGES_IN, MESSAGES_OUT));
+
+
public StatisticsAdapter(StatisticsGatherer applicationRegistry)
{
- _statistics.put("bytes-out",
applicationRegistry.getDataDeliveryStatistics());
- _statistics.put("bytes-in",
applicationRegistry.getDataReceiptStatistics());
- _statistics.put("msgs-out",
applicationRegistry.getMessageDeliveryStatistics());
- _statistics.put("msgs-in",
applicationRegistry.getMessageReceiptStatistics());
+ _statistics.put(BYTES_OUT,
applicationRegistry.getDataDeliveryStatistics());
+ _statistics.put(BYTES_IN,
applicationRegistry.getDataReceiptStatistics());
+ _statistics.put(MESSAGES_OUT,
applicationRegistry.getMessageDeliveryStatistics());
+ _statistics.put(MESSAGES_IN,
applicationRegistry.getMessageReceiptStatistics());
}
@@ -64,23 +58,9 @@ class StatisticsAdapter implements Stati
public Number getStatistic(String name)
{
- if(name.endsWith("-total"))
- {
- StatisticsCounter counter =
_statistics.get(name.substring(0,name.length()-6));
- return counter == null ? null : counter.getTotal();
- }
- else if(name.endsWith("-rate"))
- {
- StatisticsCounter counter =
_statistics.get(name.substring(0,name.length()-5));
- return counter == null ? null : counter.getRate();
- }
- else if(name.endsWith("-peak"))
- {
- StatisticsCounter counter =
_statistics.get(name.substring(0,name.length()-5));
- return counter == null ? null : counter.getPeak();
- }
+ StatisticsCounter counter = _statistics.get(name);
+ return counter == null ? null : counter.getTotal();
- return null;
}
Modified:
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
Fri Mar 16 21:17:55 2012
@@ -73,4 +73,14 @@ public interface AMQConnectionModel exte
public String getUserName();
public boolean isSessionNameUnique(byte[] name);
+
+ String getRemoteAddressString();
+
+ String getClientId();
+
+ String getClientVersion();
+
+ String getPrincipalAsString();
+
+ long getSessionCountLimit();
}
Modified:
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java
Fri Mar 16 21:17:55 2012
@@ -1145,6 +1145,16 @@ public class AMQProtocolEngine implement
return _clientVersion;
}
+ public String getPrincipalAsString()
+ {
+ return getAuthId();
+ }
+
+ public long getSessionCountLimit()
+ {
+ return getMaximumNumberOfChannels();
+ }
+
public Boolean isIncoming()
{
return true;
@@ -1427,6 +1437,16 @@ public class AMQProtocolEngine implement
return true;
}
+ public String getRemoteAddressString()
+ {
+ return String.valueOf(getRemoteAddress());
+ }
+
+ public String getClientId()
+ {
+ return String.valueOf(getContextKey());
+ }
+
public void setDeferFlush(boolean deferFlush)
{
_deferFlush = deferFlush;
Modified:
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java?rev=1301771&r1=1301770&r2=1301771&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerConnection.java
Fri Mar 16 21:17:55 2012
@@ -409,6 +409,11 @@ public class ServerConnection extends Co
return !super.hasSessionWithName(name);
}
+ public String getRemoteAddressString()
+ {
+ return getConfig().getAddress();
+ }
+
public String getUserName()
{
return _authorizedPrincipal.getName();
@@ -499,4 +504,14 @@ public class ServerConnection extends Co
{
return getConnectionDelegate().getClientVersion();
}
+
+ public String getPrincipalAsString()
+ {
+ return getAuthorizedPrincipal().getName();
+ }
+
+ public long getSessionCountLimit()
+ {
+ return getChannelMax();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]