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