1 22 package org.enhydra.kelp.jbuilder.build; 23 24 import com.borland.primetime.build.BuildTask; 25 import com.borland.primetime.build.BuildProcess; 26 import com.borland.primetime.node.Project; 27 import com.borland.primetime.node.TextFileNode; 28 import com.borland.jbuilder.node.JBProject; 29 30 import java.util.Vector; 31 import java.util.ResourceBundle; 32 import java.io.File; 33 import org.enhydra.kelp.ant.node.AntProject; 34 import java.io.*; 35 36 import org.apache.tools.ant.BuildException; 37 38 42 public class DODSBuildTask 43 extends BuildTask { 44 45 public static final String SHARED_KEY = new String("DODS_TASK"); 46 private BuildProcess buildProcess; 47 48 52 public DODSBuildTask() {} 53 54 57 public boolean build(BuildProcess buildProcess) { 58 this.buildProcess = buildProcess; 59 String prjPath = buildProcess.getProject().getProjectPath().getFullName(); 60 try { 61 AntProject antProject = new AntProject(prjPath); 62 buildProcess.fireBuildStatus("DODS Generating...", true); 63 String enhydraDir = antProject.getProperty(AntProject.ENHYDRA_DIR); 64 String execLine = enhydraDir + "/bin/ant"; 65 if (System.getProperty("os.name").toLowerCase().startsWith("windows")) { 66 execLine += ".bat"; 67 } 68 Process process = Runtime.getRuntime().exec(execLine + " dods", null, 69 new File(prjPath)); 70 InputStream inputStream = process.getInputStream(); 71 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader( 72 inputStream)); 73 InputStream errorStream = process.getErrorStream(); 74 BufferedReader errorBufferedReader = new BufferedReader(new 75 InputStreamReader(errorStream)); 76 File logFile = null; 77 FileWriter logFileWriter = null; 78 BufferedWriter logBuffer = null; 79 PrintWriter logPrint = null; 80 81 String s = null; 82 String er = null; 83 96 (new ErrorReader(errorBufferedReader)).start(); 97 Thread er1 = new Thread(); 98 while ( (s = bufferedReader.readLine()) != null) { 99 System.out.println(s); 100 } 101 int k = process.waitFor(); 102 if (k != 0) 103 throw (new BuildException("Loader: Error occured!")); 104 105 process.destroy(); 107 } 108 catch (Exception ex) { 109 ex.printStackTrace(); 110 return false; 111 } 112 113 return true; 114 } 115 class ErrorReader extends Thread { 116 117 BufferedReader er; 118 119 public ErrorReader(BufferedReader bufferedreader) { 120 er = bufferedreader; 121 } 123 124 public void run() { 125 try { 126 for (; !er.ready(); Thread.sleep(100L)) {} 127 String s; 128 while ( (s = er.readLine()) != null) { 129 System.out.println(s); 130 } 131 } 132 catch (Exception exception) { 133 134 } 135 } 136 } 137 138 } | Popular Tags |