1
16package org.tp23.antinstaller;
17
18import java.io.File;
19import java.io.IOException;
20import java.io.PrintStream;
21import java.util.Enumeration;
22import java.util.Iterator;
23import java.util.Properties;
24import java.util.Vector;
25
26import org.apache.tools.ant.BuildListener;
27import org.apache.tools.ant.taskdefs.Execute;
28import org.tp23.antinstaller.page.Page;
29import org.tp23.antinstaller.renderer.AILanguagePack;
30import org.tp23.antinstaller.renderer.AIResourceBundle;
31import org.tp23.antinstaller.renderer.AntOutputRenderer;
32import org.tp23.antinstaller.renderer.MessageRenderer;
33import org.tp23.antinstaller.runtime.Logger;
34import org.tp23.antinstaller.runtime.LoggingAntOutputRenderer;
35import org.tp23.antinstaller.runtime.Runner;
36import org.tp23.antinstaller.runtime.exe.AntLauncherFilter;
37import org.tp23.antinstaller.runtime.exe.LoadConfigFilter;
38
46public class InstallerContext {
47
48 private static final AILanguagePack langPack = new AILanguagePack();
49
54 public static final String ENV_PREFIX = "env.";
55
59 public static final String JAVA_PREFIX = "java.";
60
61 private Logger logger = null;
62 private Installer installer = null;
63 private MessageRenderer messageRenderer = null;
64 private AntOutputRenderer antOutputRenderer = null;
65 private Runner runner = null;
66 private Page currentPage = null;
67 private java.io.File fileRoot = null; private BuildListener buildListener = null;
69 private AntLauncherFilter antRunner = null;
70 private String uIOverride = null;
71 private String installerConfigFile = LoadConfigFilter.INSTALLER_CONFIG_FILE;
72 private String antBuildFile = "build.xml";
73 private String configResource;
74 private Object userObject;
75
76 private boolean gui;
77
78
79 private boolean installedSucceded = false;
81
82 public InstallerContext() {
83 logger = new Logger() {
86 public void log(String message) {
87 }
88 public void log(Throwable exception) {
89 }
90 public void log(Installer installer, Throwable exception) {
91 }
92 public void setFileName(String fileName) throws IOException {
93 }
94 public String getFileName() {
95 return null;
96 }
97 public void close() {
98 }
99 public void loge(int b) {
00 }
01 public void loge(String b) {
02 }
03 };
04 antOutputRenderer = new AntOutputRenderer() {
05 public PrintStream getOut() {
06 return System.out;
07 }
08 public PrintStream getErr() {
09 return System.err;
10 }
11 };
12 }
13
14 public void setInstallSucceded(boolean installedSucceded){
15 this.installedSucceded=installedSucceded;
16 }
17 public boolean isInstallSucceded(){
18 return installedSucceded;
19 }
20
21 public void log(String message){
22 if(logger != null) {
23 logger.log(message);
24 }
25 }
26 public void log(Throwable message){
27 if(logger != null) {
28 logger.log(message);
29 }
30 }
31 public void loge(int b) {
32 if(logger != null) {
33 logger.loge(b);
34 }
35 }
36 public void loge(String b) {
37 if(logger != null) {
38 logger.loge(b);
39 }
40 }
41 public void log(boolean vebose, Throwable message){
42 if(vebose && logger != null) {
43 logger.log(message);
44 }
45 }
46
47
53 public static boolean isUnix(){
54 return System.getProperty("os.name").toLowerCase().indexOf("windows") == -1;
55 }
56
57
62 public static Properties getEnvironment(){
63 Properties props = new Properties();
64 try {
65 Vector osEnv = Execute.getProcEnvironment();
66 for (Enumeration e = osEnv.elements(); e.hasMoreElements(); ) {
67 String entry = (String) e.nextElement();
68 int pos = entry.indexOf('=');
69 if (pos != -1) {
70 props.put(ENV_PREFIX + entry.substring(0, pos),
71 entry.substring(pos + 1));
72 }
73 }
74 }
75 catch (Exception ex) {
76 System.out.println("Can't load environment:"+ex.getClass()+","+ex.getMessage());
80 }
81 Properties javaSysProps = System.getProperties();
82 Iterator iter = javaSysProps.keySet().iterator();
83 while (iter.hasNext()) {
84 Object key = (Object)iter.next();
85 props.put(JAVA_PREFIX+key.toString(),javaSysProps.get(key));
86 }
87 return props;
88 }
89
90 public Installer getInstaller() {
92 return installer;
93 }
94
95 public String getMinJavaVersion() {
96 return installer.getMinJavaVersion();
97 }
98
99 public MessageRenderer getMessageRenderer() {
00 return messageRenderer;
01 }
02
03 public void setMessageRenderer(MessageRenderer messageRenderer) {
04 this.messageRenderer = messageRenderer;
05 this.messageRenderer.setInstallerContext(this);
06 }
07
08 public AntOutputRenderer getAntOutputRenderer() {
09 return antOutputRenderer;
10 }
11
12 public void setAntOutputRenderer(AntOutputRenderer antOutputRenderer) {
13 if(installer.isDebug()){
14 this.antOutputRenderer = new LoggingAntOutputRenderer(antOutputRenderer.getOut(),
15 antOutputRenderer.getErr(), this);
16 }
17 else {
18 this.antOutputRenderer = antOutputRenderer;
19 }
20 }
21
22 public Page getCurrentPage() {
23 return currentPage;
24 }
25
26 public void setCurrentPage(Page currentPage) {
27 this.currentPage = currentPage;
28 }
29
35 public File getFileRoot() {
36 return fileRoot;
37 }
38
39 public void setFileRoot(File fileRoot) {
40 this.fileRoot = fileRoot;
41 }
42
43 public org.apache.tools.ant.BuildListener getBuildListener() {
44 return buildListener;
45 }
46
47 public void setBuildListener(org.apache.tools.ant.BuildListener buildListener) {
48 this.buildListener = buildListener;
49 }
50
51 public AntLauncherFilter getAntRunner() {
52 return antRunner;
53 }
54
55 public void setAntRunner(AntLauncherFilter antRunner) {
56 this.antRunner = antRunner;
57 }
58
59 public Logger getLogger() {
60 return logger;
61 }
62
63 public void setLogger(Logger logger) {
64 this.logger = logger;
65 }
66
67 public Runner getRunner() {
68 return runner;
69 }
70
71 public void setRunner(Runner runner) {
72 this.runner = runner;
73 }
74
75 public void setInstaller(Installer installer) {
76 this.installer = installer;
77 }
78
79 public String getUIOverride() {
80 return uIOverride;
81 }
82
83 public void setUIOverride(String override) {
84 uIOverride = override;
85 }
86
87 public boolean isAutoBuild(){
88 return uIOverride != null && uIOverride.indexOf("-auto") > -1;
89 }
90
91
95 public String getInstallerConfigFile() {
96 return installerConfigFile;
97 }
98
99 public void setInstallerConfigFile(String installerConfigFile) {
00 this.installerConfigFile = installerConfigFile;
01 }
02
07 public String getAntBuildFile() {
08 return antBuildFile;
09 }
10
11 public void setAntBuildFile(String antBuildFile) {
12 this.antBuildFile = antBuildFile;
13 }
14
15 public String getConfigResource() {
16 return configResource;
17 }
18
19 public void setConfigResource(String configResource) {
20 this.configResource = configResource;
21 }
22
23 public boolean isGui() {
24 return gui;
25 }
26
27 public void setGui(boolean gui) {
28 this.gui = gui;
29 }
30
31
35 public static void reInitLocale() {
36 try {
38 AIResourceBundle.reInitLocale();
39 AILanguagePack.reInitLocale();
40 } catch (Exception e) {
41 }
43 }
44
45
48 public Object getUserObject() {
49 return userObject;
50 }
51
52
55 public void setUserObject(Object userObject) {
56 this.userObject = userObject;
57 }
58
59
60}
61
62
63
64