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