source: greenstone3/trunk/src/java/org/greenstone/admin/gui/ExtensionInstallation.java@ 18119

Last change on this file since 18119 was 18119, checked in by cc108, 15 years ago

This class is used to run ant script and compile source code

File size: 3.2 KB
Line 
1package org.greenstone.admin.gui;
2
3import java.awt.BorderLayout;
4import java.awt.Color;
5import java.awt.Component;
6import java.awt.Dimension;
7import java.awt.GridLayout;
8
9import java.awt.event.ActionEvent;
10import java.awt.event.ActionListener;
11import java.awt.event.ItemEvent;
12import java.awt.event.ItemListener;
13import java.io.BufferedReader;
14import java.io.BufferedWriter;
15import java.io.File;
16import java.io.FileInputStream;
17import java.io.FileOutputStream;
18import java.io.IOException;
19import java.io.InputStreamReader;
20import java.io.OutputStreamWriter;
21import java.io.Writer;
22
23import javax.swing.*;
24import javax.xml.parsers.DocumentBuilder;
25import javax.xml.parsers.DocumentBuilderFactory;
26import javax.xml.transform.OutputKeys;
27import javax.xml.transform.Transformer;
28import javax.xml.transform.TransformerFactory;
29import javax.xml.transform.dom.DOMSource;
30import javax.xml.transform.stream.StreamResult;
31
32//import org.apache.tools.ant.Project;
33//import org.apache.tools.ant.ProjectHelper;
34import org.greenstone.gsdl3.util.GSPath;
35import org.greenstone.gsdl3.util.GlobalProperties;
36
37import org.tmatesoft.svn.examples.wc.WorkingCopy;
38import org.w3c.dom.Document;
39import org.w3c.dom.Element;
40import org.w3c.dom.Node;
41import org.w3c.dom.NodeList;
42import org.w3c.dom.Text;
43
44import java.text.SimpleDateFormat;
45import java.util.ArrayList;
46import java.util.Calendar;
47import java.util.Iterator;
48import java.util.Properties;
49import java.util.Set;
50
51
52class ExtensionInstallation extends Thread {
53
54 Mat adaptee;
55
56 public ExtensionInstallation (Mat m){
57 adaptee = m;
58 }
59
60 public void run() {
61 try{
62
63 String gsdl3Home = adaptee.get_GSDL3HOME();
64 String fileSeparator = File.separator;
65
66 File wd = new File(adaptee.extension_path);
67 Process proc = null;
68
69 try {
70
71 if(adaptee.os_type.toLowerCase().contains("windows")){
72 String[] arrays = {"ant.bat", "compile"};
73 proc = Runtime.getRuntime().exec(arrays, null, wd);
74 }
75
76 else{
77 proc = Runtime.getRuntime().exec("ant compile", null, wd);
78 }
79
80 BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
81 BufferedReader errInput = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
82 String s= "";
83
84 ExtPane.message_textarea.setText("");
85
86 while ((s = stdInput.readLine()) != null) {
87 ExtPane.message_textarea.append(s+"\n");
88 ExtPane.message_textarea.setSelectionEnd(ExtPane.message_textarea.getDocument().getLength());
89 }
90
91 while ((s = errInput.readLine()) != null) {
92 System.out.println(s);
93 }
94
95 ExtPane.message_textarea.append(adaptee.InstallCompleteMsg+"\n");
96
97 Calendar cl;
98 SimpleDateFormat sdf;
99 cl=Calendar.getInstance();
100 sdf = new SimpleDateFormat("dd/MMM/yyyy 'at' HH:mm:ss z 'GMT'Z");
101 String timestamp = sdf.format(cl.getTime());
102
103 ExtPane.message_textarea.append(timestamp);
104 proc.waitFor();
105
106 JOptionPane.showMessageDialog(new JFrame(),adaptee.InstallCompleteMsg);
107 ExtPane.updateExtensionContentPane();
108
109 } catch (Exception e) {
110 JOptionPane.showMessageDialog(new JFrame(),adaptee.InstallErrorMsg);
111 }
112
113 }catch(Exception ex){
114 ex.printStackTrace();
115 }
116 }
117}
Note: See TracBrowser for help on using the repository browser.