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