2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.Configuration / System.Configuration / ChangeLog
index 10152bf4fb14dc48e40d49a80b10f9c595319c39..02d0aae13bbc0a5660979f6df9e206b743ba0c4a 100644 (file)
@@ -1,3 +1,230 @@
+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