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