00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 package org.objectweb.cjdbc.console.text.commands.dbadmin;
00026
00027 import java.util.HashMap;
00028 import java.util.StringTokenizer;
00029
00030 import org.objectweb.cjdbc.common.i18n.ConsoleTranslate;
00031 import org.objectweb.cjdbc.console.text.ConsoleException;
00032 import org.objectweb.cjdbc.console.text.module.VirtualDatabaseAdmin;
00033
00034
00035
00036
00037
00038
00039
00040 public class Replicate extends AbstractAdminCommand
00041 {
00042
00043
00044
00045
00046
00047
00048 public Replicate(VirtualDatabaseAdmin module)
00049 {
00050 super(module);
00051 }
00052
00053
00054
00055
00056 public void parse(String commandText) throws Exception
00057 {
00058 StringTokenizer st = new StringTokenizer(commandText, "; ");
00059 if (st.countTokens() < 3)
00060 throw new ConsoleException(ConsoleTranslate
00061 .get("admin.command.replicate.missing.param"));
00062
00063 String backend1 = st.nextToken();
00064 String backend2 = st.nextToken();
00065 String url = st.nextToken();
00066
00067 HashMap parameters = new HashMap();
00068 parameters.put("url",url);
00069 StringTokenizer st2;
00070 while (st.hasMoreTokens())
00071 {
00072 st2 = new StringTokenizer(st.nextToken(), "=");
00073 if (st2.countTokens() == 2)
00074 {
00075 String param = st2.nextToken();
00076 String value = st2.nextToken();
00077 parameters.put(param, value);
00078 console.println(ConsoleTranslate.get("admin.command.replicate.param",
00079 new String[]{param, value}));
00080 }
00081 }
00082
00083 console.println(ConsoleTranslate.get("admin.command.replicate.echo",
00084 new String[]{backend1, backend2, url}));
00085 jmxClient.getVirtualDatabaseProxy(dbName, user, password).replicateBackend(
00086 backend1, backend2, parameters);
00087
00088 }
00089
00090
00091
00092
00093 public String getCommandParameters()
00094 {
00095 return "backendFrom backendTo url "
00096 + "[driverPath=<value>] [driver=<value>] [connectionTestStatement=<value>]";
00097 }
00098
00099
00100
00101
00102 public String getCommandName()
00103 {
00104 return "replicate";
00105 }
00106
00107
00108
00109
00110 public String getCommandDescription()
00111 {
00112 return ConsoleTranslate.get("admin.command.replicate");
00113 }
00114
00115 }