1 31 32 package org.opencms.setup; 33 34 import org.opencms.main.CmsLog; 35 import org.opencms.main.CmsShell; 36 37 import java.io.File ; 38 import java.io.FileInputStream ; 39 import java.io.FileNotFoundException ; 40 import java.io.PipedOutputStream ; 41 import java.io.PrintStream ; 42 43 52 public class CmsSetupWorkplaceImportThread extends Thread { 53 54 55 public static PrintStream m_tempErr; 56 57 58 private CmsSetupLoggingThread m_loggingThread; 59 60 61 private PipedOutputStream m_pipedOut; 62 63 64 private CmsSetupBean m_setupBean; 65 66 67 private CmsShell m_shell; 68 69 70 private PrintStream m_tempOut; 71 72 73 private boolean m_workplaceImportNeeded; 74 75 80 public CmsSetupWorkplaceImportThread(CmsSetupBean setupBean) { 81 82 super("OpenCms: Setup workplace import"); 83 84 m_setupBean = setupBean; 86 m_pipedOut = new PipedOutputStream (); 88 m_loggingThread = new CmsSetupLoggingThread(m_pipedOut, m_setupBean.getLogName()); 89 m_workplaceImportNeeded = !setupBean.getModulesToInstall().isEmpty(); 90 } 91 92 97 public CmsSetupLoggingThread getLoggingThread() { 98 99 return m_loggingThread; 100 } 101 102 107 public boolean isFinished() { 108 109 return m_loggingThread.isFinished(); 110 } 111 112 115 public void kill() { 116 117 if (m_shell != null) { 118 m_shell.exit(); 119 } 120 if (m_loggingThread != null) { 121 m_loggingThread.stopThread(); 122 } 123 m_shell = null; 124 m_setupBean = null; 125 } 126 127 132 public void printToStdOut(String str) { 133 134 m_tempOut.println(str); 135 } 136 137 140 public void run() { 141 142 m_tempOut = System.out; 144 m_tempErr = System.err; 145 try { 146 System.setOut(new PrintStream (m_pipedOut)); 148 System.setErr(new PrintStream (m_pipedOut)); 149 150 m_loggingThread.start(); 152 153 if (m_workplaceImportNeeded) { 154 m_shell = new CmsShell( 156 m_setupBean.getWebAppRfsPath() + "WEB-INF" + File.separator, 157 m_setupBean.getServletMapping(), 158 m_setupBean.getDefaultWebApplication(), 159 "${user}@${project}>", 160 m_setupBean); 161 } 162 163 try { 164 try { 165 if (CmsLog.INIT.isInfoEnabled()) { 166 CmsLog.INIT.info(org.opencms.main.Messages.get().getBundle().key( 169 org.opencms.main.Messages.INIT_DOT_0)); 170 CmsLog.INIT.info(org.opencms.main.Messages.get().getBundle().key( 171 org.opencms.main.Messages.INIT_DOT_0)); 172 CmsLog.INIT.info(org.opencms.main.Messages.get().getBundle().key( 173 org.opencms.main.Messages.INIT_DOT_0)); 174 CmsLog.INIT.info(org.opencms.setup.Messages.get().getBundle().key( 175 org.opencms.setup.Messages.INIT_WELCOME_SETUP_0)); 176 CmsLog.INIT.info(org.opencms.setup.Messages.get().getBundle().key( 177 org.opencms.setup.Messages.INIT_IMPORT_WORKPLACE_START_0)); 178 CmsLog.INIT.info(org.opencms.main.Messages.get().getBundle().key( 179 org.opencms.main.Messages.INIT_DOT_0)); 180 CmsLog.INIT.info(org.opencms.main.Messages.get().getBundle().key( 181 org.opencms.main.Messages.INIT_DOT_0)); 182 for (int i = 0; i < org.opencms.main.Messages.COPYRIGHT_BY_ALKACON.length; i++) { 183 CmsLog.INIT.info(". " + org.opencms.main.Messages.COPYRIGHT_BY_ALKACON[i]); 184 } 185 CmsLog.INIT.info(org.opencms.main.Messages.get().getBundle().key( 186 org.opencms.main.Messages.INIT_DOT_0)); 187 CmsLog.INIT.info(org.opencms.main.Messages.get().getBundle().key( 188 org.opencms.main.Messages.INIT_DOT_0)); 189 CmsLog.INIT.info(org.opencms.main.Messages.get().getBundle().key( 190 org.opencms.main.Messages.INIT_LINE_0)); 191 192 } 193 if (m_workplaceImportNeeded) { 194 m_shell.start(new FileInputStream (new File (m_setupBean.getWebAppRfsPath() 195 + CmsSetupDb.SETUP_DATA_FOLDER 196 + "cmssetup.txt"))); 197 } else { 198 System.out.println(org.opencms.setup.Messages.get().getBundle().key( 199 org.opencms.setup.Messages.INIT_NO_WORKPLACE_IMPORT_NEEDED_0)); 200 } 201 if (CmsLog.INIT.isInfoEnabled()) { 202 CmsLog.INIT.info(org.opencms.setup.Messages.get().getBundle().key( 203 org.opencms.setup.Messages.INIT_IMPORT_WORKPLACE_FINISHED_0)); 204 } 205 } catch (FileNotFoundException e) { 206 e.printStackTrace(); 207 } 208 kill(); 210 m_pipedOut.close(); 211 } catch (Throwable t) { 212 } 214 } finally { 215 System.setOut(m_tempOut); 217 System.setErr(m_tempErr); 218 } 219 } 220 } | Popular Tags |