39dffed1f39e43dd6223bb492b7242e941230e79
[utils] / support / general / 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  * @author Erik Brakkee
26  */
27 public interface Database {
28     /**
29      * Starts a database. This call should not block and return
30      * as soon as the database has been started.
31      * @throws Exception
32      */
33     void start(  ) throws Exception;
34
35     /**
36      * Gets the Jdbc Url to connect to this database.
37      * @return Jdbc Url.
38      */
39     String getJdbcUrl(  );
40     
41     /**
42      * Gets the external Jdbc URL to connect to this database from other JVMs. 
43      */
44     String getExternalJdbcUrl();
45     
46     /**
47      * Gets the driver class name used to connect to the database from another JVM.  
48      * @return Driver class name. 
49      */
50     String getDriverClassName(); 
51     
52     /**
53      * Gets the username to connect to the database. 
54      * @return username. 
55      */
56     String getUsername(); 
57     
58     /**
59      * Gets the password to connect to the database. 
60      * @return password. 
61      */
62     String getPassword(); 
63
64     /**
65      * Creates a new database connection. It is the caller's
66      * responsibility to close this connection.
67      *
68      * @return Newly created database connection.
69      */
70     Connection createConnection(  ) throws SQLException;
71
72     /**
73      * Stops a database.
74      * @throws Exception
75      */
76     void stop(  ) throws Exception;
77 }