+2008-01-12 Sebastien Pouliot <sebastien@ximian.com>
+
+ * ConfigurationLocationCollection.cs: Avoid infinite recursion.
+ Found using Gendarme.
+
+2007-12-25 Konstantin Triger <kostat@mainsoft.com>
+
+ * KeyValueInternalCollection.cs: properly override NameValueCollection
+ to support interop with it.
+
+2007-12-25 Konstantin Triger <kostat@mainsoft.com>
+
+ * ConfigurationElement.cs:
+ 1. typo - pass the correct property to Attribute.GetCustomAttribute.
+ 2. Pass oroginal exception as inner.
+
+2007-12-05 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationElement.cs: some property values may be null
+ objects in GetHashCode.
+
+2007-11-23 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationElementCollection.cs: ThrowOnDuplicate returns true
+ if the collection is one of the AddRemoveClearMap or
+ AddRemoveClearMapAlternate types.
+
+2007-11-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ Part of fix for bug #323708.
+ * ConfigurationSection.cs : in GetRuntimeObject(), take parent
+ section instance into consideration.
+ * SectionInformation.cs : to make it possible, GetParentSection()
+ should be implemented.
+ * Configuration.cs : to make it possible, GetSectionInstance()
+ should set parent section on its SectionInformation. It used to
+ just steal parent's xml when its own xml does not exist, but
+ it now blocks correct configuration retrieval.
+
+2007-11-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * SectionGroupInfo.cs : remove extra StringBuilder creation.
+
+2007-11-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Configuration.cs : (Save) when the given file path is relative
+ it failed to create directory. Fixed standalone test t25/t26.
+ * InternalConfigurationHost.cs : pass userLevel to create a host
+ instance.
+
+2007-10-04 Atsushi Enomoto <atsushi@ximian.com>
+
+ * InternalConfigurationHost.cs : when the streamName is for
+ machine.config, try get_bundled_machine_config() icall first.
+ This hopefully implements the requested feature in bug #325022.
+ * Configuration.cs : added comment.
+
+2007-08-31 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * ConfigurationManager.cs: Fixed line endings. Avoid warning by
+ changing accessibility of ChangeConfigurationSystem to internal.
+ * Configuration.cs: Fixed compiler warnings.
+ * DpapiProtectedConfigurationProvider.cs: Fixed line endings.
+
+2007-08-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationManager.cs : To open exe configuration, use
+ GetEntryAssembly() first, and GetCallingAssembly() only when
+ it was not found. Should fix bug #82071.
+
+2007-06-21 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Configuration.cs, InternalConfigurationHost.cs :
+ configuration file to write might be given as an absolute path,
+ where the ancestor directories may not exist.
+
+2007-06-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationManager.cs : in OpenExeConfiguration() and
+ OpenMappedExeConfiguration(), take userLevel into consideration.
+ * InternalConfigurationHost.cs : consider ConfigurationUserLevel and
+ use correct config map file in InitForConfiguration().
+
+2007-06-18 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ClientConfigurationSystem.cs : do not asume GetEntryAssembly()
+ returns non-null. Patch by Patrick Perry.
+
+2007-06-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationElement.cs : SerializeToXmlElement() should be
+ called regardless of HasValues() return value, especially since
+ it could be overriden (e.g. in SettingsValueElement).
+
+2007-06-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationSectionGroup.cs
+ Configuration.cs : ConfigurationSectionGroup must be initialized
+ at least when being added to a collection.
+
+2007-06-12 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConfigurationElement.cs: refactored GetKeyProperties and
+ GetDefaultCollection methods, map should not be used here, Properties
+ will do instead. Refactored ElementMap class
+ * ConfigurationElementCollection.cs: fixed InitFromProperty, GetMap()
+ should not be called here
+ * ElementInformation.cs: fixed Properties, moved to ctor to be thread
+ safe
+ * PropertyInformation.cs: members assigned readonly modifier
+
+2007-05-30 Marek Habersack <mhabersack@novell.com>
+
+ * SectionGroupInfo.cs: <location> elements are case-insensitive
+ and the same 'path' attribute may be used only once.
+
+ * ConfigurationLocationCollection.cs: Find should be
+ case-insensitive for all targets, not just TARGET_JVM.
+
+2007-05-17 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * Configuration.cs: FilePath implemented according to MSDN:
+ If the value for this FilePath property represents a merged view and
+ no actual file exists for the application, the path to the parent
+ configuration file is returned.
+
+2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * Configuration.cs:
+ * ConfigurationLocation.cs:
+ implemented EvaluationContext property.
+
+2007-05-15 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * ConfigurationLocationCollection.cs: for TARGET_JVM only:
+ location path is case-insensitive.
+
+2007-05-15 Marek Habersack <mhabersack@novell.com>
+
+ * ConfigurationElement.cs: added value validation on
+ deserialization from the config file.
+
+2007-05-14 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * ConfigurationElement.cs: when attribute value cannot be parsed,
+ ConfigurationErrorException is thrown.
+
+2007-05-09 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * ConfigurationManager.cs:
+ added MonoLimitation attribute for TARGATE_JVM.
+
+2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
+
+ * ConnectionStringSettingsCollection.cs: removed 'new' keyword, cause
+ property doesn't hide any inherit property.
+
+2007-04-24 Atsushi Enomoto <atsushi@ximian.com>
+
+ * InternalConfigurationHost.cs : machine configuration covers all
+ ConfigurationAllowDefinition values.
+
+2007-04-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationSectionCollection.cs : GetEnumerator() should return
+ IEnumerator for the items, not keys.
+ * ConfigurationProperty.cs : more helpful type mismatch message.
+
+2007-04-16 Marek Habersack <mhabersack@novell.com>
+
+ * SectionGroupInfo.cs: another (and final, hopefully) fix for bug
+ #81321 and several other related issues that were discovered by
+ the way. Thanks to Atsushi for help with XmlReader!
+
+2007-04-15 Marek Habersack <mhabersack@novell.com>
+
+ * SectionGroupInfo.cs: another incarnation of the fix for bug
+ #81321.
+
+2007-04-12 Marek Habersack <mhabersack@novell.com>
+
+ * SectionGroupInfo.cs: a better fix for #81321
+
+2007-04-10 Marek Habersack <mhabersack@novell.com>
+
+ * SectionGroupInfo.cs: make sure empty sections with the
+ short-circuit tag ends (<section/>) don't make the process loop
+ endlessly. Fixes bug #81321.
+
+2007-03-22 Konstantin Triger <kostat@mainsoft.com>
+
+ * ConfigInfo.cs: should be able instantiate types with private ctors.
+
+2007-03-19 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConfigurationSectionCollection.cs,
+ * ConfigurationSectionGroupCollection.cs,
+ * PropertyInformationCollection.cs,
+ * SectionGroupInfo.cs: used StringComparer.Ordinal instead of
+ OrdinalComparer
+
+2007-03-15 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConfigurationSectionCollection.cs,
+ * ConfigurationSectionGroupCollection.cs,
+ * PropertyInformationCollection.cs,
+ * SectionGroupInfo.cs: these collections should be based on case
+ insensitive NameObjectCollectionBase
+ * added OrdinalComparer.cs for use in NameObjectCollectionBase
+
+2007-02-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * SectionInfo.cs : don't stop at restartOnExternalChanges attribute.
+
+2007-01-16 Konstantin Triger <kostat@mainsoft.com>
+
+ * ConfigurationElement.cs: ignore properties with null or empty name.
+
+2007-01-16 Konstantin Triger <kostat@mainsoft.com>
+
+ * ConfigurationElement.cs: Try to deserilalize an unrecognized element by
+ current element, and only if failed delegate to default collection.
+
+2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConfigurationElementCollection.cs: fixed BaseAdd, looking for
+ identical element when collection type is not alternate
+
+2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConnectionStringSettingsCollection.cs: made connection string key
+ case insensitive
+
+2006-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationElementCollection.cs : fixed BaseAdd() with
+ throwIfExists to not raise an error for identical element
+ but for different element which shares the same key. Fix by
+ Konstantin Triger.
+
+2006-12-21 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConfigurationProperty.cs: fixed DefaultValue of type Enum
+
+2006-12-10 Konstantin Triger <kostat@mainsoft.com>
+
+ * ConfigurationElement.cs: Delegate parameter checking and default
+ assigning to Configuratin property.
+ * ConfigurationProperty.cs:
+ Ensure the TypeConvert and Validator always exist.
+ Ensure the primitive types are properly initialized.
+
+2006-12-09 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConfigurationElementCollection.cs
+ * ConfigurationRemoveElement.cs: fixed key for <remove> element in
+ ConfigurationRemoveElement class
+
+2006-11-28 Marek Habersack <grendello@gmail.com>
+
+ * SectionGroupInfo.cs: Implement merging of section groups with
+ the same names and parents.
+
+ * ConfigInfo.cs: Add an abstract method for merging sections.
+
+ * SectionInfo.cs: Add implementation of an abstract base method
+
+2006-08-23 Konstantin Triger <kostat@mainsoft.com>
+
+ * SectionInfo.cs: refactoring - remove unneeded bool? usage.
+
+2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * added: ConfigurationRemoveElement.cs, common element for <remove>
+ * ConnectionStringSettingsCollection.cs: reverted last fix for
+ <remove> element
+ * ConfigurationElementCollection.cs: fixed the way that
+ OnDeserializeUnrecognizedElement method handles <remove> element
+
+2006-11-02 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConfigurationElement.cs: typo in DefaultCollectionProperty
+ method
+
+2006-10-30 Joel Reed <joel.reed@ddiworld.com>
+
+ * NameValueConfigurationCollection.cs: Implement the Properties
+ property.
+
+2006-08-23 Konstantin Triger <kostat@mainsoft.com>
+
+ * ConfigurationLocation.cs: do not read root element, correctly close stream.
+ * Configuration.cs: use ReadData for nested content to throw if location
+ elements are encounterd.
+ In constructor taking parent Configurqation: do not call Init and so avoid
+ rereading config file.
+
+2006-09-05 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * NameValueConfigurationElement.cs: fixed functionality
+ * ConfigurationElementCollection.cs,
+ ConnectionStringSettingsCollection.cs: fixed <remove> element in
+ connectionStrings section
+
+2006-08-23 Konstantin Triger <kostat@mainsoft.com>
+
+ * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
+ RawXml is null, as net 1.1 does.
+
+2006-08-17 Vladimir Krasnov <vladimirk@mainsoft.com>
+
+ * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
+ in grasshopper
+
+2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationManager.cs : OpenExeConfiguration(null) should still
+ work. This is required for embedded scenario.
+
+2006-06-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * SectionGroupInfo.cs : skip <dllmap> in configuration.
+
+2006-05-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationManager.cs: since ConfigurationSystem is different
+ for web.config, cast from ConfigurationSection to runtime object
+ should be done at GetSection().
+ This really fixed bug #78372.
+
+2006-05-12 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Configuration.cs : configPath is null for machine.config, so don't
+ use it. Use streamName instead. To my understanding, this should
+ fix bug #78372.
+
+2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConnectionStringSettings.cs : it seems that "name" property
+ could be null i.e. there is no StringValidator.
+ * StringValidator.cs : allow null.
+
+2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationManager.cs : use GetCallingAssembly() instead of
+ GetEntryAssembly() which possibly returns null (e.g. nunit) in
+ OpenExeConfiguration(). Several nunit test failures are gone.
+
+2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConnectionStringSettings.cs : oops, this API fix broke standalone
+ test.
+
+2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationElement.cs,
+ ConfigurationErrorsException.cs,
+ ConfigurationUserLevel.cs,
+ ConfigurationPropertyOptions.cs,
+ ConnectionStringSettings.cs : assorted minor corcompare fixes.
+
+2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Configuration.cs : some kind of refactoring is absolutely needed
+ here. Reuse RawXml from parentSection when data was not available
+ on current section. This should fix bug #78353.
+
+2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationElement.cs,
+ DefaultSection.cs :
+ in some cases RawXml was set null string, so skip such cases.
+ * Configuration.cs : support IConfigurationSectionHandler here.
+ * ConfigurationManager.cs : GetSection() now returns name value
+ collection, not a section.
+ * ConfigurationSection.cs : added SectionHandler for
+ IConfigurationSectionHandler support, and use its Create() in
+ GetRuntimeObject().
+ * ClientConfigurationSystem.cs :
+ use GetRuntimeObject() in GetSection(). Thus now
+ ConfigurationManager.GetSection() returns a runtime object.
+ Fixed bug #78337.
+
+2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * SectionGroupInfo.cs :
+ sections which are defined in sectionGroups could be directly
+ referenced, so search corresponding section recursively.
+ * DefaultSection.cs : It does not reject unrecognized contents.
+
+2006-04-26 Chris Toshok <toshok@ximian.com>
+
+ * SectionInformation.cs (.ctor): add MonoTODO about the default
+ value for require_permission.
+ (RequirePermission): implement the getter/setter for this so
+ Atsushi's previous commit doesn't break everything :)
+
+2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Configuration.cs,
+ SectionInfo.cs : added support for "requirePermission" attribute
+ in "section" element. This fixes bug #77957.
+
+2006-04-25 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElementCollection.cs (Reset): it makes no sense to
+ pass the typename to CreateNewElementInternal. the argument is
+ the elementname. pass null instead.
+ (Unmerge): same.
+
+2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
+ are protected.
+ * ConfigurationSection.cs : the .ctor() is protected.
+ * ConfigurationElementCollection.cs : CollectionType is public.
+ Count and BaseAdd() are not virtual.
+ * ConfigurationPropertyCollection.cs : Count is not virtual.
+
+2006-02-01 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElement.cs: revert the patch that stores and writes
+ out xmlns attributes for all elements.
+
+ * ClientConfigurationSystem.cs: SupportsUserConfig == false.
+
+ * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
+ only if SupportsUserConfig != true.
+
+ * ConfigurationManager.cs (ConfigurationSystem): add a property
+ like ConfigurationFactory, and use it instead of the private field
+ throughout.
+
+2006-01-26 Chris Toshok <toshok@ximian.com>
+
+ * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
+ correctly.
+
+ * InternalConfigurationRoot.cs: misc logical additions. still
+ isn't useful.
+
+ * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
+ exception if both calling_assembly and exePath are null. Allow
+ the exePath to be a path to a config file as well, checking to see
+ if it ends in .config before appending.
+ (OpenExeConfiguration): stop blindly passing
+ Assembly.GetCallingAssembly. I'm assuming this will likely break
+ .dll.config usage. need to investigate that (and write more unit
+ tests.)
+ (GetSection): call configSystem.GetSection.
+ (RefreshSection): call configSystem.RefreshSection.
+ (ChangeConfigurationSystem): modeled after the
+ ConfigurationSettings System.Web hack - allow
+ WebConfigurationManager to replace the current
+ IInternalConfigSystem.
+
+ * InternalConfigurationHost.cs (InternalConfigurationHost): make
+ abstract, and remove all the NotImplenmentedException's.
+
+ * ConfigurationElement.cs (DeserializeElement): store off the xml
+ namespace if there is one.
+ (SerializeElement): write out the namespace if there was one.
+
+ * ClientConfigurationSystem.cs: new class, based on some stack
+ traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
+
+ * Configuration.cs (NamespaceDeclared): implement.
+ (Load): don't swallow all exceptions, just the ones raised when we
+ open the stream for reading.
+ (ReadConfigFile): handle xmlns.
+
+2006-01-25 Chris Toshok <toshok@ximian.com>
+
+ * ConfigInfo.cs (ThrowException): throw a
+ ConfigurationErrorsException, not a ConfigurationException.
+
+ * SectionGroupInfo.cs (ReadContent): throw an exception
+ unconditionally if we see a <location>. they aren't valid in
+ section groups.
+
+2006-01-25 Chris Toshok <toshok@ximian.com>
+
+ * KeyValueInternalCollection.cs: don't use a nested collection,
+ just defer to our base class. This fixes usage of
+ ConfigurationManager.AppSettings.Keys.
+
+2006-01-13 Chris Toshok <toshok@ximian.com>
+
+ * AppSettingsSection.cs (GetRuntimeObject): only access
+ Settings[key] once per iteration.
+
+2006-01-09 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationManager.cs (AppSettings): just return
+ AppSettingsSection.GetRuntimeObject() here.
+
+ * AppSettingsSection.cs: fix the "file" property to match dumper
+ output.
+ (GetRuntimeObject): this returns a KeyValueInternalCollection in
+ MS's implementation.
+
+2006-01-09 Chris Toshok <toshok@ximian.com>
+
+ * ElementInformation.cs (Validator): if propertyInfo == null,
+ return a DefaultValidator instance.
+
+2006-01-09 Chris Toshok <toshok@ximian.com>
+
+ * AppSettingsSection.cs (.cctor): specify null for
+ validator/converter.
+
+ * ProtectedProviderSettings.cs (.cctor): specify null for
+ validator/converter.
+
+2006-01-03 Chris Toshok <toshok@ximian.com>
+
+ * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
+ can save to a new file.
+ (CreateSection): don't bother to set the section information's
+ Name here. we'll do it in SectionInfo.CreateInstance.
+
+ * ProtectedConfiguration.cs (Section): new static property so we
+ can remove all the GetSection calls.
+ (GetProvider): load a named provider, optionally throwing an
+ exception if it's not found.
+
+ * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
+ make these private interface implementations, and call
+ protectedSection.{EncryptSection,DecryptSection}.
+
+ * ProtectedConfigurationSection.cs (EncryptSection,
+ DecryptSection): add these two calls. They really shouldn't be
+ here, but I saw them in an MS stack trace and thought "why not?".
+
+ * ConfigurationSection.cs (SectionInformation): don't set
+ attributes here, that's done in SectionInfo.CreateInstance.
+ (DeserializeSection): shoehorn in the decryption stuff here. It
+ doesn't belong here, and I've added a MonoTODO about it. It
+ should live someplace like SectionInfo.ReadData (which would make
+ it similar to the encryption stuff in .WriteData).
+
+ * SectionInformation.cs (IsProtected): remove the special flag,
+ just return true if we have a non-null protection_provider.
+ (ProtectSection): do nothing but try to instantiate the named
+ provider.
+ (UnprotectSection): null out protection_provider.
+
+ * DpapiProtectedConfigurationProvider.cs: move the
+ NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
+ when parsing our machine.config file.
+
+ * RsaProtectedConfigurationProvider.cs: initial implementation.
+ much is missing (OAEP support, key importing, adding/deleting
+ keys), but it can be used.
+
+2006-01-02 Chris Toshok <toshok@ximian.com>
+
+ * RsaProtectedConfigurationProvider.cs: implement the
+ CspProviderName and UseOAEP properties..
+
+2006-01-02 Chris Toshok <toshok@ximian.com>
+
+ * ProtectedConfigurationSection.cs: flesh this out (and add logic
+ to instantiate providers, based on some of the standalone test
+ exception stack traces.)
+
+ * ProtectedConfiguration.cs: new implementation.
+
+ * ProtectedConfigurationProviderCollection.cs: new
+ implementation.
+
+ * ProtectedProviderSettings.cs: new implementation.
+
+ * ProtectedConfigurationProvider.cs: trim the superclass's name.
+
+ * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
+
+ * DpapiProtectedConfigurationProvider.cs: add stubbed
+ implementation that throws NotSupportedException telling people
+ they should be using RsaProtectedConfigurationProvider.
+
+2006-01-02 Chris Toshok <toshok@ximian.com>
+
+ * DefaultSection.cs (Properties): implement.
+
+ * IgnoreSection.cs: move from lazily creating the properties
+ collection to sharing a single one across all instances.
+
+ * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
+
+ * ConfigurationElementCollection.cs (BaseAdd) remove logic to
+ remove an old matching element.
+ (BaseGetKey): throw an exception if @index is out of range.
+
+ * SectionInformation.cs (SectionName): just return name, like Name
+ does.. redundant, but it matches tests.
+ (GetRawXml): implement.
+ (SetRawXml): implement.
+
+ * ConfigurationSection.cs (SectionInformation): fill in
+ sectionInformation.Type before returning.
+ (DeserializeSection): save off the raw xml to our
+ SectionInformation.
+
+ * ConfigurationElement.cs (LockItem): implement.
+ (DeserializeElement): add support for the "lockItem" attribute.
+
+2005-12-16 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationLockCollection.cs (Add): only add the name if it's
+ not already there.
+ (IsReadOnly): always return false for the time being, in the
+ non-exceptional case.
+
+2005-12-15 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElement.cs (LockAllAttributesExcept): implement.
+ (LockAllElementsExcept): implement.
+ (DeserializeElement): handle the built-in attributes (lock* for
+ the time being).
+
+2005-12-15 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationLockCollection.cs (..ctor): don't call Populate.
+ (Populate): nuke.
+ (CheckName): make sure the passes in name is valid for this type
+ of lock collection.
+ (Add): call CheckName, and set is_modified to true.
+ (Clear): set is_modified.
+ (IsReadOnly): add plausable implementation, including exception in
+ the case where the name isn't found.
+ (Remove): set is_modified.
+ (SetFromList): implement.
+ (get_AttributeList): implement.
+ (set_IsModified): add internal setter so we can clear the modified
+ flag.
+
+2005-12-12 Chris Toshok <toshok@ximian.com>
+
+ * AppSettingsSection.cs (DeserializeElement): provide rather naive
+ version of the file="" handling. It's enough to make our tests
+ pass.
+
+2005-12-11 Chris Toshok <toshok@ximian.com>
+
+ * ConnectionStringsSection.cs (..cctor): use "" instead of null
+ for the name of the default collection.
+
+ * AppSettingsSection.cs (..cctor): create a property for the
+ default collection.
+ (DeserializeElement): call base.DeserializeElement.
+ (File): index off the property, not the name.
+ (Settings): don't use an private variable here, use
+ base[_propSettings].
+
+ * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
+ null for new app domains. so deal with this by calling
+ GetCallingAssembly if it's null. This is probably still wrong but
+ it doesn't NRE in xsp2.
+ (AppSettings): remove MonoTODO.
+
+ * KeyValueConfigurationElement.cs (..ctor): new method, create the
+ ConfigurationProperty's and the collection here.
+ (.ctor): add internal arg-less ctor.
+ (Key): use keyProp instead of "key".
+ (Value): use vlaueProp instead of "value".
+ (Properties): return our class's properties.
+
+ * KeyValueConfigurationCollection.cs (CreateNewElement): use the
+ arg-less ctor.
+ (GetElementKey): re-enable the BaseIndexOf test.
+
+2005-12-02 Chris Toshok <toshok@ximian.com>
+
+ * Configuration.cs (Save): call WriteStartDocument.
+
+ * ConnectionStringSettingsCollection.cs (CreateNewElement): use
+ parameter-less ctor to keep from generating exceptions when using
+ the collection.
+
+2005-12-02 Chris Toshok <toshok@ximian.com>
+
+ * ConnectionStringSettings.cs: tabify, fix default values, and add
+ a string validator for "name".
+
+2005-12-02 Chris Toshok <toshok@ximian.com>
+
+ * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
+ the type check away from an exact check for
+ CommaDelimitedStringCollection to an assignable test from
+ StringCollection. This is due to the fact that AuthorizationRule
+ doesn't create CommaDelimitedStringCollections, for some odd
+ reason. It uses StringCollections.
+
+ * PropertyInformation.cs (Value): remove the case for
+ IsDefaultCollection - it's not necessary, as the property is an
+ Element.
+
+ * ConnectionStringSettings.cs: fix formatting and remove some
+ #regions.
+
+ * ConnectionStringSettingsCollection.cs: same.
+
+ * ConnectionStringsSection.cs: same.
+
+ * ConfigurationElement.cs (SerializeToXmlElement): don't write the
+ enclosing start/end elements if the elementName is null or "".
+ this fixes the case for the DefaultCollections (at least in the
+ case of connectionStrings).
+
+ * IgnoreSection.cs (Properties): remove the MonoTODO.
+
+ * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
+
+2005-11-28 Chris Toshok <toshok@ximian.com>
+
+ * ProviderSettings.cs: use ConfigurationProperty's to implement
+ the properties.
+
+2005-11-24 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationProperty.cs (Validate): add internal method.
+
+2005-11-24 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElement.cs (ElementProperty): make this protected
+ internal virtual instead of public.
+ (SetPropertyValue): add a validator call and a blurb about the
+ code based on information gleaned from tests.
+ (set_Item (string)): call SetPropertyValue in the setter.
+
+2005-11-14 Chris Toshok <toshok@ximian.com>
+
+ * CommaDelimitedStringCollection.cs: reformat things a bit, and
+ flag ToString() as override.
+
+ * DefaultSection.cs: new stubbed out implementation.
+
+ * CommaDelimitedStringCollectionConverter.cs: new implementation.
+
+2005-11-10 Chris Toshok <toshok@ximian.com>
+
+ * AppSettingsSection.cs (DeserializeElement): stop explicitly
+ calling Settings.DeserializeElement, as the DefaultCollection
+ works now.
+
+ * ConfigurationElement.cs (DeserializeElement): rework the loop
+ here so that we actually loop over all the content elements.
+
+2005-11-09 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElement.cs: Add support for DefaultCollection
+ attributes.
+
+ * PropertyInformation.cs (PropertyInformation.Value): add case for
+ IsDefaultCollection.
+
+ * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
+ a "type" attribute, make sure the cached System.Type is cleared.
+
+2005-10-25 Chris Toshok <toshok@ximian.com>
+
+ * InfiniteTimeSpanConverter.cs: new implementation.
+
+ * InfiniteIntConverter.cs: new implementation.
+
+ * GenericEnumConverter.cs: new implementation.
+
+ * Configuration.cs: we don't need to check with "is" after we use
+ "as".. just check for null-ness.
+
+ * KeyValueConfigurationCollection.cs: GetElementKey should throw
+ NRE if element == null.
+
+ * CommaDelimitedStringCollection.cs: raise the correct exceptions
+ in the read only case, and return null from ToString if there are
+ 0 elements.
+
+2005-10-25 Chris Toshok <toshok@ximian.com>
+
+ * PositiveTimeSpanValidatorAttribute.cs: new implementation.
+
+ * PositiveTimeSpanValidator.cs: new implementation.
+
+2005-10-24 Chris Toshok <toshok@ximian.com>
+
+ * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
+
+ * TypeNameConverter.cs: new implementation.
+
+ * WhiteSpaceTrimStringConverter.cs: new implementation.
+
+2005-10-24 Chris Toshok <toshok@ximian.com>
+
+ * AppSettingsSection.cs (DeserializeElement, SerializeSection):
+ split the behavior based on if File == "". If it is, we do the
+ default. otherwise we throw NIE.
+
+ * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
+ need this, but we do until the IsDefaultCollection stuff is fixed.
+
+ * ConfigurationElementCollection.cs
+ (OnDeserializeUnrecognizedElement): for clearElementName, make
+ sure we have no attributes.
+
+ * ConnectionStringSettingsCollection.cs (get_Properties): for now
+ just chain up to base.Properties.
+
+ * ConfigurationElement.cs (ReflectProperties): do the default
+ value/property type check in a more robust way, using
+ Convert.ChangeType.
+
+2005-10-24 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElement.cs: treat
+ ConfigurationProperty.NoDefaultValue the same as null when we're
+ checking the default value's type. this fixes t13 and 14.
+
+ * ConnectionStringsSection.cs (ConnectionStrings): fix the
+ DefaultValue in the ConfigurationPropertyAttribute.
+
+2005-10-24 Chris Toshok <toshok@ximian.com>
+
+ * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
+ one test to get another working. Return a valid key even if the
+ element is not in this collection.
+ (get_ThrowOnDuplicate): return false.
+
+ * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
+ element with the same key, overwrite the old one (remove the old
+ one after inserting the new one). Also, re-enable the throwing of
+ exceptions if ThrowOnDuplicate == true.
+
+2005-10-24 Chris Toshok <toshok@ximian.com>
+
+ * AppSettingsSection.cs (Settings): fix ConfigurationProperty
+ attribute.
+
+ * ProtectedConfigurationSection.cs (Providers): same.
+
+2005-10-12 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationPermission.cs: flesh out as per tests.
+
+2005-10-11 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationProperty.cs: don't use null to mean no default
+ value, use NoDefaultValue.
+
+2005-10-11 Chris Toshok <toshok@ximian.com>
+
+ * KeyValueConfigurationCollection.cs (GetElementKey): duh.
+ BaseGet calls GetElementKey, so we were hitting an infinite
+ recursion here. Use BaseIndexOf instead.
+
+2005-10-07 Chris Toshok <toshok@ximian.com>
+
+ * InternalConfigurationHost.cs: some interface work, adding in the
+ new methods.
+
+ * ConfigurationProperty.cs: remove debug spew.
+
+ * Configuration.cs: add NIE'd NamespaceDeclared property.
+
+ * ElementInformation.cs: add NIE'd Errors property.
+
+ * PropertyInformationCollection.cs: add NIE'd GetObjectData().
+
+ * ConfigurationManager.cs: quite a bit of new work here. Some
+ definie TODO's still though.
+
+2005-10-07 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationErrorsException.cs (.ctor): for the (string)
+ overload, chain up to the base (string) ctor.
+
+2005-10-07 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationElement.cs (ElementMap.ReflectProperties): make
+ sure the type of the default value is compatible with that of the
+ property itself, and throw ConfigurationErrorsException if they
+ don't match. Fixes t12.
+
+2005-10-07 Chris Toshok <toshok@ximian.com>
+
+ * ConfigHelper.cs: remove some unused code.
+
+ * ConfigurationProperty.cs: disambiguate the ctor we chain to.
+
+ * ConfigurationElement.cs (ElementProperty): implement.
+ (ElementMap.ReflectProperties): make DefaultValidator the default
+ validator, not null.
+
+2005-10-06 Chris Toshok <toshok@ximian.com>
+
+ * KeyValueConfigurationElement.cs: uncomment out some stuff.
+ (Properties): just return base.Properties. Not sure why they
+ override this, as the base class's implementation passes our test.
+
+ * KeyValueConfigurationCollection.cs (Add): for the keyValue
+ overload, call keyValue.Init as the unit test stack traces
+ indicates that'9s where it's called. For the string,string
+ overload, just call the keyValue overload instead of calling
+ BaseAdd.
+ (CreateNewElement): just use the name/value ctor, and specify ""
+ for each.
+ (GetElementKey): this function always returns "" for elements that
+ haven't been added to the collection. Once theyre added, it seems
+ to always return keyValue.Key.
+ (Properties): the unit tests show this returns a 0 length
+ collection.
+
+2005-10-05 Chris Toshok <toshok@ximian.com>
+
+ * ConfigurationPermissionAttribute.cs: stub out.
+
2005-10-05 Chris Toshok <toshok@ximian.com>
* TimeSpanMinutesOrInfiniteConverter.cs: fill in the
TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
TimeSpanSerializedFormat.cs:
- Moved from the System assembly.
\ No newline at end of file
+ Moved from the System assembly.