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