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