KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jcorporate > expresso > core > db > DBInitializer


1 /* ====================================================================
2  * The Jcorporate Apache Style Software License, Version 1.2 05-07-2002
3  *
4  * Copyright (c) 1995-2002 Jcorporate Ltd. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in
15  * the documentation and/or other materials provided with the
16  * distribution.
17  *
18  * 3. The end-user documentation included with the redistribution,
19  * if any, must include the following acknowledgment:
20  * "This product includes software developed by Jcorporate Ltd.
21  * (http://www.jcorporate.com/)."
22  * Alternately, this acknowledgment may appear in the software itself,
23  * if and wherever such third-party acknowledgments normally appear.
24  *
25  * 4. "Jcorporate" and product names such as "Expresso" must
26  * not be used to endorse or promote products derived from this
27  * software without prior written permission. For written permission,
28  * please contact info@jcorporate.com.
29  *
30  * 5. Products derived from this software may not be called "Expresso",
31  * or other Jcorporate product names; nor may "Expresso" or other
32  * Jcorporate product names appear in their name, without prior
33  * written permission of Jcorporate Ltd.
34  *
35  * 6. No product derived from this software may compete in the same
36  * market space, i.e. framework, without prior written permission
37  * of Jcorporate Ltd. For written permission, please contact
38  * partners@jcorporate.com.
39  *
40  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
41  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
42  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43  * DISCLAIMED. IN NO EVENT SHALL JCORPORATE LTD OR ITS CONTRIBUTORS
44  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
45  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
46  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
47  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
48  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
49  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
50  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51  * SUCH DAMAGE.
52  * ====================================================================
53  *
54  * This software consists of voluntary contributions made by many
55  * individuals on behalf of the Jcorporate Ltd. Contributions back
56  * to the project(s) are encouraged when you make modifications.
57  * Please send them to support@jcorporate.com. For more information
58  * on Jcorporate Ltd. and its products, please see
59  * <http://www.jcorporate.com/>.
60  *
61  * Portions of this software are based upon other open source
62  * products and are subject to their respective licenses.
63  */

64 package com.jcorporate.expresso.core.db;
65
66 import com.jcorporate.expresso.core.misc.ConfigManager;
67 import com.jcorporate.expresso.kernel.LogManager;
68
69
70 /**
71  * DBInitializer is a multi-purpose tool for working with database objects. It can:
72  * <ol>
73  * <li>Verify data in the database with respect to referential integrity</li>
74  * <li>Generate the code for a Database Object by reading the data in a
75  * database</li>
76  * </ol>
77  * <p/>
78  * <h4>Command Line Parameters</h4>
79  * <h5 align="left">Required Command Line Arguments </h5>
80  * <p align="left"><b>configDir</b> - &lt;Directory that contains your config files&gt;</p>
81  * <p align="left"><b>webbAppDir</b> -&lt;The Expresso webapp directory&gt;</p>
82  * <ul>
83  * <li><b>config</b> - Run configuration utility.</li>
84  * </ul>
85  *
86  * @author Yves Henri Mensah AMAIZO
87  */

88 public class DBInitializer {
89
90     private static String JavaDoc dbName = null;
91
92     /**
93      * DB connection pool object
94      */

95     private DBConnectionPool myPool = null;
96
97     /**
98      * DB connection object
99      */

100     private DBConnection myConnection = null;
101
102
103     /**
104      * Constructor
105      *
106      * @throws DBException If the database cannot be contacted
107      */

108     public DBInitializer() throws DBException {
109         setDbName("default");
110     } /* DBInitializer() */
111
112
113     /**
114      * Constructor
115      *
116      * @throws DBException If the database cannot be contacted
117      */

118     public DBInitializer(String JavaDoc newDBName) throws DBException {
119         setDbName(newDBName);
120     } /* DBInitializer() */
121
122     /**
123      * Initialize method
124      *
125      * @param args Command line arguments to supply the information to
126      * connect to the database
127      */

128     public synchronized DBConnection initialize(String JavaDoc webAppDir, String JavaDoc configDir, String JavaDoc logDir) {
129         try {
130             if (configDir == null || "".equals(configDir) ||
131                     logDir == null || "".equals(logDir) ||
132                     webAppDir == null || "".equals(webAppDir)) {
133                 return null;
134             }
135
136             String JavaDoc logConfig = configDir + "/expressoLogging.xml";
137
138             LogManager lm = new LogManager(logConfig, logDir);
139
140             // set up ConfigManager first
141
ConfigManager.setWebAppDir(webAppDir);
142             ConfigManager.load(configDir);
143
144             //initialize the db pool
145
ConfigManager.dbInitialize();
146
147             //Load DBOtherMaps
148
ConfigManager.mapOtherDBs();
149
150             if (dbName.equals("")) {
151                 dbName = "default";
152             }
153
154             myPool = DBConnectionPool.getInstance(dbName);
155             if (myPool != null) {
156                 myConnection = myPool.getConnection("DBInitialize");
157             } else {
158                 return null;
159             }
160
161         } catch (Exception JavaDoc de) {
162             System.out.println("DBInitialze Error:" + de.getMessage());
163             de.printStackTrace();
164         }
165         return myConnection;
166     } /* initialize(String) */
167
168     public synchronized void close(DBConnection myConnection) throws DBException {
169         myConnection.clear();
170     }
171
172     public synchronized void release(DBConnection myConnection) {
173
174         myPool.release(myConnection);
175         ConfigManager.destroy();
176     }
177
178     /**
179      * @return
180      */

181     public static String JavaDoc getDbName() {
182         return dbName;
183     }
184
185     /**
186      * @param string
187      */

188     public static void setDbName(String JavaDoc newDBName) {
189         if (newDBName != null) {
190             dbName = newDBName;
191         } else {
192             dbName = "default";
193         }
194     }
195
196 } /* DBInitialze */
197
Popular Tags