/*******************************************************************************
* 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 java.util.ArrayList;
import java.util.Collection;
import org.openanzo.exceptions.AnzoException;
import org.openanzo.exceptions.AnzoRuntimeException;
import org.openanzo.exceptions.LogUtils;
import org.openanzo.rdf.URI;
class NodeCentricDatasourceJMX implements NodeCentricDatasourceJMXMBean {
private final NodeCentricDatasource datasource;
public NodeCentricDatasourceJMX(NodeCentricDatasourcesJMX nodeCentricBackendsJMX, NodeCentricDatasource backend) {
this.datasource = backend;
}
public void exportGraphs(String graph, String fileName) {
try {
Collection<URI> uris = new ArrayList<URI>();
uris.add(org.openanzo.rdf.Constants.valueFactory.createURI(graph));
datasource.exportGraphs(uris, fileName);
} catch (AnzoException ae) {
if (NodeCentricDatasourcesJMX.log.isWarnEnabled()) {
NodeCentricDatasourcesJMX.log.warn(LogUtils.RDB_MARKER, "Error exporting graphs via JMX", ae);
}
throw new AnzoRuntimeException(ae);
}
}
public void importBackupData(String fileName) {
try {
datasource.importBackupData(true, fileName);
} catch (AnzoException ae) {
if (NodeCentricDatasourcesJMX.log.isWarnEnabled()) {
NodeCentricDatasourcesJMX.log.warn(LogUtils.RDB_MARKER, "Error importing backup data via JMX", ae);
}
throw new AnzoRuntimeException(ae);
}
}
public void backup(String fileName) {
try {
datasource.backupData(fileName);
} catch (AnzoException ae) {
if (NodeCentricDatasourcesJMX.log.isWarnEnabled()) {
NodeCentricDatasourcesJMX.log.warn(LogUtils.RDB_MARKER, "Error backing up data via JMX", ae);
}
throw new AnzoRuntimeException(ae);
}
}
public void restore(String fileName) {
try {
datasource.restoreData(fileName);
} catch (AnzoException ae) {
if (NodeCentricDatasourcesJMX.log.isWarnEnabled()) {
NodeCentricDatasourcesJMX.log.warn(LogUtils.RDB_MARKER, "Error restoring data via JMX", ae);
}
throw new AnzoRuntimeException(ae);
}
}
public void runstats() {
try {
datasource.runstats();
} catch (AnzoException ae) {
if (NodeCentricDatasourcesJMX.log.isWarnEnabled()) {
NodeCentricDatasourcesJMX.log.warn(LogUtils.RDB_MARKER, "Error running runstats via JMX", ae);
}
throw new AnzoRuntimeException(ae);
}
}
public int getActiveWriteConnections() {
return this.datasource.writePool.getNumActive();
}
public int getIdleWriteConnections() {
return this.datasource.writePool.getNumIdle();
}
public int getMaxWriteConnections() {
return this.datasource.writePool.getMaxActive();
}
public int getMinIdleWriteConnections() {
return this.datasource.writePool.getMinIdle();
}
public void setMinIdleWriteConnections(int connections) {
this.datasource.writePool.setMinIdle(connections);
}
public void setMinIdleTimeWriteConnections(long idleTime) {
this.datasource.writePool.setMinEvictableIdleTimeMillis(idleTime);
}
public long getMinIdleTimeWriteConnections() {
return this.datasource.writePool.getMinEvictableIdleTimeMillis();
}
public void setMaxWriteConnections(int connections) {
this.datasource.writePool.setMaxActive(connections);
}
public int getMaxIdleWriteConnections() {
return this.datasource.writePool.getMaxIdle();
}
public void setMaxIdleWriteConnections(int connections) {
this.datasource.writePool.setMaxIdle(connections);
}
public long getMaxWaitTimeWriteConnections() {
return this.datasource.writePool.getMaxWait();
}
public void setMaxWaitTimeWriteConnections(long waitTime) {
this.datasource.writePool.setMaxWait(waitTime);
}
public int getActiveQueryConnections() {
return this.datasource.queryPool.getNumActive();
}
public int getIdleQueryConnections() {
return this.datasource.queryPool.getNumIdle();
}
public int getMaxQueryConnections() {
return this.datasource.queryPool.getMaxActive();
}
public int getMinIdleQueryConnections() {
return this.datasource.queryPool.getMinIdle();
}
public void setMinIdleQueryConnections(int connections) {
this.datasource.queryPool.setMinIdle(connections);
}
public void setMinIdleTimeQueryConnections(long idleTime) {
this.datasource.queryPool.setMinEvictableIdleTimeMillis(idleTime);
}
public long getMinIdleTimeQueryConnections() {
return this.datasource.queryPool.getMinEvictableIdleTimeMillis();
}
public void setMaxQueryConnections(int connections) {
this.datasource.queryPool.setMaxActive(connections);
}
public int getMaxIdleQueryConnections() {
return this.datasource.queryPool.getMaxIdle();
}
public void setMaxIdleQueryConnections(int connections) {
this.datasource.queryPool.setMaxIdle(connections);
}
public long getMaxWaitTimeQueryConnections() {
return this.datasource.queryPool.getMaxWait();
}
public void setMaxWaitTimeQueryConnections(long waitTime) {
this.datasource.queryPool.setMaxWait(waitTime);
}
public void purgeQueryConnections() {
this.datasource.queryPool.clear();
}
public void purgeWriteConnections() {
this.datasource.writePool.clear();
}
public String getDatabaseDriver() {
return this.datasource.getConfiguration().getDriverClassName();
}
public String getDatabasePassword() {
return this.datasource.getConfiguration().getPassword();
}
public String getDatabaseURL() {
return this.datasource.getConfiguration().getJdbcUrl();
}
public String getDatabaseUser() {
return this.datasource.getConfiguration().getUser();
}
}