Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

Backup.java

00001 /**
00002  * C-JDBC: Clustered JDBC.
00003  * Copyright (C) 2002-2005 French National Institute For Research In Computer
00004  * Science And Control (INRIA).
00005  * Contact: c-jdbc@objectweb.org
00006  * 
00007  * This library is free software; you can redistribute it and/or modify it
00008  * under the terms of the GNU Lesser General Public License as published by the
00009  * Free Software Foundation; either version 2.1 of the License, or any later
00010  * version.
00011  * 
00012  * This library is distributed in the hope that it will be useful, but WITHOUT
00013  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00014  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
00015  * for more details.
00016  * 
00017  * You should have received a copy of the GNU Lesser General Public License
00018  * along with this library; if not, write to the Free Software Foundation,
00019  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
00020  *
00021  * Initial developer(s): Nicolas Modrzyk
00022  * Contributor(s): Emmanuel Cecchet.
00023  */
00024 
00025 package org.objectweb.cjdbc.console.text.commands.dbadmin;
00026 
00027 import java.util.ArrayList;
00028 import java.util.StringTokenizer;
00029 
00030 import org.objectweb.cjdbc.common.i18n.ConsoleTranslate;
00031 import org.objectweb.cjdbc.common.jmx.mbeans.VirtualDatabaseMBean;
00032 import org.objectweb.cjdbc.console.text.ConsoleException;
00033 import org.objectweb.cjdbc.console.text.module.VirtualDatabaseAdmin;
00034 
00035 /**
00036  * This class defines the Backup command for the text console. It backups a
00037  * backend to a dump file.
00038  * 
00039  * @author <a href="mailto:Nicolas.Modrzyk@inria.fr">Nicolas Modrzyk </a>
00040  * @author <a href="mailto:emmanuel.cecchet@emicnetworks.com">Emmanuel Cecchet
00041  *         </a>
00042  * @version 1.0
00043  */
00044 public class Backup extends AbstractAdminCommand
00045 {
00046 
00047   /**
00048    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandParameters()
00049    */
00050   public String getCommandParameters()
00051   {
00052     return "<backendName> <dumpName> [<tables>]";
00053   }
00054 
00055   /**
00056    * Creates a new <code>Backup.java</code> object
00057    * 
00058    * @param module the command is attached to
00059    */
00060   public Backup(VirtualDatabaseAdmin module)
00061   {
00062     super(module);
00063   }
00064 
00065   /**
00066    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#parse(java.lang.String)
00067    */
00068   public void parse(String commandText) throws Exception
00069   {
00070     StringTokenizer sb = new StringTokenizer(commandText.trim());
00071 
00072     if (sb == null || sb.countTokens() < 2)
00073       throw new ConsoleException(ConsoleTranslate
00074           .get("admin.command.backup.wrong.parameters"));
00075     String backendName = sb.nextToken();
00076     String checkpointName = sb.nextToken();
00077     ArrayList tables = null;
00078     if (sb.hasMoreTokens())
00079     {
00080       tables = new ArrayList();
00081       while (sb.hasMoreTokens())
00082       {
00083         tables.add(sb.nextToken());
00084       }
00085     }
00086     console.println(ConsoleTranslate.get("admin.command.backup.echo",
00087         new String[]{backendName, checkpointName}));
00088     if (tables != null)
00089       console.println(ConsoleTranslate.get("admin.command.backup.tables",
00090           tables));
00091     VirtualDatabaseMBean vdjc = jmxClient.getVirtualDatabaseProxy(dbName, user,
00092         password);
00093     vdjc.backupBackendWithCheckpoint(backendName, checkpointName, tables);
00094   }
00095 
00096   /**
00097    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandName()
00098    */
00099   public String getCommandName()
00100   {
00101     return "backup";
00102   }
00103 
00104   /**
00105    * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandDescription()
00106    */
00107   public String getCommandDescription()
00108   {
00109     return ConsoleTranslate.get("admin.command.backup");
00110   }
00111 
00112 }

Generated on Mon Apr 11 22:01:29 2005 for C-JDBC by  doxygen 1.3.9.1