00001 /** 00002 * C-JDBC: Clustered JDBC. 00003 * Copyright (C) 2002-2004 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): ______________________. 00023 */ 00024 00025 package org.objectweb.cjdbc.console.text.commands; 00026 00027 import java.io.BufferedReader; 00028 import java.io.InputStreamReader; 00029 00030 import org.objectweb.cjdbc.common.i18n.ConsoleTranslate; 00031 import org.objectweb.cjdbc.console.text.module.AbstractConsoleModule; 00032 00033 /** 00034 * This class defines a Native 00035 * 00036 * @author <a href="mailto:Nicolas.Modrzyk@inria.fr">Nicolas Modrzyk </a> 00037 * @version 1.0 00038 */ 00039 public class Native extends ConsoleCommand 00040 { 00041 00042 /** 00043 * Creates a new <code>Native.java</code> object 00044 * 00045 * @param module the command is issued from 00046 */ 00047 public Native(AbstractConsoleModule module) 00048 { 00049 super(module); 00050 } 00051 00052 /** 00053 * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#parse(java.lang.String) 00054 */ 00055 public void parse(String commandText) throws Exception 00056 { 00057 // not used 00058 // see execute 00059 } 00060 00061 /** 00062 * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandName() 00063 */ 00064 public String getCommandName() 00065 { 00066 return "native"; 00067 } 00068 00069 /** 00070 * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#getCommandDescription() 00071 */ 00072 public String getCommandDescription() 00073 { 00074 return ConsoleTranslate.get("console.command.native"); 00075 } 00076 00077 /** 00078 * @see org.objectweb.cjdbc.console.text.commands.ConsoleCommand#execute(java.lang.String) 00079 */ 00080 public void execute(String commandText) throws Exception 00081 { 00082 Runtime rt = Runtime.getRuntime(); 00083 Process proc = rt.exec(commandText.trim()); 00084 proc.waitFor(); 00085 BufferedReader in = new BufferedReader(new InputStreamReader(proc 00086 .getInputStream())); 00087 String line; 00088 while ((line = in.readLine()) != null) 00089 console.println(ConsoleTranslate.get("console.command.native.output", 00090 line)); 00091 } 00092 }