/* * Copyright Aduna (http://www.aduna-software.com/) (c) 2008. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.sail.rdbms.postgresql; import org.apache.commons.dbcp.BasicDataSource; import org.openrdf.sail.SailException; import org.openrdf.sail.rdbms.RdbmsStore; import org.openrdf.sail.rdbms.exceptions.RdbmsException; /** * A convenient way to initialise a PostgreSQL RDF store. * * @author James Leigh * */ public class PgSqlStore extends RdbmsStore { private String serverName; private String databaseName; private int portNumber; private String user; private String password; public PgSqlStore() { super(); } public PgSqlStore(String databaseName) { setDatabaseName(databaseName); } public String getServerName() { return serverName; } public void setServerName(String serverName) { this.serverName = serverName; } public String getDatabaseName() { return databaseName; } public void setDatabaseName(String databaseName) { this.databaseName = databaseName; } public int getPortNumber() { return portNumber; } public void setPortNumber(int portNumber) { this.portNumber = portNumber; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public void initialize() throws SailException { try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException e) { throw new RdbmsException(e.toString(), e); } StringBuilder url = new StringBuilder(); url.append("jdbc:postgresql:"); if (serverName != null) { url.append("//").append(serverName); if (portNumber > 0) { url.append(":").append(portNumber); } url.append("/"); } url.append(databaseName); BasicDataSource ds = new BasicDataSource(); ds.setUrl(url.toString()); if (user != null) { ds.setUsername(user); } else { ds.setUsername(System.getProperty("user.name")); } if (password != null) { ds.setPassword(password); } PgSqlConnectionFactory factory = new PgSqlConnectionFactory(); factory.setSail(this); factory.setDataSource(ds); setConnectionFactory(factory); super.initialize(); } }