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