/*******************************************************************************
* Copyright (c) 2008 Cambridge Semantics Incorporated.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* File: $Source$
* Created by: Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com </a>)
* Created on: Mar 13, 2008
* Revision: $Id$
*
* Contributors:
* Cambridge Semantics Incorporated - initial API and implementation
*******************************************************************************/
package org.openanzo.datasource.nodecentric.internal;
import javax.management.j2ee.statistics.Statistic;
import org.apache.activemq.management.CountStatisticImpl;
import org.apache.activemq.management.StatisticImpl;
import org.apache.activemq.management.StatsImpl;
import org.apache.activemq.management.TimeStatisticImpl;
import org.openanzo.services.DynamicServiceStats;
/**
* @author Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com </a>)
*
*/
class NodeCentricDatasourceStatistics extends DynamicServiceStats {
private final CountStatisticImpl getWriteConnectionUse;
private final TimeStatisticImpl getWriteConnectionDuration;
private final CountStatisticImpl getQueryConnectionUse;
private final TimeStatisticImpl getQueryConnectionDuration;
private final CountStatisticImpl beginUse;
private final TimeStatisticImpl beginDuration;
private final CountStatisticImpl commitUse;
private final TimeStatisticImpl commitDuration;
private final CountStatisticImpl abortUse;
private final TimeStatisticImpl abortDuration;
/**
* Create a new Statistics object for an AuthenticationService
*/
public NodeCentricDatasourceStatistics() {
super();
getWriteConnectionUse = new CountStatisticImpl("getWriteConnectionUse", "Number of calls to getWriteConnection method.");
getWriteConnectionDuration = new TimeStatisticImpl("getWriteConnectionDuration", "Duration of calls to getWriteConnection method.");
addStatistic(getWriteConnectionUse.getName(), getWriteConnectionUse);
addStatistic(getWriteConnectionDuration.getName(), getWriteConnectionDuration);
getQueryConnectionUse = new CountStatisticImpl("getQueryConnectionUse", "Number of calls to getQueryConnection method.");
getQueryConnectionDuration = new TimeStatisticImpl("getQueryConnectionDuration", "Duration of calls to getQueryConnection method.");
addStatistic(getQueryConnectionUse.getName(), getQueryConnectionUse);
addStatistic(getQueryConnectionDuration.getName(), getQueryConnectionDuration);
beginUse = new CountStatisticImpl("beginUse", "Number of calls to begin method.");
beginDuration = new TimeStatisticImpl("beginDuration", "Duration of calls to begin method.");
addStatistic(beginUse.getName(), beginUse);
addStatistic(beginDuration.getName(), beginDuration);
abortUse = new CountStatisticImpl("abortUse", "Number of calls to abort method.");
abortDuration = new TimeStatisticImpl("abortDuration", "Duration of calls to abort method.");
addStatistic(abortUse.getName(), abortUse);
addStatistic(abortDuration.getName(), abortDuration);
commitUse = new CountStatisticImpl("commitUse", "Number of calls to commit method.");
commitDuration = new TimeStatisticImpl("commitDuration", "Duration of calls to commit method.");
addStatistic(commitUse.getName(), commitUse);
addStatistic(commitDuration.getName(), commitDuration);
}
@Override
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
getWriteConnectionUse.setEnabled(enabled);
getWriteConnectionDuration.setEnabled(enabled);
getQueryConnectionUse.setEnabled(enabled);
getQueryConnectionDuration.setEnabled(enabled);
beginUse.setEnabled(enabled);
beginDuration.setEnabled(enabled);
abortUse.setEnabled(enabled);
abortDuration.setEnabled(enabled);
commitUse.setEnabled(enabled);
commitDuration.setEnabled(enabled);
}
@Override
public String toString() {
StringBuilder buffer = new StringBuilder(" ");
buffer.append(getWriteConnectionUse);
buffer.append(" ");
buffer.append(getWriteConnectionDuration);
buffer.append(" ");
buffer.append(getQueryConnectionUse);
buffer.append(" ");
buffer.append(getQueryConnectionDuration);
buffer.append(" ");
buffer.append(beginUse);
buffer.append(" ");
buffer.append(beginDuration);
buffer.append(" ");
buffer.append(abortUse);
buffer.append(" ");
buffer.append(abortDuration);
buffer.append(" ");
buffer.append(commitUse);
buffer.append(" ");
buffer.append(commitDuration);
buffer.append(" ");
return buffer.toString();
}
/**
* @return the getWriteConnectionUse
*/
public CountStatisticImpl getGetWriteConnectionUse() {
return getWriteConnectionUse;
}
/**
* @return the getWriteConnectionDuration
*/
public TimeStatisticImpl getGetWriteConnectionDuration() {
return getWriteConnectionDuration;
}
/**
* @return the getQueryConnectionUse
*/
public CountStatisticImpl getGetQueryConnectionUse() {
return getQueryConnectionUse;
}
/**
* @return the getQueryConnectionDuration
*/
public TimeStatisticImpl getGetQueryConnectionDuration() {
return getQueryConnectionDuration;
}
/**
* @return the beginUse
*/
public CountStatisticImpl getBeginUse() {
return beginUse;
}
/**
* @return the beginDuration
*/
public TimeStatisticImpl getBeginDuration() {
return beginDuration;
}
/**
* @return the commitUse
*/
public CountStatisticImpl getCommitUse() {
return commitUse;
}
/**
* @return the commitDuration
*/
public TimeStatisticImpl getCommitDuration() {
return commitDuration;
}
/**
* @return the abortUse
*/
public CountStatisticImpl getAbortUse() {
return abortUse;
}
/**
* @return the abortDuration
*/
public TimeStatisticImpl getAbortDuration() {
return abortDuration;
}
public void addStatistic(StatsImpl statsImpl) {
if (statsImpl != null) {
for (Statistic stat : statsImpl.getStatistics()) {
if (stat instanceof StatisticImpl) {
addStatistic(stat.getName(), (StatisticImpl) stat);
}
}
}
}
public void addStatistic(StatisticImpl statsImpl) {
if (statsImpl != null) {
addStatistic(statsImpl.getName(), statsImpl);
}
}
}