1 2007-11-23 Marek Habersack <mhabersack@novell.com>
3 * ConfigurationElementCollection.cs: ThrowOnDuplicate returns true
4 if the collection is one of the AddRemoveClearMap or
5 AddRemoveClearMapAlternate types.
7 2007-11-15 Atsushi Enomoto <atsushi@ximian.com>
9 Part of fix for bug #323708.
10 * ConfigurationSection.cs : in GetRuntimeObject(), take parent
11 section instance into consideration.
12 * SectionInformation.cs : to make it possible, GetParentSection()
13 should be implemented.
14 * Configuration.cs : to make it possible, GetSectionInstance()
15 should set parent section on its SectionInformation. It used to
16 just steal parent's xml when its own xml does not exist, but
17 it now blocks correct configuration retrieval.
19 2007-11-15 Atsushi Enomoto <atsushi@ximian.com>
21 * SectionGroupInfo.cs : remove extra StringBuilder creation.
23 2007-11-14 Atsushi Enomoto <atsushi@ximian.com>
25 * Configuration.cs : (Save) when the given file path is relative
26 it failed to create directory. Fixed standalone test t25/t26.
27 * InternalConfigurationHost.cs : pass userLevel to create a host
30 2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
32 * InternalConfigurationHost.cs : when the streamName is for
33 machine.config, try get_bundled_machine_config() icall first.
34 This hopefully implements the requested feature in bug #325022.
35 * Configuration.cs : added comment.
37 2007-08-31 Gert Driesen <drieseng@users.sourceforge.net>
39 * ConfigurationManager.cs: Fixed line endings. Avoid warning by
40 changing accessibility of ChangeConfigurationSystem to internal.
41 * Configuration.cs: Fixed compiler warnings.
42 * DpapiProtectedConfigurationProvider.cs: Fixed line endings.
44 2007-08-21 Atsushi Enomoto <atsushi@ximian.com>
46 * ConfigurationManager.cs : To open exe configuration, use
47 GetEntryAssembly() first, and GetCallingAssembly() only when
48 it was not found. Should fix bug #82071.
50 2007-06-21 Atsushi Enomoto <atsushi@ximian.com>
52 * Configuration.cs, InternalConfigurationHost.cs :
53 configuration file to write might be given as an absolute path,
54 where the ancestor directories may not exist.
56 2007-06-20 Atsushi Enomoto <atsushi@ximian.com>
58 * ConfigurationManager.cs : in OpenExeConfiguration() and
59 OpenMappedExeConfiguration(), take userLevel into consideration.
60 * InternalConfigurationHost.cs : consider ConfigurationUserLevel and
61 use correct config map file in InitForConfiguration().
63 2007-06-18 Atsushi Enomoto <atsushi@ximian.com>
65 * ClientConfigurationSystem.cs : do not asume GetEntryAssembly()
66 returns non-null. Patch by Patrick Perry.
68 2007-06-13 Atsushi Enomoto <atsushi@ximian.com>
70 * ConfigurationElement.cs : SerializeToXmlElement() should be
71 called regardless of HasValues() return value, especially since
72 it could be overriden (e.g. in SettingsValueElement).
74 2007-06-13 Atsushi Enomoto <atsushi@ximian.com>
76 * ConfigurationSectionGroup.cs
77 Configuration.cs : ConfigurationSectionGroup must be initialized
78 at least when being added to a collection.
80 2007-06-12 Vladimir Krasnov <vladimirk@mainsoft.com>
82 * ConfigurationElement.cs: refactored GetKeyProperties and
83 GetDefaultCollection methods, map should not be used here, Properties
84 will do instead. Refactored ElementMap class
85 * ConfigurationElementCollection.cs: fixed InitFromProperty, GetMap()
86 should not be called here
87 * ElementInformation.cs: fixed Properties, moved to ctor to be thread
89 * PropertyInformation.cs: members assigned readonly modifier
91 2007-05-30 Marek Habersack <mhabersack@novell.com>
93 * SectionGroupInfo.cs: <location> elements are case-insensitive
94 and the same 'path' attribute may be used only once.
96 * ConfigurationLocationCollection.cs: Find should be
97 case-insensitive for all targets, not just TARGET_JVM.
99 2007-05-17 Igor Zelmanovich <igorz@mainsoft.com>
101 * Configuration.cs: FilePath implemented according to MSDN:
102 If the value for this FilePath property represents a merged view and
103 no actual file exists for the application, the path to the parent
104 configuration file is returned.
106 2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
109 * ConfigurationLocation.cs:
110 implemented EvaluationContext property.
112 2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
114 * ConfigurationLocationCollection.cs: for TARGET_JVM only:
115 location path is case-insensitive.
117 2007-05-15 Marek Habersack <mhabersack@novell.com>
119 * ConfigurationElement.cs: added value validation on
120 deserialization from the config file.
122 2007-05-14 Igor Zelmanovich <igorz@mainsoft.com>
124 * ConfigurationElement.cs: when attribute value cannot be parsed,
125 ConfigurationErrorException is thrown.
127 2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
129 * ConfigurationManager.cs:
130 added MonoLimitation attribute for TARGATE_JVM.
132 2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
134 * ConnectionStringSettingsCollection.cs: removed 'new' keyword, cause
135 property doesn't hide any inherit property.
137 2007-04-24 Atsushi Enomoto <atsushi@ximian.com>
139 * InternalConfigurationHost.cs : machine configuration covers all
140 ConfigurationAllowDefinition values.
142 2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
144 * ConfigurationSectionCollection.cs : GetEnumerator() should return
145 IEnumerator for the items, not keys.
146 * ConfigurationProperty.cs : more helpful type mismatch message.
148 2007-04-16 Marek Habersack <mhabersack@novell.com>
150 * SectionGroupInfo.cs: another (and final, hopefully) fix for bug
151 #81321 and several other related issues that were discovered by
152 the way. Thanks to Atsushi for help with XmlReader!
154 2007-04-15 Marek Habersack <mhabersack@novell.com>
156 * SectionGroupInfo.cs: another incarnation of the fix for bug
159 2007-04-12 Marek Habersack <mhabersack@novell.com>
161 * SectionGroupInfo.cs: a better fix for #81321
163 2007-04-10 Marek Habersack <mhabersack@novell.com>
165 * SectionGroupInfo.cs: make sure empty sections with the
166 short-circuit tag ends (<section/>) don't make the process loop
167 endlessly. Fixes bug #81321.
169 2007-03-22 Konstantin Triger <kostat@mainsoft.com>
171 * ConfigInfo.cs: should be able instantiate types with private ctors.
173 2007-03-19 Vladimir Krasnov <vladimirk@mainsoft.com>
175 * ConfigurationSectionCollection.cs,
176 * ConfigurationSectionGroupCollection.cs,
177 * PropertyInformationCollection.cs,
178 * SectionGroupInfo.cs: used StringComparer.Ordinal instead of
181 2007-03-15 Vladimir Krasnov <vladimirk@mainsoft.com>
183 * ConfigurationSectionCollection.cs,
184 * ConfigurationSectionGroupCollection.cs,
185 * PropertyInformationCollection.cs,
186 * SectionGroupInfo.cs: these collections should be based on case
187 insensitive NameObjectCollectionBase
188 * added OrdinalComparer.cs for use in NameObjectCollectionBase
190 2007-02-07 Atsushi Enomoto <atsushi@ximian.com>
192 * SectionInfo.cs : don't stop at restartOnExternalChanges attribute.
194 2007-01-16 Konstantin Triger <kostat@mainsoft.com>
196 * ConfigurationElement.cs: ignore properties with null or empty name.
198 2007-01-16 Konstantin Triger <kostat@mainsoft.com>
200 * ConfigurationElement.cs: Try to deserilalize an unrecognized element by
201 current element, and only if failed delegate to default collection.
203 2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
205 * ConfigurationElementCollection.cs: fixed BaseAdd, looking for
206 identical element when collection type is not alternate
208 2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
210 * ConnectionStringSettingsCollection.cs: made connection string key
213 2006-12-27 Atsushi Enomoto <atsushi@ximian.com>
215 * ConfigurationElementCollection.cs : fixed BaseAdd() with
216 throwIfExists to not raise an error for identical element
217 but for different element which shares the same key. Fix by
220 2006-12-21 Vladimir Krasnov <vladimirk@mainsoft.com>
222 * ConfigurationProperty.cs: fixed DefaultValue of type Enum
224 2006-12-10 Konstantin Triger <kostat@mainsoft.com>
226 * ConfigurationElement.cs: Delegate parameter checking and default
227 assigning to Configuratin property.
228 * ConfigurationProperty.cs:
229 Ensure the TypeConvert and Validator always exist.
230 Ensure the primitive types are properly initialized.
232 2006-12-09 Vladimir Krasnov <vladimirk@mainsoft.com>
234 * ConfigurationElementCollection.cs
235 * ConfigurationRemoveElement.cs: fixed key for <remove> element in
236 ConfigurationRemoveElement class
238 2006-11-28 Marek Habersack <grendello@gmail.com>
240 * SectionGroupInfo.cs: Implement merging of section groups with
241 the same names and parents.
243 * ConfigInfo.cs: Add an abstract method for merging sections.
245 * SectionInfo.cs: Add implementation of an abstract base method
247 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
249 * SectionInfo.cs: refactoring - remove unneeded bool? usage.
251 2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
253 * added: ConfigurationRemoveElement.cs, common element for <remove>
254 * ConnectionStringSettingsCollection.cs: reverted last fix for
256 * ConfigurationElementCollection.cs: fixed the way that
257 OnDeserializeUnrecognizedElement method handles <remove> element
259 2006-11-02 Vladimir Krasnov <vladimirk@mainsoft.com>
261 * ConfigurationElement.cs: typo in DefaultCollectionProperty
264 2006-10-30 Joel Reed <joel.reed@ddiworld.com>
266 * NameValueConfigurationCollection.cs: Implement the Properties
269 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
271 * ConfigurationLocation.cs: do not read root element, correctly close stream.
272 * Configuration.cs: use ReadData for nested content to throw if location
273 elements are encounterd.
274 In constructor taking parent Configurqation: do not call Init and so avoid
275 rereading config file.
277 2006-09-05 Vladimir Krasnov <vladimirk@mainsoft.com>
279 * NameValueConfigurationElement.cs: fixed functionality
280 * ConfigurationElementCollection.cs,
281 ConnectionStringSettingsCollection.cs: fixed <remove> element in
282 connectionStrings section
284 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
286 * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
287 RawXml is null, as net 1.1 does.
289 2006-08-17 Vladimir Krasnov <vladimirk@mainsoft.com>
291 * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
294 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
296 * ConfigurationManager.cs : OpenExeConfiguration(null) should still
297 work. This is required for embedded scenario.
299 2006-06-10 Atsushi Enomoto <atsushi@ximian.com>
301 * SectionGroupInfo.cs : skip <dllmap> in configuration.
303 2006-05-14 Atsushi Enomoto <atsushi@ximian.com>
305 * ConfigurationManager.cs: since ConfigurationSystem is different
306 for web.config, cast from ConfigurationSection to runtime object
307 should be done at GetSection().
308 This really fixed bug #78372.
310 2006-05-12 Atsushi Enomoto <atsushi@ximian.com>
312 * Configuration.cs : configPath is null for machine.config, so don't
313 use it. Use streamName instead. To my understanding, this should
316 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
318 * ConnectionStringSettings.cs : it seems that "name" property
319 could be null i.e. there is no StringValidator.
320 * StringValidator.cs : allow null.
322 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
324 * ConfigurationManager.cs : use GetCallingAssembly() instead of
325 GetEntryAssembly() which possibly returns null (e.g. nunit) in
326 OpenExeConfiguration(). Several nunit test failures are gone.
328 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
330 * ConnectionStringSettings.cs : oops, this API fix broke standalone
333 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
335 * ConfigurationElement.cs,
336 ConfigurationErrorsException.cs,
337 ConfigurationUserLevel.cs,
338 ConfigurationPropertyOptions.cs,
339 ConnectionStringSettings.cs : assorted minor corcompare fixes.
341 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
343 * Configuration.cs : some kind of refactoring is absolutely needed
344 here. Reuse RawXml from parentSection when data was not available
345 on current section. This should fix bug #78353.
347 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
349 * ConfigurationElement.cs,
351 in some cases RawXml was set null string, so skip such cases.
352 * Configuration.cs : support IConfigurationSectionHandler here.
353 * ConfigurationManager.cs : GetSection() now returns name value
354 collection, not a section.
355 * ConfigurationSection.cs : added SectionHandler for
356 IConfigurationSectionHandler support, and use its Create() in
358 * ClientConfigurationSystem.cs :
359 use GetRuntimeObject() in GetSection(). Thus now
360 ConfigurationManager.GetSection() returns a runtime object.
363 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
365 * SectionGroupInfo.cs :
366 sections which are defined in sectionGroups could be directly
367 referenced, so search corresponding section recursively.
368 * DefaultSection.cs : It does not reject unrecognized contents.
370 2006-04-26 Chris Toshok <toshok@ximian.com>
372 * SectionInformation.cs (.ctor): add MonoTODO about the default
373 value for require_permission.
374 (RequirePermission): implement the getter/setter for this so
375 Atsushi's previous commit doesn't break everything :)
377 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
380 SectionInfo.cs : added support for "requirePermission" attribute
381 in "section" element. This fixes bug #77957.
383 2006-04-25 Chris Toshok <toshok@ximian.com>
385 * ConfigurationElementCollection.cs (Reset): it makes no sense to
386 pass the typename to CreateNewElementInternal. the argument is
387 the elementname. pass null instead.
390 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
392 * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
394 * ConfigurationSection.cs : the .ctor() is protected.
395 * ConfigurationElementCollection.cs : CollectionType is public.
396 Count and BaseAdd() are not virtual.
397 * ConfigurationPropertyCollection.cs : Count is not virtual.
399 2006-02-01 Chris Toshok <toshok@ximian.com>
401 * ConfigurationElement.cs: revert the patch that stores and writes
402 out xmlns attributes for all elements.
404 * ClientConfigurationSystem.cs: SupportsUserConfig == false.
406 * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
407 only if SupportsUserConfig != true.
409 * ConfigurationManager.cs (ConfigurationSystem): add a property
410 like ConfigurationFactory, and use it instead of the private field
413 2006-01-26 Chris Toshok <toshok@ximian.com>
415 * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
418 * InternalConfigurationRoot.cs: misc logical additions. still
421 * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
422 exception if both calling_assembly and exePath are null. Allow
423 the exePath to be a path to a config file as well, checking to see
424 if it ends in .config before appending.
425 (OpenExeConfiguration): stop blindly passing
426 Assembly.GetCallingAssembly. I'm assuming this will likely break
427 .dll.config usage. need to investigate that (and write more unit
429 (GetSection): call configSystem.GetSection.
430 (RefreshSection): call configSystem.RefreshSection.
431 (ChangeConfigurationSystem): modeled after the
432 ConfigurationSettings System.Web hack - allow
433 WebConfigurationManager to replace the current
434 IInternalConfigSystem.
436 * InternalConfigurationHost.cs (InternalConfigurationHost): make
437 abstract, and remove all the NotImplenmentedException's.
439 * ConfigurationElement.cs (DeserializeElement): store off the xml
440 namespace if there is one.
441 (SerializeElement): write out the namespace if there was one.
443 * ClientConfigurationSystem.cs: new class, based on some stack
444 traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
446 * Configuration.cs (NamespaceDeclared): implement.
447 (Load): don't swallow all exceptions, just the ones raised when we
448 open the stream for reading.
449 (ReadConfigFile): handle xmlns.
451 2006-01-25 Chris Toshok <toshok@ximian.com>
453 * ConfigInfo.cs (ThrowException): throw a
454 ConfigurationErrorsException, not a ConfigurationException.
456 * SectionGroupInfo.cs (ReadContent): throw an exception
457 unconditionally if we see a <location>. they aren't valid in
460 2006-01-25 Chris Toshok <toshok@ximian.com>
462 * KeyValueInternalCollection.cs: don't use a nested collection,
463 just defer to our base class. This fixes usage of
464 ConfigurationManager.AppSettings.Keys.
466 2006-01-13 Chris Toshok <toshok@ximian.com>
468 * AppSettingsSection.cs (GetRuntimeObject): only access
469 Settings[key] once per iteration.
471 2006-01-09 Chris Toshok <toshok@ximian.com>
473 * ConfigurationManager.cs (AppSettings): just return
474 AppSettingsSection.GetRuntimeObject() here.
476 * AppSettingsSection.cs: fix the "file" property to match dumper
478 (GetRuntimeObject): this returns a KeyValueInternalCollection in
481 2006-01-09 Chris Toshok <toshok@ximian.com>
483 * ElementInformation.cs (Validator): if propertyInfo == null,
484 return a DefaultValidator instance.
486 2006-01-09 Chris Toshok <toshok@ximian.com>
488 * AppSettingsSection.cs (.cctor): specify null for
491 * ProtectedProviderSettings.cs (.cctor): specify null for
494 2006-01-03 Chris Toshok <toshok@ximian.com>
496 * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
497 can save to a new file.
498 (CreateSection): don't bother to set the section information's
499 Name here. we'll do it in SectionInfo.CreateInstance.
501 * ProtectedConfiguration.cs (Section): new static property so we
502 can remove all the GetSection calls.
503 (GetProvider): load a named provider, optionally throwing an
504 exception if it's not found.
506 * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
507 make these private interface implementations, and call
508 protectedSection.{EncryptSection,DecryptSection}.
510 * ProtectedConfigurationSection.cs (EncryptSection,
511 DecryptSection): add these two calls. They really shouldn't be
512 here, but I saw them in an MS stack trace and thought "why not?".
514 * ConfigurationSection.cs (SectionInformation): don't set
515 attributes here, that's done in SectionInfo.CreateInstance.
516 (DeserializeSection): shoehorn in the decryption stuff here. It
517 doesn't belong here, and I've added a MonoTODO about it. It
518 should live someplace like SectionInfo.ReadData (which would make
519 it similar to the encryption stuff in .WriteData).
521 * SectionInformation.cs (IsProtected): remove the special flag,
522 just return true if we have a non-null protection_provider.
523 (ProtectSection): do nothing but try to instantiate the named
525 (UnprotectSection): null out protection_provider.
527 * DpapiProtectedConfigurationProvider.cs: move the
528 NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
529 when parsing our machine.config file.
531 * RsaProtectedConfigurationProvider.cs: initial implementation.
532 much is missing (OAEP support, key importing, adding/deleting
533 keys), but it can be used.
535 2006-01-02 Chris Toshok <toshok@ximian.com>
537 * RsaProtectedConfigurationProvider.cs: implement the
538 CspProviderName and UseOAEP properties..
540 2006-01-02 Chris Toshok <toshok@ximian.com>
542 * ProtectedConfigurationSection.cs: flesh this out (and add logic
543 to instantiate providers, based on some of the standalone test
544 exception stack traces.)
546 * ProtectedConfiguration.cs: new implementation.
548 * ProtectedConfigurationProviderCollection.cs: new
551 * ProtectedProviderSettings.cs: new implementation.
553 * ProtectedConfigurationProvider.cs: trim the superclass's name.
555 * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
557 * DpapiProtectedConfigurationProvider.cs: add stubbed
558 implementation that throws NotSupportedException telling people
559 they should be using RsaProtectedConfigurationProvider.
561 2006-01-02 Chris Toshok <toshok@ximian.com>
563 * DefaultSection.cs (Properties): implement.
565 * IgnoreSection.cs: move from lazily creating the properties
566 collection to sharing a single one across all instances.
568 * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
570 * ConfigurationElementCollection.cs (BaseAdd) remove logic to
571 remove an old matching element.
572 (BaseGetKey): throw an exception if @index is out of range.
574 * SectionInformation.cs (SectionName): just return name, like Name
575 does.. redundant, but it matches tests.
576 (GetRawXml): implement.
577 (SetRawXml): implement.
579 * ConfigurationSection.cs (SectionInformation): fill in
580 sectionInformation.Type before returning.
581 (DeserializeSection): save off the raw xml to our
584 * ConfigurationElement.cs (LockItem): implement.
585 (DeserializeElement): add support for the "lockItem" attribute.
587 2005-12-16 Chris Toshok <toshok@ximian.com>
589 * ConfigurationLockCollection.cs (Add): only add the name if it's
591 (IsReadOnly): always return false for the time being, in the
592 non-exceptional case.
594 2005-12-15 Chris Toshok <toshok@ximian.com>
596 * ConfigurationElement.cs (LockAllAttributesExcept): implement.
597 (LockAllElementsExcept): implement.
598 (DeserializeElement): handle the built-in attributes (lock* for
601 2005-12-15 Chris Toshok <toshok@ximian.com>
603 * ConfigurationLockCollection.cs (..ctor): don't call Populate.
605 (CheckName): make sure the passes in name is valid for this type
607 (Add): call CheckName, and set is_modified to true.
608 (Clear): set is_modified.
609 (IsReadOnly): add plausable implementation, including exception in
610 the case where the name isn't found.
611 (Remove): set is_modified.
612 (SetFromList): implement.
613 (get_AttributeList): implement.
614 (set_IsModified): add internal setter so we can clear the modified
617 2005-12-12 Chris Toshok <toshok@ximian.com>
619 * AppSettingsSection.cs (DeserializeElement): provide rather naive
620 version of the file="" handling. It's enough to make our tests
623 2005-12-11 Chris Toshok <toshok@ximian.com>
625 * ConnectionStringsSection.cs (..cctor): use "" instead of null
626 for the name of the default collection.
628 * AppSettingsSection.cs (..cctor): create a property for the
630 (DeserializeElement): call base.DeserializeElement.
631 (File): index off the property, not the name.
632 (Settings): don't use an private variable here, use
635 * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
636 null for new app domains. so deal with this by calling
637 GetCallingAssembly if it's null. This is probably still wrong but
638 it doesn't NRE in xsp2.
639 (AppSettings): remove MonoTODO.
641 * KeyValueConfigurationElement.cs (..ctor): new method, create the
642 ConfigurationProperty's and the collection here.
643 (.ctor): add internal arg-less ctor.
644 (Key): use keyProp instead of "key".
645 (Value): use vlaueProp instead of "value".
646 (Properties): return our class's properties.
648 * KeyValueConfigurationCollection.cs (CreateNewElement): use the
650 (GetElementKey): re-enable the BaseIndexOf test.
652 2005-12-02 Chris Toshok <toshok@ximian.com>
654 * Configuration.cs (Save): call WriteStartDocument.
656 * ConnectionStringSettingsCollection.cs (CreateNewElement): use
657 parameter-less ctor to keep from generating exceptions when using
660 2005-12-02 Chris Toshok <toshok@ximian.com>
662 * ConnectionStringSettings.cs: tabify, fix default values, and add
663 a string validator for "name".
665 2005-12-02 Chris Toshok <toshok@ximian.com>
667 * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
668 the type check away from an exact check for
669 CommaDelimitedStringCollection to an assignable test from
670 StringCollection. This is due to the fact that AuthorizationRule
671 doesn't create CommaDelimitedStringCollections, for some odd
672 reason. It uses StringCollections.
674 * PropertyInformation.cs (Value): remove the case for
675 IsDefaultCollection - it's not necessary, as the property is an
678 * ConnectionStringSettings.cs: fix formatting and remove some
681 * ConnectionStringSettingsCollection.cs: same.
683 * ConnectionStringsSection.cs: same.
685 * ConfigurationElement.cs (SerializeToXmlElement): don't write the
686 enclosing start/end elements if the elementName is null or "".
687 this fixes the case for the DefaultCollections (at least in the
688 case of connectionStrings).
690 * IgnoreSection.cs (Properties): remove the MonoTODO.
692 * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
694 2005-11-28 Chris Toshok <toshok@ximian.com>
696 * ProviderSettings.cs: use ConfigurationProperty's to implement
699 2005-11-24 Chris Toshok <toshok@ximian.com>
701 * ConfigurationProperty.cs (Validate): add internal method.
703 2005-11-24 Chris Toshok <toshok@ximian.com>
705 * ConfigurationElement.cs (ElementProperty): make this protected
706 internal virtual instead of public.
707 (SetPropertyValue): add a validator call and a blurb about the
708 code based on information gleaned from tests.
709 (set_Item (string)): call SetPropertyValue in the setter.
711 2005-11-14 Chris Toshok <toshok@ximian.com>
713 * CommaDelimitedStringCollection.cs: reformat things a bit, and
714 flag ToString() as override.
716 * DefaultSection.cs: new stubbed out implementation.
718 * CommaDelimitedStringCollectionConverter.cs: new implementation.
720 2005-11-10 Chris Toshok <toshok@ximian.com>
722 * AppSettingsSection.cs (DeserializeElement): stop explicitly
723 calling Settings.DeserializeElement, as the DefaultCollection
726 * ConfigurationElement.cs (DeserializeElement): rework the loop
727 here so that we actually loop over all the content elements.
729 2005-11-09 Chris Toshok <toshok@ximian.com>
731 * ConfigurationElement.cs: Add support for DefaultCollection
734 * PropertyInformation.cs (PropertyInformation.Value): add case for
737 * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
738 a "type" attribute, make sure the cached System.Type is cleared.
740 2005-10-25 Chris Toshok <toshok@ximian.com>
742 * InfiniteTimeSpanConverter.cs: new implementation.
744 * InfiniteIntConverter.cs: new implementation.
746 * GenericEnumConverter.cs: new implementation.
748 * Configuration.cs: we don't need to check with "is" after we use
749 "as".. just check for null-ness.
751 * KeyValueConfigurationCollection.cs: GetElementKey should throw
752 NRE if element == null.
754 * CommaDelimitedStringCollection.cs: raise the correct exceptions
755 in the read only case, and return null from ToString if there are
758 2005-10-25 Chris Toshok <toshok@ximian.com>
760 * PositiveTimeSpanValidatorAttribute.cs: new implementation.
762 * PositiveTimeSpanValidator.cs: new implementation.
764 2005-10-24 Chris Toshok <toshok@ximian.com>
766 * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
768 * TypeNameConverter.cs: new implementation.
770 * WhiteSpaceTrimStringConverter.cs: new implementation.
772 2005-10-24 Chris Toshok <toshok@ximian.com>
774 * AppSettingsSection.cs (DeserializeElement, SerializeSection):
775 split the behavior based on if File == "". If it is, we do the
776 default. otherwise we throw NIE.
778 * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
779 need this, but we do until the IsDefaultCollection stuff is fixed.
781 * ConfigurationElementCollection.cs
782 (OnDeserializeUnrecognizedElement): for clearElementName, make
783 sure we have no attributes.
785 * ConnectionStringSettingsCollection.cs (get_Properties): for now
786 just chain up to base.Properties.
788 * ConfigurationElement.cs (ReflectProperties): do the default
789 value/property type check in a more robust way, using
792 2005-10-24 Chris Toshok <toshok@ximian.com>
794 * ConfigurationElement.cs: treat
795 ConfigurationProperty.NoDefaultValue the same as null when we're
796 checking the default value's type. this fixes t13 and 14.
798 * ConnectionStringsSection.cs (ConnectionStrings): fix the
799 DefaultValue in the ConfigurationPropertyAttribute.
801 2005-10-24 Chris Toshok <toshok@ximian.com>
803 * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
804 one test to get another working. Return a valid key even if the
805 element is not in this collection.
806 (get_ThrowOnDuplicate): return false.
808 * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
809 element with the same key, overwrite the old one (remove the old
810 one after inserting the new one). Also, re-enable the throwing of
811 exceptions if ThrowOnDuplicate == true.
813 2005-10-24 Chris Toshok <toshok@ximian.com>
815 * AppSettingsSection.cs (Settings): fix ConfigurationProperty
818 * ProtectedConfigurationSection.cs (Providers): same.
820 2005-10-12 Chris Toshok <toshok@ximian.com>
822 * ConfigurationPermission.cs: flesh out as per tests.
824 2005-10-11 Chris Toshok <toshok@ximian.com>
826 * ConfigurationProperty.cs: don't use null to mean no default
827 value, use NoDefaultValue.
829 2005-10-11 Chris Toshok <toshok@ximian.com>
831 * KeyValueConfigurationCollection.cs (GetElementKey): duh.
832 BaseGet calls GetElementKey, so we were hitting an infinite
833 recursion here. Use BaseIndexOf instead.
835 2005-10-07 Chris Toshok <toshok@ximian.com>
837 * InternalConfigurationHost.cs: some interface work, adding in the
840 * ConfigurationProperty.cs: remove debug spew.
842 * Configuration.cs: add NIE'd NamespaceDeclared property.
844 * ElementInformation.cs: add NIE'd Errors property.
846 * PropertyInformationCollection.cs: add NIE'd GetObjectData().
848 * ConfigurationManager.cs: quite a bit of new work here. Some
849 definie TODO's still though.
851 2005-10-07 Chris Toshok <toshok@ximian.com>
853 * ConfigurationErrorsException.cs (.ctor): for the (string)
854 overload, chain up to the base (string) ctor.
856 2005-10-07 Chris Toshok <toshok@ximian.com>
858 * ConfigurationElement.cs (ElementMap.ReflectProperties): make
859 sure the type of the default value is compatible with that of the
860 property itself, and throw ConfigurationErrorsException if they
861 don't match. Fixes t12.
863 2005-10-07 Chris Toshok <toshok@ximian.com>
865 * ConfigHelper.cs: remove some unused code.
867 * ConfigurationProperty.cs: disambiguate the ctor we chain to.
869 * ConfigurationElement.cs (ElementProperty): implement.
870 (ElementMap.ReflectProperties): make DefaultValidator the default
873 2005-10-06 Chris Toshok <toshok@ximian.com>
875 * KeyValueConfigurationElement.cs: uncomment out some stuff.
876 (Properties): just return base.Properties. Not sure why they
877 override this, as the base class's implementation passes our test.
879 * KeyValueConfigurationCollection.cs (Add): for the keyValue
880 overload, call keyValue.Init as the unit test stack traces
881 indicates that'9s where it's called. For the string,string
882 overload, just call the keyValue overload instead of calling
884 (CreateNewElement): just use the name/value ctor, and specify ""
886 (GetElementKey): this function always returns "" for elements that
887 haven't been added to the collection. Once theyre added, it seems
888 to always return keyValue.Key.
889 (Properties): the unit tests show this returns a 0 length
892 2005-10-05 Chris Toshok <toshok@ximian.com>
894 * ConfigurationPermissionAttribute.cs: stub out.
896 2005-10-05 Chris Toshok <toshok@ximian.com>
898 * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
901 2005-10-05 Chris Toshok <toshok@ximian.com>
903 * TimeSpanSecondsConverter.cs: new implementation.
905 2005-10-05 Chris Toshok <toshok@ximian.com>
907 * TimeSpanMinutesConverter.cs: flesh out implementation.
909 * ConfigurationConverterBase.cs: make all subclasses work with
910 strings only, since that's what seems to manifest itself in the
913 2005-10-05 Chris Toshok <toshok@ximian.com>
915 * ConfigurationLockCollection.cs: add NIE'd AttributeList
918 * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
919 CanConvertTo methods.
921 * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
923 * ProtectedConfigurationSection.cs: add NIE'd properties.
925 * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
926 and SetReadOnly methods, and have then chain up to the base class.
928 * KeyValueConfigurationCollection.cs: add the class level
929 ConfigurationCollectionAttribute, and add a NIE'ed Properties
932 * ProviderSettingsCollection.cs: add the class level
933 ConfigurationCollectionAttribute, and add a "new" keyword to the
934 this property. Also, nuke the Provider's property.
936 * SectionInformation.cs: add some NEI'd properties.
938 * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
939 chain up to base class's method instead of throwing NIE.
941 * ConnectionStringSettingsCollection.cs: add the class-level
942 ConfigurationCollectionAttribute, and add the unimplemented
945 * ConfigurationErrorsException.cs: flesh this out, and add a
946 pragma to disable the obsolete warnings from our base class.
948 * ProviderSettings.cs: add unimplemented Properties property.
950 * ConfigurationElement.cs: remove unnecessary
951 EvaluationInformation.
953 * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
956 * ConfigurationProperty.cs: add a missing ctor.
958 * AppSettingsSection.cs: add missing "override" keyword.
960 * ConnectionStringsSection.cs: remove override.
962 * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
963 unimplemented GetObjectData override.
965 * ConfigurationSectionGroupCollection.cs: same.
967 * ConfigurationCollectionAttribute.cs: add missing CollectionType
970 2005-10-05 Chris Toshok <toshok@ximian.com>
972 * ConfigurationPermission.cs: new implementation.
974 * IgnoreSection.cs: new implementation.
976 2005-10-05 Chris Toshok <toshok@ximian.com>
978 * CommaDelimitedStringCollection.cs: new implementation.
980 2005-10-05 Chris Toshok <toshok@ximian.com>
982 * NameValueConfigurationCollection.cs: new implementation.
984 * NameValueConfigurationElement.cs: new implementation.
986 2005-10-05 Chris Toshok <toshok@ximian.com>
988 * ValidatorCallback.cs: new implementation.
990 * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
993 * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
996 * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
999 * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
1001 * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
1004 * DefaultValidator.cs: new implementation.
1006 2005-09-28 Chris Toshok <toshok@ximian.com>
1008 * ConfigurationElementCollection.cs: more work on the "<clear />"
1009 handling - just skip the element for now. this causes a failure
1010 in one test ('<clear hi="bye" />' doesn't throw an exception when
1011 it should), but it succeeds for collections that have required
1014 * ConnectionStringSettings.cs: providerName isn't a required
1017 * AppSettingsSection.cs (.cctor): initialize our "file" Property.
1020 (GetRuntimeObject): call the base class method instead of just
1023 * ConnectionStringsSection.cs: Add a hacky DeserializeElement
1024 method here (that isn't in MS's) for the time being so we actually
1025 deserialize our collection.
1027 2005-09-28 Chris Toshok <toshok@ximian.com>
1029 * KeyValueInternalCollection.cs: found this by way of a stack
1030 trace in one of the tests. A NameValueCollection that wraps a
1031 KeyValueConfigurationCollection.
1033 * Configuration.cs (Init): save off configPath.
1034 (EvaluationContext): new, mostly implemented.
1035 (GetSectionInstance): use IgnoreSection instead of
1037 (Load): don't fail when we can't load a file.
1039 * IgnoreSection.cs: replace RuntimeOnlySection with this new
1042 * RuntimeOnlySection.cs: nuke.
1044 2005-09-27 Chris Toshok <toshok@ximian.com>
1046 * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
1048 2005-09-27 Chris Toshok <toshok@ximian.com>
1050 * ConfigurationProperty.cs: add IsDefaultCollection property.
1052 2005-09-27 Chris Toshok <toshok@ximian.com>
1054 * ConfigurationElementProperty.cs: new file.
1056 * ConfigurationLockCollection.cs: new file.
1058 * ConfigurationElementCollection.cs
1059 (OnDeserializeUnrecognizedElement): make sure we consume the
1060 <clear /> element so we don't into an endless loop.
1062 * ConfigurationElement.cs: add a bunch of NIE's properties.
1064 * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
1066 2005-09-23 Chris Toshok <toshok@ximian.com>
1068 * AppSettingsSection.cs: fix build and add a couple of TODO'ed
1071 2005-09-23 Chris Toshok <toshok@ximian.com>
1073 * ProviderSettings.cs (Unmerge): track change to
1074 ConfigurationElement.Unmerge.
1076 * ConfigurationSection.cs: add functions nuked from
1077 ConfigurationElement here.
1079 * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
1081 (BaseGetAllKeys): returns object[], not string[].
1082 (BaseGetKey): returns object, not string.
1083 (Unmerge): track change to ConfigurationElement.Unmerge signature.
1085 * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
1086 signature (drop the serializeCollectionKey parameter).
1089 2005-09-23 Chris Toshok <toshok@ximian.com>
1091 * StringValidator.cs: throw ArgumentException instead of
1092 ConfigurationErrorsException.
1094 2005-09-23 Chris Toshok <toshok@ximian.com>
1096 * ConnectionStringsSection.cs: track change to
1097 ConfigurationPropertyOptions.
1099 * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
1100 ProviderSettings.cs: track change to ConfigurationPropertyOptions.
1102 * ConnectionStringSettings.cs: track change to
1103 ConfigurationProprertyOptions, and add some ConfigurationProperty
1106 * ConfigurationPropertyOptions.cs: DefaultCollection ->
1107 IsDefaultCollection, Required -> IsRequired.
1109 2005-09-22 Chris Toshok <toshok@ximian.com>
1111 * PositiveTimeSpanValidator.cs: this lives in
1112 System.Web.Configuration, not System.Configuration.
1114 2005-09-22 Chris Toshok <toshok@ximian.com>
1116 * TimeSpanValidator.cs: change to ArgumentException and alter the
1119 2005-09-22 Chris Toshok <toshok@ximian.com>
1121 * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
1123 2005-07-01 Lluis Sanchez Gual <lluis@novell.com>
1125 * ProviderSettings.cs: Implemented properties using property attributes.
1126 * ConfigurationElement.cs: Implemented ElementInformation property and
1127 moved there all value management.
1128 * ProtectedConfigurationProvider.cs: Set the correct base class.
1129 * SectionInformation.cs: Added missing AllowExeDefinition property.
1130 * TimeSpanValidatorAttribute.cs: Implemented.
1131 * StringValidator.cs: Implemented.
1132 * ProviderSettingsCollection.cs: Added missing class attribute.
1133 * ConfigurationSaveMode.cs: Fix enum values.
1134 * ConfigurationElementCollection.cs: Added Init method for initializing
1135 elements from properties.
1136 * StringValidatorAttribute.cs: Implemented.
1137 * ConfigurationLocation.cs: Added support for allowOverride flag.
1138 * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
1139 * PositiveTimeSpanValidator.cs: Implemented.
1140 * TimeSpanMinutesConverter.cs: Created skeleton class.
1141 * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
1142 AllowDefinition and AllowExeDefinition.
1143 * TimeSpanValidator.cs: Implemented.
1144 * ConfigurationConverterBase.cs: Created skeleton class.
1145 * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
1146 VerifyDefinitionAllowed.
1147 * ConfigurationManager.cs: That class must be static.
1148 * PropertyInformationCollection.cs: Implemented.
1149 * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
1150 so on. In Save(), don't forget to save location elements.
1151 * ConfigurationProperty.cs: Keep track of collection attributes.
1152 * ConfigInfo.cs: Support overrideAllowed flag.
1153 * KeyValueConfigurationElement.cs: Define properties using attributes.
1154 * PropertyValueOrigin.cs: implemented.
1155 * PropertyInformation.cs: Mostly implemented.
1156 * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
1157 * ElementInformation.cs: Mostly implemented.
1158 * ConfigurationPropertyAttribute.cs: Set the correct default value.
1159 * ConfigurationCollectionAttribute.cs: Implemented.
1161 2005-06-23 Lluis Sanchez Gual <lluis@novell.com>
1163 * SectionInfo.cs: Set the config host when loading the section.
1164 * InternalConfigurationHost.cs: Implemented some basic methods.
1165 * Configuration.cs: Find the correct parent for the configuration,
1166 taking into accound locations and such. Use Host functions to get
1168 * ConfigurationLocationCollection.cs: Added find method.
1169 * ConfigInfo.cs: Added Host property.
1170 * InternalConfigurationFactory.cs: The InitForConfiguration calls
1171 are now done in each correspoding configuration.
1172 * SectionGroupInfo.cs: When reading a location element, create
1173 a Configuration object for each path specified in the location.
1174 * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
1175 method, which properly initializes the created element.
1176 * ConfigurationLocation.cs: OpenConfiguration now has to read the
1177 xml contents. It also has to find the correct parent configuration,
1178 if it has not been specified.
1180 2005-06-17 Lluis Sanchez Gual <lluis@novell.com>
1182 * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
1183 * ConfigurationPropertyCollection.cs: Added Clear method.
1184 * ContextInformation.cs: Implemented.
1185 * ConfigurationManager.cs: Implemented some missing methods.
1186 Configuration objects are now created through the ConfigurationFactory.
1187 * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
1188 to be used for exe files and machine.config.
1189 * ConfigurationFileMap.cs: Implemented.
1190 * Configuration.cs: Read and write config files using the methods that
1191 IInternalConfigHost provides.
1192 * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
1193 * ExeContext.cs: Implemented.
1194 * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
1195 collection to store values.
1196 * KeyValueConfigurationElement.cs: Implemented.
1197 * KeyValueConfigurationCollection.cs: Implemented.
1198 * InternalConfigurationFactory.cs: An implementation of
1199 IInternalConfigConfigurationFactory.
1200 * ConfigurationPropertyAttribute.cs: Added missing attributes.
1201 * ExeConfigurationFileMap.cs: Implemented.
1203 2005-06-15 Lluis Sanchez Gual <lluis@novell.com>
1205 * ConfigurationElement.cs, ConfigurationErrorsException.cs
1206 SectionInfo.cs, ConnectionStringSettingsCollection.cs,
1207 ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
1208 ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
1209 ConfigurationElementCollectionType.cs, Configuration.cs,
1210 ConnectionStringSettings.cs, ConfigurationProperty.cs,
1211 ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
1212 ConfigurationAllowDefinition.cs, ConfigInfo.cs,
1213 ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
1214 ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
1215 SectionGroupInfo.cs, ConfigurationUserLevel.cs,
1216 ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
1217 ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
1218 ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
1219 ProviderSettings.cs:
1222 * ConfigurationElementCollection.cs: Implemented support for Basic
1223 collection type. Other fixes.
1225 * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
1226 * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
1228 * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
1229 ConfigurationManager.cs, ConfigurationSaveMode.cs,
1230 ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
1231 ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
1234 * ConfigurationValidationAttribute.cs: Removed.
1236 * ProviderBase.cs: Moved to System.dll.
1238 2005-06-14 Lluis Sanchez Gual <lluis@novell.com>
1240 * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
1241 ConfigurationAllowDefinition.cs, ConfigurationElement.cs
1242 ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
1243 ConfigurationLocation.cs, ConfigurationLocationCollection.cs
1244 ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
1245 ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
1246 ConfigurationSection.cs, ConfigurationSectionCollection.cs
1247 ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
1248 ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
1249 ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
1250 ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
1251 IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
1252 NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
1253 ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
1254 RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
1255 TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
1256 TimeSpanSerializedFormat.cs:
1258 Moved from the System assembly.