1 2006-12-27 Vladimir Krasnov <vladimirk@mainsoft.com>
3 * ConnectionStringSettingsCollection.cs: made connection string key
6 2006-12-27 Atsushi Enomoto <atsushi@ximian.com>
8 * ConfigurationElementCollection.cs : fixed BaseAdd() with
9 throwIfExists to not raise an error for identical element
10 but for different element which shares the same key. Fix by
13 2006-12-21 Vladimir Krasnov <vladimirk@mainsoft.com>
15 * ConfigurationProperty.cs: fixed DefaultValue of type Enum
17 2006-12-10 Konstantin Triger <kostat@mainsoft.com>
19 * ConfigurationElement.cs: Delegate parameter checking and default
20 assigning to Configuratin property.
21 * ConfigurationProperty.cs:
22 Ensure the TypeConvert and Validator always exist.
23 Ensure the primitive types are properly initialized.
25 2006-12-09 Vladimir Krasnov <vladimirk@mainsoft.com>
27 * ConfigurationElementCollection.cs
28 * ConfigurationRemoveElement.cs: fixed key for <remove> element in
29 ConfigurationRemoveElement class
31 2006-11-28 Marek Habersack <grendello@gmail.com>
33 * SectionGroupInfo.cs: Implement merging of section groups with
34 the same names and parents.
36 * ConfigInfo.cs: Add an abstract method for merging sections.
38 * SectionInfo.cs: Add implementation of an abstract base method
40 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
42 * SectionInfo.cs: refactoring - remove unneeded bool? usage.
44 2006-11-05 Vladimir Krasnov <vladimirk@mainsoft.com>
46 * added: ConfigurationRemoveElement.cs, common element for <remove>
47 * ConnectionStringSettingsCollection.cs: reverted last fix for
49 * ConfigurationElementCollection.cs: fixed the way that
50 OnDeserializeUnrecognizedElement method handles <remove> element
52 2006-11-02 Vladimir Krasnov <vladimirk@mainsoft.com>
54 * ConfigurationElement.cs: typo in DefaultCollectionProperty
57 2006-10-30 Joel Reed <joel.reed@ddiworld.com>
59 * NameValueConfigurationCollection.cs: Implement the Properties
62 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
64 * ConfigurationLocation.cs: do not read root element, correctly close stream.
65 * Configuration.cs: use ReadData for nested content to throw if location
66 elements are encounterd.
67 In constructor taking parent Configurqation: do not call Init and so avoid
68 rereading config file.
70 2006-09-05 Vladimir Krasnov <vladimirk@mainsoft.com>
72 * NameValueConfigurationElement.cs: fixed functionality
73 * ConfigurationElementCollection.cs,
74 ConnectionStringSettingsCollection.cs: fixed <remove> element in
75 connectionStrings section
77 2006-08-23 Konstantin Triger <kostat@mainsoft.com>
79 * ConfigurationSection.cs: for net 1.1 SectionHandlers: return null in case
80 RawXml is null, as net 1.1 does.
82 2006-08-17 Vladimir Krasnov <vladimirk@mainsoft.com>
84 * ConfigurationFileMap.cs: added TARGET_JVM on not supported members
87 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
89 * ConfigurationManager.cs : OpenExeConfiguration(null) should still
90 work. This is required for embedded scenario.
92 2006-06-10 Atsushi Enomoto <atsushi@ximian.com>
94 * SectionGroupInfo.cs : skip <dllmap> in configuration.
96 2006-05-14 Atsushi Enomoto <atsushi@ximian.com>
98 * ConfigurationManager.cs: since ConfigurationSystem is different
99 for web.config, cast from ConfigurationSection to runtime object
100 should be done at GetSection().
101 This really fixed bug #78372.
103 2006-05-12 Atsushi Enomoto <atsushi@ximian.com>
105 * Configuration.cs : configPath is null for machine.config, so don't
106 use it. Use streamName instead. To my understanding, this should
109 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
111 * ConnectionStringSettings.cs : it seems that "name" property
112 could be null i.e. there is no StringValidator.
113 * StringValidator.cs : allow null.
115 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
117 * ConfigurationManager.cs : use GetCallingAssembly() instead of
118 GetEntryAssembly() which possibly returns null (e.g. nunit) in
119 OpenExeConfiguration(). Several nunit test failures are gone.
121 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
123 * ConnectionStringSettings.cs : oops, this API fix broke standalone
126 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
128 * ConfigurationElement.cs,
129 ConfigurationErrorsException.cs,
130 ConfigurationUserLevel.cs,
131 ConfigurationPropertyOptions.cs,
132 ConnectionStringSettings.cs : assorted minor corcompare fixes.
134 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
136 * Configuration.cs : some kind of refactoring is absolutely needed
137 here. Reuse RawXml from parentSection when data was not available
138 on current section. This should fix bug #78353.
140 2006-05-10 Atsushi Enomoto <atsushi@ximian.com>
142 * ConfigurationElement.cs,
144 in some cases RawXml was set null string, so skip such cases.
145 * Configuration.cs : support IConfigurationSectionHandler here.
146 * ConfigurationManager.cs : GetSection() now returns name value
147 collection, not a section.
148 * ConfigurationSection.cs : added SectionHandler for
149 IConfigurationSectionHandler support, and use its Create() in
151 * ClientConfigurationSystem.cs :
152 use GetRuntimeObject() in GetSection(). Thus now
153 ConfigurationManager.GetSection() returns a runtime object.
156 2006-04-28 Atsushi Enomoto <atsushi@ximian.com>
158 * SectionGroupInfo.cs :
159 sections which are defined in sectionGroups could be directly
160 referenced, so search corresponding section recursively.
161 * DefaultSection.cs : It does not reject unrecognized contents.
163 2006-04-26 Chris Toshok <toshok@ximian.com>
165 * SectionInformation.cs (.ctor): add MonoTODO about the default
166 value for require_permission.
167 (RequirePermission): implement the getter/setter for this so
168 Atsushi's previous commit doesn't break everything :)
170 2006-04-26 Atsushi Enomoto <atsushi@ximian.com>
173 SectionInfo.cs : added support for "requirePermission" attribute
174 in "section" element. This fixes bug #77957.
176 2006-04-25 Chris Toshok <toshok@ximian.com>
178 * ConfigurationElementCollection.cs (Reset): it makes no sense to
179 pass the typename to CreateNewElementInternal. the argument is
180 the elementname. pass null instead.
183 2006-02-01 Atsushi Enomoto <atsushi@ximian.com>
185 * ConfigurationElement.cs : ListErrors() and SetPropertyValue()
187 * ConfigurationSection.cs : the .ctor() is protected.
188 * ConfigurationElementCollection.cs : CollectionType is public.
189 Count and BaseAdd() are not virtual.
190 * ConfigurationPropertyCollection.cs : Count is not virtual.
192 2006-02-01 Chris Toshok <toshok@ximian.com>
194 * ConfigurationElement.cs: revert the patch that stores and writes
195 out xmlns attributes for all elements.
197 * ClientConfigurationSystem.cs: SupportsUserConfig == false.
199 * AppSettingsSection.cs (GetRuntimeObject): call col.SetReadOnly()
200 only if SupportsUserConfig != true.
202 * ConfigurationManager.cs (ConfigurationSystem): add a property
203 like ConfigurationFactory, and use it instead of the private field
206 2006-01-26 Chris Toshok <toshok@ximian.com>
208 * SectionGroupInfo.cs (ReadContent): handle "location" (seemingly)
211 * InternalConfigurationRoot.cs: misc logical additions. still
214 * ConfigurationManager.cs (OpenExeConfigurationInternal): throw an
215 exception if both calling_assembly and exePath are null. Allow
216 the exePath to be a path to a config file as well, checking to see
217 if it ends in .config before appending.
218 (OpenExeConfiguration): stop blindly passing
219 Assembly.GetCallingAssembly. I'm assuming this will likely break
220 .dll.config usage. need to investigate that (and write more unit
222 (GetSection): call configSystem.GetSection.
223 (RefreshSection): call configSystem.RefreshSection.
224 (ChangeConfigurationSystem): modeled after the
225 ConfigurationSettings System.Web hack - allow
226 WebConfigurationManager to replace the current
227 IInternalConfigSystem.
229 * InternalConfigurationHost.cs (InternalConfigurationHost): make
230 abstract, and remove all the NotImplenmentedException's.
232 * ConfigurationElement.cs (DeserializeElement): store off the xml
233 namespace if there is one.
234 (SerializeElement): write out the namespace if there was one.
236 * ClientConfigurationSystem.cs: new class, based on some stack
237 traces I've seen in tests. Kinda (well, not *kinda*..) hacky.
239 * Configuration.cs (NamespaceDeclared): implement.
240 (Load): don't swallow all exceptions, just the ones raised when we
241 open the stream for reading.
242 (ReadConfigFile): handle xmlns.
244 2006-01-25 Chris Toshok <toshok@ximian.com>
246 * ConfigInfo.cs (ThrowException): throw a
247 ConfigurationErrorsException, not a ConfigurationException.
249 * SectionGroupInfo.cs (ReadContent): throw an exception
250 unconditionally if we see a <location>. they aren't valid in
253 2006-01-25 Chris Toshok <toshok@ximian.com>
255 * KeyValueInternalCollection.cs: don't use a nested collection,
256 just defer to our base class. This fixes usage of
257 ConfigurationManager.AppSettings.Keys.
259 2006-01-13 Chris Toshok <toshok@ximian.com>
261 * AppSettingsSection.cs (GetRuntimeObject): only access
262 Settings[key] once per iteration.
264 2006-01-09 Chris Toshok <toshok@ximian.com>
266 * ConfigurationManager.cs (AppSettings): just return
267 AppSettingsSection.GetRuntimeObject() here.
269 * AppSettingsSection.cs: fix the "file" property to match dumper
271 (GetRuntimeObject): this returns a KeyValueInternalCollection in
274 2006-01-09 Chris Toshok <toshok@ximian.com>
276 * ElementInformation.cs (Validator): if propertyInfo == null,
277 return a DefaultValidator instance.
279 2006-01-09 Chris Toshok <toshok@ximian.com>
281 * AppSettingsSection.cs (.cctor): specify null for
284 * ProtectedProviderSettings.cs (.cctor): specify null for
287 2006-01-03 Chris Toshok <toshok@ximian.com>
289 * Configuration.cs (SaveAs): open with FileMode.OpenOrCreate so we
290 can save to a new file.
291 (CreateSection): don't bother to set the section information's
292 Name here. we'll do it in SectionInfo.CreateInstance.
294 * ProtectedConfiguration.cs (Section): new static property so we
295 can remove all the GetSection calls.
296 (GetProvider): load a named provider, optionally throwing an
297 exception if it's not found.
299 * InternalConfigurationHost.cs (EncryptSection, DecryptSection):
300 make these private interface implementations, and call
301 protectedSection.{EncryptSection,DecryptSection}.
303 * ProtectedConfigurationSection.cs (EncryptSection,
304 DecryptSection): add these two calls. They really shouldn't be
305 here, but I saw them in an MS stack trace and thought "why not?".
307 * ConfigurationSection.cs (SectionInformation): don't set
308 attributes here, that's done in SectionInfo.CreateInstance.
309 (DeserializeSection): shoehorn in the decryption stuff here. It
310 doesn't belong here, and I've added a MonoTODO about it. It
311 should live someplace like SectionInfo.ReadData (which would make
312 it similar to the encryption stuff in .WriteData).
314 * SectionInformation.cs (IsProtected): remove the special flag,
315 just return true if we have a non-null protection_provider.
316 (ProtectSection): do nothing but try to instantiate the named
318 (UnprotectSection): null out protection_provider.
320 * DpapiProtectedConfigurationProvider.cs: move the
321 NotSupportedExceptions to Decrypt/Encrypt so we don't bomb out
322 when parsing our machine.config file.
324 * RsaProtectedConfigurationProvider.cs: initial implementation.
325 much is missing (OAEP support, key importing, adding/deleting
326 keys), but it can be used.
328 2006-01-02 Chris Toshok <toshok@ximian.com>
330 * RsaProtectedConfigurationProvider.cs: implement the
331 CspProviderName and UseOAEP properties..
333 2006-01-02 Chris Toshok <toshok@ximian.com>
335 * ProtectedConfigurationSection.cs: flesh this out (and add logic
336 to instantiate providers, based on some of the standalone test
337 exception stack traces.)
339 * ProtectedConfiguration.cs: new implementation.
341 * ProtectedConfigurationProviderCollection.cs: new
344 * ProtectedProviderSettings.cs: new implementation.
346 * ProtectedConfigurationProvider.cs: trim the superclass's name.
348 * RsaProtectedConfigurationProvider.cs: stubbed, unimplemented.
350 * DpapiProtectedConfigurationProvider.cs: add stubbed
351 implementation that throws NotSupportedException telling people
352 they should be using RsaProtectedConfigurationProvider.
354 2006-01-02 Chris Toshok <toshok@ximian.com>
356 * DefaultSection.cs (Properties): implement.
358 * IgnoreSection.cs: move from lazily creating the properties
359 collection to sharing a single one across all instances.
361 * ConfigurationLockCollection.cs (IsReadOnly): fix compiler warning.
363 * ConfigurationElementCollection.cs (BaseAdd) remove logic to
364 remove an old matching element.
365 (BaseGetKey): throw an exception if @index is out of range.
367 * SectionInformation.cs (SectionName): just return name, like Name
368 does.. redundant, but it matches tests.
369 (GetRawXml): implement.
370 (SetRawXml): implement.
372 * ConfigurationSection.cs (SectionInformation): fill in
373 sectionInformation.Type before returning.
374 (DeserializeSection): save off the raw xml to our
377 * ConfigurationElement.cs (LockItem): implement.
378 (DeserializeElement): add support for the "lockItem" attribute.
380 2005-12-16 Chris Toshok <toshok@ximian.com>
382 * ConfigurationLockCollection.cs (Add): only add the name if it's
384 (IsReadOnly): always return false for the time being, in the
385 non-exceptional case.
387 2005-12-15 Chris Toshok <toshok@ximian.com>
389 * ConfigurationElement.cs (LockAllAttributesExcept): implement.
390 (LockAllElementsExcept): implement.
391 (DeserializeElement): handle the built-in attributes (lock* for
394 2005-12-15 Chris Toshok <toshok@ximian.com>
396 * ConfigurationLockCollection.cs (..ctor): don't call Populate.
398 (CheckName): make sure the passes in name is valid for this type
400 (Add): call CheckName, and set is_modified to true.
401 (Clear): set is_modified.
402 (IsReadOnly): add plausable implementation, including exception in
403 the case where the name isn't found.
404 (Remove): set is_modified.
405 (SetFromList): implement.
406 (get_AttributeList): implement.
407 (set_IsModified): add internal setter so we can clear the modified
410 2005-12-12 Chris Toshok <toshok@ximian.com>
412 * AppSettingsSection.cs (DeserializeElement): provide rather naive
413 version of the file="" handling. It's enough to make our tests
416 2005-12-11 Chris Toshok <toshok@ximian.com>
418 * ConnectionStringsSection.cs (..cctor): use "" instead of null
419 for the name of the default collection.
421 * AppSettingsSection.cs (..cctor): create a property for the
423 (DeserializeElement): call base.DeserializeElement.
424 (File): index off the property, not the name.
425 (Settings): don't use an private variable here, use
428 * ConfigurationManager.cs (GetSection): GetEntryAssembly returns
429 null for new app domains. so deal with this by calling
430 GetCallingAssembly if it's null. This is probably still wrong but
431 it doesn't NRE in xsp2.
432 (AppSettings): remove MonoTODO.
434 * KeyValueConfigurationElement.cs (..ctor): new method, create the
435 ConfigurationProperty's and the collection here.
436 (.ctor): add internal arg-less ctor.
437 (Key): use keyProp instead of "key".
438 (Value): use vlaueProp instead of "value".
439 (Properties): return our class's properties.
441 * KeyValueConfigurationCollection.cs (CreateNewElement): use the
443 (GetElementKey): re-enable the BaseIndexOf test.
445 2005-12-02 Chris Toshok <toshok@ximian.com>
447 * Configuration.cs (Save): call WriteStartDocument.
449 * ConnectionStringSettingsCollection.cs (CreateNewElement): use
450 parameter-less ctor to keep from generating exceptions when using
453 2005-12-02 Chris Toshok <toshok@ximian.com>
455 * ConnectionStringSettings.cs: tabify, fix default values, and add
456 a string validator for "name".
458 2005-12-02 Chris Toshok <toshok@ximian.com>
460 * CommaDelimitedStringCollectionConverter.cs (ConvertTo): change
461 the type check away from an exact check for
462 CommaDelimitedStringCollection to an assignable test from
463 StringCollection. This is due to the fact that AuthorizationRule
464 doesn't create CommaDelimitedStringCollections, for some odd
465 reason. It uses StringCollections.
467 * PropertyInformation.cs (Value): remove the case for
468 IsDefaultCollection - it's not necessary, as the property is an
471 * ConnectionStringSettings.cs: fix formatting and remove some
474 * ConnectionStringSettingsCollection.cs: same.
476 * ConnectionStringsSection.cs: same.
478 * ConfigurationElement.cs (SerializeToXmlElement): don't write the
479 enclosing start/end elements if the elementName is null or "".
480 this fixes the case for the DefaultCollections (at least in the
481 case of connectionStrings).
483 * IgnoreSection.cs (Properties): remove the MonoTODO.
485 * SectionInfo.cs (WriteData): remove the "<!-- dd -->" output.
487 2005-11-28 Chris Toshok <toshok@ximian.com>
489 * ProviderSettings.cs: use ConfigurationProperty's to implement
492 2005-11-24 Chris Toshok <toshok@ximian.com>
494 * ConfigurationProperty.cs (Validate): add internal method.
496 2005-11-24 Chris Toshok <toshok@ximian.com>
498 * ConfigurationElement.cs (ElementProperty): make this protected
499 internal virtual instead of public.
500 (SetPropertyValue): add a validator call and a blurb about the
501 code based on information gleaned from tests.
502 (set_Item (string)): call SetPropertyValue in the setter.
504 2005-11-14 Chris Toshok <toshok@ximian.com>
506 * CommaDelimitedStringCollection.cs: reformat things a bit, and
507 flag ToString() as override.
509 * DefaultSection.cs: new stubbed out implementation.
511 * CommaDelimitedStringCollectionConverter.cs: new implementation.
513 2005-11-10 Chris Toshok <toshok@ximian.com>
515 * AppSettingsSection.cs (DeserializeElement): stop explicitly
516 calling Settings.DeserializeElement, as the DefaultCollection
519 * ConfigurationElement.cs (DeserializeElement): rework the loop
520 here so that we actually loop over all the content elements.
522 2005-11-09 Chris Toshok <toshok@ximian.com>
524 * ConfigurationElement.cs: Add support for DefaultCollection
527 * PropertyInformation.cs (PropertyInformation.Value): add case for
530 * SectionGroupInfo.cs (SectionGroupInfo.ReadConfig): when we read
531 a "type" attribute, make sure the cached System.Type is cleared.
533 2005-10-25 Chris Toshok <toshok@ximian.com>
535 * InfiniteTimeSpanConverter.cs: new implementation.
537 * InfiniteIntConverter.cs: new implementation.
539 * GenericEnumConverter.cs: new implementation.
541 * Configuration.cs: we don't need to check with "is" after we use
542 "as".. just check for null-ness.
544 * KeyValueConfigurationCollection.cs: GetElementKey should throw
545 NRE if element == null.
547 * CommaDelimitedStringCollection.cs: raise the correct exceptions
548 in the read only case, and return null from ToString if there are
551 2005-10-25 Chris Toshok <toshok@ximian.com>
553 * PositiveTimeSpanValidatorAttribute.cs: new implementation.
555 * PositiveTimeSpanValidator.cs: new implementation.
557 2005-10-24 Chris Toshok <toshok@ximian.com>
559 * TimeSpanSecondsOrInfiniteConverter.cs: new implementation.
561 * TypeNameConverter.cs: new implementation.
563 * WhiteSpaceTrimStringConverter.cs: new implementation.
565 2005-10-24 Chris Toshok <toshok@ximian.com>
567 * AppSettingsSection.cs (DeserializeElement, SerializeSection):
568 split the behavior based on if File == "". If it is, we do the
569 default. otherwise we throw NIE.
571 * ConnectionStringsSection.cs (DeserializeElement): we shouldn't
572 need this, but we do until the IsDefaultCollection stuff is fixed.
574 * ConfigurationElementCollection.cs
575 (OnDeserializeUnrecognizedElement): for clearElementName, make
576 sure we have no attributes.
578 * ConnectionStringSettingsCollection.cs (get_Properties): for now
579 just chain up to base.Properties.
581 * ConfigurationElement.cs (ReflectProperties): do the default
582 value/property type check in a more robust way, using
585 2005-10-24 Chris Toshok <toshok@ximian.com>
587 * ConfigurationElement.cs: treat
588 ConfigurationProperty.NoDefaultValue the same as null when we're
589 checking the default value's type. this fixes t13 and 14.
591 * ConnectionStringsSection.cs (ConnectionStrings): fix the
592 DefaultValue in the ConfigurationPropertyAttribute.
594 2005-10-24 Chris Toshok <toshok@ximian.com>
596 * KeyValueConfigurationCollection.cs (GetElementKey): sacrifice
597 one test to get another working. Return a valid key even if the
598 element is not in this collection.
599 (get_ThrowOnDuplicate): return false.
601 * ConfigurationElementCollection.cs (BaseAdd): if we're adding an
602 element with the same key, overwrite the old one (remove the old
603 one after inserting the new one). Also, re-enable the throwing of
604 exceptions if ThrowOnDuplicate == true.
606 2005-10-24 Chris Toshok <toshok@ximian.com>
608 * AppSettingsSection.cs (Settings): fix ConfigurationProperty
611 * ProtectedConfigurationSection.cs (Providers): same.
613 2005-10-12 Chris Toshok <toshok@ximian.com>
615 * ConfigurationPermission.cs: flesh out as per tests.
617 2005-10-11 Chris Toshok <toshok@ximian.com>
619 * ConfigurationProperty.cs: don't use null to mean no default
620 value, use NoDefaultValue.
622 2005-10-11 Chris Toshok <toshok@ximian.com>
624 * KeyValueConfigurationCollection.cs (GetElementKey): duh.
625 BaseGet calls GetElementKey, so we were hitting an infinite
626 recursion here. Use BaseIndexOf instead.
628 2005-10-07 Chris Toshok <toshok@ximian.com>
630 * InternalConfigurationHost.cs: some interface work, adding in the
633 * ConfigurationProperty.cs: remove debug spew.
635 * Configuration.cs: add NIE'd NamespaceDeclared property.
637 * ElementInformation.cs: add NIE'd Errors property.
639 * PropertyInformationCollection.cs: add NIE'd GetObjectData().
641 * ConfigurationManager.cs: quite a bit of new work here. Some
642 definie TODO's still though.
644 2005-10-07 Chris Toshok <toshok@ximian.com>
646 * ConfigurationErrorsException.cs (.ctor): for the (string)
647 overload, chain up to the base (string) ctor.
649 2005-10-07 Chris Toshok <toshok@ximian.com>
651 * ConfigurationElement.cs (ElementMap.ReflectProperties): make
652 sure the type of the default value is compatible with that of the
653 property itself, and throw ConfigurationErrorsException if they
654 don't match. Fixes t12.
656 2005-10-07 Chris Toshok <toshok@ximian.com>
658 * ConfigHelper.cs: remove some unused code.
660 * ConfigurationProperty.cs: disambiguate the ctor we chain to.
662 * ConfigurationElement.cs (ElementProperty): implement.
663 (ElementMap.ReflectProperties): make DefaultValidator the default
666 2005-10-06 Chris Toshok <toshok@ximian.com>
668 * KeyValueConfigurationElement.cs: uncomment out some stuff.
669 (Properties): just return base.Properties. Not sure why they
670 override this, as the base class's implementation passes our test.
672 * KeyValueConfigurationCollection.cs (Add): for the keyValue
673 overload, call keyValue.Init as the unit test stack traces
674 indicates that'9s where it's called. For the string,string
675 overload, just call the keyValue overload instead of calling
677 (CreateNewElement): just use the name/value ctor, and specify ""
679 (GetElementKey): this function always returns "" for elements that
680 haven't been added to the collection. Once theyre added, it seems
681 to always return keyValue.Key.
682 (Properties): the unit tests show this returns a 0 length
685 2005-10-05 Chris Toshok <toshok@ximian.com>
687 * ConfigurationPermissionAttribute.cs: stub out.
689 2005-10-05 Chris Toshok <toshok@ximian.com>
691 * TimeSpanMinutesOrInfiniteConverter.cs: fill in the
694 2005-10-05 Chris Toshok <toshok@ximian.com>
696 * TimeSpanSecondsConverter.cs: new implementation.
698 2005-10-05 Chris Toshok <toshok@ximian.com>
700 * TimeSpanMinutesConverter.cs: flesh out implementation.
702 * ConfigurationConverterBase.cs: make all subclasses work with
703 strings only, since that's what seems to manifest itself in the
706 2005-10-05 Chris Toshok <toshok@ximian.com>
708 * ConfigurationLockCollection.cs: add NIE'd AttributeList
711 * ConfigurationConverterBase.cs: add MonoTODO'd CanConvertFrom and
712 CanConvertTo methods.
714 * ConfigurationSectionGroup.cs: add NIE'd IsDeclared property.
716 * ProtectedConfigurationSection.cs: add NIE'd properties.
718 * ConfigurationElementCollection.cs: add MonoTODO'd IsReadOnly
719 and SetReadOnly methods, and have then chain up to the base class.
721 * KeyValueConfigurationCollection.cs: add the class level
722 ConfigurationCollectionAttribute, and add a NIE'ed Properties
725 * ProviderSettingsCollection.cs: add the class level
726 ConfigurationCollectionAttribute, and add a "new" keyword to the
727 this property. Also, nuke the Provider's property.
729 * SectionInformation.cs: add some NEI'd properties.
731 * ConfigurationSection.cs (ResetModified): leave the MonoTODO, but
732 chain up to base class's method instead of throwing NIE.
734 * ConnectionStringSettingsCollection.cs: add the class-level
735 ConfigurationCollectionAttribute, and add the unimplemented
738 * ConfigurationErrorsException.cs: flesh this out, and add a
739 pragma to disable the obsolete warnings from our base class.
741 * ProviderSettings.cs: add unimplemented Properties property.
743 * ConfigurationElement.cs: remove unnecessary
744 EvaluationInformation.
746 * InternalConfigurationRoot.cs: add unimplemented IsDesignTime
749 * ConfigurationProperty.cs: add a missing ctor.
751 * AppSettingsSection.cs: add missing "override" keyword.
753 * ConnectionStringsSection.cs: remove override.
755 * ConfigurationSectionCollection.cs: AllKeys -> Keys, and add
756 unimplemented GetObjectData override.
758 * ConfigurationSectionGroupCollection.cs: same.
760 * ConfigurationCollectionAttribute.cs: add missing CollectionType
763 2005-10-05 Chris Toshok <toshok@ximian.com>
765 * ConfigurationPermission.cs: new implementation.
767 * IgnoreSection.cs: new implementation.
769 2005-10-05 Chris Toshok <toshok@ximian.com>
771 * CommaDelimitedStringCollection.cs: new implementation.
773 2005-10-05 Chris Toshok <toshok@ximian.com>
775 * NameValueConfigurationCollection.cs: new implementation.
777 * NameValueConfigurationElement.cs: new implementation.
779 2005-10-05 Chris Toshok <toshok@ximian.com>
781 * ValidatorCallback.cs: new implementation.
783 * SubclassTypeValidator.cs, SubclassTypeValidatorAttribute.cs: new
786 * CallbackValidator.cs, CallbackValidatorAttribute.cs: new
789 * RegexStringValidator.cs, RegexStringValidatorAttribute.cs: new
792 * LongValidator.cs, LongValidatorAttribute.cs: new implementation.
794 * IntegerValidator.cs, IntegerValidatorAttribute.cs: new
797 * DefaultValidator.cs: new implementation.
799 2005-09-28 Chris Toshok <toshok@ximian.com>
801 * ConfigurationElementCollection.cs: more work on the "<clear />"
802 handling - just skip the element for now. this causes a failure
803 in one test ('<clear hi="bye" />' doesn't throw an exception when
804 it should), but it succeeds for collections that have required
807 * ConnectionStringSettings.cs: providerName isn't a required
810 * AppSettingsSection.cs (.cctor): initialize our "file" Property.
813 (GetRuntimeObject): call the base class method instead of just
816 * ConnectionStringsSection.cs: Add a hacky DeserializeElement
817 method here (that isn't in MS's) for the time being so we actually
818 deserialize our collection.
820 2005-09-28 Chris Toshok <toshok@ximian.com>
822 * KeyValueInternalCollection.cs: found this by way of a stack
823 trace in one of the tests. A NameValueCollection that wraps a
824 KeyValueConfigurationCollection.
826 * Configuration.cs (Init): save off configPath.
827 (EvaluationContext): new, mostly implemented.
828 (GetSectionInstance): use IgnoreSection instead of
830 (Load): don't fail when we can't load a file.
832 * IgnoreSection.cs: replace RuntimeOnlySection with this new
835 * RuntimeOnlySection.cs: nuke.
837 2005-09-27 Chris Toshok <toshok@ximian.com>
839 * TimeSpanMinutesOrInfiniteConverter.cs: this is sealed.
841 2005-09-27 Chris Toshok <toshok@ximian.com>
843 * ConfigurationProperty.cs: add IsDefaultCollection property.
845 2005-09-27 Chris Toshok <toshok@ximian.com>
847 * ConfigurationElementProperty.cs: new file.
849 * ConfigurationLockCollection.cs: new file.
851 * ConfigurationElementCollection.cs
852 (OnDeserializeUnrecognizedElement): make sure we consume the
853 <clear /> element so we don't into an endless loop.
855 * ConfigurationElement.cs: add a bunch of NIE's properties.
857 * ContextInformation.cs: Add NIE'ed IsMachineLevel property.
859 2005-09-23 Chris Toshok <toshok@ximian.com>
861 * AppSettingsSection.cs: fix build and add a couple of TODO'ed
864 2005-09-23 Chris Toshok <toshok@ximian.com>
866 * ProviderSettings.cs (Unmerge): track change to
867 ConfigurationElement.Unmerge.
869 * ConfigurationSection.cs: add functions nuked from
870 ConfigurationElement here.
872 * ConfigurationElementCollection.cs: add DebuggerDisplay attribute
874 (BaseGetAllKeys): returns object[], not string[].
875 (BaseGetKey): returns object, not string.
876 (Unmerge): track change to ConfigurationElement.Unmerge signature.
878 * ConfigurationElement.cs (ConfigurationElement.Unmerge): fix
879 signature (drop the serializeCollectionKey parameter).
882 2005-09-23 Chris Toshok <toshok@ximian.com>
884 * StringValidator.cs: throw ArgumentException instead of
885 ConfigurationErrorsException.
887 2005-09-23 Chris Toshok <toshok@ximian.com>
889 * ConnectionStringsSection.cs: track change to
890 ConfigurationPropertyOptions.
892 * ConfigurationPropertyAttribute.cs, ConfigurationProperty.cs,
893 ProviderSettings.cs: track change to ConfigurationPropertyOptions.
895 * ConnectionStringSettings.cs: track change to
896 ConfigurationProprertyOptions, and add some ConfigurationProperty
899 * ConfigurationPropertyOptions.cs: DefaultCollection ->
900 IsDefaultCollection, Required -> IsRequired.
902 2005-09-22 Chris Toshok <toshok@ximian.com>
904 * PositiveTimeSpanValidator.cs: this lives in
905 System.Web.Configuration, not System.Configuration.
907 2005-09-22 Chris Toshok <toshok@ximian.com>
909 * TimeSpanValidator.cs: change to ArgumentException and alter the
912 2005-09-22 Chris Toshok <toshok@ximian.com>
914 * ExeConfigurationFileMap.cs (ctor): init all the strings to "".
916 2005-07-01 Lluis Sanchez Gual <lluis@novell.com>
918 * ProviderSettings.cs: Implemented properties using property attributes.
919 * ConfigurationElement.cs: Implemented ElementInformation property and
920 moved there all value management.
921 * ProtectedConfigurationProvider.cs: Set the correct base class.
922 * SectionInformation.cs: Added missing AllowExeDefinition property.
923 * TimeSpanValidatorAttribute.cs: Implemented.
924 * StringValidator.cs: Implemented.
925 * ProviderSettingsCollection.cs: Added missing class attribute.
926 * ConfigurationSaveMode.cs: Fix enum values.
927 * ConfigurationElementCollection.cs: Added Init method for initializing
928 elements from properties.
929 * StringValidatorAttribute.cs: Implemented.
930 * ConfigurationLocation.cs: Added support for allowOverride flag.
931 * TimeSpanMinutesOrInfiniteConverter.cs: Created skeleton class.
932 * PositiveTimeSpanValidator.cs: Implemented.
933 * TimeSpanMinutesConverter.cs: Created skeleton class.
934 * SectionInfo.cs: Properly read, store and check the values of AllowLocation,
935 AllowDefinition and AllowExeDefinition.
936 * TimeSpanValidator.cs: Implemented.
937 * ConfigurationConverterBase.cs: Created skeleton class.
938 * InternalConfigurationHost.cs: Implemented IsDefinitionAllowed and
939 VerifyDefinitionAllowed.
940 * ConfigurationManager.cs: That class must be static.
941 * PropertyInformationCollection.cs: Implemented.
942 * Configuration.cs: Added some checks for AllowLocation, AllowDefinition and
943 so on. In Save(), don't forget to save location elements.
944 * ConfigurationProperty.cs: Keep track of collection attributes.
945 * ConfigInfo.cs: Support overrideAllowed flag.
946 * KeyValueConfigurationElement.cs: Define properties using attributes.
947 * PropertyValueOrigin.cs: implemented.
948 * PropertyInformation.cs: Mostly implemented.
949 * SectionGroupInfo.cs: Properly propagate the overrideAllowed flag.
950 * ElementInformation.cs: Mostly implemented.
951 * ConfigurationPropertyAttribute.cs: Set the correct default value.
952 * ConfigurationCollectionAttribute.cs: Implemented.
954 2005-06-23 Lluis Sanchez Gual <lluis@novell.com>
956 * SectionInfo.cs: Set the config host when loading the section.
957 * InternalConfigurationHost.cs: Implemented some basic methods.
958 * Configuration.cs: Find the correct parent for the configuration,
959 taking into accound locations and such. Use Host functions to get
961 * ConfigurationLocationCollection.cs: Added find method.
962 * ConfigInfo.cs: Added Host property.
963 * InternalConfigurationFactory.cs: The InitForConfiguration calls
964 are now done in each correspoding configuration.
965 * SectionGroupInfo.cs: When reading a location element, create
966 a Configuration object for each path specified in the location.
967 * ConfigurationElementCollection.cs: Added the CreateNewElementInternal
968 method, which properly initializes the created element.
969 * ConfigurationLocation.cs: OpenConfiguration now has to read the
970 xml contents. It also has to find the correct parent configuration,
971 if it has not been specified.
973 2005-06-17 Lluis Sanchez Gual <lluis@novell.com>
975 * SectionInfo.cs, ConfigInfo.cs, SectionGroupInfo.cs: Minor api fixes.
976 * ConfigurationPropertyCollection.cs: Added Clear method.
977 * ContextInformation.cs: Implemented.
978 * ConfigurationManager.cs: Implemented some missing methods.
979 Configuration objects are now created through the ConfigurationFactory.
980 * InternalConfigurationHost.cs: Implementation of IInternalConfigHost
981 to be used for exe files and machine.config.
982 * ConfigurationFileMap.cs: Implemented.
983 * Configuration.cs: Read and write config files using the methods that
984 IInternalConfigHost provides.
985 * InternalConfigurationRoot.cs: IInternalConfigRoot stub.
986 * ExeContext.cs: Implemented.
987 * AppSettingsSection.cs: Use the KeyValueConfigurationCollection
988 collection to store values.
989 * KeyValueConfigurationElement.cs: Implemented.
990 * KeyValueConfigurationCollection.cs: Implemented.
991 * InternalConfigurationFactory.cs: An implementation of
992 IInternalConfigConfigurationFactory.
993 * ConfigurationPropertyAttribute.cs: Added missing attributes.
994 * ExeConfigurationFileMap.cs: Implemented.
996 2005-06-15 Lluis Sanchez Gual <lluis@novell.com>
998 * ConfigurationElement.cs, ConfigurationErrorsException.cs
999 SectionInfo.cs, ConnectionStringSettingsCollection.cs,
1000 ConfigurationPropertyCollection.cs, ProtectedConfigurationProvider.cs,
1001 ConfigurationSection.cs, NonEmptyStringConfigurationProperty.cs,
1002 ConfigurationElementCollectionType.cs, Configuration.cs,
1003 ConnectionStringSettings.cs, ConfigurationProperty.cs,
1004 ConfigurationLocationCollection.cs, TimeSpanConfigurationProperty.cs,
1005 ConfigurationAllowDefinition.cs, ConfigInfo.cs,
1006 ConfigurationSectionGroupCollection.cs, AppSettingsSection.cs,
1007 ProviderSettingsCollection.cs, IntegerConfigurationProperty.cs,
1008 SectionGroupInfo.cs, ConfigurationUserLevel.cs,
1009 ConnectionStringsSection.cs, ConfigurationPropertyAttribute.cs,
1010 ConfigurationLocation.cs, ConfigurationSectionCollection.cs,
1011 ConfigurationSectionGroup.cs, RuntimeOnlySection.cs,
1012 ProviderSettings.cs:
1015 * ConfigurationElementCollection.cs: Implemented support for Basic
1016 collection type. Other fixes.
1018 * ConfigurationPropertyFlags.cs: Renamed to ConfigurationPropertyOptions.
1019 * ConfigurationUpdateMode.cs: Renamed to ConfigurationSaveMode.
1021 * SectionInformation.cs, ConfigurationAllowExeDefinition.cs
1022 ConfigurationManager.cs, ConfigurationSaveMode.cs,
1023 ConfigurationValidatorAttribute.cs, ProtectedConfigurationSection.cs,
1024 ConfigurationValidatorBase.cs, ConfigurationPropertyOptions.cs:
1027 * ConfigurationValidationAttribute.cs: Removed.
1029 * ProviderBase.cs: Moved to System.dll.
1031 2005-06-14 Lluis Sanchez Gual <lluis@novell.com>
1033 * AppSettingsSection.cs, ConfigInfo.cs, Configuration.cs
1034 ConfigurationAllowDefinition.cs, ConfigurationElement.cs
1035 ConfigurationElementCollection.cs, ConfigurationElementCollectionType.cs
1036 ConfigurationLocation.cs, ConfigurationLocationCollection.cs
1037 ConfigurationProperty.cs, ConfigurationPropertyAttribute.cs
1038 ConfigurationPropertyCollection.cs, ConfigurationPropertyFlags.cs
1039 ConfigurationSection.cs, ConfigurationSectionCollection.cs
1040 ConfigurationSectionGroup.cs, ConfigurationSectionGroupCollection.cs
1041 ConfigurationUpdateMode.cs, ConfigurationUserLevel.cs
1042 ConfigurationValidationAttribute.cs, ConnectionStringsSection.cs
1043 ConnectionStringSettingsCollection.cs, ConnectionStringSettings.cs
1044 IntegerConfigurationProperty.cs, NonEmptyStringConfigurationProperty.cs
1045 NonEmptyStringFlags.cs, PathLevel.cs, ProtectedConfigurationProvider.cs
1046 ProviderBase.cs, ProviderSettings.cs, ProviderSettingsCollection.cs
1047 RuntimeOnlySection.cs, SectionInfo.cs, SectionGroupInfo.cs
1048 TimeSpanConfigurationProperty.cs, TimeSpanPropertyFlags.cs
1049 TimeSpanSerializedFormat.cs:
1051 Moved from the System assembly.