public static void CommitExchange(this IBus bus, string channelName) { var channels = Assimilate.GetInstanceOf <IChannelManager>(); var channel = channels.GetChannelFor(channelName) as IHaveChannelProxy; channel.Proxy.Channel.TxCommit(); }
public void Initialize() { var handlerInterfaces = GetHandlerInterfaces().ToList(); var dispatcherPairs = GetMessageDispatcherPairs(handlerInterfaces); var actorDispatcherPairs = GetActorDispatcherPairs(handlerInterfaces); var sagaPairs = GetSagaDispatcherPairs(); var simpleInterface = typeof(IDispatchMessage); Assimilate.Dependencies(x => { dispatcherPairs .ForEach(p => { x.For(p.Item1).Use(p.Item2); x.For(simpleInterface).Add(p.Item2); }); actorDispatcherPairs .ForEach(p => { x.For(p.Item1).Use(p.Item2); x.For(simpleInterface).Add(p.Item2); }); sagaPairs .ForEach(p => { x.For(p.Item1).Use(p.Item2); x.For(simpleInterface).Add(p.Item2); }); }); }
public TActor CreateInstanceFrom <TKey>(TKey id, object command) { var actor = Assimilate.GetInstanceOf <TActor>(); KeyAccessor.SetId(actor, id); return(actor); }
public static IBus AddRabbitQueue(this IBus bus, Action <EndpointConfigurator> configurate) { var endpoints = Assimilate.GetInstanceOf <IEndpointManager>(); endpoints.ConfigureEndpoint(configurate); return(bus); }
public ILuceneIndexer GetIndexingObserverForIndex(string indexName) { var indexer = Assimilate.GetInstanceOf <BaseIndexingObserver>(); indexer.DocumentQueue = GetDocumentQueue(indexName); return(indexer); }
protected void IndexEvent <T>(ILuceneIndexer indexer, T newEvent) { var visitor = Assimilate.GetInstanceOf <IVisit <T> >(); visitor.Subscribe(indexer); visitor.Accept(newEvent); }
private static void ConfigureStandardDependencies() { var assemblies = AppDomain .CurrentDomain .GetAssemblies() .Where(a => a.GetReferencedAssemblies().Any(r => r.FullName.Contains("Mikado")) && !a.FullName.Contains("DynamicProxyGenAssembly2")) .ToList(); Assimilate.Dependencies(x => x.Scan(s => { assemblies.ForEach(s.Assembly); s.ConnectImplementationsToTypesClosing(typeof(IRule <>)); })); var rules = Assimilate .Assimilation .DependencyAdapter .RegisteredPluginTypes .Where(x => typeof(IRule).IsAssignableFrom(x) || x.IsAssignableFrom(typeof(IRule))) .Distinct(); var simpleInterface = typeof(IRule); Assimilate.Dependencies(x => rules.ForEach(p => x.For(simpleInterface).Add(p))); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); Assimilate .Initialize() .Rabbit(x => x.AddBroker(s => s.Defaults() .Address(ConfigurationManager.AppSettings["RabbitHost"])) .EnrollAsMeshNode(true)) .Dependencies(x => { x.For <IEventAggregator>().Use <EventAggregator>().AsSingleton(); x.For <IOrderCollectionViewModel>().Use <OrderCollectionViewModel>(); x.For <IOrderItemViewModel>().Use <OrderItemViewModel>(); x.For <IOrderViewModel>().Use <OrderViewModel>(); x.For <IOrderViewModelFactory>().Use <OrderViewModelFactory>(); }); var mainWindow = new MainWindow(); var viewModel = Assimilate.GetInstanceOf <IOrderCollectionViewModel>(); mainWindow.DataContext = viewModel; viewModel.RequestClose += (sender, args) => mainWindow.Close(); viewModel.Dispatcher = mainWindow.Dispatcher; mainWindow.Show(); }
public static void WriteMember(object instance, string memberName, object value) { try { var type = instance.GetType(); CreateLookupsForType(type); var parts = memberName.Split('.'); if (parts.Length > 1) { var parent = ReadFromCache(instance, type, parts[0]); if (parent == null) { var intended = GetMemberType(type, parts[0]); parent = Assimilate.GetInstanceOf(intended); } WriteMember(parent, string.Join(".", parts.Skip(1)), value); } else { WriteThroughCache(instance, type, memberName, value); } } catch (Exception e) { // do nothing } }
static void Main(string[] args) { Assimilate .Core <StructureMapAdapter>() .Relax(x => x.UseDefaults().Server(ConfigurationManager.AppSettings["couchdb"])) .RelaxLuceneSearchProvider(@"http://localhost:8420/", TimeSpan.FromSeconds(10)) .AddColorConsoleLogger <ChangeWatcher>(x => x .Info() .DefineColor() .Text.IsGreen().ForAllOutput() .MessageLayout(m => m.Message().Date().Newline()) ) .AddConsoleLogger <RelaxDemoService>(x => x .Info() .MessageLayout(m => m.Message().Newline()) ) .Dependencies(x => x.For(typeof(IRemoteProxy <>)).Use(typeof(RemoteProxy <>))) .Daemon(x => x .Arguments(args) .Name("relaxdemo") .DisplayName("Relax Demo") .Description("Relax Integration Testing") ) .RunDaemon(); }
public static DistributedLock Create <T>(T lockId) { var manager = Assimilate.GetInstanceOf <ILockManager>(); var lockInstance = new DistributedLock(manager, lockId); manager.AcquireLock(lockId); return(lockInstance); }
public ILuceneSearchProvider GetSearchProviderForIndex(string indexName) { var searchProvider = Assimilate.GetInstanceOf <BaseSearchProvider>(); searchProvider.IndexWriter = GetIndexWriter(indexName); searchProvider.Analyzer = GetQueryAnalyzer(indexName); return(searchProvider); }
public static IAssimilate Riak(this IAssimilate assimilate, Action <RiakConfigurator> configurate) { var configurator = new RiakConfigurator(); configurate(configurator); Assimilate.Dependencies(x => x.For <IRiakConfiguration>().Use(configurator.Configuration)); return(assimilate); }
public IMemento <T> GetMemento <T>(T instance) { var memento = Assimilate.GetInstanceOf <IMemento <T> >(); //TODO: Add exception handling for null mememnto instance memento.Capture(instance); return(memento); }
static void Main(string[] args) { Assimilate .Initialize() .Daemon(x => x.Name("shortorder.host").AsDynamicHost(b => b.HostApplicationsFrom(@"..\..\..\..\services\"))) .AddConsoleLogger <HostService>(x => x.Debug().MessageLayout(m => m.Message().Newline())) .RunDaemon(); }
public static void Configure(Action <CouchConfigurator> configure) { Assimilate.Initialize(); var config = new CouchConfigurator(); configure(config); Configure(config.Configuration); }
public void Initialize() { Assimilate .Initialize() .Daemon(x => x.Name("shortorder.persistenceservice ) )")) .Rabbit(x => x.AddBroker(b => b.Defaults())) .RunDaemon(); }
public ServiceClient(ILogger <IServiceConfiguration> logger) { Logger = logger; Logger.Log(LogLevel.Info, "{0} proxy instantiated", typeof(TContract).AssemblyQualifiedName); var configurationStrategy = Assimilate.GetInstanceOf <IServiceClientConfigurationStrategy <TContract> >(); configurationStrategy.ConfigureServiceClient(this); }
public WcfClientConfigurator RegisterService <TContract, TStrategy>() where TStrategy : IServiceClientConfigurationStrategy <TContract> where TContract : class { Assimilate.Dependencies(x => x .For <IServiceClientConfigurationStrategy <TContract> >() .Use <TStrategy>()); return(this); }
public void Dispatch(IEnvelope envelope) { var actor = Agent.GetActor(envelope.CorrelationId); var message = (TMessage)envelope.Message; Handler = Handler ?? Assimilate.GetInstanceOf <IHandle <TActor, TMessage> >(); Handler.Handle(actor, message)(envelope); Agent.Memoize(actor); }
public void Initialize() { Assimilate .Initialize() .RocketSockets(x => x.UseDefaultEndpoint()) .HyperStack(x => x .ConfigureHost(c => c .BasePath(ConfigurationManager.AppSettings["BasePath"]) .AddViewSearchFolder("template") ) .RegisterApplications(routes => routes .DefineApplication(request => request.RequestUri.EndsWith("fav.ico"), (request, response, exception) => { response(HttpStatus.NoContent.ToString(), new Dictionary <string, string>(), (bytes, error, continuation) => () => { }); }) .DefineApplication <FileServer>(request => { var last = request.PathSegments.LastOrDefault() ?? ""; return(last.Contains(".") || request.RequestUri.Equals("/")); }) .DefineApplication <IdService>(request => "uniqueid".Equals(request.PathSegments.FirstOrDefault()) && request.Method.Equals("GET")) .DefineApplication <MenuItemList>(request => "menu".Equals(request.PathSegments.FirstOrDefault()) && request.Method.Equals("GET")) .DefineApplication <NewMenuItem>(request => "menuitem".Equals(request.PathSegments.FirstOrDefault()) && request.PathSegments.Count == 2 && request.Method.Equals("PUT")) .DefineApplication <UpdateMenuItem>(request => "menuitem".Equals(request.PathSegments.FirstOrDefault()) && request.PathSegments.Count == 2 && request.Method.Equals("POST")) .DefineApplication <NewOrder>(request => "order".Equals(request.PathSegments.FirstOrDefault()) && request.Method.Equals("PUT")) .DefineApplication <OrderList>(request => "order".Equals(request.PathSegments.FirstOrDefault()) && request.PathSegments.Count == 1 && request.Method.Equals("GET")) .DefineApplication <OrderStatus>(request => "order".Equals(request.PathSegments.FirstOrDefault()) && request.PathSegments.Count == 2 && request.Method.Equals("GET")) .DefineApplication(request => true, (request, response, exception) => { response(HttpStatus.NoContent.ToString(), new Dictionary <string, string>(), (bytes, error, continuation) => () => { }); }) ) ) .AddConsoleLogger <HostService>(x => x.Debug().MessageLayout(m => m.Message().Newline())) .Rabbit(x => x.AddBroker(b => b.Defaults().Address(ConfigurationManager.AppSettings["RabbitHost"])).EnrollAsMeshNode(true)) .Daemon(x => x.Name("shortstack.http")) .Dependencies(x => x.For <FileServer>().Use <FileServer>().AsSingleton()) .RunDaemon(); }
public void PublishOnCommit <TEvent>(Action <TEvent> populateEvent) { var newEvent = Assimilate.GetInstanceOf <TEvent>(); var baseEvent = newEvent as IEvent; PopulateDefaultEventFields(baseEvent); populateEvent(newEvent); Events.Add(baseEvent); }
static void Main(string[] args) { Assimilate .Initialize() .Rabbit(x => x.AddBroker(b => b.Defaults())) .AddConsoleLogger <PingService>(x => x.Debug().MessageLayout(m => m.Message().Newline())) .Daemon(x => x.Name("ping")) .RunDaemon(); }
static void Main(string[] args) { Assimilate .Initialize() .Daemon(x => x.Arguments(args).Name("node")) .Rabbit(x => x.AddBroker(b => b.Address("localhost").AMQP091()).EnrollAsMeshNode(false)) .AddConsoleLogger <NodeService>(x => x.Debug().MessageLayout(m => m.Message().Newline())) .RunDaemon(); }
public DaemonConfigurator AsDynamicHost(Action <BootStrapConfigurator> bootstrapper) { var configurator = new BootStrapConfigurator(); bootstrapper(configurator); Configuration.BootStrapConfiguration = configurator.Configuration; Assimilate.Dependencies(x => x.For <IBootStrapper>().Use <BootStrapper>().AsSingleton()); return(this); }
public void Reply <TResponse>(TResponse response) { var bus = Assimilate.GetInstanceOf <IBus>(); bus.Publish( "local", response, x => { x.CorrelationId = MessageId.ToString(); }); }
private void ReadServiceInfoFromMetadataExchange(string mexAddress) { var cache = Assimilate.GetInstanceOf <IServiceMetadataCache>(); var serviceEndPoint = cache.GetEndPoint <TContract>(mexAddress); Configuration = ""; Endpoint = serviceEndPoint.Address; Binding = serviceEndPoint.Binding; }
public IOrderItemViewModel GetOrderItemViewModelFromValue(string description, int itemId, int qty) { var orderItem = Assimilate.GetInstanceOf <IOrderItemViewModel>(); orderItem.Description = description; orderItem.ItemId = itemId; orderItem.Qty = qty; return(orderItem); }
public IChannel CreateChannel(IChannelDefinition definition) { var namedPipeChannelDefinition = definition as NamedPipeChannelDefinition; var serializer = Assimilate.GetInstanceOf(definition.SerializerType) as IMessageSerializer; var proxy = new PipeProxy(namedPipeChannelDefinition, Dispatcher, serializer); var namedPipeChannel = new NamedPipeChannel(namedPipeChannelDefinition, proxy, Dispatcher); return(namedPipeChannel); }
static void Main(string[] args) { Assimilate .Initialize() .Daemon(x => x.Name("localChannelTest").Arguments(args)) .AddConsoleLogger <Service>(x => x.Info().MessageLayout(m => m.Message().Newline())) .RunDaemon(); Console.ReadKey(); }