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