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