internal Container(IPipelineGraph pipelineGraph) { Name = Guid.NewGuid().ToString(); _pipelineGraph = pipelineGraph; _pipelineGraph.RegisterContainer(this); }
public BuildPlanVisualizer(IPipelineGraph pipeline, bool deep = false, int levels = 0) { _pipeline = pipeline; _writer = new TreeWriter(); _maxLevels = deep ? int.MaxValue : levels; }
internal Container(IPipelineGraph pipelineGraph) { Name = Guid.NewGuid().ToString(); _pipelineGraph = pipelineGraph; _pipelineGraph.Outer.Families[typeof(IContainer)].SetDefault(new ObjectInstance(this)); }
public void SetUp() { theResolver = MockRepository.GenerateMock <IBuildSession>(); theCache = new SessionCache(theResolver); thePipeline = MockRepository.GenerateMock <IPipelineGraph>(); }
public static void AssertNoErrors(IPipelineGraph graph) { var validator = new PipelineGraphValidator(); findPipelines(graph).Each(x => validator.Validate(graph, graph.Policies)); validator.AssertIsValid(); }
private IContainer GetNestedContainer(IPipelineGraph pipeline) { var container = new Container(pipeline) { Name = "Nested-" + Name }; return(container); }
public Profiles(PluginGraph pluginGraph, IPipelineGraph root) { _profiles = new Cache <string, IPipelineGraph>(name => { var profileGraph = pluginGraph.Profile(name); var instances = new ComplexInstanceGraph(root, profileGraph, ContainerRole.ProfileOrChild); return(new PipelineGraph(profileGraph, instances, root, root.Singletons, root.Transients)); }); }
public Profiles(PluginGraph pluginGraph, IPipelineGraph root) { _profiles = new Cache<string, IPipelineGraph>(name => { var profileGraph = pluginGraph.Profile(name); var instances = new ComplexInstanceGraph(root, profileGraph, ContainerRole.ProfileOrChild); return new PipelineGraph(profileGraph, instances, root, root.Singletons, root.Transients); }); }
public BuildSession(IPipelineGraph pipelineGraph, string requestedName = null, ExplicitArguments args = null) { _pipelineGraph = pipelineGraph; _sessionCache = new SessionCache(this, args); RequestedName = requestedName ?? DEFAULT; }
public void Dispose() { if (_disposedLatch) { return; } _disposedLatch = true; _pipelineGraph.SafeDispose(); _pipelineGraph = null; }
private BuildSession(IPipelineGraph pipelineGraph, string requestedName, ExplicitArguments args, Stack <Instance> buildStack) { this.pipelineGraph = pipelineGraph; _sessionCache = new SessionCache(this, args); RequestedName = requestedName ?? DEFAULT; _instances = buildStack ?? new Stack <Instance>(); }
public SessionCacheTester() { theResolverMock = Substitute.For <IBuildSession>(); theCache = new SessionCache(theResolverMock); thePipeline = Substitute.For <IPipelineGraph>(); thePipeline.ToModel().Returns(new Container().Model); instanceGraphMock = Substitute.For <IInstanceGraph>(); thePipeline.Instances.Returns(instanceGraphMock); }
private static IEnumerable <IPipelineGraph> findPipelines(IPipelineGraph graph) { yield return(graph); if (graph.Role == ContainerRole.Root) { foreach (var profile in graph.Profiles.AllProfiles()) { yield return(profile); } } }
public void SetUp() { theResolver = MockRepository.GenerateMock<IBuildSession>(); theCache = new SessionCache(theResolver); thePipeline = MockRepository.GenerateMock<IPipelineGraph>(); thePipeline.Stub(x => x.ToModel()).Return(new Container().Model); theInstances = MockRepository.GenerateMock<IInstanceGraph>(); thePipeline.Stub(x => x.Instances).Return(theInstances); }
private static IEnumerable<IPipelineGraph> findPipelines(IPipelineGraph graph) { yield return graph; if (graph.Role == ContainerRole.Root) { foreach (var profile in graph.Profiles.AllProfiles()) { yield return profile; } } }
public SessionCacheTester() { theResolverMock = Substitute.For<IBuildSession>(); theCache = new SessionCache(theResolverMock); thePipeline = Substitute.For<IPipelineGraph>(); thePipeline.ToModel().Returns(new Container().Model); instanceGraphMock = Substitute.For<IInstanceGraph>(); thePipeline.Instances.Returns(instanceGraphMock); }
public void SetUp() { theResolver = MockRepository.GenerateMock <IBuildSession>(); theCache = new SessionCache(theResolver); thePipeline = MockRepository.GenerateMock <IPipelineGraph>(); thePipeline.Stub(x => x.ToModel()).Return(new Container().Model); theInstances = MockRepository.GenerateMock <IInstanceGraph>(); thePipeline.Stub(x => x.Instances).Return(theInstances); }
public SessionCacheTester() { theResolverMock = new Mock<IBuildSession>(); theCache = new SessionCache(theResolverMock.Object); var thePipelineMock = new Mock<IPipelineGraph>(); thePipelineMock.Setup(x => x.ToModel()).Returns(new Container().Model); thePipeline = thePipelineMock.Object; instanceGraphMock = new Mock<IInstanceGraph>(); thePipelineMock.Setup(x => x.Instances).Returns(instanceGraphMock.Object); }
public SessionCacheTester() { theResolverMock = new Mock <IBuildSession>(); theCache = new SessionCache(theResolverMock.Object); var thePipelineMock = new Mock <IPipelineGraph>(); thePipelineMock.Setup(x => x.ToModel()).Returns(new Container().Model); thePipeline = thePipelineMock.Object; instanceGraphMock = new Mock <IInstanceGraph>(); thePipelineMock.Setup(x => x.Instances).Returns(instanceGraphMock.Object); }
private void tryBuildInstance(Type pluginType, Instance instance, IPipelineGraph pipeline, ProfileReport report) { var session = new BuildSession(pipeline, instance.Name); try { var @object = session.FindObject(pluginType, instance); validate(pluginType, instance, @object, report); } catch (StructureMapException ex) { ex.Instances.Each(x => _buildPlanFailureIds.Fill(x)); report.AddError(pluginType, instance, ex); } }
public void Validate(IPipelineGraph pipeline, Policies policies) { var report = new ProfileReport(pipeline); _reports.Add(report); var closedTypes = pipeline.ToModel().PluginTypes.Where(x => !x.PluginType.IsOpenGeneric()).ToArray(); closedTypes.Each( family => { family.Instances.Each(i => { tryCreateBuildPlan(family.PluginType, i, policies, report); }); }); closedTypes.Each( family => { family.Instances.Where(x => !_buildPlanFailureIds.Contains(x.Instance.Id)) .Each(i => { tryBuildInstance(family.PluginType, i.Instance, pipeline, report); }); }); }
public object GetDefault(Type pluginType, IPipelineGraph pipelineGraph) { if (_defaults.ContainsKey(pluginType)) { return(_defaults[pluginType]); } var instance = pipelineGraph.Instances.GetDefault(pluginType); if (instance == null) { var ex = new StructureMapConfigurationException( "No default Instance is registered and cannot be automatically determined for type '{0}'", pluginType.GetFullName()); if (pipelineGraph.ToModel().HasImplementationsFor(pluginType)) { ex.Context = new WhatDoIHaveWriter(pipelineGraph).GetText(new ModelQuery { PluginType = pluginType }, "No default instance is specified. The current configuration for type {0} is:".ToFormat( pluginType.GetFullName())); } else { ex.Context = "There is no configuration specified for " + pluginType.GetFullName(); } throw ex; } var lifecycle = pipelineGraph.DetermineLifecycle(pluginType, instance); var o = GetObject(pluginType, instance, lifecycle); if (!(lifecycle is UniquePerRequestLifecycle) && pluginType != typeof(IContainer)) { _defaults.Add(pluginType, o); } return(o); }
public object TryGetDefault(Type pluginType, IPipelineGraph pipelineGraph) { if (_defaults.ContainsKey(pluginType)) { return(_defaults[pluginType]); } var instance = pipelineGraph.GetDefault(pluginType); if (instance == null) { return(null); } var o = GetObject(pluginType, instance); _defaults.Add(pluginType, o); return(o); }
public PipelineGraph(PluginGraph pluginGraph, IInstanceGraph instances, IPipelineGraph root, IObjectCache singletons, IObjectCache transients) { _pluginGraph = pluginGraph; _instances = instances; if (root == null) { _root = this; _profiles = new Profiles(_pluginGraph, this); } else { _root = root.Root(); _profiles = root.Profiles; } _singletons = singletons; _transients = transients; }
public object GetDefault(Type pluginType, IPipelineGraph pipelineGraph) { if (_defaults.ContainsKey(pluginType)) { return(_defaults[pluginType]); } var instance = pipelineGraph.GetDefault(pluginType); if (instance == null) { throw new StructureMapException(202, pluginType); } var o = GetObject(pluginType, instance); if (!instance.IsUnique()) { _defaults.Add(pluginType, o); } return(o); }
public WhatDoIHaveWriter(IPipelineGraph graph) { _graph = graph; }
public ValidationBuildSession(IPipelineGraph pipelineGraph) : base(pipelineGraph) { }
public ComplexInstanceGraph(IPipelineGraph parent, PluginGraph pluginGraph, ContainerRole role) { _parent = parent; _pluginGraph = pluginGraph; Role = role; }
public BuildSession(IPipelineGraph pipelineGraph, string requestedName = null, ExplicitArguments args = null) : this(pipelineGraph, requestedName, args, null) { }
public ComplexPipelineGraph(IPipelineGraph parent, PluginGraph outer, IObjectCache transientCache) { _parent = parent; _outer = outer; _transientCache = transientCache; }
public Profiles(PluginGraph pluginGraph, IPipelineGraph root) { _pluginGraph = pluginGraph; _root = root; }
public when_the_singleton_Lifecycle_ejects_all() { lifecycle = new SingletonLifecycle(); disposable1 = new StubDisposable(); disposable2 = new StubDisposable(); pipeline = PipelineGraph.BuildRoot(PluginGraph.CreateRoot()); lifecycle.FindCache(pipeline) .As<LifecycleObjectCache>() .Set(typeof(IGateway), new StubInstance("a"), disposable1); lifecycle.FindCache(pipeline) .As<LifecycleObjectCache>() .Set(typeof(IGateway), new StubInstance("b"), disposable2); lifecycle.FindCache(pipeline) .As<LifecycleObjectCache>() .Set(typeof(IGateway), new StubInstance("c"), new object()); lifecycle.EjectAll(pipeline); }
static StubBuildSession() { _pipeline = PipelineGraph.BuildRoot(_pluginGraph); }
internal Model(IPipelineGraph graph, PluginGraph pluginGraph) { _graph = graph; PluginGraph = pluginGraph; }
public void SetUp() { lifecycle = new SingletonLifecycle(); disposable1 = new StubDisposable(); disposable2 = new StubDisposable(); pipeline = PipelineGraph.BuildRoot(new PluginGraph()); lifecycle.FindCache(pipeline) .As<LifecycleObjectCache>() .Set(typeof (IGateway), new StubInstance("a"), disposable1); lifecycle.FindCache(pipeline) .As<LifecycleObjectCache>() .Set(typeof (IGateway), new StubInstance("b"), disposable2); lifecycle.FindCache(pipeline) .As<LifecycleObjectCache>() .Set(typeof (IGateway), new StubInstance("c"), new object()); lifecycle.EjectAll(pipeline); }
public GenericFamilyConfiguration(PluginFamily family, IPipelineGraph pipeline) { _family = family; _pipeline = pipeline; _graph = family.Owner; }
public void SetUp() { theResolver = MockRepository.GenerateMock<IBuildSession>(); theCache = new SessionCache(theResolver); thePipeline = MockRepository.GenerateMock<IPipelineGraph>(); }
public ProfileReport(IPipelineGraph pipelineGraph) { _role = pipelineGraph.Role; _profile = pipelineGraph.Profile; }
public ClosedPluginTypeConfiguration(PluginFamily family, IPipelineGraph pipelineGraph) { _family = family; _pipelineGraph = pipelineGraph; }
static StubBuildSession() { _pipeline = new RootPipelineGraph(_pluginGraph); }
internal Model(IPipelineGraph graph) { _graph = graph; PluginGraph = _graph.Outer; }