KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hsqldb > util > ShutdownServer


1 /* Copyright (c) 2001-2005, The HSQL Development Group
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * Redistributions of source code must retain the above copyright notice, this
8  * list of conditions and the following disclaimer.
9  *
10  * Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  *
14  * Neither the name of the HSQL Development Group nor the names of its
15  * contributors may be used to endorse or promote products derived from this
16  * software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30
31
32 package org.hsqldb.util;
33
34 import java.sql.Connection JavaDoc;
35 import java.sql.DriverManager JavaDoc;
36 import java.sql.SQLException JavaDoc;
37 import java.sql.Statement JavaDoc;
38
39 import org.hsqldb.persist.HsqlProperties;
40
41 /*
42  * Shutdown class for Server, used by hsqldbserver to shutdown the server
43  *
44  * Send any questions to fchoong@user
45  */

46 public class ShutdownServer {
47
48     public static void main(String JavaDoc[] arg) {
49
50         boolean webserver;
51         String JavaDoc driver = "org.hsqldb.jdbcDriver";
52         String JavaDoc url;
53         String JavaDoc user;
54         String JavaDoc password;
55         int port;
56         String JavaDoc defaulturl;
57         String JavaDoc shutdownarg;
58
59         if (arg.length > 0) {
60             String JavaDoc p = arg[0];
61
62             if ((p != null) && p.startsWith("-?")) {
63                 printHelp();
64
65                 return;
66             }
67         }
68
69         HsqlProperties props = HsqlProperties.argArrayToProps(arg, "server");
70
71         webserver = props.isPropertyTrue("server.webserver", false);
72         defaulturl = webserver ? "jdbc:hsqldb:http://localhost"
73                                : "jdbc:hsqldb:hsql://localhost";
74
75         int defaultport = webserver ? 80
76                                     : 9001;
77
78         port = props.getIntegerProperty("server.port", defaultport);
79         url = props.getProperty("server.url", defaulturl + ":" + port);
80         user = props.getProperty("server.user", "sa");
81         password = props.getProperty("server.password", "");
82         shutdownarg = props.getProperty("server.shutdownarg", "");
83
84         try {
85             Class.forName(driver); // Load the driver
86

87             Connection JavaDoc connection = DriverManager.getConnection(url, user,
88                 password);
89             Statement JavaDoc statement = connection.createStatement();
90
91             // can use SHUTDOWN COMPACT or SHUTDOWN IMMEDIATELY
92
statement.execute("SHUTDOWN " + shutdownarg);
93         } catch (ClassNotFoundException JavaDoc e) {
94             System.err.println(e); // Driver not found
95
} catch (SQLException JavaDoc e) {
96             System.err.println(e); // error connection to database
97
}
98     }
99
100     static void printHelp() {
101
102         System.out.print(
103             "Usage: java ShutdownServer [-options]\n"
104             + "where options include:\n"
105             + " -port <nr> port where the server is listening\n"
106             + " -user <name> username of admin user\n"
107             + " -password <value> password of admin user\n"
108             + " -webserver <true/false> whether it's a web server\n"
109             + " -url <value> server url (overrides -webserver and -port options)\n"
110             + " -shutdownarg <value> IMMEDIATELY or COMPACT are allowed\n"
111             + "The command line arguments override the default values.");
112     }
113 }
114
Popular Tags