KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > cjdbc > console > text > commands > dbadmin > Replicate


1 /**
2  * C-JDBC: Clustered JDBC.
3  * Copyright (C) 2002-2004 French National Institute For Research In Computer
4  * Science And Control (INRIA).
5  * Contact: c-jdbc@objectweb.org
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or any later
10  * version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
20  *
21  * Initial developer(s): Nicolas Modrzyk
22  * Contributor(s): ______________________.
23  */

24
25 package org.objectweb.cjdbc.console.text.commands.dbadmin;
26
27 import java.util.HashMap JavaDoc;
28 import java.util.StringTokenizer JavaDoc;
29
30 import org.objectweb.cjdbc.common.i18n.ConsoleTranslate;
31 import org.objectweb.cjdbc.console.text.module.VirtualDatabaseAdmin;
32
33 /**
34  * This class defines a Replicate
35  *
36  * @author <a HREF="mailto:Nicolas.Modrzyk@inria.fr">Nicolas Modrzyk </a>
37  * @version 1.0
38  */

39 public class Replicate extends AbstractAdminCommand
40 {
41
42   /**
43    * Creates a new <code>Replicate.java</code> object
44    *
45    * @param module admin module
46    */

47   public Replicate(VirtualDatabaseAdmin module)
48   {
49     super(module);
50   }
51
52   /**
53    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#parse(java.lang.String)
54    */

55   public void parse(String JavaDoc commandText) throws Exception JavaDoc
56   {
57     StringTokenizer JavaDoc st = new StringTokenizer JavaDoc(commandText, "; ");
58     if (st.countTokens() < 3)
59     {
60       console.printError(getUsage());
61       return;
62     }
63     
64     String JavaDoc backend1 = st.nextToken();
65     String JavaDoc backend2 = st.nextToken();
66     String JavaDoc url = st.nextToken();
67
68     HashMap JavaDoc parameters = new HashMap JavaDoc();
69     parameters.put("url",url);
70     StringTokenizer JavaDoc st2;
71     while (st.hasMoreTokens())
72     {
73       st2 = new StringTokenizer JavaDoc(st.nextToken(), "=");
74       if (st2.countTokens() == 2)
75       {
76         String JavaDoc param = st2.nextToken();
77         String JavaDoc value = st2.nextToken();
78         parameters.put(param, value);
79         console.println(ConsoleTranslate.get("admin.command.replicate.param",
80             new String JavaDoc[]{param, value}));
81       }
82     }
83
84     console.println(ConsoleTranslate.get("admin.command.replicate.echo",
85         new String JavaDoc[]{backend1, backend2, url}));
86     jmxClient.getVirtualDatabaseProxy(dbName, user, password).replicateBackend(
87         backend1, backend2, parameters);
88
89   }
90
91   /**
92    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandParameters()
93    */

94   public String JavaDoc getCommandParameters()
95   {
96     return ConsoleTranslate.get("admin.command.replicate.params");
97   }
98
99   /**
100    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandName()
101    */

102   public String JavaDoc getCommandName()
103   {
104     return "clone backend config";
105   }
106
107   /**
108    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandDescription()
109    */

110   public String JavaDoc getCommandDescription()
111   {
112     return ConsoleTranslate.get("admin.command.replicate.description");
113   }
114
115 }
Popular Tags