All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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