2007-08-05 Miguel de Icaza <miguel@novell.com>
[mono.git] / mcs / class / System / System.Diagnostics / ChangeLog
1 2007-08-03  Jb Evain  <jbevain@novell.com>
2
3         * FileVersionInfo.cs: force the use of the params
4         AppendFormat method of StringBuilder as it is the only
5         one accessible in 2.1 and in the previous versions.
6
7 2007-08-03  Jb Evain  <jbevain@novell.com>
8
9         * FileVersionInfo.cs: remove CAS checks for 2.1.
10
11 2007-08-03  Jb Evain  <jbevain@novell.com>
12
13         * Process.cs: disable StartExistCallbackIfNeeded in 2.1.
14
15 2007-08-03  Jb Evain  <jbevain@novell.com>
16
17         * ProcessThreadCollection.cs
18           ProcessModuleCollection.cs: use our own collection base
19           for the 2.1 profile, as ReadOnlyCollectionBase does not exist
20           in 2.1, and they are internalized by the linker.
21
22 2007-08-02  Atsushi Enomoto  <atsushi@ximian.com>
23
24         * EventLogTraceListener.cs : fixed wrong 2.0 dependency in 1.x.
25
26 2007-08-02  Atsushi Enomoto  <atsushi@ximian.com>
27
28         * EventLogTraceListener.cs : implemented.
29
30 2007-08-02  Atsushi Enomoto  <atsushi@ximian.com>
31
32         * EventLogImpl.cs
33           EventLog.cs
34           LocalFileEventLog.cs : Implemented EntryWritten event support.
35         * Win32EventLog.cs, NullEventLog.cs : they need stub overrides.
36         * EventLogEntry.cs : [MonitoringDescription].
37         * DiagnosticsConfigurationHandler.cs : [Obsolete]
38
39 2007-08-01  Atsushi Enomoto  <atsushi@ximian.com>
40
41         * DefaultTraceListener.cs : implemented AssertUiEnabled using MWF.
42
43 2007-08-01  Atsushi Enomoto  <atsushi@ximian.com>
44
45         * CounterSample.cs : implemented missing 2.0 equality stuff.
46         * CounterSampleCalculator.cs : static in 2.0.
47
48 2007-07-24 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
49
50         * Process.cs: use the default encoding or the windows input/output
51         encodings for the process input/output/error streams. Bug #80838 fixed.
52
53 2007-07-14 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
54
55         * Process.cs: don't send empty lines that are not in the input. Fixes
56         bug #79529.
57
58 2007-07-11  Ankit Jain  <jankit@novell.com>
59
60         * ProcessStartInfo.cs (WorkingDirectory.set): Don't set
61         working_directory to null.
62
63 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
64
65         * TraceSourceInfo.cs : new class for storing configuration data.
66         * TraceSource.cs : TraceEventCache arguments should be null (they are
67           nullable). Use TraceSourceInfo above.
68         * DiagnosticsConfigurationHandler.cs : removed hack to store listeners
69           in named sources, not traceimpl. Create TraceSource objects from
70           configuration data.
71
72 2007-05-18  Marek Safar  <marek.safar@gmail.com>
73
74         * DiagnosticsConfigurationHandler.cs: Fixed 1.1 build.
75
76 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
77
78         * XmlWriterTraceListener.cs : open file in shared r/w mode.
79         * DiagnosticsConfigurationHandler.cs : process <sharedListeners>
80           elements first, so that named listeners work fine.
81         * EventLogTraceListener.cs : added 2.0 stubs.
82         * CorrelationManager.cs : removed todo.
83
84 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
85
86         * TraceListener.cs : in TraceTransfer(), use TraceEvent() (some
87           derived classes depend on this change).
88         * DelimitedListTraceListener.cs : implemented.
89
90 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
91
92         * EventLogPermissionAccess.cs ProcessPriorityClass.cs
93           ProcessWindowStyle.cs ThreadWaitReason.cs TraceImpl.cs
94           Trace.cs ThreadPriorityLevel.cs EventLogEntryType.cs
95           PerformanceCounterPermissionAccess.cs PerformanceCounterType.cs
96           TraceListener.cs ThreadState.cs : cosmetic API fixes.
97         * SwitchAttribute.cs : implemented GetAll().
98
99 2007-05-17  Atsushi Enomoto  <atsushi@ximian.com>
100
101         * TraceOptions.cs : new enum.
102         * TraceListener.cs : support TraceOutputOptions. Fixed missing
103           NET_2_0 condition in TARGET_JVM section.
104         * TraceSwitch.cs, BooleanSwitch.cs :
105           Added missing constructors and OnValueChanged().
106         * Trace.cs, TraceImpl.cs :
107           Added CorrelationManager and UseGlobalLock.
108         * TraceEventCache.cs : initialize property values at construction.
109         * Switch.cs : added XmlIgnore on Attributes.
110
111 2007-05-15 Adar Wesley <adarw@mainsoft.com>
112
113         * Trace.cs: added missing method Refresh.
114
115 2007-05-14  Atsushi Enomoto  <atsushi@ximian.com>
116
117         * EventTypeFilter.cs
118           TraceFilter.cs
119           SourceFilter.cs
120           SwitchLevelAttribute.cs
121           DelimitedListTraceListener.cs
122           SwitchAttribute.cs : new files in 2.0.
123         * DiagnosticsConfigurationHandler.cs : partial support for named
124           shared listeners.
125         * XmlWriterTraceListener.cs : cosmetic corcompare fixes. Added
126           missing todos.
127         * TraceListener.cs : added missing 2.0 stuff. Implemented Filter.
128         * DefaultTraceListener.cs : trivial ComVisible fix.
129
130 2007-05-10  Atsushi Enomoto  <atsushi@ximian.com>
131
132         * TextWriterTraceListener.cs : open log file in readwrite share mode.
133           This fixes bug #81296.
134
135 2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
136
137         * TraceImpl.cs:
138         * TraceListener.cs:
139         for TARGET_JVM used Thread Local Storage istead 
140         Thread-Relative Static Fields 
141
142 2007-05-02  Jonathan Chambers  <joncham@gmail.com>
143
144         * Stopwatch.cs : Implement high performance stopwatch on windows.
145
146 2007-04-19  Atsushi Enomoto  <atsushi@ximian.com>
147
148         * XmlWriterTraceListener.cs : new file, implementated.
149         * TraceListener.cs : implemented 2.0 members.
150
151 2007-03-04  Vladimir Krasnov  <vlaimdirk@mainsoft.com>
152
153         * DiagnosticsConfigurationHandler.cs: removed configuration init in
154         TARGET_JVM since not supported
155
156 2007-02-02  Gert Driesen  <drieseng@users.sourceforge.net>
157
158         * EventLogImpl.cs: When no log name is specified, return zero-length
159         string for LogDisplayName.
160
161 2007-01-28 Ilya Kharmatsky <ilyak -at- mainsoft.com>
162
163         * TraceEventCache.jvm.cs: added as a stub class.
164
165 Tue Jan 23 17:19:13 CET 2007 Paolo Molaro <lupus@ximian.com>
166
167         * ProcessStartInfo.cs: put the fields in the order expected
168         by the runtime code.
169
170 2007-01-18  Atsushi Enomoto  <atsushi@ximian.com>
171
172         * Switch.cs : added missing .ctor(), Attributes, Value, 
173           GetSupportedAttributes() and OnValueChanged().
174         * DiagnosticsConfigurationHandler.cs : added some hacky handler for
175           new "sources" element. Don't wrap another ConfigurationException.
176         * TraceListener.cs : added missing trace methods.
177         * TraceSource.cs, SourceLevels.cs, CorrelationManager.cs,
178           TraceEventCache.cs, TraceEventType.cs, SourceSwitch.cs:
179           added missing 2.0 stuff, mostly just stubs.
180
181 2007-01-12  Miguel de Icaza  <miguel@novell.com>
182
183         * Trace.cs: Add a number of 2.0 overloads.
184
185 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
186
187         * Process.cs: Allow GetProcesses and GetProcessById overloads with 
188         machine name to work for local machine.
189
190 2006-12-29  Robert Jordan  <robertj@gmx.net>
191
192         * TraceImpl.cs (Assert): Include line numbers in the stack trace
193         emitted by Assert (). Fixes bug #80400.
194
195 Thu Dec 14 20:24:09 CET 2006 Paolo Molaro <lupus@ximian.com>
196
197         * Process.cs: if a process object is restarted, close the
198         previous process handle (bug #80143).
199
200 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
201
202         * Process.cs: the Process returned by the static Start method never had
203         the right ProcessStartInfo. Fixes bug #80019.
204
205 2006-10-13  Atsushi Enomoto  <atsushi@ximian.com>
206
207         * DiagnosticsConfigurationHandler.cs : be more skeptic on
208           broken configuration file.
209
210 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
211
212         * DefaultTraceListener.cs: TARGET_JVM
213
214 2006-09-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
215
216         * Process.cs: fix operation number to be 8. The other one was working
217         because the default is to wait for input on the file descriptor.
218
219 2006-09-05  Gert Driesen  <drieseng@users.sourceforge.net>
220
221         * Win32EventLog.cs: Removed workarounds for bug #79152 and bug #79117
222         now that these have been fixed. Release unmanaged memory that was
223         allocated for replacement strings.
224
225 2006-08-27  Gert Driesen  <drieseng@users.sourceforge.net>
226
227         * NullEventLog.cs: Added dummy GetLogNames implementation.
228         * EventLogImpl.cs: Moved GetEventLogs implementation to base class.
229         Added abstract GetLogNames method. Added ValidateCustomerLogName
230         method which should be called by eventlog providers when creating a
231         new log to ensure the significant part of the log name is unique, does
232         not match any of the special log names and does not match an exist event
233         source.
234         * Win32EventLog.cs: Validate customer log name when creating new log.
235         Moved GetEventLogs implementation to base class. Added GetLogNames
236         method.
237         * LocalFileEventLog.cs: Merged CreateLogStore into CreateEventSource.
238         Validate customer log name when creating new log. Moved GetEventLogs
239         implementation to base class. Added GetLogNames method.
240
241 2006-08-26  Gert Driesen  <drieseng@users.sourceforge.net>
242
243         * Win32EventLog.cs: Fixed error messages. Use RegisterEventSource
244         pinvoke when opening eventlog for writing entries.
245
246 2006-08-26  Gert Driesen  <drieseng@users.sourceforge.net>
247
248         * Win32EventLog.cs: Added and documented workarounds for bug #79117
249         and bug #79152.
250
251 2006-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
252
253         * LocalFileEventLog.cs: When event log store does not exist, then we
254         do not need to perform a case-insensitive lookup of the log name.
255
256 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
257
258         * EventLog.cs: Removed namespace import.
259         * EventInstance.cs: Added range checks and check whether specified
260         entry type is defined.
261
262 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
263
264         * EventLogEntry.cs: Added InstanceId property (2.0 only). Moved
265         Obsolete attribute to correct property.
266         * EventSourceCreationData.cs: Updated copyright. For internal ctor,
267         set log name to "Application" if value is null or zero-length string.
268         * EventLogImpl.cs: EventImpl now acts as base class for event log 
269         implemenations.
270         * NullEventLog.cs: Modified to implement new abstract methods of base
271         class. Removed factory class.
272         * EventLog.cs: EventLog implementation that delegates just about 
273         everything to individual eventlog providers. To specify the event log
274         implementation to use, the MONO_EVENTLOG_TYPE environment variable can
275         be used. Possible values are:
276         - win32 : read/write entries using the native win32 eventlog
277         - local[:path] : read/write entries as files to a local directory
278         - null : silently ignore all entries
279         The default is "null" on unix (and versions of Windows before NT,
280         meaning Windows 98, ...), and "win32" on Windows NT (and higher).
281         When "the local" implementation is used, the directory in which to 
282         store the event logs, event sources and entries can be specified as 
283         part of MONO_EVENTLOG_TYPE environment variable using the syntax 
284         "local:<path>" (eg. local:/home/myuser/mono/eventlog).
285         * LocalFileEventLog.cs: Event log implementation which uses a local
286         file store. The directory to use for persistence can be specified
287         as part of the MONO_EVENTLOG_TYPE environment variable (see above).
288         If that directory is not explicitly set, then the following directory
289         will be used for storing eventlog entries:
290         - windows       : %APPDATA%\mono\eventlog
291         - unix          : /var/lib/mono/eventlog
292         On unix, the directory permission for individual eventlog log 
293         directories will be set to 777 (with +t bit) allowing everyone to
294         read and write eventlog entries while only allowing entries to be
295         deleted by the user(s) that created them.
296         Format of log files was modified to allow it contain all necessary
297         information for an event log entry.
298         * Win32EventLog.cs: Event log implementation for Windows NT and 
299         higher which uses the Win32 native event log for reading/writing
300         eventlog entries, and which uses the registry to store event log and
301         event source registration information.
302         * EventLogEntryCollection.cs: Delegate implementation to event log
303         implementation. Use lazy init for enumerating entries. Cache current
304         item in 2.0 profile.
305
306 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
307
308         * LocalFileEventLog.cs : change lengthy environment variable name.
309           MONO_LOCAL_EVENTLOG_PATH -> MONO_EVENTLOG_PATH.
310
311 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
312
313         * EventLogImpl.cs, EventLogEntryCollection.cs, EventLog.cs :
314           some rework to support actual event log implementations.
315         * NullEventLog.cs, LocalFileEventLog.cs :
316           new files. The former (default) implementation does nothing for
317           any event log features. The latter implements local file based
318           event logs.
319
320 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
321
322         * UnixEventLog.cs, EventLogEntry.cs, EventSourceCreationData.cs,
323           EventLogImpl.cs, Win32EventLog.cs, EventLogEntryCollection.cs,
324           EventLog.cs:
325           Reverted previous two changes that does not work at all.
326
327 2006-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
328
329         * EventLog.cs: For now, Use null implementation.
330
331 2006-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
332
333         * EventLogEntry.cs: Added InstanceId property (2.0 only). Moved
334         Obsolete attribute to correct property.
335         * EventSourceCreationData.cs: Updated copyright. For internal ctor,
336         set log name to "Application" if value is null or zero-length string.
337         * EventLogImpl.cs: EventImpl now acts as base class for event log 
338         implemenations. Added NullEventLog implementation, which is not used
339         at the moment.
340         * EventLog.cs: EventLog implementation that uses registry for
341         keeping track of logs and sources to match .NET (and Windows). When
342         running on Windows NT (and higher), event entries are written to
343         the native win32 event log.  Reading event entries is not yet working
344         for Windows. On linux, we use a local file store (based on patch by 
345         Atsushi).
346         * UnixEventLog.cs: Event log implementation for linux which uses a
347         local file store.
348         * Win32EventLog.cs: Event log implementation for Windows NT and 
349         higher which uses the Win32 native event log.
350         * EventLogEntryCollection.cs: Delegate implementation to event log
351         implemenation. Use lazy init for enumerating entries.
352
353 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
354
355         * Process.cs: reset the 'start' time if we wait for stdout reading to
356         be completed.
357
358 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
359
360         * Process.cs: add support for 2.0 asynchronous reads on stdout and
361         stderr.
362
363 2006-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
364
365         * EventSourceCreationData.cs: Marked ctor internal, and removed ctor.
366         Throw ArgumentOutOfRangeException if negative value for CategoryCount
367         is set.
368
369 2006-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
370
371         * EventInstance.cs: Added 2.0 class.
372         * EventSourceCreationData.cs: Added 2.0 class.
373         * OverflowAction.cs: Added 2.0 enum.
374
375 2006-07-31  Sebastien Pouliot  <sebastien@ximian.com>
376
377         * EventLogEntry.cs: Add a linkdemand for unrestricted on class.
378         * EventLogTraceListener.cs: Add a linkdemand for unrestricted on class
379         * FileVersionInfo.cs: Add a linkdemand for unrestricted on class. Add
380         an imperative demand for FileIOPermission.Read on GetVersionInfo 
381         method. Change ToString method to use a StringBuilder.
382         * PerformanceCounterCategory.cs: Add a linkdemand for unrestricted on
383         class.
384         * PerformanceCounterManager.cs: Add a linkdemand for unrestricted on 
385         class. Add [Obsolete] for NET_2_0 profile.
386         * Process.cs: Add a linkdemand and an inheritancedemand for 
387         unrestricted on class.
388         * ProcessStartInfo.cs: Add a linkdemand for unrestricted on class.
389
390 2006-07-16  Andrew Skiba <andrews@mainsoft.com>
391
392         * Process.cs: throw FileNotFoundException earlier; give more
393         diagnostics.
394
395 2006-05-16  Dick Porter  <dick@ximian.com>
396
397         * Process.cs: Dispose the handle from a destructor too
398
399 2006-04-04  Atsushi Enomoto  <atsushi@ximian.com>
400
401         * Stopwatch.cs:
402           Zoltan was quicker to add it, here I put my implementation ;-)
403         * Process.cs :
404           Added some missing long members (not implemented anyways).
405         * DataReceivedEventHandler.cs DataReceivedEventArgs.cs :
406           added new 2.0 types.
407
408 2006-04-01  Zoltan Varga  <vargaz@gmail.com>
409
410         * Stopwatch.cs: New file.
411
412 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
413
414         * Debug.cs: Add net 2.0 Print methods.
415
416 2006-03-03  Dick Porter  <dick@ximian.com>
417
418         * Process.cs: Close redirected pipes on errors.  Fixes bug 77514.
419
420 2006-01-12  Ben Maurer  <bmaurer@andrew.cmu.edu>
421
422         * ConsoleTraceListener.cs: New 2.0 class
423
424 2005-11-17  Dick Porter  <dick@ximian.com>
425
426         * Process.cs: Split Start_common into Start_shell and
427         Start_noshell, which call ShellExecuteEx and CreateProcess
428         respectively.  Fixes bug 76670.
429
430 2005-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
431
432         * Process.cs: deal with the fact that someone can enable raising events
433         and/or registed a Exited delegate before and *after* Start is called for
434         the process. Only queue the exit callback in the threadpool when it's
435         possible and requested. Fixes bug #76129.
436
437 2005-08-09  Gert Driesen <drieseng@users.sourceforge.net>
438
439         * EventLog.cs: Fixed Designer attribute to match MS.NET.
440         * ICollectData.cs: Added marshalling attribute to match MS.NET.
441         * PerformanceCounter.cs: Fixed Designer attribute to match MS.NET.
442         * Process.cs: Fixed Designer attribute to match MS.NET, modified
443         * ProcessModule.cs: Fixed Designer attribute to match MS.NET.
444         * ProcessThread.cs: Fixed Designer attribute to match MS.NET.
445         DesignerSerializationVisibility on StartInfo to match MS.NET, changed
446         Category attribute on Exited event to match MS.NET.
447
448 2005-06-09  Gert Driesen <drieseng@users.sourceforge.net>
449
450         * TraceImpl.cs: Adjust internal indentlevel and indentsize before 
451         passing on to listeners. Fixes some test failures.
452
453 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
454
455         * DefaultTraceListener.cs: s/MONO_TRACE/MONO_TRACE_LISTENER/. The
456         runtime uses MONO_TRACE too...
457
458 2005-05-31  Sebastien Pouliot  <sebastien@ximian.com>
459
460         * PerformanceCounterPermissionEntry.cs: Added more 2.0 validations for
461         machine names and PerformanceCounterPermissionAccess.
462
463 2005-02-22 Jonathan Pryor  <jonpryor@vt.edu>
464
465         * TraceImpl.cs: More Thread-safety fixes.  I have to lock on
466           Listeners.SyncRoot as we're traversing the collection and can't let the
467           collection change from underneath us while we're iterating over it
468           (alternately, we could clone the collection and iterate over the clone
469           without having locking issues -- assuming we had a lock-free clone -- 
470           but this would kill the GC).  Fixes 69964.  Only define lock_ if we're 
471           using the lock-free initialization routine; it's not used otherwise.
472
473 2005-01-18 Jonathan Pryor  <jonpryor@vt.edu>
474
475         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): 
476           Use a lock-free algorithm for creating the settings information.
477         * TraceImpl.cs (InitOnce): Use a lock-free algorithm for creating the
478           listeners collection and initializing the world.
479
480 2005-01-18 Jonathan Pryor  <jonpryor@vt.edu>
481
482         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): Don't 
483           read the .config file from the static ctor (again), as if it fails we'll 
484           get a TypeLoadException -- bad!  Instead, lazy-read the .config file.
485         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfigurationHandler): 
486           Require that the /switch/add/@value attribute contains only numeric values.
487         * TraceImpl.cs: Don't initialize everything in the static ctor, as if it
488           fails (due to an invalid .confg file) we get a TypeLoadException, while
489           .NET generates a ConfigurationException.  Instead, initialize everything
490           the first time the Listeners property is accessed, which allows the static
491           ctor to run without chance of failure, avoiding the TypeLoadException.
492         * TraceListenerCollection.cs: This should be thread-safe, as it's accessible
493           from a static member of TraceImpl (available through the public Debug and 
494           Trace classes).
495         * Switch.cs: Leave the original switch value alone.  If it isn't valid 
496           (i.e. numeric), the DiagnosticsConfigurationHandler will catch it.
497
498 2005-01-17 Jonathan Pryor  <jonpryor@vt.edu>
499
500         * DiagnosticsConfigurationHandler.cs: The /switch/add/@value attribute 
501           isn't optional under .NET 1.1, so make sure it exists.
502
503 2005-01-13 Jonathan Pryor  <jonpryor@vt.edu>
504
505         * DiagnosticsConfigurationHandler.cs: Make DiagnosticsConfiguration.Settings
506           thread-safe (double-checked locking isn't thread safe on .NET without
507           using a volatile variable, and setting the variable in the static
508           constructor is easier anyway).
509         * Switch.cs (GetConfigFileSetting): If the setting is non-numeric, set the
510           attribute value to the string "0".  This is apparently what .NET 1.1 does,
511           and allows the SwitchTest NUnit test to work w/o failures.
512
513 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
514
515         * Process.cs: always pass the same arguments to the runtime.
516
517 2004-09-11  Sebastien Pouliot  <sebastien@ximian.com>
518
519         * EventLogPermission.cs: Completed implementation.
520         * EventLogPermissionAccess.cs: Fixed enum values.
521         * EventLogPermissionEntry.cs: Added validation for machine names.
522         * EventLogPermissionEntryCollection.cs: Added synchronization
523         of entries with the base permission class.
524         * PerformanceCounterPermission.cs: Completed implementation.
525         * PerformanceCounterPermissionAccess.cs: Fixed enum values.
526         * PerformanceCounterPermissionEntry.cs: Added validations for machine
527         and category names.
528         * PerformanceCounterPermissionEntryCollection.cs: Added synchronization
529         of entries with the base permission class.
530
531 2004-09-10  Sebastien Pouliot  <sebastien@ximian.com>
532
533         * EventLogPermission.cs: Fixed initialization (TagNames and
534         PermissionAccessType).
535         * EventLogPermissionAccess.cs: Added new enums for NET_2_0 and added 
536         [Obsolete] to some existing elements.
537         * EventLogPermissionAttribute.cs: Added missing validation to property
538         MachineName. Fixed changes for NET_2_0.
539         * PerformanceCounterPermission.cs: Fixed initialization (TagNames and
540         PermissionAccessType).
541         * PerformanceCounterPermissionAccess.cs: Added new enums for NET_2_0
542         and added [Obsolete] to some existing elements.
543         * PerformanceCounterPermissionAttribute.cs: Added missing validations
544         to properties (Path, MachineName). Fixed changes for NET_2_0.
545
546 2004-09-07  Dick Porter  <dick@ximian.com>
547
548         * Process.cs: Throw documented exceptions when getting stdin,
549         stdout or stderr and they haven't been redirected.  Check that
550         CreatePipe didn't fail, throw exceptions if it did.  Close
551         redirected streams when the process is disposed, rather than rely
552         on the GC disposing them later.  Makes timeline much happier,
553         because it could run out of file descriptors between GC
554         collections.
555
556 2004-09-06  Dick Porter  <dick@ximian.com>
557
558         * Process.cs: Make Dispose() actually dispose things.
559
560 2004-06-24  Atsushi Enomoto  <atsushi@ximian.com>
561
562         * Process.cs : quick fix for UseShellExecute=false on windows. See
563           the code comment.
564
565 2004-06-17  Lluis Sanchez Gual  <lluis@ximian.com>
566
567         * Process.cs: Added missing check in HasExited property.
568
569 2004-05-20  Gert Driesen (drieseng@users.sourceforge.net)
570
571         * EventLogPermissionAttribute.cs:
572         * PerformanceCounterPermissionAttribute.cs: adjust AllowMultiple
573         and Inherited to match .NET
574
575 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
576
577         * Process.cs: separate the command and the arguments when calling
578         Start_internal.
579
580 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
581
582         * Process.cs: redirecting I/O is not permitted if UseShellExecute is
583         true. Also throw if FileName is null.
584
585 2004-04-06  Lluis Sanchez Gual  <lluis@ximian.com>
586
587         * DiagnosticsConfigurationHandler.cs: If initializeData is provided,
588         use the constructor that only takes one string as parameter to
589         construct the listener. The name is set using the Name property, not the
590         constructor.
591         
592         * TextWriterTraceListener.cs: In Write*, do nothing if no writer was 
593         provided.
594
595 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
596
597         * Process.cs: use the ISynchronizeInvoke object to invoke the event.
598         Implemented Close, CloseMainWindow and Kill.
599
600 2004-03-23 Ben Maurer  <bmaurer@users.sourceforge.net>
601
602         * Switch.cs: Don't throw when there is no switches section.
603
604 2004-03-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
605
606         * Process.cs: support EnableRaisingEvents + Exited event.
607
608 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
609
610         * Process.cs: patch by Gert Driesen that fixes WaitForExit when the
611         timeout is int.MaxValue.
612
613 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
614
615         * Process.cs: added environment variables setting support and also
616         send useShellExecute to the runtime.
617
618         * ProcessStartInfo.cs: support EnvironmentVariables.  MS uses
619         StringDictionary, which turns keys into lowercase. We don't do that.
620
621 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
622
623         * Process.cs: ExitCode and ExitTime check that the process is finished.
624
625 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
626
627         * Process.cs: if there's an error when starting the process, the 'pid'
628         field contains the GetLastError code. Use that for the Win32Exception.
629
630 2003-12-06  Martin Baulig  <martin@ximian.com>
631
632         * DefaultTraceListener: Don't use `where' in variable names.
633
634 2003-11-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
635
636         * ICollectData.cs: Fixed signature
637
638 2003-11-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
639
640         * ICollectData.cs: Added missing attribute
641
642 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
643
644         * SRDescriptionAttribute.cs: Moved to System directory
645
646 2003-07-21  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
647
648         * EventLog.cs: Implementation handling
649         * EventLogImpl.cs: Added, contains an platform independent empty implementation
650         for EventLog
651
652 2003-07-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
653
654         * AlphabeticalEnumConverter.cs: Added
655         * EventLogEntry.cs: Implemented
656         * EventLogPermissionEntryCollection.cs: Fixed signature and implementation of indexer
657         * EventLogTraceListener.cs: Fixed signature
658         * PerformanceCounter.cs: Added missing attribute
659         * PerformanceCounterType.cs: Added missing attribute
660         * SRDescriptionAttribute.cs: Added and implemented
661
662 2003-07-17  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
663
664         * CounterCreationData.cs:
665         * EventLog.cs:
666         * EventLogEntry.cs:
667         * PerformanceCounter.cs:
668         * Process.cs:
669         * ProcessModule.cs:
670         * ProcessStartInfo.cs:
671         * ProcessThread.cs: Reworked attributes based on the new Consts scheme
672
673 2003-07-14  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
674
675         * PerformanceCounterCategory.cs: Fixed signatures
676
677 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
678
679         * PerformanceCounter.cs: Implemented or implementation added
680
681 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
682
683         * DiagnosticsConfigurationHandler.cs: Removed a never used variable
684         * EventLog.cs: Small update to prevent a warning
685         * EventLogPermission.cs: Implemented or implementation added
686         * EventLogPermissionAttribute.cs: Implemented or implementation added
687         * EventLogPermissionEntry.cs: Implemented or implementation added
688         * EventLogPermissionEntryCollection.cs: Implemented or implementation added
689         * EventLogTraceListener.cs: Implemented or implementation added
690         * PerformanceCounterManager.cs: Implemented or implementation added
691         * PerformanceCounterInstaller.cs: Made internal
692         * PerformanceCounterCategory.cs: Implemented few members
693         * PerformanceCounterPermission.cs: Implemented or implementation added
694         * PerformanceCounterPermissionAttribute.cs: Implemented or implementation added
695         * PerformanceCounterPermissionEntry.cs: Implemented or implementation added
696         * PerformanceCounterPermissionEntryCollection.cs: Implemented or implementation added
697         
698 2003-07-07  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
699
700         * EventLog.cs: Removed unneccesary attribute according to corecompare
701         * EventLogEntry.cs: Removed unneccesary attribute according to corecompare
702         * Process.cs: Removed unneccesary attributes according to corecompare, added attribute
703         * ProcessModule.cs: Removed unneccesary attribute according to corecompare
704         * ProcessStartInfo.cs: Removed unneccesary attribute according to corecompare
705         * ProcessThread.cs: Removed unneccesary attribute according to corecompare, fixed signature
706
707 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
708
709         * InstanceDataCollectionCollection.cs: Corrected wrong signature
710         * EventLog.cs: Missing attributes added, redirected some class members
711         * EventLogEntry.cs: Missing attributes added
712         * EventLogInstaller.cs: Made internal
713         
714 2003-07-02  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
715
716         * CounterCreationData.cs: Added missing attributes
717         * CounterSample.cs: Implemented missing rest, fixed signature
718         * CounterSampleCalculator.cs: Added private constructor, redirected function
719         * Process.cs: Added attributes, added event mechanism
720         * ProcessModule.cs: Added missing attributes
721         * ProcessModuleCollection.cs: Redone using the already inherited-from ArrayList. Simplifies this a LOT
722         * ProcessStartInfo.cs: Added missing attributes, moved internal fields to the begining of the file, restyling
723         * ProcessThread.cs: Added missing attributes, added pseudo constructor
724         * ProcessThreadCollection.cs: Implemented
725         * PerformanceCounterPermission.cs: Fixed typo in class name
726         * PerformanceCounterPermissionAccess.cs: Added attributes, fixed wrong member
727         
728 2003-03-19  Dick Porter  <dick@ximian.com>
729
730         * Process.cs: Implement HasExited, fixes bug 39267
731
732 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
733
734         * Process.cs: throw an exception when the executable cannot be found.
735
736 2002-12-20  Jonathan Pryor <jonpryor@vt.edu>
737         * DiagnosticsConfigurationHandler.cs: 
738           - Don't assume that optional attributes are always present
739           - <assert/> can't have any child nodes
740           - Change in semantics: if the attribute isn't present,
741             GetAttribute() returns null, not "".  This allows us to
742             differentiate between an attribute not being present and an
743             attribute with an empty value.
744           - Translate exceptions if a TraceListener type is invalid
745
746 2002-12-19  Jonathan Pryor <jonpryor@vt.edu>
747         * TraceListenerCollection.cs: IndentLevel and IndentSize shouldn't be 
748           hardcoded; they should be set to whatever TraceImpl is using (which
749           in turn may have been set by the .config file, so we should get the
750           user-specified values in added listeners).
751         * TraceListener.cs: Make sure that indents are initially written.  This 
752           allows code that uses Trace.Indent() before a Trace.WriteLine() to be 
753           indented properly.
754         * TraceImpl.cs: provide a static constructor to explicitly specify the
755           ordering of initialization, in particular the ordering of
756           TraceImpl.Listeners and the reading of the .config file (by
757           accessing DiagnosticsConfiguration.Settings).  This (hopefully)
758           ensures that the Listeners collection is initialized before the
759           .config file is read in, as the DiagnosticsConfigurationHandler will
760           directly modify the listeners collection.
761           The DiagnosticsConfigurationHandler assumes this so that it can
762           <add/> and <remove/> trace listeners and set the logfile for the
763           DefaultTraceListener.
764
765
766 2002-12-18  Jonathan Pryor <jonpryor@vt.edu>
767         * BooleanSwitch.cs: Complete re-write.  It works now.
768         * DefaultTraceListener.cs:
769           - Use `const' strings, so I don't worry about copy/paste errors
770           - Give `AssertUiEnabled' an actual backing member
771         * DiagnosticsConfigurationHandler.cs: To avoid race conditions, let the
772           configuration handler set .config-specified properties on
773           DefaultTraceListener (AssertUiEnabled, LogFileName) and TraceImpl
774           (AutoFlush, IndentSize).
775         * Switch.cs: Near complete re-write.  Actually works, and is (should be)
776           comformant with .NET behavior.  Changed member names because they
777           were confusing me.  (Yes, that doesn't say much about my memory.)
778         * TextWriterTraceListener.cs: Append text to already existing files,
779           don't overwrite them.
780         * TraceImpl.cs:
781           - Added private destructor, to ensure no instances are created.
782           - Move members declarations to be closer to each other.
783         * TraceSwitch.cs: Complete re-write.  It works now.
784
785 2002-12-17  Jonathan Pryor <jonpryor@vt.edu>
786         * DiagnosticsConfigurationHandler.cs: Implement so that .config files
787         support <system.diagnostics> sections.
788
789 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
790
791         * DefaultTraceListener.cs: now OutputDebugStringW is called from an
792         internal call (update your runtime!). No more warnings in linux.
793
794 2002-10-31  Dick Porter  <dick@ximian.com>
795
796         * Process.cs: MonoIO methods now have an error parameter
797
798 2002-10-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
799
800         * DefaultTraceListener.cs: changed OutputDebugString to
801         OutputDebugStringW (no more warnings under windows). Also a few style
802         fixes.
803
804 2002-10-23  Dick Porter  <dick@ximian.com>
805
806         * Process.cs: Redirected standard input needs to have AutoFlush set
807
808 2002-09-27  Dick Porter  <dick@ximian.com>
809
810         * Process.cs: Implemented {get_,set_}{Min,Max}WorkingSet,
811         ProcessName, GetProcessById, GetProcesses, GetProcessesByName.
812         Pass the working directory to Start.  Pass the program and args in
813         one string to be used with the second arg of CreateProcess, so it
814         will search the path.
815
816 2002-09-19  Nick Drochak <ndrochak@gol.com>
817
818         * TraceImpl.cs: Remove debug prints
819
820 2002-09-19  Nick Drochak <ndrochak@gol.com>
821
822         * TraceListenerCollection.cs: Set Indet level and size to default 
823         values.  The values from TraceImpl might have been changed.
824
825 2002-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
826
827         * Process.cs:
828         * TextWriterTraceListener.cs: IDisposable fixes.
829
830 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
831
832         * Process.cs: class status based fixes.
833
834 2002-07-20  Dick Porter  <dick@ximian.com>
835
836         * Process.cs: Implement file handle redirection
837
838 2002-07-13  Jonathan Pryor <jonpryor@vt.edu>
839         * CounterCreationData.cs: Implemented
840         * CounterCreationDataCollection.cs: Implemented
841         * CounterSample.cs: Stubbed Out
842         * CounterSampleCalculator.cs: Stubbed Out
843         * InstanceData.cs: Implemented
844         * InstanceDataCollection.cs: Implemented
845         * InstanceDataCollectionCollection.cs: Implemented
846         * MonitoringDescriptionAttribute.cs: Implemented
847         * PerformanceCounter.cs: Stubbed Out
848         * PerformanceCounterCategory.cs: Stubbed Out
849         * PerformanceCounterInstaller.cs: Stubbed Out
850         * PerformanceCounterManager.cs: Stubbed Out
851         * PerformanceCounterPermission.cs: Stubbed Out
852         * PerformanceCounterPermissionAccess.cs: Implemented
853         * PerformanceCounterPermissionAttribute.cs: Stubbed Out
854         * PerformanceCounterPermissionEntry.cs: Stubbed Out
855         * PerformanceCounterPermissionEntryCollection.cs: Implemented
856         * PerformanceCounterType.cs: Implemented
857
858
859 2002-06-25  Dick Porter  <dick@ximian.com>
860
861         * Process.cs: Process forking and waiting, and some support functions
862
863         * ProcessStartInfo.cs: Implemented the bits needed for basic
864         Process forking
865
866         * ProcessModule.cs: Implemented
867
868         * ProcessModuleCollection.cs: Mostly implemented
869
870         * FileVersionInfo.cs: Implemented
871
872 2002-06-16  Jonathan Pryor <jonpryor@vt.edu>
873         * ICollectData.cs: Implemented
874         * TraceImpl.cs: Setting IndentLevel, IndentSize should change the
875                 corresponding properties on all current TraceListeners.
876                 Also, to answer the FIXME message: Yes, the properties in TraceListener
877                 need to be [ThreadStatic] as well.
878         * TraceListenerCollection.cs: When adding a TraceListener, the TraceListener
879                 should have its properties set to the current TraceImpl property values.
880         * TraceListener.cs: Make indentSize, lndentLevel [ThreadStatic].
881
882 2002-06-09  Jonathan Pryor <jonpryor@vt.edu>
883         * EntryWrittenEventArgs.cs: Implemented
884         * EntryWrittenEventHandler.cs: Implemented
885         * EventLog.cs: Stubbed out
886         * EventLogEntry.cs: Stubbed out
887         * EventLogEntryCOllection.cs: Implemented.
888         * EventLogEntryType.cs: Implemented
889         * EventLogInstaller.cs: Stubbed out
890         * EventLogPermission.cs: Stubbed out
891         * EventLogPermissionAccess.cs: Implemented
892         * EventLogPermissionAttribute.cs: Stubbed out
893         * EventLogPermissionEntry.cs: Stubbed out
894         * EventLogPermissionEntryCollection.cs: Stubbed out
895         * EventLogTraceListener.cs: Stubbed out
896
897 2002-05-29  Jonathan Pryor <jonpryor@vt.edu>
898   * DefaultTraceListener.cs: Implemented MONO_TRACE support
899
900 2002-05-27  Jonathan Pryor <jonpryor@vt.edu>
901   * Moved public API documentation for the following files to the
902     /mcs/docs/apidocs/xml/en/System.Diagnostics directory:
903     - Debug.cs
904     - DefaultTraceListener.cs
905     - DiagnosticsConfigurationHandler.cs
906     - Switch.cs
907     - TextWriterTraceListener.cs
908     - Trace.cs
909     - TraceLevel.cs
910     - TraceListener.cs
911     - TraceListenerCollection.cs
912     - TraceSwitch.cs
913
914 2002-04-10  Jonathan Pryor <jonpryor@vt.edu>
915
916         * TraceListenerCollection.cs: Corrected indexer property to provide the
917                 correct return value and implement the IList indexer property correctly.
918
919 2002-04-07  Jonathan Pryor <jonpryor@vt.edu>
920
921         * TraceListener.cs: Fix stack overflow bug
922         * DefaultTraceListener.cs: Implement log file support
923
924 2002-04-04  Dick Porter  <dick@ximian.com>
925
926         * ThreadWaitReason.cs:
927         * ThreadState.cs:
928         * ThreadPriorityLevel.cs:
929         * ProcessWindowStyle.cs:
930         * ProcessThreadCollection.cs
931         * ProcessThread.cs:
932         * ProcessStartInfo.cs:
933         * ProcessModuleCollection.cs: Stub out more classes needed for Process
934
935 2002-03-31  Dick Porter  <dick@ximian.com>
936
937         * Process.cs: 
938         * ProcessPriorityClass.cs: 
939         * ProcessModule.cs: 
940         * FileVersionInfo.cs: Stub out classes needed for Process
941
942 2002-03-08  Jonathan Pryor <jonpryor@vt.edu>
943
944         * Debug.cs: Clean up (lots of code can be shared with Trace.cs, which 
945                 is why TraceImpl.cs is introduced), "DEBUG" conditional support
946         * TraceListener.cs: Proper implementation of Dispose pattern;
947                 implementatino of non-abstract methods in terms of abstract methods
948         * TraceListenerCollection.cs: check 'object' types before adding
949         * TextWriterTraceListener.cs: properly implement Dispose pattern;
950                 handle NeedIndent and WriteIndent
951         * Trace.cs: new file; provides Trace functionality, "TRACE" conditional
952                 support
953         * DefaultTraceListener.cs: new file; the default trace listener
954
955 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
956         * TraceListenerCollection.cs: Remove Warnings.
957
958 2002-01-06  Ravi Pratap  <ravi@ximian.com>
959         * Switch.cs, TraceListenerCollection.cs : Decorate incomplete bits
960         with the MonoTODO attribute.
961
962 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
963         * Added Debug.cs to the build.
964
965 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
966         * Added preliminary TraceListenerCollection.cs to the build.
967
968 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
969         * Added TraceListener.cs, TextWriterTraceListener.cs, and
970         DefaultTraceListener.cs to the build and moved them into the
971         proper assembly.
972
973 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
974         * Added DiagnosticsConfigurationHandler.cs to the build.
975
976 2001-09-09  Nick Drochak <ndrochak@gol.com>
977         * BooleanSwitch.cs: Make this class use it's parent class's features.  Namely, use SwitchSetting
978         so that we can get OnSwitchSettingChanged() to fire for free.
979
980 2001-09-09  Nick Drochak <ndrochak@gol.com>
981         * ChangeLog: added this file
982         * Switch.cs: call OnSwitchSettingChanged() when the switch setting is, yes you gessed it, changed.