![JAR search and dependency download from the Maven repository](/logo.png)
org.jivesoftware.database.ConnectionProvider Maven / Gradle / Ivy
The newest version!
/*
* Copyright (C) 2004-2008 Jive Software. All rights reserved.
*
* TLicensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.database;
import java.sql.Connection;
import java.sql.SQLException;
/**
* Abstract class that defines the connection provider framework. Other classes
* extend this abstract class to make connection to actual data sources.
*
* It is expected that each subclass be a JavaBean, so that properties of
* the connection provider are exposed through bean introspection.
*
* @author Jive Software
*/
public interface ConnectionProvider {
/**
* Returns true if this connection provider provides connections out
* of a connection pool. Implementing and using connection providers that
* are pooled is strongly recommended, as they greatly increase the speed
* of Jive.
*
* @return true if the Connection objects returned by this provider are
* pooled.
*/
boolean isPooled();
/**
* Returns a database connection. When a Jive component is done with a
* connection, it will call the close method of that connection. Therefore,
* connection pools with special release methods are not directly
* supported by the connection provider infrastructure. Instead, connections
* from those pools should be wrapped such that calling the close method
* on the wrapper class will release the connection from the pool.
*
* @return a Connection object.
* @throws SQLException is an SQL error occured while retrieving the connection.
*/
Connection getConnection() throws SQLException;
/**
* Starts the connection provider. For some connection providers, this
* will be a no-op. However, connection provider users should always call
* this method to make sure the connection provider is started.
*/
void start();
/**
* This method should be called whenever properties have been changed so
* that the changes will take effect.
*/
void restart();
/**
* Tells the connection provider to destroy itself. For many connection
* providers, this will essentially result in a no-op. However,
* connection provider users should always call this method when changing
* from one connection provider to another to ensure that there are no
* dangling database connections.
*/
void destroy();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy