/******************************************************************************* * 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: Feb 5, 2008 * Revision: $Id$ * * Contributors: * Cambridge Semantics Incorporated - initial API and implementation *******************************************************************************/ package org.openanzo.client; import java.util.Properties; import org.openanzo.combus.CombusProperties; import org.openanzo.exceptions.AnzoException; import org.openanzo.jdbc.container.CoreDBConfiguration; import org.openanzo.jdbc.container.DBTypes; import org.openanzo.jdbc.container.RDBProperties; import org.openanzo.services.ServicesProperties; /** * @author Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com</a>) * */ public class AnzoClientConfigurationFactory { /** * Create a new JMS based service container configuration * * @param userName * user name for the connection * @param password * password for the connection * @param host * hostname for the JMS broker * @param port * port for the JMS broker * @param useSsl * use ssl * @return INamedGraph containing configuration for a JMS backed service container * @throws AnzoException */ public static Properties createJMSConfiguration(String userName, String password, String host, Integer port, Boolean useSsl) throws AnzoException { Properties clientConfiguration = new Properties(); AnzoClientProperties.setPersistenceEnabled(clientConfiguration, false); AnzoClientProperties.setQuadstoreShared(clientConfiguration, false); CombusProperties.setHost(clientConfiguration, host); CombusProperties.setPort(clientConfiguration, port); if (useSsl != null) { CombusProperties.setUseSsl(clientConfiguration, useSsl); } else { CombusProperties.setUseSsl(clientConfiguration, false); } ServicesProperties.setUser(clientConfiguration, userName); ServicesProperties.setPassword(clientConfiguration, password); return clientConfiguration; } /** * Set client persistence off within the given config properties * * @param configProperties * Properties on which to set persistence off * @throws AnzoException */ public static void configureNonPersistedClient(Properties configProperties) throws AnzoException { AnzoClientProperties.setPersistenceEnabled(configProperties, false); } /** * Set persistence on within the given config properties * * @param configProperties * Properties on which to set persistence settings * @param containerName * Instance name for this set of persisted data * @param databaseType * Database type @see {@link DBTypes} * @param databaseUrl * URL for the database connection * @param databaseUser * User name for the database connection * @param databasePassword * Password for the database connection * @throws AnzoException */ public static void configurePersistedClient(Properties configProperties, String containerName, String databaseType, String databaseUrl, String databaseUser, String databasePassword) throws AnzoException { AnzoClientProperties.setPersistenceEnabled(configProperties, true); configurePersistedClient(configProperties, true, containerName, databaseType, databaseUrl, databaseUser, databasePassword); } private static void configurePersistedClient(Properties containerConfiguration, boolean client, String containerName, String databaseType, String databaseUrl, String databaseUser, String databasePassword) throws AnzoException { RDBProperties.setContainerName(containerConfiguration, containerName); RDBProperties.setUser(containerConfiguration, databaseUser); RDBProperties.setPassword(containerConfiguration, databasePassword); RDBProperties.setUrl(containerConfiguration, databaseUrl); DBTypes type = DBTypes.valueOf(databaseType); switch (type) { case DB2: CoreDBConfiguration.configureDB2(containerConfiguration, client); break; case MSSQL: CoreDBConfiguration.configureMSSQL(containerConfiguration, client); break; case H2: CoreDBConfiguration.configureH2(containerConfiguration, client); break; case HSQL: CoreDBConfiguration.configureHSQL(containerConfiguration, client); break; case Oracle: CoreDBConfiguration.configureOracle(containerConfiguration, client); break; case Postgres: CoreDBConfiguration.configurePostgres(containerConfiguration, client); break; } } }