View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.dbcp2.datasources;
18  
19  import java.sql.SQLException;
20  
21  import javax.sql.PooledConnection;
22  
23  /**
24   * Methods to manage PoolableConnections and the connection pools that source them.
25   *
26   * @since 2.0
27   */
28  interface PooledConnectionManager {
29  
30      /**
31       * Closes the connection pool associated with the given user.
32       *
33       * @param userName
34       *            user name
35       * @throws SQLException
36       *             if an error occurs closing idle connections in the pool
37       */
38      void closePool(String userName) throws SQLException;
39  
40       /**
41       * Closes the PooledConnection and remove it from the connection pool to which it belongs, adjusting pool counters.
42       *
43       * @param pc
44       *            PooledConnection to be invalidated
45       * @throws SQLException
46       *             if an SQL error occurs closing the connection
47       */
48      void invalidate(PooledConnection pc) throws SQLException;
49  
50  //    /**
51  //     * Sets the database password used when creating connections.
52  //     *
53  //     * @param password password used when authenticating to the database
54  //     * @since 2.10.0
55  //     */
56  //     default void setPassword(char[] password) {
57  //         setPassword(String.copyValueOf(password));
58  //     }
59  
60      /**
61       * Sets the database password used when creating connections.
62       *
63       * @param password
64       *            password used when authenticating to the database
65       */
66      void setPassword(String password);
67  
68  }