/******************************************************************************* * 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: Jun 16, 2008 * Revision: $Id$ * * Contributors: * Cambridge Semantics Incorporated - initial API and implementation *******************************************************************************/ package org.openanzo.combus; import java.util.Properties; import java.util.concurrent.locks.ReentrantReadWriteLock; import org.openanzo.combus.proxy.CombusAuthorizationServiceProxy; import org.openanzo.combus.proxy.CombusIndexServiceProxy; import org.openanzo.combus.proxy.CombusModelServiceProxy; import org.openanzo.combus.proxy.CombusResetServiceProxy; import org.openanzo.combus.proxy.CombusUpdateServiceProxy; import org.openanzo.datasource.IDatasourceListener; import org.openanzo.datasource.IServerQuadStoreProvider; import org.openanzo.datasource.services.BaseDatasource; import org.openanzo.rdf.Constants; import org.openanzo.rdf.URI; import org.openanzo.rdf.Constants.NAMESPACES; /** * @author Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com</a>) * */ public class CombusDatasource extends BaseDatasource { /** Service's Name in {@link String} form */ private static final String DATASOURCE_NAME = NAMESPACES.DATASOURCE_PREFIX + "CombusDatasource"; /** Service's Name in {@link URI} form */ private static final URI DATASOURCE_URI = Constants.valueFactory.createURI(DATASOURCE_NAME); private final CombusAuthorizationServiceProxy authorizationService; private final CombusModelServiceProxy modelService; private final CombusUpdateServiceProxy updateService; private final CombusIndexServiceProxy indexService; private final CombusBatchedQueryServiceProxy queryService; private final CombusBatchedReplicationServiceProxy replicationService; private final CombusResetServiceProxy resetService; private final ReentrantReadWriteLock resetLock = new ReentrantReadWriteLock(); private final Properties properties; /** * Datasource which talks over a combus connection for its operations * * @param properties * Configuration properties * @param combusConnection */ public CombusDatasource(Properties properties, CombusConnection combusConnection) { super(DATASOURCE_URI, true, null, false, false); this.properties = properties; authorizationService = new CombusAuthorizationServiceProxy(this, combusConnection); modelService = new CombusModelServiceProxy(this, combusConnection); updateService = new CombusUpdateServiceProxy(this, combusConnection); indexService = new CombusIndexServiceProxy(this, combusConnection); queryService = new CombusBatchedQueryServiceProxy(this, combusConnection); replicationService = new CombusBatchedReplicationServiceProxy(this, combusConnection); resetService = new CombusResetServiceProxy(this, combusConnection); } /* public void start() throws AnzoException { authorizationService.start(); modelService.start(); updateService.start(); indexService.start(); queryService.start(); replicationService.start(); resetService.start(); }*/ public CombusAuthorizationServiceProxy getAuthorizationService() { return authorizationService; } public CombusIndexServiceProxy getIndexService() { return indexService; } public CombusModelServiceProxy getModelService() { return modelService; } public CombusBatchedQueryServiceProxy getQueryService() { return queryService; } public CombusBatchedReplicationServiceProxy getReplicationService() { return replicationService; } public CombusResetServiceProxy getResetService() { return resetService; } public CombusUpdateServiceProxy getUpdateService() { return updateService; } public IServerQuadStoreProvider getServerQuadStoreProvider() { return null; } public String getName() { return "CombusDatasource"; } @Override public void registerDatasourceListener(IDatasourceListener listener) { } @Override public void unregisterDatasourceListener(IDatasourceListener listener) { } @Override public ReentrantReadWriteLock getLockProvider() { return resetLock; } public boolean isSelfDescribing() { return false; } /** * @return the properties */ public Properties getProperties() { return properties; } }