(no commit message)
[utils] / test / enterprise / src / main / java / org / wamblee / support / persistence / ExternalDatabase.java
1 /*
2  * Copyright 2005-2010 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.support.persistence;
17
18
19 /**
20  * Database that encapsulates connection to an external database. Database
21  * connection details can be configured through system properties and
22  * environment variables, see {@link #DB_URL_PROP}, {@link #DB_USER_PROP}, and
23  * {@link #DB_PASSWORD_PROP|.
24  * 
25  * This class assumes modern database drivers that work together with
26  * java.util.ServiceLoader so that explicitly doing a Class.forName() is not
27  * necessary to load the database driver.
28  */
29 public class ExternalDatabase extends AbstractDatabase {
30
31     /**
32      * System property/environment variable that defines the database URL.
33      */
34     public static final String DB_URL_PROP = "TEST_DB_URL";
35
36     /**
37      * System property/environment variable that defines the database user.
38      */
39     public static final String DB_USER_PROP = "TEST_DB_USER";
40
41     /**
42      * System property/environment variable that defines the database password.
43      */
44     public static final String DB_PASSWORD_PROP = "TEST_DB_PASSWORD";
45
46     private String itsUrl;
47     private String itsUser;
48     private String itsPassword;
49
50     public ExternalDatabase() {
51         // Empty
52     }
53
54     public String getExternalJdbcUrl() {
55         return itsUrl;
56     }
57
58     public String getJdbcUrl() {
59         return itsUrl;
60     }
61
62     public String getPassword() {
63         return itsPassword;
64     }
65
66     public String getUsername() {
67         return itsUser;
68     }
69
70     public void doStart() {
71         itsUrl = getProperty(DB_URL_PROP);
72         itsUser = getProperty(DB_USER_PROP);
73         itsPassword = getProperty(DB_PASSWORD_PROP);
74
75         createDataSource();
76     }
77
78     public void doStop() {
79         // Empty.
80     }
81
82 }