You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/01/24 21:25:45 UTC
svn commit: r372011 - in
/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi:
container/JBIContainer.java framework/ComponentMBeanImpl.java
management/BaseLifeCycle.java messaging/DeliveryChannelImpl.java
Author: gnodet
Date: Tue Jan 24 12:25:39 2006
New Revision: 372011
URL: http://svn.apache.org/viewcvs?rev=372011&view=rev
Log:
Fix SM-273 : Allow statistics attributes on components to send jmx notifications
This feature is disabled by default for performance
Modified:
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java?rev=372011&r1=372010&r2=372011&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java Tue Jan 24 12:25:39 2006
@@ -104,6 +104,7 @@
protected boolean persistent = false;
protected List listeners = new CopyOnWriteArrayList();
protected boolean embedded = false;
+ protected boolean notifyStatistics = false;
/**
* Default Constructor
@@ -1072,5 +1073,19 @@
public int getRmiPort() {
return getManagementContext().getNamingPort();
+ }
+
+ /**
+ * @return Returns the notifyStatistics.
+ */
+ public boolean isNotifyStatistics() {
+ return notifyStatistics;
+ }
+
+ /**
+ * @param notifyStatistics The notifyStatistics to set.
+ */
+ public void setNotifyStatistics(boolean notifyStatistics) {
+ this.notifyStatistics = notifyStatistics;
}
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java?rev=372011&r1=372010&r2=372011&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java Tue Jan 24 12:25:39 2006
@@ -324,5 +324,10 @@
public void setObjectName(ObjectName objectName) {
this.objectName = objectName;
}
+
+ public void firePropertyChanged(String name, Object oldValue, Object newValue) {
+ super.firePropertyChanged(name, oldValue, newValue);
+ }
+
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java?rev=372011&r1=372010&r2=372011&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java Tue Jan 24 12:25:39 2006
@@ -29,7 +29,7 @@
* @version $Revision$
*/
public abstract class BaseLifeCycle implements LifeCycleMBean, MBeanInfoProvider {
- public static final String INITIALIZED = "initialized";
+ public static final String INITIALIZED = "Initialized";
protected String currentState = LifeCycleMBean.UNKNOWN;
protected PropertyChangeListener listener;
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java?rev=372011&r1=372010&r2=372011&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java Tue Jan 24 12:25:39 2006
@@ -332,10 +332,26 @@
intervalCount++;
}
+ // Update stats
long currentTime = System.currentTimeMillis();
- messagingStats.getOutboundExchanges().increment();
- messagingStats.getOutboundExchangeRate().addTime(currentTime - lastSendTime);
+ if (container.isNotifyStatistics()) {
+ long oldCount = messagingStats.getOutboundExchanges().getCount();
+ messagingStats.getOutboundExchanges().increment();
+ componentConnector.getComponentMBean().firePropertyChanged(
+ "outboundExchangeCount",
+ new Long(oldCount),
+ new Long(messagingStats.getOutboundExchanges().getCount()));
+ double oldRate = messagingStats.getOutboundExchangeRate().getAverageTime();
+ messagingStats.getOutboundExchangeRate().addTime(currentTime - lastSendTime);
+ componentConnector.getComponentMBean().firePropertyChanged("outboundExchangeRate",
+ new Double(oldRate),
+ new Double(messagingStats.getOutboundExchangeRate().getAverageTime()));
+ } else {
+ messagingStats.getOutboundExchanges().increment();
+ messagingStats.getOutboundExchangeRate().addTime(currentTime - lastSendTime);
+ }
lastSendTime = currentTime;
+
if (messageExchange.getRole() == Role.CONSUMER) {
messageExchange.setSourceId(componentConnector.getComponentNameSpace());
}
@@ -560,9 +576,25 @@
*/
public void processInBound(MessageExchangeImpl me) throws MessagingException {
checkNotClosed();
+
+ // Update stats
long currentTime = System.currentTimeMillis();
- messagingStats.getInboundExchanges().increment();
- messagingStats.getInboundExchangeRate().addTime(currentTime - lastReceiveTime);
+ if (container.isNotifyStatistics()) {
+ long oldCount = messagingStats.getInboundExchanges().getCount();
+ messagingStats.getInboundExchanges().increment();
+ componentConnector.getComponentMBean().firePropertyChanged(
+ "inboundExchangeCount",
+ new Long(oldCount),
+ new Long(messagingStats.getInboundExchanges().getCount()));
+ double oldRate = messagingStats.getInboundExchangeRate().getAverageTime();
+ messagingStats.getInboundExchangeRate().addTime(currentTime - lastReceiveTime);
+ componentConnector.getComponentMBean().firePropertyChanged("inboundExchangeRate",
+ new Double(oldRate),
+ new Double(messagingStats.getInboundExchangeRate().getAverageTime()));
+ } else {
+ messagingStats.getInboundExchanges().increment();
+ messagingStats.getInboundExchangeRate().addTime(currentTime - lastReceiveTime);
+ }
lastReceiveTime = currentTime;
// If the message has been sent synchronously