Mercurial > hg > blitz_jmxagent
view src/net/scatterspace/blitz/jmx/TaskQueueImpl.java @ 0:e59e6471ce44
Initial version of a Blitz colocated agent to provide JMX MXBeans access to its statistics
author | Dominic Cleal <dominic@computerkb.co.uk> |
---|---|
date | Thu, 11 Dec 2008 00:49:28 +0000 |
parents | |
children | 1850f751d9de |
line wrap: on
line source
/** * Copyright (c) 2008 CDO2 Limited. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of CDO2 Limited nor the names of its contributors * may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY CDO2 LIMITED ''AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.scatterspace.blitz.jmx; import java.rmi.RemoteException; import java.util.Iterator; import java.util.regex.Matcher; import java.util.regex.Pattern; import net.scatterspace.blitz.jmx.iface.TaskQueueMXBean; import org.dancres.blitz.remote.StatsAdmin; import org.dancres.blitz.stats.TaskQueueStat; /** * MXBean to interface to {@link TaskQueueStat}. */ public class TaskQueueImpl extends AbstractStatsImpl<TaskQueueStat> implements TaskQueueMXBean { private static Pattern toString_ = Pattern.compile("Queue: (.+) size: ([0-9]+)"); private String name_; public TaskQueueImpl(StatsAdmin admin, String name) { super(admin, TaskQueueStat.class); name_ = name; } public long getSize() throws RemoteException { Iterator<TaskQueueStat> iter = getStatistics().iterator(); while (iter.hasNext()) { TaskQueueStat queue = iter.next(); Matcher match = toString_.matcher(queue.toString()); if (match.matches() && match.group(1).equals(name_)) return Long.parseLong(match.group(2)); } return 0; } @Override public String toString() { return super.toString() + ",queue=" + name_; } }