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