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