View Javadoc
1 /* 2 3 Loader - tool for transfering data from one JDBC source to another and 4 doing transformations during copy. 5 6 Copyright (C) 2002 Together 7 8 This library is free software; you can redistribute it and/or 9 modify it under the terms of the GNU Lesser General Public 10 License as published by the Free Software Foundation; either 11 version 2.1 of the License, or (at your option) any later version. 12 13 This library is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 Lesser General Public License for more details. 17 18 You should have received a copy of the GNU Lesser General Public 19 License along with this library; if not, write to the Free Software 20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 22 LoaderTask.java 23 Date: 15.06.2002. 24 @version 1.0 25 @author: 26 Milosevic Sinisa sinisami@eunet.yu 27 Radeka Dusan diradeka@neobee.net 28 */ 29 30 package org.webdocwf.util.loader.task; 31 32 import java.io.BufferedReader; 33 import java.io.InputStreamReader; 34 35 import org.apache.tools.ant.BuildException; 36 import org.apache.tools.ant.Task; 37 38 /*** 39 * <p> 40 * Loader Task class extends jakarta-ant Task class and uses to start Loader 41 * application as a jakarta-ant task in build.xml file. 42 * </p> 43 * <p> 44 * Attributes of LoaderTask represents Loader parameters:<br> 45 * <br> 46 * loadJobFileName attribute - defines loader job<br> 47 * mode attribute - defines mode <br> 48 * restartIndicator attribute - defines restart <br> 49 * userID attribute - defines user ID <br> 50 * logDirName attribute - defines log directory <br> 51 * logFileName attribute - defines log file <br> 52 * vendorFileName attribute - defines vendor file <br> 53 * onErrorContinue attribute - defines continue or not on error<br> 54 * commitCount attribute - defines commit count<br> 55 * additionalPaths tag - defines single or group of additionalPath tags<br> 56 * additionalPath tag - defines tag with path attribute <br> 57 * pathToConfFile attribute - defines path to conf file in jar<br> 58 * variables tag - defines single or group of variable tags<br> 59 * variable tag - defines tag with path attribute <br> 60 * name attribute - defines variable name<br> 61 * value attribute - defines variable value<br> 62 * <br> 63 * </p> 64 **/ 65 public class LoaderTask extends Task { 66 private String loadJobFileName; 67 private String mode; 68 private String restartIndicator; 69 private String userID; 70 private String logDirName; 71 private String logFileName; 72 private String vendorFileName; 73 private String onErrorContinue; 74 private String commitCount; 75 private String tableNames; 76 private String additionalPaths; 77 private String additionalPath; 78 79 private String variables; 80 81 private String strLoaderExec = ""; 82 83 private String returnCode; 84 private String pathToConfFile; 85 86 private String JAVAEXE = "java"; 87 private final String LOADER = "org.webdocwf.util.loader.Loader"; 88 /*** 89 * The method executing the task 90 **/ 91 public void execute() throws BuildException { 92 93 try { 94 //find java.exe 95 String sep = System.getProperty("file.separator"); 96 JAVAEXE = System.getProperty("java.home") + sep + "bin" + sep + "java"; 97 98 if (this.loadJobFileName == null) { 99 throw (new BuildException("loadJobFileName attribute must be set! ", location)); 100 } else { 101 102 if (this.additionalPath != null) { 103 this.strLoaderExec += "-classpath " + this.additionalPath.substring(0, this.additionalPath.length() - 1) + " "; 104 } 105 106 this.strLoaderExec += LOADER + " "; 107 108 if (this.mode != null) { 109 if (this.mode.equalsIgnoreCase("none")) { 110 this.strLoaderExec += "-m none "; 111 } else if (this.mode.equalsIgnoreCase("normal")) { 112 this.strLoaderExec += "-m normal "; 113 } else if (this.mode.equalsIgnoreCase("full")) { 114 this.strLoaderExec += "-m full "; 115 } 116 } 117 if (this.restartIndicator != null && this.restartIndicator.equalsIgnoreCase("yes")) { 118 this.strLoaderExec += "-r "; 119 } 120 121 if (this.userID != null) { 122 this.strLoaderExec += "-u " + this.userID + " "; 123 } 124 125 if (this.variables != null) { 126 if (this.variables.endsWith(";")) 127 this.variables = this.variables.substring(0, this.variables.length() - 1); 128 this.strLoaderExec += "-v " + this.variables + " "; 129 } 130 131 if (this.logDirName != null) { 132 this.strLoaderExec += "-l " + this.logDirName + " "; 133 } 134 135 if (this.logFileName != null) { 136 this.strLoaderExec += "-f " + this.logFileName + " "; 137 } 138 139 if (this.vendorFileName != null) { 140 this.strLoaderExec += "-d " + this.vendorFileName + " "; 141 } 142 143 if (this.onErrorContinue != null && this.onErrorContinue.equalsIgnoreCase("true")) { 144 this.strLoaderExec += "-e "; 145 } 146 147 if (this.commitCount != null) { 148 this.strLoaderExec += "-c " + this.commitCount + " "; 149 } 150 if (this.returnCode != null) { 151 this.strLoaderExec += "-rc " + this.returnCode + " "; 152 } 153 if (this.pathToConfFile != null) { 154 this.strLoaderExec += "-cjs " + this.pathToConfFile + " "; 155 } 156 if (this.tableNames != null) { 157 if (this.tableNames.endsWith(";")) 158 this.tableNames = this.tableNames.substring(0, this.tableNames.length() - 1); 159 this.strLoaderExec += "-it " + this.tableNames + " "; 160 } 161 162 163 this.strLoaderExec += this.loadJobFileName; 164 165 String command = JAVAEXE + " " + this.strLoaderExec; 166 Process process = Runtime.getRuntime().exec(command); 167 java.io.InputStream inputstream = process.getInputStream(); 168 BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(inputstream)); 169 java.io.InputStream inputstream1 = process.getErrorStream(); 170 BufferedReader bufferedreader1 = new BufferedReader(new InputStreamReader(inputstream1)); 171 (new ErrorReader(bufferedreader1)).start(); 172 String s1; 173 while ((s1 = bufferedreader.readLine()) != null) { 174 System.out.println(s1); 175 176 } 177 int k = process.waitFor(); 178 if (k != 0) 179 throw (new BuildException("Loader: Error occured!", location)); 180 } 181 } catch (Throwable le) { 182 System.out.println(le); 183 } 184 185 } 186 187 /*** 188 * The setter for the "loadJob" attribute 189 **/ 190 public void setLoadJob(String msg) { 191 this.loadJobFileName = msg; 192 } 193 194 /*** 195 * The setter for the "mode" attribute 196 **/ 197 public void setMode(String msg) { 198 this.mode = msg; 199 } 200 201 /*** 202 * The setter for the "userID" attribute 203 **/ 204 public void setUserID(String msg) { 205 this.userID = msg; 206 } 207 208 /*** 209 * The setter for the "logDir" attribute 210 **/ 211 public void setLogDir(String msg) { 212 this.logDirName = msg; 213 } 214 215 /*** 216 * The setter for the "logFile" attribute 217 **/ 218 public void setLogFile(String msg) { 219 this.logFileName = msg; 220 } 221 222 /*** 223 * The setter for the "restartIndicator" attribute 224 **/ 225 public void setRestartIndicator(String msg) { 226 this.restartIndicator = msg; 227 } 228 229 /*** 230 * The setter for the "vendorFile" attribute 231 **/ 232 public void setVendorFile(String msg) { 233 this.vendorFileName = msg; 234 } 235 236 /*** 237 * The setter for the "onErrorContinue" attribute 238 **/ 239 public void setOnErrorContinue(String msg) { 240 this.onErrorContinue = msg; 241 } 242 243 /*** 244 * The setter for the "commitCount" attribute 245 **/ 246 public void setCommitCount(String msg) { 247 this.commitCount = msg; 248 } 249 250 /*** 251 * The setter for the "returnCode" attribute 252 **/ 253 public void setReturnCode(String rc) { 254 this.returnCode = rc; 255 } 256 257 /*** 258 * The setter for the "AdditionalPaths" tag 259 **/ 260 public void addConfiguredAdditionalPaths(AdditionalPaths anInner) { 261 this.additionalPath = anInner.additionalPaths.substring(0, anInner.additionalPaths.indexOf("null")) + anInner.additionalPaths.substring(anInner.additionalPaths.indexOf("null") + 4, anInner.additionalPaths.length()); 262 } 263 264 /*** 265 * The setter for the "Variables" tag 266 **/ 267 public void addConfiguredVariables(Variables anInner) { 268 this.variables = anInner.variables.substring(0, anInner.variables.indexOf("null")) + anInner.variables.substring(anInner.variables.indexOf("null") + 4, anInner.variables.length()); 269 } 270 271 /*** 272 * The setter for the "pathToConfFile" attribute 273 */ 274 public void setPathToConfFile(String string) { 275 this.pathToConfFile = string; 276 } 277 278 /*** 279 * The setter for the "tableNames" attribute 280 */ 281 public void setTableNames(String string) { 282 this.tableNames = string; 283 } 284 285 }

This page was automatically generated by Maven