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