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