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