Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * OfficeFloor - http://www.officefloor.net
   * Copyright (C) 2005-2013 Daniel Sagenschneider
   *
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 /*
  * Created on Jan 25, 2006
  */
 package net.officefloor.plugin.jdbc.connection;
 
 import java.util.List;
 
 
 
 public class JdbcManagedObjectSource extends
Property name of the ConnectionPoolDataSourceFactory class.
 
 	public static final String CONNECTION_POOL_DATA_SOURCE_FACTORY_PROPERTY = "connectionpool.datasource.factory";

Property name of the javax.sql.ConnectionPoolDataSource class.
 
 	public static final String CONNECTION_POOL_DATA_SOURCE_CLASS_PROPERTY = "connectionpool.datasource.class";

Property name of script containing SQL to be run to initialise the javax.sql.DataSource.
 
 	public static final String DATA_SOURCE_INITIALISE_SCRIPT = "initialise.script";

 
java.io.InputStream to obtain the initialise script details.
 
Default constructor as required.
 
 	}

Obtains the DataSourceFactoryfrom the input properties.

 
 			ManagedObjectSourceContext<?> contextthrows Exception {
 
 		// Determine if a factory is configured
 		String factoryClassName = context.getProperty(
		if (factoryClassName != null) {
			// Use the factory to obtain the connection pool data source
			Class<?> clazz = context.loadClass(factoryClassName);
			Object object = clazz.newInstance();
			return factory.createConnectionPoolDataSource(context);
		}
		// No factory so use connection pool data source directly
		String className = context
		// Obtain the properties for the connection pool
		Properties properties = context.getProperties();
		// Create and return the connection pool data source
		return ReflectionUtil.createInitialisedBean(className,
				properties);
	}
	/*
	 * ================== AbstractManagedObjectSource ====================
	 */
	protected void loadSpecification(SpecificationContext context) {
		// Ensure data source provided
	}
	protected void loadMetaData(MetaDataContext<NoneNonecontext)
			throws Exception {
		ManagedObjectSourceContext<NonemosContext = context
		// Obtain the connection pool data source
		// Determine if required to initialise the database
		String initialiseScript = mosContext.getProperty(
		if (initialiseScript != null) {
			// Obtain access to the initialise script contents
			this. = mosContext
					.getResource(initialiseScript);
			if (this. == null) {
				throw new Exception("Can not find initialise script '"
initialiseScript + "'");
			}
		}
		// Create the recycle task
				context.getManagedObjectSourceContext(), "jdbc.recycle");
		// Specify the meta-data
		context.setObjectClass(Connection.class);
	}
	public void start(ManagedObjectExecuteContext<Nonecontext)
			throws Exception {
		// Obtain a connection to the database (to ensure working)
		connection.close();
		// Initialise data source
		// Allow clean up of configuration
	}
	protected ManagedObject getManagedObject() throws Throwable {
		// Obtain the pooled connection
		PooledConnection pooledConnection = this.
		// Return the JDBC managed object
		return new JdbcManagedObject(pooledConnection);
	}

Initialises the javax.sql.DataSource.

Throws:
java.lang.Exception If fails to initialise javax.sql.DataSource.
	protected void initialiseDataSource() throws Exception {
		// Only initialise if have script
		if (this. == null) {
			return;
		}
		// Read the statements for the initialise script
		List<Stringstatements = new LinkedList<String>();
		StringBuilder currentStatement = new StringBuilder();
		String line;
		do {
			// Obtain the line
			line = reader.readLine();
			// Add line to current statement
			if (line != null) {
				currentStatement.append(line);
				currentStatement.append("\n");
			}
			// Determine if statement complete
			if ((line == null) || (line.trim().endsWith(";"))) {
				// Statement complete
				String statementText = currentStatement.toString();
				if (statementText.trim().length() > 0) {
					// Add the statement
					statements.add(statementText);
				}
				// Reset the statement for next
				currentStatement = new StringBuilder();
			}
while (line != null);
		reader.close();
		// Run the statements to initialise data source
		PooledConnection pooledConnection = this.
		Connection connection = pooledConnection.getConnection();
		for (String sql : statements) {
			Statement statement = connection.createStatement();
			statement.execute(sql);
			statement.close();
		}
		pooledConnection.close();
	}
New to GrepCode? Check out our FAQ X