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.controller;
00026
00027 import java.io.File;
00028 import java.io.FileInputStream;
00029 import java.io.FileNotFoundException;
00030 import java.io.IOException;
00031
00032 import org.objectweb.cjdbc.common.i18n.ConsoleTranslate;
00033 import org.objectweb.cjdbc.console.text.ConsoleException;
00034 import org.objectweb.cjdbc.console.text.commands.ConsoleCommand;
00035 import org.objectweb.cjdbc.console.text.module.AbstractConsoleModule;
00036
00037
00038
00039
00040
00041
00042
00043 public class AddDriver extends ConsoleCommand
00044 {
00045
00046
00047
00048
00049
00050
00051 public AddDriver(AbstractConsoleModule module)
00052 {
00053 super(module);
00054 }
00055
00056
00057
00058
00059 public void parse(String commandText) throws IOException, ConsoleException
00060 {
00061 String filename = null;
00062
00063 if (commandText == null || commandText.trim().equals(""))
00064 {
00065 try
00066 {
00067 filename = console.readLine(ConsoleTranslate
00068 .get("controller.command.adddriver.input.filename"));
00069 }
00070 catch (Exception che)
00071 {
00072 }
00073 }
00074 else
00075 filename = commandText.trim();
00076
00077 if (filename == null || filename.equals(""))
00078 throw new ConsoleException(ConsoleTranslate
00079 .get("controller.command.adddriver.null.filename"));
00080
00081 try
00082 {
00083
00084 jmxClient.getControllerProxy().addDriver(readDriver(filename));
00085 console.println(ConsoleTranslate.get(
00086 "controller.command.adddriver.file.sent", filename));
00087 }
00088 catch (FileNotFoundException fnf)
00089 {
00090 throw new ConsoleException(ConsoleTranslate.get(
00091 "controller.command.adddriver.file.not.found", filename));
00092 }
00093 catch (Exception ioe)
00094 {
00095 throw new ConsoleException(ConsoleTranslate.get(
00096 "controller.command.adddriver.sent.failed", ioe));
00097 }
00098 }
00099
00100 private byte[] readDriver(String filename) throws FileNotFoundException,
00101 IOException
00102 {
00103 File file;
00104 FileInputStream fileInput = null;
00105 file = new File(filename);
00106 fileInput = new FileInputStream(file);
00107
00108
00109 long size = file.length();
00110 if (size > Integer.MAX_VALUE)
00111 throw new IOException(ConsoleTranslate
00112 .get("controller.command.adddriver.file.too.big"));
00113 byte[] bytes = new byte[(int) size];
00114 int nb = fileInput.read(bytes);
00115 fileInput.close();
00116 if (nb != size)
00117 throw new IOException(ConsoleTranslate
00118 .get("controller.command.adddriver.file.not.read"));
00119 return bytes;
00120 }
00121
00122
00123
00124
00125 public String getCommandName()
00126 {
00127 return "addDriver";
00128 }
00129
00130
00131
00132
00133 public String getCommandDescription()
00134 {
00135 return ConsoleTranslate.get("controller.command.adddriver");
00136 }
00137
00138
00139
00140
00141 public String getCommandParameters()
00142 {
00143 return "<driverPathName>";
00144 }
00145
00146 }