(no commit message)
[utils] / support / src / test / java / org / wamblee / persistence / Database.java
1 /*
2  * Copyright 2005 the original author or authors.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */ 
16 package org.wamblee.persistence;
17
18 import java.sql.Connection;
19 import java.sql.SQLException;
20
21
22 /**
23  * Represents a database.
24  */
25 public interface Database {
26     /**
27      * Starts a database. This call should not block and return
28      * as soon as the database has been started.
29      * @throws Exception
30      */
31     void start(  ) throws Exception;
32
33     /**
34      * Gets the Jdbc Url to connect to this database.
35      * @return Jdbc Url.
36      */
37     String getJdbcUrl(  );
38     
39     /**
40      * Gets the external Jdbc URL to connect to this database from other JVMs. 
41      */
42     String getExternalJdbcUrl();
43     
44     /**
45      * Gets the driver class name used to connect to the database from another JVM.  
46      * @return Driver class name. 
47      */
48     String getDriverClassName(); 
49     
50     /**
51      * Gets the username to connect to the database. 
52      * @return username. 
53      */
54     String getUsername(); 
55     
56     /**
57      * Gets the password to connect to the database. 
58      * @return password. 
59      */
60     String getPassword(); 
61
62     /**
63      * Creates a new database connection. It is the caller's
64      * responsibility to close this connection.
65      *
66      * @return Newly created database connection.
67      */
68     Connection createConnection(  ) throws SQLException;
69
70     /**
71      * Stops a database.
72      * @throws Exception
73      */
74     void stop(  ) throws Exception;
75 }