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