Révision 924

tmp/org.txm.rcp/src/main/java/org/txm/rcp/TxmPreferences.java (revision 924)
46 46
 *
47 47
 * @author mdecorde
48 48
 */
49
@Deprecated
49 50
public class TxmPreferences {
50 51

  
51 52
	
tmp/org.txm.core/src/java/org/txm/Toolbox.java (revision 924)
447 447

  
448 448
	/**
449 449
	 * Removes an engines manager.
450
	 * @param engine
450
	 * @param enginesManager
451 451
	 */
452
	private static void removeEngineManager(EnginesManager<?> engine) {
453
		enginesManagers.remove(engine.getClass());
452
	private static void removeEngineManager(EnginesManager<?> enginesManager) {
453
		enginesManagers.remove(enginesManager.getClass());
454
		Log.finest("Engines manager removed: " + enginesManager);
454 455
	}
455 456

  
456 457
	/**
......
489 490
		stopEnginesManagers();
490 491

  
491 492
		
492
		// FIXME: tmp solution before IProject: remove all not persistable result nodes
493
		TXMPreferences.deleteAllNotPersistableResultsNodes();
494
		// FIXME: tmp solution before IProject: remove result local nodes if persistence preference is disabled
495
		if (!TBXPreferences.getBoolean(TBXPreferences.PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE)) {
496
			TXMPreferences.deleteAllResultsNodes();
497
		}
493
		try {
494
			// FIXME: tmp solution before IProject: remove all not persistable result nodes
495
			//TXMPreferences.deleteAllNotPersistableResultsNodes();
496
			// FIXME: tmp solution before IProject: remove result local nodes if persistence preference is disabled
497
			if (!TBXPreferences.getBoolean(TBXPreferences.PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE)) {
498
				TXMPreferences.deleteAllResultsNodes();
499
			}
498 500

  
499
		
500
		if(Toolbox.workspace != null) {
501
			Toolbox.workspace.save();
501
			
502
			if(Toolbox.workspace != null) {
503
				Toolbox.workspace.save();
504
			}
505
			Toolbox.workspace = null;
506
			state = false;
507

  
508
			//save preferences
509
			TXMPreferences.saveAll();
502 510
		}
503
		Toolbox.workspace = null;
504
		state = false;
505

  
506
		//save preferences
507
		TXMPreferences.saveAll();
511
		catch (Exception e) {
512
			// TODO Auto-generated catch block
513
			e.printStackTrace();
514
		}
508 515
	}
509 516

  
510 517
	/**
......
553 560
			EnginesManager<?> enginesManager = enginesManagers.get(et);
554 561
			Log.finest(enginesManager.getClass().getSimpleName() + ": stopping " + enginesManager.getEngines().size() + " " + enginesManager.getEnginesDescription() + " engine(s)...");
555 562
			result = result && enginesManager.stopEngines();
556
			removeEngineManager(enginesManager); // remove the engine anyway
563
			removeEngineManager(enginesManager); // remove the engines manager anyway
557 564
		}
558 565

  
559 566
		return true;
tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java (revision 924)
61 61
	 */
62 62
	public static ArrayList<String> alternativeNodesQualifiers = new ArrayList<String>();
63 63

  
64
	
65
	public final static String DEFAULT_ENCODING = "UTF-8"; //$NON-NLS-1$
66
	
64 67
	/**
65 68
	 * Default unit/token property String.
66 69
	 */
......
164 167
	 * Save all preferences in the default app directory
165 168
	 */
166 169
	public static void saveAll() {
170
		
171
		Log.info("Saving preferences and session results.");
167 172
		IPreferencesService service = Platform.getPreferencesService();
168 173
		try {
169 174
			service.getRootNode().flush();
tmp/org.txm.core/src/java/org/txm/objects/Workspace.java (revision 924)
51 51
import org.eclipse.core.runtime.Platform;
52 52
import org.eclipse.osgi.util.NLS;
53 53
import org.txm.PostTXMHOMEInstallationStep;
54
import org.txm.Toolbox;
54 55
import org.txm.core.messages.TXMCoreMessages;
55 56
import org.txm.core.preferences.TBXPreferences;
56 57
import org.txm.core.preferences.TXMPreferences;
......
124 125
				}
125 126
			}
126 127

  
127
			String path = TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE);
128
			String path = Toolbox.getPreference(TBXPreferences.INSTALL_DIR);
128 129
			File installDirectory = new File(path);
129 130
			if (!installDirectory.exists()) {
130 131
				System.out.println("Error: Workspace cannot found install directory: "+installDirectory.getAbsolutePath());
......
133 134

  
134 135
			File redistDirectory = new File(installDirectory, "redist");
135 136
			if (!redistDirectory.exists()) {
136
				System.out.println("Warning: Workspace cannot found redist directory: "+redistDirectory.getAbsolutePath());
137
				System.err.println("Warning: Workspace cannot found redist directory: "+redistDirectory.getAbsolutePath());
137 138
			} else {
138 139
				FileCopy.copyFiles(redistDirectory, txmhomedir);
139 140
			}
......
190 191
		xmlfile.getParentFile().mkdir();
191 192
		try {
192 193
			OutputStreamWriter writer = new OutputStreamWriter(
193
					new FileOutputStream(xmlfile), "UTF-8"); //$NON-NLS-1$
194
					new FileOutputStream(xmlfile), TXMPreferences.DEFAULT_ENCODING);
194 195
			writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); //$NON-NLS-1$
195 196
			writer.write("<workspace>\n"); //$NON-NLS-1$
196 197
			writer.write("<projects>\n"); //$NON-NLS-1$
......
319 320

  
320 321
			// Création du fichier de sortie
321 322
			Writer writer = new BufferedWriter(new OutputStreamWriter(
322
					new FileOutputStream(xmlDefinitionFile), "UTF-8")); //$NON-NLS-1$
323
					new FileOutputStream(xmlDefinitionFile), TXMPreferences.DEFAULT_ENCODING));
