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