1
22
23 package com.liferay.portal.kernel.messaging.jmx;
24
25 import com.liferay.portal.kernel.messaging.Destination;
26 import com.liferay.portal.kernel.messaging.DestinationStatistics;
27
28 import javax.management.MalformedObjectNameException;
29 import javax.management.ObjectName;
30
31
38 public class DestinationStatisticsManager
39 implements DestinationStatisticsManagerMBean {
40
41 public static ObjectName createObjectName(String destinationName) {
42 try {
43 return new ObjectName(_OBJECT_NAME_PREFIX + destinationName);
44 }
45 catch (MalformedObjectNameException mone) {
46 throw new IllegalStateException(mone);
47 }
48 }
49
50 public DestinationStatisticsManager(Destination destination) {
51 _destination = destination;
52 }
53
54 public int getActiveThreadCount() {
55 if (_autoRefresh) {
56 refresh();
57 }
58
59 return _destinationStatistics.getActiveThreadCount();
60 }
61
62 public int getCurrentThreadCount() {
63 if (_autoRefresh || (_destinationStatistics == null)) {
64 refresh();
65 }
66
67 return _destinationStatistics.getCurrentThreadCount();
68 }
69
70 public int getLargestThreadCount() {
71 if (_autoRefresh || (_destinationStatistics == null)) {
72 refresh();
73 }
74
75 return _destinationStatistics.getLargestThreadCount();
76 }
77
78 public String getLastRefresh() {
79 return String.valueOf(_lastRefresh);
80 }
81
82 public int getMaxThreadPoolSize() {
83 if (_autoRefresh || (_destinationStatistics == null)) {
84 refresh();
85 }
86
87 return _destinationStatistics.getMaxThreadPoolSize();
88 }
89
90 public int getMinThreadPoolSize() {
91 if (_autoRefresh || (_destinationStatistics == null)) {
92 refresh();
93 }
94
95 return _destinationStatistics.getMinThreadPoolSize();
96 }
97
98 public long getPendingMessageCount() {
99 if (_autoRefresh || (_destinationStatistics == null)) {
100 refresh();
101 }
102
103 return _destinationStatistics.getPendingMessageCount();
104 }
105
106 public long getSentMessageCount() {
107 if (_autoRefresh || (_destinationStatistics == null)) {
108 refresh();
109 }
110
111 return _destinationStatistics.getSentMessageCount();
112 }
113
114 public boolean isAutoRefresh() {
115 return _autoRefresh;
116 }
117
118 public void refresh() {
119 if (System.currentTimeMillis() > _lastRefresh) {
120 _lastRefresh = System.currentTimeMillis();
121 _destinationStatistics = _destination.getDestinationStatistics();
122 }
123 }
124
125 public void setAutoRefresh(boolean autoRefresh) {
126 _autoRefresh = autoRefresh;
127 }
128
129 private static final String _OBJECT_NAME_PREFIX =
130 "Liferay:product=Portal,type=MessagingDestinationStatistics,name=";
131
132 private boolean _autoRefresh;
133 private Destination _destination;
134 private long _lastRefresh;
135 private DestinationStatistics _destinationStatistics;
136
137 }