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