From: <jer...@us...> - 2009-12-28 05:21:36
|
Revision: 313 http://structuremap.svn.sourceforge.net/structuremap/?rev=313&view=rev Author: jeremydmiller Date: 2009-12-28 05:21:25 +0000 (Mon, 28 Dec 2009) Log Message: ----------- ding dong, the witch is dead. StructureMapConfiguration is gone. Modified Paths: -------------- trunk/Source/StructureMap/ObjectFactory.cs trunk/Source/StructureMap/StructureMap.csproj trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj trunk/Source/StructureMap.Testing/StructureMapConfigurationTester.cs Removed Paths: ------------- trunk/Source/StructureMap/StructureMapConfiguration.cs trunk/Source/StructureMap.Testing/StructureMapConfigurationDefensiveChecksTester.cs Modified: trunk/Source/StructureMap/ObjectFactory.cs =================================================================== --- trunk/Source/StructureMap/ObjectFactory.cs 2009-12-28 05:14:41 UTC (rev 312) +++ trunk/Source/StructureMap/ObjectFactory.cs 2009-12-28 05:21:25 UTC (rev 313) @@ -35,8 +35,6 @@ { lock (_lockObject) { - StructureMapConfiguration.Unseal(); - _container = null; _profile = string.Empty; @@ -55,7 +53,6 @@ action(expression); PluginGraph graph = expression.BuildGraph(); - StructureMapConfiguration.Seal(); _container = new Container(graph); Profile = expression.DefaultProfileName; @@ -336,7 +333,7 @@ { if (_container == null) { - _container = buildManager(); + _container = new Container(); } } } @@ -404,17 +401,7 @@ } - private static Container buildManager() - { - PluginGraph graph = StructureMapConfiguration.GetPluginGraph(); - StructureMapConfiguration.Seal(); - var container = new Container(graph); - container.SetDefaultsToProfile(_profile); - - return container; - } - #endregion } } \ No newline at end of file Modified: trunk/Source/StructureMap/StructureMap.csproj =================================================================== --- trunk/Source/StructureMap/StructureMap.csproj 2009-12-28 05:14:41 UTC (rev 312) +++ trunk/Source/StructureMap/StructureMap.csproj 2009-12-28 05:21:25 UTC (rev 313) @@ -323,7 +323,6 @@ <Compile Include="Source\XmlTemplater.cs"> <SubType>Code</SubType> </Compile> - <Compile Include="StructureMapConfiguration.cs" /> <Compile Include="Diagnostics\ValidationBuildSession.cs" /> <EmbeddedResource Include="StructureMapException.resx"> <SubType>Designer</SubType> Deleted: trunk/Source/StructureMap/StructureMapConfiguration.cs =================================================================== --- trunk/Source/StructureMap/StructureMapConfiguration.cs 2009-12-28 05:14:41 UTC (rev 312) +++ trunk/Source/StructureMap/StructureMapConfiguration.cs 2009-12-28 05:21:25 UTC (rev 313) @@ -1,208 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Xml; -using StructureMap.Configuration; -using StructureMap.Configuration.DSL; -using StructureMap.Configuration.DSL.Expressions; -using StructureMap.Diagnostics; -using StructureMap.Graph; -using StructureMap.Interceptors; - -namespace StructureMap -{ - [Obsolete( - "Please use the ObjectFactory.Initialize() method for configuring the container and put configuration into Registry classes" - )] - public static class StructureMapConfiguration - { - private static GraphLog _log; - private static ConfigurationParserBuilder _parserBuilder; - private static List<Registry> _registries; - private static Registry _registry; - private static bool _sealed; - - - static StructureMapConfiguration() - { - ResetAll(); - } - - private static IConfigurationParserBuilder parserBuilder - { - get - { - assertIsNotSealed(); - return _parserBuilder; - } - } - - private static Registry registry - { - get - { - assertIsNotSealed(); - return _registry; - } - } - - /// <summary> - /// Flag to enable or disable the usage of the default StructureMap.config - /// If set to false, StructureMap will not look for a StructureMap.config file - /// </summary> - public static bool UseDefaultStructureMapConfigFile { get { return parserBuilder.UseAndEnforceExistenceOfDefaultFile; } set { parserBuilder.UseAndEnforceExistenceOfDefaultFile = value; } } - - - public static bool IgnoreStructureMapConfig { get { return parserBuilder.IgnoreDefaultFile; } set { parserBuilder.IgnoreDefaultFile = value; } } - - public static bool PullConfigurationFromAppConfig { get { return parserBuilder.PullConfigurationFromAppConfig; } set { parserBuilder.PullConfigurationFromAppConfig = value; } } - - private static void assertIsNotSealed() - { - if (_sealed) - { - throw new StructureMapException(50); - } - } - - /// <summary> - /// Programmatically adds a <StructureMap> node containing Xml configuration - /// </summary> - /// <param name="node"></param> - /// <param name="description">A description of this node source for troubleshooting purposes</param> - public static void IncludeConfigurationFromNode(XmlNode node, string description) - { - parserBuilder.IncludeNode(node, string.Empty); - } - - - /// <summary> - /// Returns the path to the StructureMap.config file - /// </summary> - /// <returns></returns> - [Obsolete("Use ConfigurationParserBuilder.GetStructureMapConfigurationPath() instead.")] - public static string GetStructureMapConfigurationPath() - { - return ConfigurationParserBuilder.GetStructureMapConfigurationPath(); - } - - /// <summary> - /// Clears StructureMapConfiguration of all configuration options. Returns StructureMap - /// to only using the default StructureMap.config file for configuration. - /// </summary> - public static void ResetAll() - { - _sealed = false; - - _log = new GraphLog(); - _parserBuilder = new ConfigurationParserBuilder(_log); - _registry = new Registry(); - _registries = new List<Registry>(); - _registries.Add(_registry); - UseDefaultStructureMapConfigFile = false; - IgnoreStructureMapConfig = false; - - ObjectFactory.Reset(); - } - - public static void RegisterInterceptor(TypeInterceptor interceptor) - { - registry.RegisterInterceptor(interceptor); - } - - /// <summary> - /// Builds a PluginGraph object for the current configuration. Used by ObjectFactory. - /// </summary> - /// <returns></returns> - internal static PluginGraph GetPluginGraph() - { - _sealed = true; - - ConfigurationParser[] parsers = _parserBuilder.GetParsers(); - - var pluginGraphBuilder = new PluginGraphBuilder(parsers, _registries.ToArray(), _log); - return pluginGraphBuilder.Build(); - } - - /// <summary> - /// Directs StructureMap to include Xml configuration information from a separate file - /// </summary> - /// <param name="filename"></param> - public static void IncludeConfigurationFromFile(string filename) - { - parserBuilder.IncludeFile(filename); - } - - - /// <summary> - /// Programmatically determine Assembly's to be scanned for attribute configuration - /// </summary> - /// <returns></returns> - public static void Scan(Action<IAssemblyScanner> action) - { - registry.Scan(action); - } - - /// <summary> - /// Direct StructureMap to create instances of Type T - /// </summary> - /// <typeparam name="PLUGINTYPE">The Type to build</typeparam> - /// <returns></returns> - public static CreatePluginFamilyExpression<PLUGINTYPE> BuildInstancesOf<PLUGINTYPE>() - { - return registry.BuildInstancesOf<PLUGINTYPE>(); - } - - /// <summary> - /// Direct StructureMap to create instances of Type T - /// </summary> - /// <typeparam name="PLUGINTYPE">The Type to build</typeparam> - /// <returns></returns> - public static CreatePluginFamilyExpression<PLUGINTYPE> ForRequestedType<PLUGINTYPE>() - { - return registry.BuildInstancesOf<PLUGINTYPE>(); - } - - public static GenericFamilyExpression ForRequestedType(Type pluginType) - { - return registry.ForRequestedType(pluginType); - } - - - /// <summary> - /// Starts the definition of a configuration Profile. - /// </summary> - /// <param name="profileName"></param> - /// <returns></returns> - public static ProfileExpression CreateProfile(string profileName) - { - return registry.CreateProfile(profileName); - } - - /// <summary> - /// Directs StructureMap to use a Registry class to construct the - /// PluginGraph - /// </summary> - /// <param name="registry"></param> - public static void AddRegistry(Registry registry) - { - assertIsNotSealed(); - _registries.Add(registry); - } - - public static void TheDefaultProfileIs(string profileName) - { - registry.addExpression(graph => graph.ProfileManager.DefaultProfileName = profileName); - } - - - internal static void Seal() - { - _sealed = true; - } - - internal static void Unseal() - { - _sealed = false; - } - } -} \ No newline at end of file Modified: trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj =================================================================== --- trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj 2009-12-28 05:14:41 UTC (rev 312) +++ trunk/Source/StructureMap.Testing/StructureMap.Testing.csproj 2009-12-28 05:21:25 UTC (rev 313) @@ -394,7 +394,6 @@ <Compile Include="ReadingRegistriesFromXmlTester.cs" /> <Compile Include="SpecificationExtensions.cs" /> <Compile Include="StructureMapConfigCreator.cs" /> - <Compile Include="StructureMapConfigurationDefensiveChecksTester.cs" /> <Compile Include="StructureMapConfigurationTester.cs" /> <Compile Include="TestData\DataMother.cs"> <SubType>Code</SubType> Deleted: trunk/Source/StructureMap.Testing/StructureMapConfigurationDefensiveChecksTester.cs =================================================================== --- trunk/Source/StructureMap.Testing/StructureMapConfigurationDefensiveChecksTester.cs 2009-12-28 05:14:41 UTC (rev 312) +++ trunk/Source/StructureMap.Testing/StructureMapConfigurationDefensiveChecksTester.cs 2009-12-28 05:21:25 UTC (rev 313) @@ -1,43 +0,0 @@ -using System; -using NUnit.Framework; -using StructureMap.Testing.Widget3; - -namespace StructureMap.Testing -{ - [TestFixture] - public class StructureMapConfigurationDefensiveChecksTester - { - private void shouldThrowExceptionWhenSealed(Action action) - { - StructureMapConfiguration.ResetAll(); - StructureMapConfiguration.Seal(); - - try - { - action(); - Assert.Fail("Should have thrown exception"); - } - catch (StructureMapException ex) - { - ex.ErrorCode.ShouldEqual(50); - } - } - - [Test] - public void Ensure_defensive_check_is_always_thrown_when_StructureMapConfiguration_is_sealed() - { - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.AddRegistry(null)); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.BuildInstancesOf<IGateway>()); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.CreateProfile("something")); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.ForRequestedType(typeof (IGateway))); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.IgnoreStructureMapConfig = true); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.IncludeConfigurationFromFile("something")); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.IncludeConfigurationFromNode(null, null)); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.PullConfigurationFromAppConfig = true); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.RegisterInterceptor(null)); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.Scan(x => { })); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.TheDefaultProfileIs("something")); - shouldThrowExceptionWhenSealed(() => StructureMapConfiguration.UseDefaultStructureMapConfigFile = true); - } - } -} \ No newline at end of file Modified: trunk/Source/StructureMap.Testing/StructureMapConfigurationTester.cs =================================================================== --- trunk/Source/StructureMap.Testing/StructureMapConfigurationTester.cs 2009-12-28 05:14:41 UTC (rev 312) +++ trunk/Source/StructureMap.Testing/StructureMapConfigurationTester.cs 2009-12-28 05:21:25 UTC (rev 313) @@ -20,15 +20,8 @@ public void SetUp() { DataMother.RestoreStructureMapConfig(); - StructureMapConfiguration.ResetAll(); } - [TearDown] - public void TearDown() - { - StructureMapConfiguration.ResetAll(); - } - #endregion private static XmlNode createNodeFromText(string outerXml) @@ -39,19 +32,6 @@ } - public static void Bootstrap() - { - StructureMapConfiguration.UseDefaultStructureMapConfigFile = false; - StructureMapConfiguration.PullConfigurationFromAppConfig = true; - - StructureMapConfiguration.AddRegistry(new CoreRegistry()); - StructureMapConfiguration.AddRegistry(new WebRegistry()); - - StructureMapConfiguration.ForRequestedType<IGateway>().TheDefaultIsConcreteType<DefaultGateway>(); - - var gateway = ObjectFactory.GetInstance<IGateway>(); - } - public class WebRegistry : Registry { } @@ -61,20 +41,6 @@ } [Test] - public void BuildPluginGraph() - { - PluginGraph graph = StructureMapConfiguration.GetPluginGraph(); - Assert.IsNotNull(graph); - } - - [Test] - public void Ignore_the_StructureMap_config_file_even_if_it_exists() - { - StructureMapConfiguration.IgnoreStructureMapConfig = true; - StructureMapConfiguration.GetPluginGraph().FamilyCount.ShouldEqual(0); - } - - [Test] public void PullConfigurationFromTheAppConfig() { ObjectFactory.Initialize(x => @@ -115,7 +81,7 @@ { DataMother.RemoveStructureMapConfig(); - StructureMapConfiguration.GetPluginGraph().ShouldNotBeNull(); + ObjectFactory.Initialize(x => { }); } [Test( @@ -124,11 +90,16 @@ )] public void TheDefaultInstance_has_a_dependency_upon_a_Guid_NewGuid_lambda_generated_instance() { - StructureMapConfiguration.IgnoreStructureMapConfig = true; + ObjectFactory.Initialize(x => + { + x.IgnoreStructureMapConfig = true; - StructureMapConfiguration.ForRequestedType<Guid>().TheDefault.Is.ConstructedBy(() => Guid.NewGuid()); - StructureMapConfiguration.ForRequestedType<IFoo>().TheDefaultIsConcreteType<Foo>(); + x.ForRequestedType<Guid>().TheDefault.Is.ConstructedBy(() => Guid.NewGuid()); + x.ForRequestedType<IFoo>().TheDefaultIsConcreteType<Foo>(); + }); + + Assert.That(ObjectFactory.GetInstance<IFoo>().SomeGuid != Guid.Empty); } @@ -138,31 +109,18 @@ )] public void TheDefaultInstanceIsALambdaForGuidNewGuid() { - StructureMapConfiguration.IgnoreStructureMapConfig = true; - StructureMapConfiguration.ForRequestedType<Guid>().TheDefault.Is.ConstructedBy(() => Guid.NewGuid()); + ObjectFactory.Initialize(x => + { + x.IgnoreStructureMapConfig = true; - Assert.That(ObjectFactory.GetInstance<Guid>() != Guid.Empty); - } + x.ForRequestedType<Guid>().TheDefault.Is.ConstructedBy(() => Guid.NewGuid()); + }); - [Test] - public void TheDefaultNameIs_should_set_the_default_profile_name() - { - StructureMapConfiguration.IgnoreStructureMapConfig = true; - string theDefaultProfileName = "the default profile"; - StructureMapConfiguration.TheDefaultProfileIs(theDefaultProfileName); - - PluginGraph graph = StructureMapConfiguration.GetPluginGraph(); - graph.ProfileManager.DefaultProfileName.ShouldEqual(theDefaultProfileName); + Assert.That(ObjectFactory.GetInstance<Guid>() != Guid.Empty); } - [Test] - public void Use_the_StructureMap_config_file_if_it_exists() - { - DataMother.RestoreStructureMapConfig(); - StructureMapConfiguration.GetPluginGraph().FamilyCount.ShouldBeGreaterThan(0); - } } public interface IFoo This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |