Révision 1649
| tmp/org.txm.core/src/java/org/txm/core/engines/EnginesManager.java (revision 1649) | ||
|---|---|---|
| 5 | 5 |
import org.eclipse.core.runtime.IConfigurationElement; |
| 6 | 6 |
import org.eclipse.core.runtime.IProgressMonitor; |
| 7 | 7 |
import org.eclipse.core.runtime.RegistryFactory; |
| 8 |
import org.txm.utils.LogMonitor; |
|
| 8 | 9 |
import org.txm.utils.logger.Log; |
| 9 | 10 |
|
| 10 | 11 |
/** |
| ... | ... | |
| 146 | 147 |
* @return |
| 147 | 148 |
*/ |
| 148 | 149 |
public boolean restartEngines() {
|
| 150 |
|
|
| 149 | 151 |
Log.finest("Restarting " + this.size() + " " + this.getEnginesDescription() + " engine(s)."); //$NON-NLS-1$
|
| 150 |
return stopEngines() && startEngines(null); |
|
| 152 |
|
|
| 153 |
for (Engine engine : this.values()) {
|
|
| 154 |
try {
|
|
| 155 |
if (engine.isRunning()) {
|
|
| 156 |
Log.fine("Stopping " + this.getEnginesDescription() + " engine: " + engine.getName() + "..."); //$NON-NLS-1$
|
|
| 157 |
engine.stop(); |
|
| 158 |
} |
|
| 159 |
if (!engine.isRunning()) {
|
|
| 160 |
Log.fine("Starting " + this.getEnginesDescription() + " engine: " + engine.getName() + "..."); //$NON-NLS-1$
|
|
| 161 |
engine.start(new LogMonitor()); |
|
| 162 |
} |
|
| 163 |
} catch (Exception e) {
|
|
| 164 |
Log.severe("Error: failed to stop engine " + engine.getName() + ".");
|
|
| 165 |
e.printStackTrace(); |
|
| 166 |
} |
|
| 167 |
} |
|
| 168 |
return true; |
|
| 151 | 169 |
} |
| 152 | 170 |
|
| 153 | 171 |
/** |
| tmp/org.txm.utils/src/org/txm/utils/StreamHog.java (revision 1649) | ||
|---|---|---|
| 34 | 34 |
|
| 35 | 35 |
import org.txm.utils.logger.Log; |
| 36 | 36 |
|
| 37 |
// TODO: Auto-generated Javadoc |
|
| 38 | 37 |
/** |
| 39 | 38 |
* The Class StreamHog. |
| 40 | 39 |
* |
| ... | ... | |
| 102 | 101 |
printMessage(line); |
| 103 | 102 |
Log.fine(this.getName()+">" + line); //$NON-NLS-1$ |
| 104 | 103 |
lastline = line; |
| 105 |
|
|
| 106 | 104 |
} |
| 107 | 105 |
} catch (Throwable e) {
|
| 108 | 106 |
Log.fine("ERROR: broken process logging : "+e);
|
| tmp/org.txm.setups/shared/win/txm.nsi (revision 1649) | ||
|---|---|---|
| 267 | 267 |
|
| 268 | 268 |
CreateDirectory "$SMPROGRAMS\TXM${Version}"
|
| 269 | 269 |
|
| 270 |
;CreateShortCut "$SMPROGRAMS\TXM${Version}\TXM.lnk" "$INSTDIR\TXM.bat" "$INSTDIR\TXM.ico"
|
|
| 271 | 270 |
CreateShortCut "$SMPROGRAMS\TXM${Version}\TXM.lnk" "$INSTDIR\TXM.bat" "" "$INSTDIR\TXM.ico" 0
|
| 272 |
CreateShortCut "$SMPROGRAMS\TXM${Version}\TXM.lnk" "$INSTDIR\TXM debug.bat" "" "$INSTDIR\TXM.ico" 0
|
|
| 273 |
|
|
| 271 |
CreateShortCut "$SMPROGRAMS\TXM${Version}\TXM debug.lnk" "$INSTDIR\TXM debug.bat" "" "$INSTDIR\TXM.ico" 0
|
|
| 274 | 272 |
CreateShortCut "$SMPROGRAMS\TXM${Version}\uninstall.lnk" "$INSTDIR\uninstall.exe"
|
| 275 |
|
|
| 276 | 273 |
#CreateShortCut "$SMPROGRAMS\TXM${Version}\Manuel utilisateur FR.pdf.lnk" "$INSTDIR\doc\Manuel de TXM 0.7 FR.pdf"
|
| 277 |
|
|
| 278 | 274 |
#CreateShortCut "$SMPROGRAMS\TXM${Version}\User Manual EN.pdf.lnk" "$INSTDIR\doc\TXM 0.7 Manual EN.pdf"
|
| 279 | 275 |
|
| 280 | 276 |
|
| ... | ... | |
| 511 | 507 |
|
| 512 | 508 |
RMDir /r $INSTDIR |
| 513 | 509 |
|
| 514 |
# second, remove the link from the start menu |
|
| 515 |
;Delete "$SMPROGRAMS\TXM${Version}\uninstall.lnk"
|
|
| 516 |
|
|
| 517 | 510 |
RMDir /r "$SMPROGRAMS\TXM${Version}"
|
| 518 | 511 |
|
| 519 | 512 |
SectionEnd |
| tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java (revision 1649) | ||
|---|---|---|
| 29 | 29 |
import org.txm.utils.logger.Log; |
| 30 | 30 |
|
| 31 | 31 |
public class CQPSearchEngine extends SearchEngine {
|
| 32 |
|
|
| 32 |
|
|
| 33 | 33 |
public static final String NAME = "CQP"; |
| 34 |
|
|
| 34 |
|
|
| 35 | 35 |
/** |
| 36 | 36 |
* initialization state |
| 37 | 37 |
*/ |
| 38 | 38 |
boolean state = false; |
| 39 | 39 |
boolean useNetCQi = false; |
| 40 |
|
|
| 40 |
|
|
| 41 | 41 |
/** |
| 42 | 42 |
* list of CQP loaded/computed corpus |
| 43 | 43 |
*/ |
| ... | ... | |
| 56 | 56 |
@Override |
| 57 | 57 |
public boolean start(IProgressMonitor monitor) throws Exception {
|
| 58 | 58 |
|
| 59 |
boolean cqiserverok = false; |
|
| 60 |
|
|
| 59 | 61 |
if (monitor != null) {
|
| 60 | 62 |
monitor.subTask("Starting Corpus Engine...");
|
| 61 | 63 |
} |
| 62 |
|
|
| 64 |
|
|
| 63 | 65 |
CorpusManager.cleanCorpora();// to be sure to call cqpserver |
| 64 | 66 |
|
| 65 |
boolean cqiserverok = false; |
|
| 66 |
|
|
| 67 | 67 |
useNetCQi = CQPLibPreferences.getInstance().getBoolean(CQPLibPreferences.CQI_NETWORK_MODE); |
| 68 | 68 |
|
| 69 | 69 |
Log.fine("Killing CQP processes if any...");
|
| ... | ... | |
| 84 | 84 |
if (!binDir.isDirectory()) continue; |
| 85 | 85 |
if (binDir.getName().startsWith(".")) continue;
|
| 86 | 86 |
if (binDir.getName().startsWith("~")) continue;
|
| 87 |
|
|
| 87 |
|
|
| 88 | 88 |
File registryDir = new File(binDir, "registry"); |
| 89 | 89 |
if (!registryDir.isDirectory()) continue; |
| 90 |
|
|
| 90 |
|
|
| 91 | 91 |
File[] files = registryDir.listFiles(IOUtils.HIDDENFILE_FILTER); |
| 92 | 92 |
if (files != null && files.length > 0) {
|
| 93 | 93 |
reg_path += path_separator + registryDir.getAbsolutePath(); |
| ... | ... | |
| 116 | 116 |
init_path = null; |
| 117 | 117 |
} |
| 118 | 118 |
|
| 119 |
|
|
| 120 |
|
|
| 119 | 121 |
if (!remote) {
|
| 120 | 122 |
|
| 121 | 123 |
if (!useNetCQi) {
|
| ... | ... | |
| 136 | 138 |
if (exec_path == null || exec_path.length() == 0 || new File(exec_path).exists()) {
|
| 137 | 139 |
Log.severe(TXMCoreMessages.bind("Error: the '{0}' preference is not set.", CQPLibPreferences.CQI_SERVER_PATH_TO_EXECUTABLE));
|
| 138 | 140 |
} |
| 139 |
// if (new File(exec_path).exists()) {
|
|
| 140 |
// System.out.println("Error: the '"+CQPLibPreferences.CQI_SERVER_PATH_TO_EXECUTABLE+"' preference is not set.");
|
|
| 141 |
// } |
|
| 141 |
// if (new File(exec_path).exists()) {
|
|
| 142 |
// System.out.println("Error: the '"+CQPLibPreferences.CQI_SERVER_PATH_TO_EXECUTABLE+"' preference is not set.");
|
|
| 143 |
// }
|
|
| 142 | 144 |
|
| 143 | 145 |
cqiServer = new NetCqiServer(exec_path, |
| 144 | 146 |
reg_path, |
| ... | ... | |
| 231 | 233 |
return false; |
| 232 | 234 |
} |
| 233 | 235 |
|
| 234 |
//// initialize pre-configured subcorpus and partition of corpus registered in the default.xml workspace file |
|
| 235 |
// System.out.print(TXMCoreMessages.Toolbox_workspace_init); |
|
| 236 |
// for (Project b : Toolbox.workspace.getProjects()) {
|
|
| 237 |
// |
|
| 238 |
// Log.info("Loading CQP corpora of " + b.getName() + " corpus...");
|
|
| 239 |
// |
|
| 240 |
// if (!loadCQPCorpora(b, monitor)) {
|
|
| 241 |
// Log.severe("Failed to load CQP corpora of " + b.getName() + " corpus.");
|
|
| 242 |
// } |
|
| 243 |
// } |
|
| 244 |
|
|
| 236 |
//// initialize pre-configured subcorpus and partition of corpus registered in the default.xml workspace file
|
|
| 237 |
// System.out.print(TXMCoreMessages.Toolbox_workspace_init);
|
|
| 238 |
// for (Project b : Toolbox.workspace.getProjects()) {
|
|
| 239 |
//
|
|
| 240 |
// Log.info("Loading CQP corpora of " + b.getName() + " corpus...");
|
|
| 241 |
//
|
|
| 242 |
// if (!loadCQPCorpora(b, monitor)) {
|
|
| 243 |
// Log.severe("Failed to load CQP corpora of " + b.getName() + " corpus.");
|
|
| 244 |
// }
|
|
| 245 |
// }
|
|
| 246 |
|
|
| 245 | 247 |
Log.fine(TXMCoreMessages.common_done); |
| 246 | 248 |
|
| 247 | 249 |
return state; |
| 248 | 250 |
} |
| 249 | 251 |
|
| 250 |
// public boolean loadCQPCorpora(Project base, IProgressMonitor monitor) {
|
|
| 251 |
// //System.out.println("Load corpus from params: "+params.corpora);
|
|
| 252 |
// for (String corpusname : base.getProjectParameters().corpora.keySet()) {
|
|
| 253 |
// Element c = base.getProjectParameters().corpora.get(corpusname); |
|
| 254 |
// try {
|
|
| 255 |
// MainCorpus corp = CorpusManager.getCorpusManager().getCorpus(corpusname); |
|
| 256 |
// if (monitor != null) {
|
|
| 257 |
// monitor.subTask("Loading " + corp + " subcorpora and partitions of corpus " + corpusname + "...");
|
|
| 258 |
// } |
|
| 259 |
// corp.setSelfElement(c); |
|
| 260 |
// corp.setParent(base); |
|
| 261 |
// corp.load(); // don't load corpus right now, wait for the search engine to be ready |
|
| 262 |
// base.addChild(corp); |
|
| 263 |
// if (!corp.getMetadatas().containsKey("lang")) { //$NON-NLS-1$
|
|
| 264 |
// corp.setAttribute("lang", c.getAttribute("lang")); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 265 |
// } |
|
| 266 |
// } catch (Exception e) {
|
|
| 267 |
// System.out.println(e.getLocalizedMessage()); |
|
| 268 |
// org.txm.utils.logger.Log.printStackTrace(e); |
|
| 269 |
// return false; |
|
| 270 |
// } |
|
| 271 |
// } |
|
| 272 |
// return true; |
|
| 273 |
// } |
|
| 252 |
// public boolean loadCQPCorpora(Project base, IProgressMonitor monitor) {
|
|
| 253 |
// //System.out.println("Load corpus from params: "+params.corpora);
|
|
| 254 |
// for (String corpusname : base.getProjectParameters().corpora.keySet()) {
|
|
| 255 |
// Element c = base.getProjectParameters().corpora.get(corpusname);
|
|
| 256 |
// try {
|
|
| 257 |
// MainCorpus corp = CorpusManager.getCorpusManager().getCorpus(corpusname);
|
|
| 258 |
// if (monitor != null) {
|
|
| 259 |
// monitor.subTask("Loading " + corp + " subcorpora and partitions of corpus " + corpusname + "...");
|
|
| 260 |
// }
|
|
| 261 |
// corp.setSelfElement(c);
|
|
| 262 |
// corp.setParent(base);
|
|
| 263 |
// corp.load(); // don't load corpus right now, wait for the search engine to be ready
|
|
| 264 |
// base.addChild(corp);
|
|
| 265 |
// if (!corp.getMetadatas().containsKey("lang")) { //$NON-NLS-1$
|
|
| 266 |
// corp.setAttribute("lang", c.getAttribute("lang")); //$NON-NLS-1$ //$NON-NLS-2$
|
|
| 267 |
// }
|
|
| 268 |
// } catch (Exception e) {
|
|
| 269 |
// System.out.println(e.getLocalizedMessage());
|
|
| 270 |
// org.txm.utils.logger.Log.printStackTrace(e);
|
|
| 271 |
// return false;
|
|
| 272 |
// }
|
|
| 273 |
// }
|
|
| 274 |
// return true;
|
|
| 275 |
// }
|
|
| 274 | 276 |
|
| 275 | 277 |
@Override |
| 276 | 278 |
public boolean initialize() {
|
| ... | ... | |
| 326 | 328 |
@Override |
| 327 | 329 |
public boolean stop() {
|
| 328 | 330 |
try {
|
| 329 |
if (cqiClient instanceof MemCqiClient) {
|
|
| 330 |
for (String name : ((MemCqiClient)cqiClient).listCorpora()) {
|
|
| 331 |
((MemCqiClient)cqiClient).dropCorpus(name); |
|
| 331 |
if (cqiClient != null) {
|
|
| 332 |
|
|
| 333 |
if (cqiClient instanceof MemCqiClient) {
|
|
| 334 |
for (String name : ((MemCqiClient)cqiClient).listCorpora()) {
|
|
| 335 |
((MemCqiClient)cqiClient).dropCorpus(name); |
|
| 336 |
} |
|
| 332 | 337 |
} |
| 338 |
cqiClient.disconnect(); |
|
| 333 | 339 |
} |
| 334 |
|
|
| 335 |
cqiClient.disconnect(); |
|
| 336 |
cqiServer.stop(); |
|
| 337 | 340 |
|
| 338 |
CorpusManager.clean(); |
|
| 339 |
if (cqiServer instanceof NetCqiServer) {
|
|
| 340 |
killSearchEngine(); |
|
| 341 |
if (cqiServer != null) {
|
|
| 342 |
cqiServer.stop(); |
|
| 343 |
|
|
| 344 |
CorpusManager.clean(); |
|
| 345 |
if (cqiServer instanceof NetCqiServer) {
|
|
| 346 |
killSearchEngine(); |
|
| 347 |
} |
|
| 348 |
|
|
| 349 |
cqiClient = null; |
|
| 350 |
cqiServer = null; |
|
| 341 | 351 |
} |
| 352 |
System.gc(); |
|
| 342 | 353 |
|
| 343 |
cqiClient = null; |
|
| 344 |
cqiServer = null; |
|
| 345 |
System.gc(); |
|
| 346 |
|
|
| 347 | 354 |
state = false; |
| 348 | 355 |
} catch (Exception e) {
|
| 349 | 356 |
Log.severe("Error while closing CQP: "+e.getLocalizedMessage());
|
| ... | ... | |
| 360 | 367 |
// Windows OS |
| 361 | 368 |
if (OSDetector.isFamilyWindows()) {
|
| 362 | 369 |
try {
|
| 363 |
Process p = Runtime.getRuntime().exec( |
|
| 364 |
"taskkill /IM cqpserver.exe /F"); //$NON-NLS-1$ |
|
| 370 |
Process p = Runtime.getRuntime().exec("taskkill /IM cqpserver.exe /F"); //$NON-NLS-1$
|
|
| 365 | 371 |
p.waitFor(); |
| 366 | 372 |
p = Runtime.getRuntime().exec("taskkill /IM cqpserver.exe /F"); //$NON-NLS-1$
|
| 367 | 373 |
p.waitFor(); |
| ... | ... | |
| 369 | 375 |
Log.severe(TXMCoreMessages.bind(TXMCoreMessages.failedToExecTaskkillIMCqpserverexeFColon, Log.toString(e))); |
| 370 | 376 |
System.out.println(TXMCoreMessages.bind(TXMCoreMessages.failedToExecTaskkillIMCqpserverexeFColon, Log.toString(e))); |
| 371 | 377 |
try {
|
| 372 |
Process p = Runtime.getRuntime().exec( |
|
| 373 |
"tskill cqpserver.exe"); //$NON-NLS-1$ |
|
| 378 |
Process p = Runtime.getRuntime().exec("tskill cqpserver.exe"); //$NON-NLS-1$
|
|
| 374 | 379 |
p.waitFor(); |
| 375 | 380 |
p = Runtime.getRuntime().exec("tskill cqpserver.exe"); //$NON-NLS-1$
|
| 376 | 381 |
p.waitFor(); |
| ... | ... | |
| 388 | 393 |
e.printStackTrace(); |
| 389 | 394 |
System.out.println(Log.toString(e)); |
| 390 | 395 |
} |
| 391 |
; |
|
| 392 | 396 |
} |
| 393 | 397 |
// Mac, Linux |
| 394 | 398 |
else {
|
| ... | ... | |
| 466 | 470 |
@Override |
| 467 | 471 |
public boolean hasIndexes(CorpusBuild corpus) {
|
| 468 | 472 |
if (corpus instanceof CQPCorpus) return true; |
| 469 |
|
|
| 473 |
|
|
| 470 | 474 |
try {
|
| 471 | 475 |
String id = corpus.getID(); |
| 472 |
|
|
| 476 |
|
|
| 473 | 477 |
return CorpusManager.getCorpusManager().getCorpus(id) != null; |
| 474 | 478 |
} catch (Exception e) {
|
| 475 | 479 |
e.printStackTrace(); |
| tmp/org.txm.rcp.feature/win/TXM.bat (revision 1649) | ||
|---|---|---|
| 32 | 32 |
|
| 33 | 33 |
mkdir "%DOTTXM%" |
| 34 | 34 |
|
| 35 |
( |
|
| 36 | 35 |
echo "TXM: getting install date from %installdir%STAMP and %DOTTXM%STAMP files" |
| 37 | 36 |
Fc "%installdir%STAMP" "%DOTTXM%STAMP" |
| 38 |
) >"%TXMHOME%TXMOutputLogs.txt" 2>"%TXMHOME%TXMErrorLogs.txt" |
|
| 39 | 37 |
|
| 40 | 38 |
IF errorlevel 1 (goto :install) else (goto :run) |
| 41 | 39 |
|
| 42 | 40 |
:install |
| 43 | 41 |
|
| 44 |
( |
|
| 45 | 42 |
echo "New TXM install: it's the first launch after the installation." |
| 46 | 43 |
del "%temp%\org.txm.rcpapplication.prefs" |
| 47 | 44 |
copy "%DOTTXM%configuration\.settings\org.txm.rcpapplication.prefs" "%temp%\org.txm.rcpapplication.prefs" |
| ... | ... | |
| 70 | 67 |
copy "%installdir%STAMP" "%DOTTXM%STAMP" |
| 71 | 68 |
IF errorlevel 1 (echo "TXM: failed to copy %DOTTXM%STAMP file") |
| 72 | 69 |
|
| 73 |
) >"%TXMHOME%TXMOutputLogs.txt" 2>"%TXMHOME%TXMErrorLogs.txt" |
|
| 74 |
|
|
| 75 | 70 |
:run |
| 76 | 71 |
|
| 77 |
( |
|
| 78 | 72 |
set _JAVA_OPTIONS=-Duser.home="%USERHOME%" |
| 79 | 73 |
echo running "%installdir%TXM.exe" -run --launcher.ini "%DOTTXM%TXM.ini" -data "%DOTTXM%data" -user "%DOTTXM%user" -install "%installdir%"echo running "%installdir%TXM.exe" -log -run --launcher.ini "%DOTTXM%TXM.ini" -consolelog -clean -debug -console -noexit -data "%TXMHOME%corpora" -user "%DOTTXM%user" -install "%installdir%\" |
| 80 | 74 |
REM "%installdir%TXM.exe" -run --launcher.ini "%DOTTXM%TXM.ini" -data "%DOTTXM%corpora" -user "%DOTTXM%user" -install "%installdir%" |
| 81 |
"%installdir%TXM.exe" -log -run --launcher.ini "%DOTTXM%TXM.ini" %ARGS% -data "%TXMHOME%corpora" -user "%DOTTXM%user" -install "%installdir%\" |
|
| 82 |
) >"%TXMHOME%TXMOutputLogs.txt" 2>"%TXMHOME%TXMErrorLogs.txt" |
|
| 75 |
"%installdir%TXM.exe" -run --launcher.ini "%DOTTXM%TXM.ini" %ARGS% -data "%TXMHOME%corpora" -user "%DOTTXM%user" -install "%installdir%\" |
|
| tmp/org.txm.rcp.feature/win/TXM debug.bat (revision 1649) | ||
|---|---|---|
| 1 |
%~dp0/TXM.bat -consolelog -clean -debug -console -noexit |
|
| 1 |
"%~dp0/TXM.bat" -log -consolelog -clean -debug -console -noexit |
|
| tmp/org.txm.translate.rcp/.~lock.messages_fr-slh.odt# (revision 1649) | ||
|---|---|---|
| 1 |
Matthieu Decorde,mdecorde,matthieuPC,08.01.2019 16:34,file:///home/mdecorde/.config/libreoffice/4; |
|
Formats disponibles : Unified diff