00001
00025
package org.objectweb.cjdbc.console.text.module;
00026
00027
import org.objectweb.cjdbc.common.i18n.ConsoleTranslate;
00028
import org.objectweb.cjdbc.common.jmx.mbeans.ControllerMBean;
00029
import org.objectweb.cjdbc.common.jmx.mbeans.VirtualDatabaseMBean;
00030
import org.objectweb.cjdbc.console.text.Console;
00031
import org.objectweb.cjdbc.console.text.commands.Help;
00032
import org.objectweb.cjdbc.console.text.commands.History;
00033
import org.objectweb.cjdbc.console.text.commands.Native;
00034
import org.objectweb.cjdbc.console.text.commands.Quit;
00035
import org.objectweb.cjdbc.console.text.commands.dbadmin.Backup;
00036
import org.objectweb.cjdbc.console.text.commands.dbadmin.Disable;
00037
import org.objectweb.cjdbc.console.text.commands.dbadmin.DisableAll;
00038
import org.objectweb.cjdbc.console.text.commands.dbadmin.DisableRead;
00039
import org.objectweb.cjdbc.console.text.commands.dbadmin.Enable;
00040
import org.objectweb.cjdbc.console.text.commands.dbadmin.EnableAll;
00041
import org.objectweb.cjdbc.console.text.commands.dbadmin.EnableRead;
00042
import org.objectweb.cjdbc.console.text.commands.dbadmin.RemoveCheckpoint;
00043
import org.objectweb.cjdbc.console.text.commands.dbadmin.Replicate;
00044
import org.objectweb.cjdbc.console.text.commands.dbadmin.Restore;
00045
import org.objectweb.cjdbc.console.text.commands.dbadmin.SetCheckpoint;
00046
import org.objectweb.cjdbc.console.text.commands.dbadmin.ShowBackends;
00047
import org.objectweb.cjdbc.console.text.commands.dbadmin.TransferBackend;
00048
import org.objectweb.cjdbc.console.text.commands.dbadmin.ViewCheckpointNames;
00049
00058 public class VirtualDatabaseAdmin extends AbstractConsoleModule
00059 {
00060 private String
virtualDbName,
login,
password;
00061
00067 public String
getLogin()
00068 {
00069
return login;
00070 }
00071
00077 public String
getPassword()
00078 {
00079
return password;
00080 }
00081
00087 public String
getVirtualDbName()
00088 {
00089
return virtualDbName;
00090 }
00091
00095 public void login(String[] params)
00096 {
00097
00098
quit =
false;
00099 String vdbName = params[0];
00100
try
00101 {
00102
if (vdbName == null || vdbName.trim().equals(
""))
00103 {
00104 vdbName = console.
readLine(
ConsoleTranslate.get(
"admin.login.dbname"));
00105
if (vdbName == null)
00106
return;
00107 }
00108
00109
login = console.
readLine(
ConsoleTranslate.get(
"admin.login.user"));
00110
if (
login == null)
00111
return;
00112
00113
password = console.
readPassword(
ConsoleTranslate
00114 .get(
"admin.login.password"));
00115
if (
password == null)
00116
return;
00117
00118
try
00119 {
00120
ControllerMBean mbean = console.
getJmxClient().
getControllerProxy();
00121
if (!mbean.
hasVirtualDatabase(vdbName))
00122 {
00123 console.
printError(
ConsoleTranslate.get(
"module.database.invalid",
00124 vdbName));
00125
quit();
00126
return;
00127 }
00128
VirtualDatabaseMBean vdb = console.
getJmxClient()
00129 .
getVirtualDatabaseProxy(vdbName,
login,
password);
00130
if (!vdb.
checkAdminAuthentication(
login,
password))
00131 {
00132 console.
printError(
ConsoleTranslate.get(
"module.database.login.fail",
00133
login));
00134
quit();
00135 }
00136 }
00137
catch (Exception e)
00138 {
00139
00140 console.
printError(
ConsoleTranslate.get(
"module.database.invalid",
00141 vdbName), e);
00142
quit();
00143 }
00144
this.virtualDbName = vdbName;
00145
if (
quit)
00146
return;
00147
00148
00149
loadCommands();
00150 console.
println(
ConsoleTranslate.get(
"admin.login.ready",
virtualDbName));
00151 }
00152
catch (Exception e)
00153 {
00154 console.
printError(e.getMessage(), e);
00155
quit();
00156 }
00157
00158 }
00159
00163 public String
getDescriptionString()
00164 {
00165
return "VirtualDatabase Administration";
00166 }
00167
00171 public String
getPromptString()
00172 {
00173
return virtualDbName +
"(" +
login +
")";
00174 }
00175
00179 protected void loadCommands()
00180 {
00181 commands.clear();
00182 commands.add(
new Help(
this));
00183 commands.add(
new History(
this));
00184 commands.add(
new Quit(
this));
00185 commands.add(
new Backup(
this));
00186 commands.add(
new Disable(
this));
00187 commands.add(
new DisableRead(
this));
00188 commands.add(
new DisableAll(
this));
00189 commands.add(
new Enable(
this));
00190 commands.add(
new EnableRead(
this));
00191 commands.add(
new EnableAll(
this));
00192 commands.add(
new Native(
this));
00193 commands.add(
new RemoveCheckpoint(
this));
00194 commands.add(
new Replicate(
this));
00195 commands.add(
new Restore(
this));
00196 commands.add(
new TransferBackend(
this));
00197 commands.add(
new ShowBackends(
this));
00198 commands.add(
new SetCheckpoint(
this));
00199 commands.add(
new ViewCheckpointNames(
this));
00200 }
00201
00205 public void quit()
00206 {
00207
quit =
true;
00208 }
00209
00215 public VirtualDatabaseAdmin(
Console console)
00216 {
00217 super(console);
00218 }
00219 }