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