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