323 324
			Result resultat = new StreamResult(writer);
324 325

  
325 326
			// Configuration du transformer
326 327
			TransformerFactory fabrique = new net.sf.saxon.TransformerFactoryImpl();
327 328
			Transformer transformer = fabrique.newTransformer();
328 329
			transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
329
			transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); //$NON-NLS-1$
330
			transformer.setOutputProperty(OutputKeys.ENCODING, TXMPreferences.DEFAULT_ENCODING);
330 331

  
331 332
			// Transformation
332 333
			transformer.transform(source, resultat);
tmp/org.txm.utils/src/org/txm/utils/StreamConsumer.java (revision 924)
1
package org.txm.utils;
2

  
3
import java.io.BufferedReader;
4
import java.io.IOException;
5
import java.io.InputStream;
6
import java.io.InputStreamReader;
7

  
8
import org.txm.utils.logger.Log;
9

  
10
/**
11
 * Consumer for dumping stdout and stderr from a native process.
12
 * @author sjacquot
13
 *
14
 */
15
public class StreamConsumer extends Thread {
16
    
17
	InputStream is;
18
	int type;
19
    
20
    public StreamConsumer(InputStream is, int type) {
21
        this.is = is;
22
        this.type = type;
23
    }
24
    
25
    @Override
26
    public void run() {
27
        try {
28
            InputStreamReader isr = new InputStreamReader(this.is);
29
            BufferedReader br = new BufferedReader(isr);
30
            String line = null;
31
            while ((line = br.readLine()) != null) {
32
            	if(this.type == 0)	{
33
            		Log.finest(line);
34
            	}
35
            	else	{
36
            		Log.severe(line);
37
            	}
38
            }
39
        }
40
        catch (IOException e) {
41
        	e.printStackTrace();  
42
        }
43
    }
44
}
0 45

  
tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/StartRserve.java (revision 924)
29 29

  
30 30
import java.io.File;
31 31

  
32
import org.apache.commons.lang.StringUtils;
32 33
import org.eclipse.osgi.util.NLS;
33 34
import org.rosuda.REngine.Rserve.RConnection;
34 35
import org.txm.statsengine.r.core.messages.RCoreMessages;
......
59 60
public class StartRserve {
60 61

  
61 62
	/** shortcut to <code>launchRserve(cmd, "--no-save --slave", "--no-save --slave", false)</code>. */
62
	public static Process Rserveprocess;
63
	public static Process rProcess;
63 64

  
64 65
	/**
65 66
	 * Launch rserve.
......
72 73
		if (new File(cmd).exists() && !new File(cmd).isDirectory()
73 74
				&& new File(cmd).canExecute())
74 75
			return launchRserve(cmd,
75
					"--no-save --slave --encoding utf8 "+rArgs, "--RS-encoding utf8 --no-save --slave --encoding utf8 "+rServeArgs, port, debug); //$NON-NLS-1$ //$NON-NLS-2$
76
					"--no-save --slave --encoding utf8 " + rArgs, "--RS-encoding utf8 --no-save --slave --encoding utf8 " + rServeArgs, port, debug); //$NON-NLS-1$ //$NON-NLS-2$
76 77
		return false;//checkLocalRserve(port, debug, rArgs, rServeArgs);
77 78
	}
78 79

  
......
140 141
//			Rserveprocess = builder.start();
141 142

  
142 143
			Runtime runtime = Runtime.getRuntime();
143
			Rserveprocess = runtime.exec(cmdline);
144
			Log.info(RCoreMessages.bind(RCoreMessages.info_startingRWithCommandLine, StringUtils.join(cmdline, " "))); //$NON-NLS-1$
145
			rProcess = runtime.exec(cmdline);
144 146
			
145 147
			//Log.info(Messages.StartRserve_0+Arrays.toString(cmdline));
146
			StreamHog errStream = new StreamHog(Rserveprocess.getErrorStream(), debug);
147
			StreamHog inStream = new StreamHog(Rserveprocess.getInputStream(), debug);
148
			StreamHog errStream = new StreamHog(rProcess.getErrorStream(), debug);
149
			StreamHog inStream = new StreamHog(rProcess.getInputStream(), debug);
148 150
			RWorkspace.getRWorkspaceInstance().registerLogger(errStream, inStream);
149 151

  
150 152
			//if (!debug && !isWindows) Rserveprocess.waitFor();
151 153
			// System.out.println("call terminated, let us try to connect ...");
152 154
		} catch (Exception x) {
153
			System.err.println(RCoreMessages.error_failedToStartRServeWithCommand + x.getMessage());
155
			Log.severe(RCoreMessages.error_failedToStartRServeWithCommand + x.getMessage());
154 156
			return false;
155 157
		}
156 158

  
157
		System.err.print(RCoreMessages.info_statisticsEngineLaunched);
159
		Log.info(RCoreMessages.info_statisticsEngineLaunched);
158 160

  
159 161
		try {
160 162
			Thread.sleep(200);
tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RStatsEngine.java (revision 924)
9 9
import org.txm.statsengine.r.core.messages.RCoreMessages;
10 10
import org.txm.statsengine.r.core.preferences.RPreferences;
11 11
import org.txm.utils.OSDetector;
12
import org.txm.utils.StreamConsumer;
12 13
import org.txm.utils.logger.Log;
13 14

  
14 15
/**
......
83 84
			//	System.out.println("success");
84 85
			//System.out.println("file transfert ? "+RWorkspace.isFileTranfert());
85 86
		} catch (RWorkspaceException e) {
86
			System.err.println(RCoreMessages.error_connectionFailed); 
87
			Log.severe(RCoreMessages.error_connectionFailed); 
87 88
			started = false;
88 89
		}
89 90

  
......
91 92
	}
92 93

  
93 94
	
95

  
96
	
94 97
	/**
95 98
	 * kill Rserve process.
96 99
	 */
......
98 101
		if (!TXMPreferences.getBoolean(RPreferences.REMOTE, RPreferences.PREFERENCES_NODE))	{
99 102
			
100 103
			try {
101
				if (StartRserve.Rserveprocess != null) {
102
					StartRserve.Rserveprocess.destroy();
104
				if (StartRserve.rProcess != null) {
105
					Log.finest("Quitting R process.");
106
					StartRserve.rProcess.destroy();
103 107
				}
104 108
			} catch (Exception e1) {
105 109
				// TODO Auto-generated catch block
......
109 113
			// Windows OS
110 114
			if (OSDetector.isFamilyWindows()) {
111 115
				try {
116
					String cmd = "taskkill /IM Rterm.exe /F"; //$NON-NLS-1$
117
					//String cmd = "cmd /c FOR /F \"tokens=5 delims= \" %P IN ('netstat -ano ^| findstr :6330 ^| findstr LISTENING') DO taskkill /F /PID %P"; //$NON-NLS-1$ 
118
					Log.finest("Executing command: " + cmd);
119

  
112 120
					Process p = Runtime.getRuntime().exec(
113 121
							//"taskkill /IM Rserve.exe /F"); //$NON-NLS-1$
114
							"cmd /c FOR /F \"tokens=5 delims= \" %P IN ('netstat -ano ^| findstr :6330 ^| findstr LISTENING') DO taskkill /F /PID %P"); //$NON-NLS-1$
122
							cmd
123
							);
115 124

  
125
					// consumes streams
126
		            new StreamConsumer(p.getErrorStream(), -1).start();;            
127
		            new StreamConsumer(p.getInputStream(), 0).start();
128
		            
116 129
					p.waitFor();
117 130
					started = false;
118 131
				} catch (IOException e) {
119 132
					Log.severe(RCoreMessages.error_failedToKillRServe+Log.toString(e));
120 133
					System.out.println(RCoreMessages.error_failedToKillRServe+Log.toString(e));
121 134
					try {
135
						
136
						String cmd = "cmd /c FOR /F \"tokens=5 delims= \" %P IN ('netstat -ano ^| findstr :6330 ^| findstr LISTENING') DO tskill %P"; //$NON-NLS-1$
137
						Log.finest("Executing command: " + cmd);
138
						
122 139
						Process p = Runtime.getRuntime().exec(
123 140
								//"tskill Rserve.exe"); //$NON-NLS-1$
124
								"cmd /c FOR /F \"tokens=5 delims= \" %P IN ('netstat -ano ^| findstr :6330 ^| findstr LISTENING') DO tskill %P"); //$NON-NLS-1$
141
								cmd
142
								);
125 143
						p.waitFor();
126 144
						started = false;
127 145
					} catch (IOException e2) {
128 146
						Log.severe(RCoreMessages.error_failedToKillRServe2+Log.toString(e2));
129
						System.out.println(RCoreMessages.error_failedToKillRServe2+Log.toString(e2));
130 147
						Log.printStackTrace(e2);
131 148
					} catch (InterruptedException e3) {
132 149
						Log.severe(Log.toString(e3));
133
						System.out.println(Log.toString(e3));
134
						org.txm.utils.logger.Log.printStackTrace(e3);
150
						Log.printStackTrace(e3);
135 151
					}
136
				} catch (InterruptedException e) {
152
				}
153
				catch (InterruptedException e) {
137 154
					Log.severe("Error while closing R: " + e.getLocalizedMessage());
138
					System.out.println(Log.toString(e));
139
					org.txm.utils.logger.Log.printStackTrace(e);
155
					Log.printStackTrace(e);
140 156
				}
141 157
			}
142 158
			// Mac, Linux
tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages_fr.properties (revision 924)
26 26
info_lastSafeEvalExpression    = Dernier 'safeeval' : {0}.
27 27
info_rPathNotSetTryingToFindIt = Chemin d'accès à R non fourni, tentative de résolution...
28 28
info_savingChartToFile         = Sauvegarde du graphique dans le fichier : {0}.
29
info_startingRUsingPath        = Démarrage de R avec le chemin d'accès : {0}.
29
info_startingRWithCommandLine  = Démarrage de R avec la ligne de commande : {0}.
30 30
info_startingStatsEngine       = Démarrage du moteur de statistiques : utilisateur : {0}, distant : {1}, port : {2}, debug : {3}
31 31
info_statisticsEngineLaunched  = Moteur statistique lancé
32 32
info_tryingToStartRFrom        = Tentative de démarrage de R depuis : {0}...
tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/RCoreMessages.java (revision 924)
12 12
 */
13 13
public class RCoreMessages extends NLS {
14 14

  
15
	private static final String BUNDLE_NAME = "org.txm.statsengine.r.core.messages.messages"; //$NON-NLS-1$
16
	
15 17
	public static String error_cantFindRServeInPath;
16 18
	public static String error_connectionFailed;
17 19
	public static String error_errorDuringItemsListExtraction;
......
37 39
	public static String info_lastSafeEvalExpression;
38 40
	public static String info_rPathNotSetTryingToFindIt;
39 41
	public static String info_savingChartToFile;
40
	public static String info_startingRUsingPath;
42
	public static String info_startingRWithCommandLine;
41 43
	public static String info_startingStatsEngine;
42 44
	public static String info_statisticsEngineLaunched;
43 45
	public static String info_tryingToStartRFrom;
......
47 49

  
48 50
	static {
49 51
		// initialize resource bundle
50
		Utf8NLS.initializeMessages(RCoreMessages.class);
52
		Utf8NLS.initializeMessages(BUNDLE_NAME, RCoreMessages.class);
51 53
	}
52 54

  
53 55
	private RCoreMessages() {
tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/messages/messages.properties (revision 924)
26 26
info_lastSafeEvalExpression    = Last safeeval expression: {0}.
27 27
info_rPathNotSetTryingToFindIt = R path is not set, trying to find it...
28 28
info_savingChartToFile         = Saving chart to file: {0}.
29
info_startingRUsingPath        = Starting R using path: {0}.
29
info_startingRWithCommandLine  = Starting R with command line: {0}.
30 30
info_startingStatsEngine       = Starting Statistics Engine: user: {0}, remote: {1}, port: {2}, debug: {3}
31 31
info_statisticsEngineLaunched  = Statistical Engine launched
32 32
info_tryingToStartRFrom        = Try to start R from: {0}...
tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java (revision 924)
340 340
				throw new RWorkspaceException(RCoreMessages.error_rservePathNotSet); 
341 341
			}
342 342
		} else {
343
			Log.info(RCoreMessages.bind(RCoreMessages.info_startingRUsingPath, pathToRExecutable));
344 343
			isRServerOk = StartRserve.launchRserve(pathToRExecutable, port, debug, rargs, rServeArgs);
345 344
			// System.out.println("ap launchRserve");
346 345
			if (!isRServerOk) {
347
				System.out.println("Rserve not started with "+pathToRExecutable+". Trying with commons R installation paths (will works if Rserve, textometry and FactoMineR are installed).");
346
				Log.severe("Rserve not started with " + pathToRExecutable + ". Trying with commons R installation paths (will works if Rserve, textometry and FactoMineR are installed).");
348 347
				isRServerOk = StartRserve.checkLocalRserve(port, debug, rargs, rServeArgs);
349 348
			}
350 349
			
......
356 355
		if (isRServerOk) {
357 356
			Log.finest("RSERVE_ACTIVATED"); //$NON-NLS-1$
358 357
			System.out.println(RCoreMessages.info_connected); 
359
			RserveProcess = StartRserve.Rserveprocess;
358
			RserveProcess = StartRserve.rProcess;
360 359
		}
361 360
		return isRServerOk;
362 361
	}
......
485 484
			initRserve(pathToRExecutable, port, debug, rArgs, rServeArgs);
486 485
			return true;
487 486
		} catch (RWorkspaceException e) {
488
			System.out.println(RCoreMessages.error_failedToStartRServe);
487
			Log.severe(RCoreMessages.error_failedToStartRServe);
489 488
			org.txm.utils.logger.Log.printStackTrace(e);
490 489
		}
491 490
		return false;

Formats disponibles : Unified diff