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