copied mono-api-diff.cs from mono-2-2 branch so new patch can be applied and history...
[mono.git] / mcs / class / System.Configuration / System.Configuration / ChangeLog
1 2010-01-09  Marek Habersack  <mhabersack@novell.com>
2
3         * ConfigurationLocation.cs: trailing / characters are removed from
4         the path.
5
6         * Configuration.cs: instances created for locations inherit
7         ConfigPath from their containing document.
8         Host.GetConfigPathFromLocationSubPath must be called with current
9         instance's configPath, not LocationConfigPath.
10         Locations are sought for using paths relative to the current
11         instance's configPath, not to the root path.
12         All of the above is part of fix for bug #568441
13
14 2009-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15
16         * SectionInformation.cs: ConfigSource should never be null, but empty.
17         Also, the Type property should throw an argument exception if the
18         new value is null or empty.
19         Fixes #458185.
20
21 2009-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
22
23         * Configuration.cs: make this work again with bundled configuration
24         files. Fixes bug #495957. Patch from Tor Lillqvist.
25
26 2009-07-17 Gonzalo Paniagua Javier <gonzalo@novell.com>
27
28         * ConfigurationElement.cs: don't skip xml nodes when reading 2
29         ConfigurationElement in a row. Patch by Greg Smolyn that fixes bug
30         #521231.
31
32 2009-07-15  Marek Habersack  <mhabersack@novell.com>
33
34         * Configuration.cs: explicitly flush the stream when writing XML
35         data. Part of fix for bug #522017
36
37 2009-07-14  Marek Habersack  <mhabersack@novell.com>
38
39         * ConfigurationSaveEventArgs.cs, ConfigurationSaveEventHandler.cs:
40         added
41
42         * Configuration.cs: added two internal events - SaveStart and
43         SaveEnd. They are used by System.Web's configuration system to
44         suppress application reloads when configuration is modified and
45         saved from within a web application. It is necessary to use events
46         since there is no guarantee the web application will use
47         WebConfigurationManager (and thus WebConfigurationHost) for
48         writing.
49
50 2009-06-08  Marek Habersack  <mhabersack@novell.com>
51
52         * ConfigurationLocation.cs: if the path passed to constructor
53         starts with any of ' ' '.' '/' or '\', throw an exception. Fixes
54         bug #510735
55
56 2008-12-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
57
58         * Configuration.cs: don't try to open the file if we know it does not
59         exist. Also, don't hide the actual exception in case there's a problem
60         opening the configuration file.
61
62 2008-11-15 Gonzalo Paniagua Javier <gonzalo@novell.com>
63
64         * ConfigurationManager.cs: the config file name is arbitrary.
65         (Standalone test t46)
66
67 2008-11-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
68
69         * ConfigurationManager.cs: when we're dealing with an EXE hosted
70         application, the configuration file is the one for the AppDomain,
71         otherwise we might try to get a config file for a dll. Fixes the
72         regression in 2.0 sys.config.
73
74 2008-07-09  Marek Habersack  <mhabersack@novell.com>
75
76         * ConfigurationManager.cs: implemented a work-around for
77         OpenExeConfiguration ("") not working with ASP.NET apps properly.
78
79 2008-07-07  Rodrigo Kumpera  <rkumpera@novell.com>
80
81         * ConfigurationManager.cs: Return the right path if the calling assembly is
82         not null. This happens when ConfigurationSession::GetRuntimeObject() is
83         called, SectionHandler != null and the handler itself calls
84         OpenExeConfigurationInternal ("").
85
86 2008-07-07  Rodrigo Kumpera  <rkumpera@novell.com>
87
88         * ClientConfigurationSystem.cs:
89         * ConfigurationManager.cs: Reaply the patch from Gert.
90         This change doesn't contain any fix to to not clutter
91         the commit history.
92
93 2008-07-07  Rodrigo Kumpera  <rkumpera@novell.com>
94
95         * ClientConfigurationSystem.cs:
96         * ConfigurationManager.cs: The previous patch since it
97         causes a regression. It will remain reverted until we figure
98         out what's wrong and how to fix it.
99
100 2008-07-02  Gert Driesen  <drieseng@users.sourceforge.net>
101
102         * ClientConfigurationSystem.cs: Moved logic for defaulting to
103         configuration file of AppDomain to OpenExeConfigurationInternal.
104         * ConfigurationManager.cs (OpenExeConfigurationInternal):
105         Allow calling_assembly and exePath to be null. When userLevel is None,
106         default to configuration file of AppDomain if exePath is null or empty.
107         When exePath is specified, resolve it to absolute path and throw
108         ConfigurationErrorsException if exePath does not exist and add
109         .config extension to get config file name if exePath does exist.
110
111 2008-06-27  Atsushi Enomoto  <atsushi@ximian.com>
112
113         * SectionInfo.cs, Configuration.cs, ConfigInfo.cs,
114           SectionGroupInfo.cs :
115           eliminate XmlTextReader, first stage.
116
117 2008-06-27  Atsushi Enomoto  <atsushi@ximian.com>
118
119         * ConfigurationErrorsException.cs : recover from
120           silly change that tries to prevent debuggin by
121           decreasing error location information.
122
123 2008-06-26  Gert Driesen  <drieseng@users.sourceforge.net>
124
125         * ConfigurationElement.cs: Use ConfigurationErrorsException instead of
126         ConfigurationException, and pass reader to ConfigurationErrorsException
127         ctor to allow for file/linenumber info in exception message.
128         * ConfigurationErrorsException.cs: Removed local bareMessage field, and
129         use base.BareMessage field instead. Fixed Message property to only add
130         filename if not null or zero-length string, and only add line if not
131         zero. In GetFilename/GetLineNumber overloads, only try to get info if
132         node/reader implements IConfigErrorInfo.
133         * ConfigurationSection.cs: Use ConfigXmlTextReader instead of
134         XmlTextReader to allow for file/linenumber info in exception messages.
135         * ConfigXmlTextReader.cs: Added XmlTextReader that implements
136         IConfigErrorInfo.
137         * ConfigurationLocation.cs: Use ConfigXmlTextReader instead of
138         XmlTextReader to allow for file/linenumber info in exception messages.
139         * ClientConfigurationSystem.cs: Perform lazy initialization and
140         wrap exceptions in ConfigurationErrorsException. Fixes standalone test
141         t28.
142         * Configuration.cs: Use ConfigXmlTextReader instead of XmlTextReader
143         to allow for file/linenumber info in exception messages.
144         * ConfigInfo.cs: Fixed ThrowException to use file/number info available
145         in XmlTextReader for exception message.
146         * AppSettingsSection.cs: Use ConfigXmlTextReader instead of
147         XmlTextReader to allow for file/linenumber info in exception messages.
148
149 2008-06-19  Jb Evain  <jbevain@novell.com>
150
151         * ConfigurationPermissionAttribute.cs (CreatePermission): implement.
152
153 2008-05-28  Marek Habersack  <mhabersack@novell.com>
154
155         * Configuration.cs: set the ConfigContext when getting
156         and instance of a section. Fix for bug #325128.
157
158         * ConfigurationSection.cs: added an internal property -
159         ConfigContext used to supply the HttpContext to the Create
160         method of SectionHandler when called from GetRuntimeObject.
161         Fix for bug #325128.
162
163         * InternalConfiguationHost.cs: changed CreateDeprecatedConfigContext
164         to return null rather than throwing a NotImplementedException.
165         Fix for bug #325128.
166
167         * All patches above contributed by James Fitzsimons <james.fitzsimons@gmail.com>,
168           thanks!
169
170 2008-05-18  Sebastien Pouliot  <sebastien@ximian.com>
171
172         * SectionGroupInfo.cs: Use String.IsNullOrEmpty inside 2.0 code.
173         [Found using Gendarme]
174
175 2008-05-11  Roei Erez  <roeie@mainsoft.com>
176
177         * SectionGroupInfo.cs: fix loading a SectionGroup without sections as childern.
178
179 2008-05-05  Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
180
181         * ConfigurationElement.cs: don't fail when a mandatory property is a
182         configuration element itself.
183
184 2008-04-30  Marek Habersack  <mhabersack@novell.com>
185
186         * ConfigurationElement.cs: HasLocalModifications considers a
187         property modifed locally if its origin is SetHere and it's been
188         marked as modified.
189
190 2008-03-20  Igor Zelmanovich  <igorz@mainsoft.com>
191
192         * Configuration.cs:
193         * ConfigurationElement.cs:
194         implement EvaluationContext property.           
195
196 2008-03-01  Marek Habersack  <mhabersack@novell.com>
197
198         * SectionInformation.cs: added an internal property -
199         ConfigFilePath, used when deserializing a section in
200         ConfigurationSection.GetRuntimeObject.
201
202         * Configuration.cs: set SectionInformation.ConfigFilePath when
203         getting an instance of a section.
204
205         * ConfigurationSection.cs: support the 'configSource' attribute
206         when section is read through GetRuntimeObject.
207
208 2008-02-21  Marek Habersack  <mhabersack@novell.com>
209
210         * Configuration.cs: if the section being deserialized uses the
211         configSource attribute, call the section's DeserializeConfigSource
212         method.
213
214         * SectionInfo.cs: WriteData takes care of writing the section data
215         to the configSource file, if any.
216
217         * ConfigurationSection.cs: moved reading of the configSource
218         external data file to a separate internal method,
219         DeserializeConfigSource. Section's source config file path is now
220         used to find the configSource.
221         SerializeSection now doesn't write the section content to the
222         passed writer if configSource was used. Writing of the section
223         data is now done in SectionInfo.
224
225         * ConfigurationElement.cs: added a new method -
226         HasLocalModifications which returns true of any of the element
227         properties have been set locally on that element.
228
229 2008-02-20  Marek Habersack  <mhabersack@novell.com>
230
231         * ConfigurationSection.cs: support the "configSource" attribute
232         when deserializing a section. Contents of the file (if it exists)
233         replaces the previous section contents.
234
235         * ConfigurationElement.cs: ignore the "configSource" attribute if we're a
236         ConfigurationSection instance.
237         HasValues () returns true only if any of the properties has the
238         origin set to SetHere.
239
240 2008-02-07  Konstantin Triger <kostat@mainsoft.com>
241
242         * ClientConfigurationSystem.cs: performance: refactor out the Configuration
243                 object construction from GetSection() to the ctor.
244
245 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
246
247         * ConfigurationElement.cs: Allow non-public constructors. Fixes #353554.
248
249         * PropertyInformation.cs: Allow non-public constructors. Fixes #353557.
250
251         * ConfigurationElement.cs: Consider non-public properties as well. Fixes
252         #353553.
253
254 2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>
255
256         * ConfigurationLocationCollection.cs: Avoid infinite recursion. 
257         Found using Gendarme.
258
259 2007-12-25  Konstantin Triger <kostat@mainsoft.com>
260
261         * KeyValueInternalCollection.cs: properly override NameValueCollection
262                 to support interop with it.
263
264 2007-12-25  Konstantin Triger <kostat@mainsoft.com>
265
266         * ConfigurationElement.cs:
267                 1. typo - pass the correct property to Attribute.GetCustomAttribute.
268                 2. Pass oroginal exception as inner.
269
270 2007-12-05  Marek Habersack  <mhabersack@novell.com>
271
272         * ConfigurationElement.cs: some property values may be null
273         objects in GetHashCode.
274
275 2007-11-23  Marek Habersack  <mhabersack@novell.com>
276
277         * ConfigurationElementCollection.cs: ThrowOnDuplicate returns true
278         if the collection is one of the AddRemoveClearMap or
279         AddRemoveClearMapAlternate types.
280
281 2007-11-15  Atsushi Enomoto  <atsushi@ximian.com>
282
283         Part of fix for bug #323708.
284         * ConfigurationSection.cs : in GetRuntimeObject(), take parent
285           section instance into consideration.
286         * SectionInformation.cs : to make it possible, GetParentSection()
287           should be implemented.
288         * Configuration.cs : to make it possible, GetSectionInstance()
289           should set parent section on its SectionInformation. It used to
290           just steal parent's xml when its own xml does not exist, but
291           it now blocks correct configuration retrieval.
292
293 2007-11-15  Atsushi Enomoto  <atsushi@ximian.com>
294
295         * SectionGroupInfo.cs : remove extra StringBuilder creation.
296
297 2007-11-14  Atsushi Enomoto  <atsushi@ximian.com>
298
299         * Configuration.cs : (Save) when the given file path is relative
300           it failed to create directory. Fixed standalone test t25/t26.
301         * InternalConfigurationHost.cs : pass userLevel to create a host
302           instance.
303
304 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
305
306         * InternalConfigurationHost.cs : when the streamName is for
307           machine.config, try get_bundled_machine_config() icall first.
308           This hopefully implements the requested feature in bug #325022.
309         * Configuration.cs : added comment.
310
311 2007-08-31  Gert Driesen  <drieseng@users.sourceforge.net>
312
313         * ConfigurationManager.cs: Fixed line endings. Avoid warning by
314         changing accessibility of ChangeConfigurationSystem to internal.
315         * Configuration.cs: Fixed compiler warnings.
316         * DpapiProtectedConfigurationProvider.cs: Fixed line endings.
317
318 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
319
320         * ConfigurationManager.cs : To open exe configuration, use 
321           GetEntryAssembly() first, and GetCallingAssembly() only when
322           it was not found. Should fix bug #82071.
323
324 2007-06-21  Atsushi Enomoto  <atsushi@ximian.com>
325
326         * Configuration.cs, InternalConfigurationHost.cs :
327           configuration file to write might be given as an absolute path,
328           where the ancestor directories may not exist.
329
330 2007-06-20  Atsushi Enomoto  <atsushi@ximian.com>
331
332         * ConfigurationManager.cs : in OpenExeConfiguration() and
333           OpenMappedExeConfiguration(), take userLevel into consideration.
334         * InternalConfigurationHost.cs : consider ConfigurationUserLevel and
335           use correct config map file in InitForConfiguration().
336
337 2007-06-18  Atsushi Enomoto  <atsushi@ximian.com>
338
339         * ClientConfigurationSystem.cs : do not asume GetEntryAssembly()
340           returns non-null. Patch by Patrick Perry.
341
342 2007-06-13  Atsushi Enomoto  <atsushi@ximian.com>
343
344         * ConfigurationElement.cs : SerializeToXmlElement() should be
345           called regardless of HasValues() return value, especially since
346           it could be overriden (e.g. in SettingsValueElement).
347
348 2007-06-13  Atsushi Enomoto  <atsushi@ximian.com>
349
350         * ConfigurationSectionGroup.cs
351           Configuration.cs : ConfigurationSectionGroup must be initialized
352           at least when being added to a collection.
353
354 2007-06-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
355
356         * ConfigurationElement.cs: refactored GetKeyProperties and
357         GetDefaultCollection methods, map should not be used here, Properties
358         will do instead. Refactored ElementMap class
359         * ConfigurationElementCollection.cs: fixed InitFromProperty, GetMap()
360         should not be called here
361         * ElementInformation.cs: fixed Properties, moved to ctor to be thread
362         safe
363         * PropertyInformation.cs: members assigned readonly modifier
364
365 2007-05-30  Marek Habersack  <mhabersack@novell.com>
366
367         * SectionGroupInfo.cs: <location> elements are case-insensitive
368         and the same 'path' attribute may be used only once.
369
370         * ConfigurationLocationCollection.cs: Find should be
371         case-insensitive for all targets, not just TARGET_JVM.
372
373 2007-05-17 Igor Zelmanovich <igorz@mainsoft.com>
374
375         * Configuration.cs: FilePath implemented according to MSDN:
376         If the value for this FilePath property represents a merged view and 
377         no actual file exists for the application, the path to the parent 
378         configuration file is returned.
379
380 2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
381
382         * Configuration.cs:
383         * ConfigurationLocation.cs:
384         implemented EvaluationContext property.         
385
386 2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
387
388         * ConfigurationLocationCollection.cs: for TARGET_JVM only:
389         location path is case-insensitive.
390                 
391 2007-05-15  Marek Habersack  <mhabersack@novell.com>
392
393         * ConfigurationElement.cs: added value validation on
394         deserialization from the config file.
395
396 2007-05-14 Igor Zelmanovich <igorz@mainsoft.com>
397
398         * ConfigurationElement.cs: when attribute value cannot be parsed,
399         ConfigurationErrorException is thrown.
400                 
401 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
402
403         * ConfigurationManager.cs:
404         added MonoLimitation attribute for TARGATE_JVM. 
405                 
406 2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
407
408         * ConnectionStringSettingsCollection.cs: removed 'new' keyword, cause 
409         property doesn't hide any inherit property.
410
411 2007-04-24  Atsushi Enomoto  <atsushi@ximian.com>
412
413         * InternalConfigurationHost.cs : machine configuration covers all
414           ConfigurationAllowDefinition values.
415
416 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
417
418         * ConfigurationSectionCollection.cs : GetEnumerator() should return
419           IEnumerator for the items, not keys.
420         * ConfigurationProperty.cs : more helpful type mismatch message.
421
422 2007-04-16  Marek Habersack  <mhabersack@novell.com>
423
424         * SectionGroupInfo.cs: another (and final, hopefully) fix for bug
425         #81321 and several other related issues that were discovered by
426         the way. Thanks to Atsushi for help with XmlReader!
427
428 2007-04-15  Marek Habersack  <mhabersack@novell.com>
429
430         * SectionGroupInfo.cs: another incarnation of the fix for bug
431         #81321.
432
433 2007-04-12  Marek Habersack  <mhabersack@novell.com>
434
435         * SectionGroupInfo.cs: a better fix for #81321
436
437 2007-04-10  Marek Habersack  <mhabersack@novell.com>
438
439         * SectionGroupInfo.cs: make sure empty sections with the
440         short-circuit tag ends (<section/>) don't make the process loop
441         endlessly. Fixes bug #81321.
442
443 2007-03-22  Konstantin Triger <kostat@mainsoft.com>
444
445         * ConfigInfo.cs: should be able instantiate types with private ctors.
446
447 2007-03-19  Vladimir Krasnov  <vladimirk@mainsoft.com>
448
449         * ConfigurationSectionCollection.cs,
450         * ConfigurationSectionGroupCollection.cs,
451         * PropertyInformationCollection.cs, 
452         * SectionGroupInfo.cs: used StringComparer.Ordinal instead of
453         OrdinalComparer
454
455 2007-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
456
457         * ConfigurationSectionCollection.cs,
458         * ConfigurationSectionGroupCollection.cs,
459         * PropertyInformationCollection.cs, 
460         * SectionGroupInfo.cs: these collections should be based on case
461         insensitive NameObjectCollectionBase
462         * added OrdinalComparer.cs for use in NameObjectCollectionBase
463
464 2007-02-07  Atsushi Enomoto  <atsushi@ximian.com>
465
466         * SectionInfo.cs : don't stop at restartOnExternalChanges attribute.
467
468 2007-01-16  Konstantin Triger <kostat@mainsoft.com>
469
470         * ConfigurationElement.cs: ignore properties with null or empty name.
471
472 2007-01-16  Konstantin Triger <kostat@mainsoft.com>
473
474         * ConfigurationElement.cs: Try to deserilalize an unrecognized element by
475                 current element, and only if failed delegate to default collection.
476
477 2006-12-27  Vladimir Krasnov  <vladimirk@mainsoft.com>
478
479         * ConfigurationElementCollection.cs: fixed BaseAdd, looking for
480         identical element when collection type is not alternate
481
482 2006-12-27  Vladimir Krasnov  <vladimirk@mainsoft.com>
483
484         * ConnectionStringSettingsCollection.cs: made connection string key
485         case insensitive
486
487 2006-12-27  Atsushi Enomoto  <atsushi@ximian.com>
488
489         * ConfigurationElementCollection.cs : fixed BaseAdd() with
490           throwIfExists to not raise an error for identical element
491           but for different element which shares the same key. Fix by
492           Konstantin Triger.
493
494 2006-12-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
495
496         * ConfigurationProperty.cs: fixed DefaultValue of type Enum
497
498 2006-12-10  Konstantin Triger <kostat@mainsoft.com>
499
500         * ConfigurationElement.cs: Delegate parameter checking and default
501                 assigning to Configuratin property.
502         * ConfigurationProperty.cs:
503                 Ensure the TypeConvert and Validator always exist.
504                 Ensure the primitive types are properly initialized.
505
506 2006-12-09  Vladimir Krasnov  <vladimirk@mainsoft.com>
507
508         * ConfigurationElementCollection.cs
509         * ConfigurationRemoveElement.cs: fixed key for <remove> element in
510         ConfigurationRemoveElement class
511
512 2006-11-28  Marek Habersack  <grendello@gmail.com>
513
514         * SectionGroupInfo.cs: Implement merging of section groups with
515         the same names and parents.
516
517         * ConfigInfo.cs: Add an abstract method for merging sections.
518
519         * SectionInfo.cs: Add implementation of an abstract base method
520
521 2006-08-23  Konstantin Triger <kostat@mainsoft.com>
522
523         * SectionInfo.cs: refactoring - remove unneeded bool? usage.
524         
525 2006-11-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
526
527         * added: ConfigurationRemoveElement.cs, common element for <remove>
528         * ConnectionStringSettingsCollection.cs: reverted last fix for
529         <remove> element
530         * ConfigurationElementCollection.cs: fixed the way that
531         OnDeserializeUnrecognizedElement method handles <remove> element
532
533 2006-11-02  Vladimir Krasnov  <vladimirk@mainsoft.com>
534
535         * ConfigurationElement.cs: typo in DefaultCollectionProperty
536         method
537
538 2006-10-30  Joel Reed <joel.reed@ddiworld.com>
539
540         * NameValueConfigurationCollection.cs: Implement the Properties
541         property. 
542
543 2006-08-23  Konstantin Triger <kostat@mainsoft.com>
544
545         * ConfigurationLocation.cs: do not read root element, correctly close stream.
546         * Configuration.cs: use ReadData for nested content to throw if location
547                 elements are encounterd.
548                 In constructor taking parent Configurqation: do not call Init and so avoid
549                 rereading config file.
550
551 2006-09-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
552
553         * NameValueConfigurationElement.cs: fixed functionality
554         * ConfigurationElementCollection.cs,
555         ConnectionStringSettingsCollection.cs: fixed <remove> element in
556         connectionStrings section
557
558 2006-08-23  Konstantin Triger <kostat@mainsoft.com>
559
560         * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
561                 RawXml is null, as net 1.1 does.
562
563 2006-08-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
564
565         * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
566         in grasshopper
567
568 2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>
569
570         * ConfigurationManager.cs : OpenExeConfiguration(null) should still
571           work. This is required for embedded scenario.
572
573 2006-06-10  Atsushi Enomoto  <atsushi@ximian.com>
574
575         * SectionGroupInfo.cs : skip <dllmap> in configuration.
576
577 2006-05-14  Atsushi Enomoto  <atsushi@ximian.com>
578
579         * ConfigurationManager.cs: since ConfigurationSystem is different
580           for web.config, cast from ConfigurationSection to runtime object
581           should be done at GetSection().
582           This really fixed bug #78372.
583
584 2006-05-12  Atsushi Enomoto  <atsushi@ximian.com>
585
586         * Configuration.cs : configPath is null for machine.config, so don't
587           use it. Use streamName instead. To my understanding, this should
588           fix bug #78372.
589
590 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
591
592         * ConnectionStringSettings.cs : it seems that "name" property
593           could be null i.e. there is no StringValidator.
594         * StringValidator.cs : allow null.
595
596 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
597
598         * ConfigurationManager.cs : use GetCallingAssembly() instead of
599           GetEntryAssembly() which possibly returns null (e.g. nunit) in
600           OpenExeConfiguration(). Several nunit test failures are gone.
601
602 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
603
604         * ConnectionStringSettings.cs : oops, this API fix broke standalone
605           test.
606
607 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
608
609         * ConfigurationElement.cs,
610           ConfigurationErrorsException.cs,
611           ConfigurationUserLevel.cs,
612           ConfigurationPropertyOptions.cs,
613           ConnectionStringSettings.cs : assorted minor corcompare fixes.
614
615 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
616
617         * Configuration.cs : some kind of refactoring is absolutely needed
618           here. Reuse RawXml from parentSection when data was not available
619           on current section. This should fix bug #78353.
620
621 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
622
623         * ConfigurationElement.cs,
624           DefaultSection.cs :
625           in some cases RawXml was set null string, so skip such cases.
626         * Configuration.cs : support IConfigurationSectionHandler here.
627         * ConfigurationManager.cs : GetSection() now returns name value
628           collection, not a section.
629         * ConfigurationSection.cs : added SectionHandler for
630           IConfigurationSectionHandler support, and use its Create() in
631           GetRuntimeObject().
632         * ClientConfigurationSystem.cs :
633           use GetRuntimeObject() in GetSection(). Thus now
634           ConfigurationManager.GetSection() returns a runtime object.
635           Fixed bug #78337.
636
637 2006-04-28  Atsushi Enomoto  <atsushi@ximian.com>
638
639         * SectionGroupInfo.cs :
640           sections which are defined in sectionGroups could be directly
641           referenced, so search corresponding section recursively.
642         * DefaultSection.cs : It does not reject unrecognized contents.
643
644 2006-04-26  Chris Toshok  <toshok@ximian.com>
645
646         * SectionInformation.cs (.ctor): add MonoTODO about the default
647         value for require_permission.
648         (RequirePermission): implement the getter/setter for this so
649         Atsushi's previous commit doesn't break everything :)
650
651 2006-04-26  Atsushi Enomoto  <atsushi@ximian.com>
652
653         * Configuration.cs,
654           SectionInfo.cs : added support for "requirePermission" attribute
655           in "section" element. This fixes bug #77957.
656
657 2006-04-25  Chris Toshok  <toshok@ximian.com>
658
659         * ConfigurationElementCollection.cs (Reset): it makes no sense to
660         pass the typename to CreateNewElementInternal.  the argument is
661         the elementname. pass null instead.
662         (Unmerge): same.
663
664 2006-02-01  Atsushi Enomoto  <atsushi@ximian.com>
665
666         * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
667           are protected.
668         * ConfigurationSection.cs : the .ctor() is protected.
669         * ConfigurationElementCollection.cs : CollectionType is public.
670           Count and BaseAdd() are not virtual.
671         * ConfigurationPropertyCollection.cs : Count is not virtual.
672
673 2006-02-01  Chris Toshok  <toshok@ximian.com>
674
675         * ConfigurationElement.cs: revert the patch that stores and writes
676         out xmlns attributes for all elements.
677
678         * ClientConfigurationSystem.cs: SupportsUserConfig == false.
679
680         * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
681         only if SupportsUserConfig != true.
682
683         * ConfigurationManager.cs (ConfigurationSystem): add a property
684         like ConfigurationFactory, and use it instead of the private field
685         throughout.
686
687 2006-01-26  Chris Toshok  <toshok@ximian.com>
688
689         * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
690         correctly.
691
692         * InternalConfigurationRoot.cs: misc logical additions.  still
693         isn't useful.
694
695         * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
696         exception if both calling_assembly and exePath are null.  Allow
697         the exePath to be a path to a config file as well, checking to see
698         if it ends in .config before appending.
699         (OpenExeConfiguration): stop blindly passing
700         Assembly.GetCallingAssembly.  I'm assuming this will likely break
701         .dll.config usage.  need to investigate that (and write more unit
702         tests.)
703         (GetSection): call configSystem.GetSection.
704         (RefreshSection): call configSystem.RefreshSection.
705         (ChangeConfigurationSystem): modeled after the
706         ConfigurationSettings System.Web hack - allow
707         WebConfigurationManager to replace the current
708         IInternalConfigSystem.
709
710         * InternalConfigurationHost.cs (InternalConfigurationHost): make
711         abstract, and remove all the NotImplenmentedException's.
712
713         * ConfigurationElement.cs (DeserializeElement): store off the xml
714         namespace if there is one.
715         (SerializeElement): write out the namespace if there was one.
716
717         * ClientConfigurationSystem.cs: new class, based on some stack
718         traces I've seen in tests.  Kinda (well, not *kinda*..) hacky.
719
720         * Configuration.cs (NamespaceDeclared): implement.
721         (Load): don't swallow all exceptions, just the ones raised when we
722         open the stream for reading.
723         (ReadConfigFile): handle xmlns.
724
725 2006-01-25  Chris Toshok  <toshok@ximian.com>
726
727         * ConfigInfo.cs (ThrowException): throw a
728         ConfigurationErrorsException, not a ConfigurationException.
729
730         * SectionGroupInfo.cs (ReadContent): throw an exception
731         unconditionally if we see a <location>.  they aren't valid in
732         section groups.
733
734 2006-01-25  Chris Toshok  <toshok@ximian.com>
735
736         * KeyValueInternalCollection.cs: don't use a nested collection,
737         just defer to our base class.  This fixes usage of
738         ConfigurationManager.AppSettings.Keys.
739
740 2006-01-13  Chris Toshok  <toshok@ximian.com>
741
742         * AppSettingsSection.cs (GetRuntimeObject): only access
743         Settings[key] once per iteration.
744
745 2006-01-09  Chris Toshok  <toshok@ximian.com>
746
747         * ConfigurationManager.cs (AppSettings): just return
748         AppSettingsSection.GetRuntimeObject() here.
749
750         * AppSettingsSection.cs: fix the "file" property to match dumper
751         output.
752         (GetRuntimeObject): this returns a KeyValueInternalCollection in
753         MS's implementation.
754
755 2006-01-09  Chris Toshok  <toshok@ximian.com>
756
757         * ElementInformation.cs (Validator): if propertyInfo == null,
758         return a DefaultValidator instance.
759
760 2006-01-09  Chris Toshok  <toshok@ximian.com>
761
762         * AppSettingsSection.cs (.cctor): specify null for
763         validator/converter.
764
765         * ProtectedProviderSettings.cs (.cctor): specify null for
766         validator/converter.
767
768 2006-01-03  Chris Toshok  <toshok@ximian.com>
769
770         * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
771         can save to a new file.
772         (CreateSection): don't bother to set the section information's
773         Name here.  we'll do it in SectionInfo.CreateInstance.
774
775         * ProtectedConfiguration.cs (Section): new static property so we
776         can remove all the GetSection calls.
777         (GetProvider): load a named provider, optionally throwing an
778         exception if it's not found.
779
780         * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
781         make these private interface implementations, and call
782         protectedSection.{EncryptSection,DecryptSection}.
783
784         * ProtectedConfigurationSection.cs (EncryptSection,
785         DecryptSection): add these two calls.  They really shouldn't be
786         here, but I saw them in an MS stack trace and thought "why not?".
787
788         * ConfigurationSection.cs (SectionInformation): don't set
789         attributes here, that's done in SectionInfo.CreateInstance.
790         (DeserializeSection): shoehorn in the decryption stuff here.  It
791         doesn't belong here, and I've added a MonoTODO about it.  It
792         should live someplace like SectionInfo.ReadData (which would make
793         it similar to the encryption stuff in .WriteData).
794
795         * SectionInformation.cs (IsProtected): remove the special flag,
796         just return true if we have a non-null protection_provider.
797         (ProtectSection): do nothing but try to instantiate the named
798         provider.
799         (UnprotectSection): null out protection_provider.
800
801         * DpapiProtectedConfigurationProvider.cs: move the
802         NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
803         when parsing our machine.config file.
804
805         * RsaProtectedConfigurationProvider.cs: initial implementation.
806         much is missing (OAEP support, key importing, adding/deleting
807         keys), but it can be used.
808
809 2006-01-02  Chris Toshok  <toshok@ximian.com>
810
811         * RsaProtectedConfigurationProvider.cs: implement the
812         CspProviderName and UseOAEP properties..
813
814 2006-01-02  Chris Toshok  <toshok@ximian.com>
815
816         * ProtectedConfigurationSection.cs: flesh this out (and add logic
817         to instantiate providers, based on some of the standalone test
818         exception stack traces.)
819
820         * ProtectedConfiguration.cs: new implementation.
821
822         * ProtectedConfigurationProviderCollection.cs: new
823         implementation.
824
825         * ProtectedProviderSettings.cs: new implementation.
826
827         * ProtectedConfigurationProvider.cs: trim the superclass's name.
828
829         * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
830
831         * DpapiProtectedConfigurationProvider.cs: add stubbed
832         implementation that throws NotSupportedException telling people
833         they should be using RsaProtectedConfigurationProvider.
834
835 2006-01-02  Chris Toshok  <toshok@ximian.com>
836
837         * DefaultSection.cs (Properties): implement.
838
839         * IgnoreSection.cs: move from lazily creating the properties
840         collection to sharing a single one across all instances.
841
842         * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
843
844         * ConfigurationElementCollection.cs (BaseAdd) remove logic to
845         remove an old matching element.
846         (BaseGetKey): throw an exception if @index is out of range.
847
848         * SectionInformation.cs (SectionName): just return name, like Name
849         does.. redundant, but it matches tests.
850         (GetRawXml): implement.
851         (SetRawXml): implement.
852
853         * ConfigurationSection.cs (SectionInformation): fill in
854         sectionInformation.Type before returning.
855         (DeserializeSection): save off the raw xml to our
856         SectionInformation.
857
858         * ConfigurationElement.cs (LockItem): implement.
859         (DeserializeElement): add support for the "lockItem" attribute.
860
861 2005-12-16  Chris Toshok  <toshok@ximian.com>
862
863         * ConfigurationLockCollection.cs (Add): only add the name if it's
864         not already there.
865         (IsReadOnly): always return false for the time being, in the
866         non-exceptional case.
867
868 2005-12-15  Chris Toshok  <toshok@ximian.com>
869
870         * ConfigurationElement.cs (LockAllAttributesExcept): implement.
871         (LockAllElementsExcept): implement.
872         (DeserializeElement): handle the built-in attributes (lock* for
873         the time being).
874
875 2005-12-15  Chris Toshok  <toshok@ximian.com>
876
877         * ConfigurationLockCollection.cs (..ctor): don't call Populate.
878         (Populate): nuke.
879         (CheckName): make sure the passes in name is valid for this type
880         of lock collection.
881         (Add): call CheckName, and set is_modified to true.
882         (Clear): set is_modified.
883         (IsReadOnly): add plausable implementation, including exception in
884         the case where the name isn't found.
885         (Remove): set is_modified.
886         (SetFromList): implement.
887         (get_AttributeList): implement.
888         (set_IsModified): add internal setter so we can clear the modified
889         flag.
890
891 2005-12-12  Chris Toshok  <toshok@ximian.com>
892
893         * AppSettingsSection.cs (DeserializeElement): provide rather naive
894         version of the file="" handling.  It's enough to make our tests
895         pass.
896
897 2005-12-11  Chris Toshok  <toshok@ximian.com>
898
899         * ConnectionStringsSection.cs (..cctor): use "" instead of null
900         for the name of the default collection.
901
902         * AppSettingsSection.cs (..cctor): create a property for the
903         default collection.
904         (DeserializeElement): call base.DeserializeElement.
905         (File): index off the property, not the name.
906         (Settings): don't use an private variable here, use
907         base[_propSettings].
908
909         * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
910         null for new app domains.  so deal with this by calling
911         GetCallingAssembly if it's null.  This is probably still wrong but
912         it doesn't NRE in xsp2.
913         (AppSettings): remove MonoTODO.
914         
915         * KeyValueConfigurationElement.cs (..ctor): new method, create the
916         ConfigurationProperty's and the collection here.
917         (.ctor): add internal arg-less ctor.
918         (Key): use keyProp instead of "key".
919         (Value): use vlaueProp instead of "value".
920         (Properties): return our class's properties.
921
922         * KeyValueConfigurationCollection.cs (CreateNewElement): use the
923         arg-less ctor.
924         (GetElementKey): re-enable the BaseIndexOf test.
925
926 2005-12-02  Chris Toshok  <toshok@ximian.com>
927
928         * Configuration.cs (Save): call WriteStartDocument.
929
930         * ConnectionStringSettingsCollection.cs (CreateNewElement): use
931         parameter-less ctor to keep from generating exceptions when using
932         the collection.
933
934 2005-12-02  Chris Toshok  <toshok@ximian.com>
935
936         * ConnectionStringSettings.cs: tabify, fix default values, and add
937         a string validator for "name".
938
939 2005-12-02  Chris Toshok  <toshok@ximian.com>
940
941         * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
942         the type check away from an exact check for
943         CommaDelimitedStringCollection to an assignable test from
944         StringCollection.  This is due to the fact that AuthorizationRule
945         doesn't create CommaDelimitedStringCollections, for some odd
946         reason.  It uses StringCollections.
947
948         * PropertyInformation.cs (Value): remove the case for
949         IsDefaultCollection - it's not necessary, as the property is an
950         Element.
951
952         * ConnectionStringSettings.cs: fix formatting and remove some
953         #regions.
954
955         * ConnectionStringSettingsCollection.cs: same.
956
957         * ConnectionStringsSection.cs: same.
958
959         * ConfigurationElement.cs (SerializeToXmlElement): don't write the
960         enclosing start/end elements if the elementName is null or "".
961         this fixes the case for the DefaultCollections (at least in the
962         case of connectionStrings).
963
964         * IgnoreSection.cs (Properties): remove the MonoTODO.
965
966         * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
967
968 2005-11-28  Chris Toshok  <toshok@ximian.com>
969
970         * ProviderSettings.cs: use ConfigurationProperty's to implement
971         the properties.
972
973 2005-11-24  Chris Toshok  <toshok@ximian.com>
974
975         * ConfigurationProperty.cs (Validate): add internal method.
976
977 2005-11-24  Chris Toshok  <toshok@ximian.com>
978
979         * ConfigurationElement.cs (ElementProperty): make this protected
980         internal virtual instead of public.
981         (SetPropertyValue): add a validator call and a blurb about the
982         code based on information gleaned from tests.
983         (set_Item (string)): call SetPropertyValue in the setter.
984         
985 2005-11-14  Chris Toshok  <toshok@ximian.com>
986
987         * CommaDelimitedStringCollection.cs: reformat things a bit, and
988         flag ToString() as override.
989
990         * DefaultSection.cs: new stubbed out implementation.
991
992         * CommaDelimitedStringCollectionConverter.cs: new implementation.
993
994 2005-11-10  Chris Toshok  <toshok@ximian.com>
995
996         * AppSettingsSection.cs (DeserializeElement): stop explicitly
997         calling Settings.DeserializeElement, as the DefaultCollection
998         works now.
999
1000         * ConfigurationElement.cs (DeserializeElement): rework the loop
1001         here so that we actually loop over all the content elements.
1002
1003 2005-11-09  Chris Toshok  <toshok@ximian.com>
1004
1005         * ConfigurationElement.cs: Add support for DefaultCollection
1006         attributes.
1007
1008         * PropertyInformation.cs (PropertyInformation.Value): add case for
1009         IsDefaultCollection.
1010
1011         * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
1012         a "type" attribute, make sure the cached System.Type is cleared.
1013
1014 2005-10-25  Chris Toshok  <toshok@ximian.com>
1015
1016         * InfiniteTimeSpanConverter.cs: new implementation.
1017
1018         * InfiniteIntConverter.cs: new implementation.
1019
1020         * GenericEnumConverter.cs: new implementation.
1021
1022         * Configuration.cs: we don't need to check with "is" after we use
1023         "as"..  just check for null-ness.
1024
1025         * KeyValueConfigurationCollection.cs: GetElementKey should throw
1026         NRE if element == null.
1027
1028         * CommaDelimitedStringCollection.cs: raise the correct exceptions
1029         in the read only case, and return null from ToString if there are
1030         0 elements.
1031
1032 2005-10-25  Chris Toshok  <toshok@ximian.com>
1033
1034         * PositiveTimeSpanValidatorAttribute.cs: new implementation.
1035
1036         * PositiveTimeSpanValidator.cs: new implementation.
1037
1038 2005-10-24  Chris Toshok  <toshok@ximian.com>
1039
1040         * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
1041
1042         * TypeNameConverter.cs: new implementation.
1043
1044         * WhiteSpaceTrimStringConverter.cs: new implementation.
1045
1046 2005-10-24  Chris Toshok  <toshok@ximian.com>
1047
1048         * AppSettingsSection.cs (DeserializeElement, SerializeSection):
1049         split the behavior based on if File == "".  If it is, we do the
1050         default.  otherwise we throw NIE.
1051
1052         * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
1053         need this, but we do until the IsDefaultCollection stuff is fixed.
1054
1055         * ConfigurationElementCollection.cs
1056         (OnDeserializeUnrecognizedElement): for clearElementName, make
1057         sure we have no attributes.
1058
1059         * ConnectionStringSettingsCollection.cs (get_Properties): for now
1060         just chain up to base.Properties.
1061
1062         * ConfigurationElement.cs (ReflectProperties): do the default
1063         value/property type check in a more robust way, using
1064         Convert.ChangeType.
1065
1066 2005-10-24  Chris Toshok  <toshok@ximian.com>
1067
1068         * ConfigurationElement.cs: treat
1069         ConfigurationProperty.NoDefaultValue the same as null when we're
1070         checking the default value's type.  this fixes t13 and 14.
1071
1072         * ConnectionStringsSection.cs (ConnectionStrings): fix the
1073         DefaultValue in the ConfigurationPropertyAttribute.
1074
1075 2005-10-24  Chris Toshok  <toshok@ximian.com>
1076
1077         * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
1078         one test to get another working.  Return a valid key even if the
1079         element is not in this collection.
1080         (get_ThrowOnDuplicate): return false.
1081
1082         * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
1083         element with the same key, overwrite the old one (remove the old
1084         one after inserting the new one).  Also, re-enable the throwing of
1085         exceptions if ThrowOnDuplicate == true.
1086
1087 2005-10-24  Chris Toshok  <toshok@ximian.com>
1088
1089         * AppSettingsSection.cs (Settings): fix ConfigurationProperty
1090         attribute.
1091
1092         * ProtectedConfigurationSection.cs (Providers): same.
1093
1094 2005-10-12  Chris Toshok  <toshok@ximian.com>
1095
1096         * ConfigurationPermission.cs: flesh out as per tests.
1097
1098 2005-10-11  Chris Toshok  <toshok@ximian.com>
1099
1100         * ConfigurationProperty.cs: don't use null to mean no default
1101         value, use NoDefaultValue.
1102
1103 2005-10-11  Chris Toshok  <toshok@ximian.com>
1104
1105         * KeyValueConfigurationCollection.cs (GetElementKey): duh.
1106         BaseGet calls GetElementKey, so we were hitting an infinite
1107         recursion here.  Use BaseIndexOf instead.
1108
1109 2005-10-07  Chris Toshok  <toshok@ximian.com>
1110
1111         * InternalConfigurationHost.cs: some interface work, adding in the
1112         new methods.
1113
1114         * ConfigurationProperty.cs: remove debug spew.
1115
1116         * Configuration.cs: add NIE'd NamespaceDeclared property.
1117
1118         * ElementInformation.cs: add NIE'd Errors property.
1119
1120         * PropertyInformationCollection.cs: add NIE'd GetObjectData().
1121
1122         * ConfigurationManager.cs: quite a bit of new work here.  Some
1123         definie TODO's still though.
1124
1125 2005-10-07  Chris Toshok  <toshok@ximian.com>
1126
1127         * ConfigurationErrorsException.cs (.ctor): for the (string)
1128         overload, chain up to the base (string) ctor.
1129
1130 2005-10-07  Chris Toshok  <toshok@ximian.com>
1131
1132         * ConfigurationElement.cs (ElementMap.ReflectProperties): make
1133         sure the type of the default value is compatible with that of the
1134         property itself, and throw ConfigurationErrorsException if they
1135         don't match.  Fixes t12.
1136
1137 2005-10-07  Chris Toshok  <toshok@ximian.com>
1138
1139         * ConfigHelper.cs: remove some unused code.
1140
1141         * ConfigurationProperty.cs: disambiguate the ctor we chain to.
1142
1143         * ConfigurationElement.cs (ElementProperty): implement.
1144         (ElementMap.ReflectProperties): make DefaultValidator the default
1145         validator, not null.
1146
1147 2005-10-06  Chris Toshok  <toshok@ximian.com>
1148
1149         * KeyValueConfigurationElement.cs: uncomment out some stuff.
1150         (Properties): just return base.Properties.  Not sure why they
1151         override this, as the base class's implementation passes our test.
1152
1153         * KeyValueConfigurationCollection.cs (Add): for the keyValue
1154         overload, call keyValue.Init as the unit test stack traces
1155         indicates that'9s where it's called.  For the string,string
1156         overload, just call the keyValue overload instead of calling
1157         BaseAdd.
1158         (CreateNewElement): just use the name/value ctor, and specify ""
1159         for each.
1160         (GetElementKey): this function always returns "" for elements that
1161         haven't been added to the collection.  Once theyre added, it seems
1162         to always return keyValue.Key.
1163         (Properties): the unit tests show this returns a 0 length
1164         collection.
1165
1166 2005-10-05  Chris Toshok  <toshok@ximian.com>
1167
1168         * ConfigurationPermissionAttribute.cs: stub out.
1169
1170 2005-10-05  Chris Toshok  <toshok@ximian.com>
1171
1172         * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
1173         implementation.
1174
1175 2005-10-05  Chris Toshok  <toshok@ximian.com>
1176
1177         * TimeSpanSecondsConverter.cs: new implementation.
1178
1179 2005-10-05  Chris Toshok  <toshok@ximian.com>
1180
1181         * TimeSpanMinutesConverter.cs: flesh out implementation.
1182
1183         * ConfigurationConverterBase.cs: make all subclasses work with
1184         strings only, since that's what seems to manifest itself in the
1185         tests.
1186
1187 2005-10-05  Chris Toshok  <toshok@ximian.com>
1188
1189         * ConfigurationLockCollection.cs: add NIE'd AttributeList
1190         property.
1191
1192         * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
1193         CanConvertTo methods.
1194
1195         * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
1196
1197         * ProtectedConfigurationSection.cs: add NIE'd properties.
1198
1199         * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
1200         and SetReadOnly methods, and have then chain up to the base class.
1201
1202         * KeyValueConfigurationCollection.cs: add the class level
1203         ConfigurationCollectionAttribute, and add a NIE'ed Properties
1204         property.
1205
1206         * ProviderSettingsCollection.cs: add the class level
1207         ConfigurationCollectionAttribute, and add a "new" keyword to the
1208         this property.  Also, nuke the Provider's property.
1209
1210         * SectionInformation.cs: add some NEI'd properties.
1211
1212         * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
1213         chain up to base class's method instead of throwing NIE.
1214
1215         * ConnectionStringSettingsCollection.cs: add the class-level
1216         ConfigurationCollectionAttribute, and add the unimplemented
1217         Properties property.
1218
1219         * ConfigurationErrorsException.cs: flesh this out, and add a
1220         pragma to disable the obsolete warnings from our base class.
1221
1222         * ProviderSettings.cs: add unimplemented Properties property.
1223
1224         * ConfigurationElement.cs: remove unnecessary
1225         EvaluationInformation.
1226
1227         * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
1228         property.
1229
1230         * ConfigurationProperty.cs: add a missing ctor.
1231
1232         * AppSettingsSection.cs: add missing "override" keyword.
1233
1234         * ConnectionStringsSection.cs: remove override.
1235         
1236         * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
1237         unimplemented GetObjectData override.
1238
1239         * ConfigurationSectionGroupCollection.cs: same.
1240
1241         * ConfigurationCollectionAttribute.cs: add missing CollectionType
1242         property.
1243
1244 2005-10-05  Chris Toshok  <toshok@ximian.com>
1245
1246         * ConfigurationPermission.cs: new implementation.
1247
1248         * IgnoreSection.cs: new implementation.
1249
1250 2005-10-05  Chris Toshok  <toshok@ximian.com>
1251
1252         * CommaDelimitedStringCollection.cs: new implementation.
1253
1254 2005-10-05  Chris Toshok  <toshok@ximian.com>
1255
1256         * NameValueConfigurationCollection.cs: new implementation.
1257
1258         * NameValueConfigurationElement.cs: new implementation.
1259
1260 2005-10-05  Chris Toshok  <toshok@ximian.com>
1261
1262         * ValidatorCallback.cs: new implementation.
1263
1264         * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
1265         implementation.
1266
1267         * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
1268         implementation.
1269
1270         * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
1271         implementation.
1272
1273         * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
1274
1275         * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
1276         implementation.
1277
1278         * DefaultValidator.cs: new implementation.
1279
1280 2005-09-28  Chris Toshok  <toshok@ximian.com>
1281
1282         * ConfigurationElementCollection.cs: more work on the "<clear />"
1283         handling - just skip the element for now.  this causes a failure
1284         in one test ('<clear hi="bye" />' doesn't throw an exception when
1285         it should), but it succeeds for collections that have required
1286         attributes.
1287
1288         * ConnectionStringSettings.cs: providerName isn't a required
1289         attribute.
1290
1291         * AppSettingsSection.cs (.cctor): initialize our "file" Property.
1292         (File): implement.
1293         (Properties): fix.
1294         (GetRuntimeObject): call the base class method instead of just
1295         returning "this".
1296
1297         * ConnectionStringsSection.cs: Add a hacky DeserializeElement
1298         method here (that isn't in MS's) for the time being so we actually
1299         deserialize our collection.
1300
1301 2005-09-28  Chris Toshok  <toshok@ximian.com>
1302
1303         * KeyValueInternalCollection.cs: found this by way of a stack
1304         trace in one of the tests.  A NameValueCollection that wraps a
1305         KeyValueConfigurationCollection.
1306
1307         * Configuration.cs (Init): save off configPath.
1308         (EvaluationContext): new, mostly implemented.
1309         (GetSectionInstance): use IgnoreSection instead of
1310         RuntimeOnlySection.
1311         (Load): don't fail when we can't load a file.
1312
1313         * IgnoreSection.cs: replace RuntimeOnlySection with this new
1314         public type.
1315
1316         * RuntimeOnlySection.cs: nuke.
1317         
1318 2005-09-27  Chris Toshok  <toshok@ximian.com>
1319
1320         * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
1321
1322 2005-09-27  Chris Toshok  <toshok@ximian.com>
1323
1324         * ConfigurationProperty.cs: add IsDefaultCollection property.
1325
1326 2005-09-27  Chris Toshok  <toshok@ximian.com>
1327
1328         * ConfigurationElementProperty.cs: new file.
1329
1330         * ConfigurationLockCollection.cs: new file.
1331
1332         * ConfigurationElementCollection.cs
1333         (OnDeserializeUnrecognizedElement): make sure we consume the
1334         <clear /> element so we don't into an endless loop.
1335
1336         * ConfigurationElement.cs: add a bunch of NIE's properties.
1337
1338         * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
1339
1340 2005-09-23  Chris Toshok  <toshok@ximian.com>
1341
1342         * AppSettingsSection.cs: fix build and add a couple of TODO'ed
1343         properties.
1344
1345 2005-09-23  Chris Toshok  <toshok@ximian.com>
1346
1347         * ProviderSettings.cs (Unmerge): track change to
1348         ConfigurationElement.Unmerge.
1349
1350         * ConfigurationSection.cs: add functions nuked from
1351         ConfigurationElement here.
1352
1353         * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
1354         to the class.
1355         (BaseGetAllKeys): returns object[], not string[].
1356         (BaseGetKey): returns object, not string.
1357         (Unmerge): track change to ConfigurationElement.Unmerge signature.
1358
1359         * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
1360         signature (drop the serializeCollectionKey parameter).
1361         
1362
1363 2005-09-23  Chris Toshok  <toshok@ximian.com>
1364
1365         * StringValidator.cs: throw ArgumentException instead of
1366         ConfigurationErrorsException.
1367
1368 2005-09-23  Chris Toshok  <toshok@ximian.com>
1369
1370         * ConnectionStringsSection.cs: track change to
1371         ConfigurationPropertyOptions.
1372
1373         * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
1374         ProviderSettings.cs: track change to ConfigurationPropertyOptions.
1375
1376         * ConnectionStringSettings.cs: track change to
1377         ConfigurationProprertyOptions, and add some ConfigurationProperty
1378         attributes.
1379         
1380         * ConfigurationPropertyOptions.cs: DefaultCollection ->
1381         IsDefaultCollection, Required -> IsRequired.
1382
1383 2005-09-22  Chris Toshok  <toshok@ximian.com>
1384
1385         * PositiveTimeSpanValidator.cs: this lives in
1386         System.Web.Configuration, not System.Configuration.
1387
1388 2005-09-22  Chris Toshok  <toshok@ximian.com>
1389
1390         * TimeSpanValidator.cs: change to ArgumentException and alter the
1391         messages slightly.
1392
1393 2005-09-22  Chris Toshok  <toshok@ximian.com>
1394
1395         * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
1396
1397 2005-07-01  Lluis Sanchez Gual  <lluis@novell.com>
1398
1399         * ProviderSettings.cs: Implemented properties using property attributes.
1400         * ConfigurationElement.cs: Implemented ElementInformation property and
1401         moved there all value management.
1402         * ProtectedConfigurationProvider.cs: Set the correct base class.
1403         * SectionInformation.cs: Added missing AllowExeDefinition property.
1404         * TimeSpanValidatorAttribute.cs: Implemented.
1405         * StringValidator.cs: Implemented.
1406         * ProviderSettingsCollection.cs: Added missing class attribute.
1407         * ConfigurationSaveMode.cs: Fix enum values.
1408         * ConfigurationElementCollection.cs: Added Init method for initializing
1409         elements from properties.
1410         * StringValidatorAttribute.cs: Implemented.
1411         * ConfigurationLocation.cs: Added support for allowOverride flag.
1412         * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
1413         * PositiveTimeSpanValidator.cs: Implemented.
1414         * TimeSpanMinutesConverter.cs: Created skeleton class.
1415         * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
1416         AllowDefinition and AllowExeDefinition.
1417         * TimeSpanValidator.cs: Implemented.
1418         * ConfigurationConverterBase.cs: Created skeleton class.
1419         * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
1420         VerifyDefinitionAllowed.
1421         * ConfigurationManager.cs: That class must be static.
1422         * PropertyInformationCollection.cs: Implemented.
1423         * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
1424         so on. In Save(), don't forget to save location elements.
1425         * ConfigurationProperty.cs: Keep track of collection attributes.
1426         * ConfigInfo.cs: Support overrideAllowed flag.
1427         * KeyValueConfigurationElement.cs: Define properties using attributes.
1428         * PropertyValueOrigin.cs: implemented.
1429         * PropertyInformation.cs: Mostly implemented.
1430         * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
1431         * ElementInformation.cs: Mostly implemented.
1432         * ConfigurationPropertyAttribute.cs: Set the correct default value.
1433         * ConfigurationCollectionAttribute.cs: Implemented.
1434
1435 2005-06-23  Lluis Sanchez Gual <lluis@novell.com>
1436
1437         * SectionInfo.cs: Set the config host when loading the section.
1438         * InternalConfigurationHost.cs: Implemented some basic methods.
1439         * Configuration.cs: Find the correct parent for the configuration,
1440         taking into accound locations and such. Use Host functions to get
1441         types from names.
1442         * ConfigurationLocationCollection.cs: Added find method.
1443         * ConfigInfo.cs: Added Host property.
1444         * InternalConfigurationFactory.cs: The InitForConfiguration calls
1445         are now done in each correspoding configuration.
1446         * SectionGroupInfo.cs: When reading a location element, create
1447         a Configuration object for each path specified in the location.
1448         * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
1449         method, which properly initializes the created element.
1450         * ConfigurationLocation.cs: OpenConfiguration now has to read the
1451         xml contents. It also has to find the correct parent configuration,
1452         if it has not been specified.
1453
1454 2005-06-17  Lluis Sanchez Gual <lluis@novell.com>
1455
1456         * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
1457         * ConfigurationPropertyCollection.cs: Added Clear method.
1458         * ContextInformation.cs: Implemented.
1459         * ConfigurationManager.cs: Implemented some missing methods.
1460         Configuration objects are now created through the ConfigurationFactory.
1461         * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
1462         to be used for exe files and machine.config.
1463         * ConfigurationFileMap.cs: Implemented.
1464         * Configuration.cs: Read and write config files using the methods that
1465           IInternalConfigHost provides.
1466         * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
1467         * ExeContext.cs: Implemented.
1468         * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
1469         collection to store values.
1470         * KeyValueConfigurationElement.cs: Implemented.
1471         * KeyValueConfigurationCollection.cs: Implemented.
1472         * InternalConfigurationFactory.cs: An implementation of 
1473         IInternalConfigConfigurationFactory.
1474         * ConfigurationPropertyAttribute.cs: Added missing attributes.
1475         * ExeConfigurationFileMap.cs: Implemented.
1476
1477 2005-06-15  Lluis Sanchez Gual <lluis@novell.com>
1478
1479         * ConfigurationElement.cs, ConfigurationErrorsException.cs
1480         SectionInfo.cs, ConnectionStringSettingsCollection.cs,
1481         ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
1482         ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
1483         ConfigurationElementCollectionType.cs, Configuration.cs, 
1484         ConnectionStringSettings.cs, ConfigurationProperty.cs,
1485         ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
1486         ConfigurationAllowDefinition.cs, ConfigInfo.cs,
1487         ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
1488         ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
1489         SectionGroupInfo.cs, ConfigurationUserLevel.cs,
1490         ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
1491         ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
1492         ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
1493         ProviderSettings.cs: 
1494                 Track API changes.
1495         
1496         * ConfigurationElementCollection.cs: Implemented support for Basic
1497         collection type. Other fixes.
1498         
1499         * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
1500         * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
1501         
1502         * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
1503         ConfigurationManager.cs, ConfigurationSaveMode.cs,
1504         ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
1505         ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
1506                 New files.
1507         
1508         * ConfigurationValidationAttribute.cs: Removed.
1509         
1510         * ProviderBase.cs: Moved to System.dll.
1511
1512 2005-06-14  Lluis Sanchez Gual <lluis@novell.com>
1513
1514         * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
1515         ConfigurationAllowDefinition.cs, ConfigurationElement.cs
1516         ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
1517         ConfigurationLocation.cs, ConfigurationLocationCollection.cs
1518         ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
1519         ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
1520         ConfigurationSection.cs, ConfigurationSectionCollection.cs
1521         ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
1522         ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
1523         ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
1524         ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
1525         IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
1526         NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
1527         ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
1528         RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
1529         TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
1530         TimeSpanSerializedFormat.cs:
1531
1532         Moved from the System assembly.