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