public void SetUp()
        {
            var conventions = new Conventions();

            conventions.AddSystemMessagesConventions(type => type != typeof(MyType));
            configuration = new PublishersConfiguration(conventions, new SettingsHolder());
        }
        protected override ITopologySectionManagerInternal CreateTopologySectionManager(string defaultAlias, NamespaceConfigurations @namespaces, INamespacePartitioningStrategy partitioning, AddressingLogic addressing)
        {
            var conventions             = Settings.Get <Conventions>();
            var publishersConfiguration = new PublishersConfiguration(conventions, Settings);
            var endpointName            = Settings.EndpointName();

            return(new EndpointOrientedTopologySectionManager(defaultAlias, namespaces, endpointName, publishersConfiguration, partitioning, addressing));
        }
Esempio n. 3
0
        protected override ITopologySectionManagerInternal CreateTopologySectionManager(string defaultAlias, NamespaceConfigurations @namespaces, INamespacePartitioningStrategy partitioning, AddressingLogic addressing)
        {
            var conventions                         = Settings.Get <Conventions>();
            var publishersConfiguration             = new PublishersConfiguration(conventions, Settings);
            var endpointName                        = Settings.EndpointName();
            var brokerSideSubscriptionFilterFactory = (ICreateBrokerSideSubscriptionFilter)Settings.Get(WellKnownConfigurationKeys.Topology.Addressing.Sanitization.BrokerSideSubscriptionFilterFactoryInstance);

            return(new EndpointOrientedTopologySectionManager(defaultAlias, namespaces, endpointName, publishersConfiguration, partitioning, addressing, brokerSideSubscriptionFilterFactory));
        }
        public void Should_alternate_between_namespaces_for_EndpointOrientedTopologySectionManager_for_publishing()
        {
            var namespaceConfigurations = new NamespaceConfigurations();
            var addressingLogic         = new AddressingLogic(new ThrowOnFailedValidation(settings), new FlatComposition());
            var conventions             = new Conventions();

            conventions.AddSystemMessagesConventions(type => type != typeof(SomeEvent));
            var publishersConfiguration = new PublishersConfiguration(conventions, new SettingsHolder());
            var sectionManager          = new EndpointOrientedTopologySectionManager(PrimaryName, namespaceConfigurations, "sales", publishersConfiguration, namespacePartitioningStrategy, addressingLogic);

            sectionManager.DeterminePublishDestination(typeof(SomeEvent), "sales");
            var publishDestination2 = sectionManager.DeterminePublishDestination(typeof(SomeEvent), "sales");

            Assert.AreEqual(SecondaryName, publishDestination2.Entities.First().Namespace.Alias, "Should have different namespace");
        }
        void InitializeContainer(SettingsHolder settings)
        {
            // runtime components
            container.Register <ReadOnlySettings>(() => settings);
            container.Register <ITopologySectionManager>(() => topologySectionManager);
            container.RegisterSingleton <NamespaceManagerCreator>();
            container.RegisterSingleton <NamespaceManagerLifeCycleManager>();
            container.RegisterSingleton <MessagingFactoryCreator>();
            container.RegisterSingleton <MessagingFactoryLifeCycleManager>();
            container.RegisterSingleton <MessageReceiverCreator>();
            container.RegisterSingleton <MessageReceiverLifeCycleManager>();
            container.RegisterSingleton <MessageSenderCreator>();
            container.RegisterSingleton <MessageSenderLifeCycleManager>();
            container.RegisterSingleton <AzureServiceBusQueueCreator>();
            container.RegisterSingleton <AzureServiceBusTopicCreator>();
            container.RegisterSingleton <AzureServiceBusSubscriptionCreatorV6>();

            container.RegisterSingleton <DefaultConnectionStringToNamespaceAliasMapper>();

            var brokeredMessagesToIncomingMessagesConverterType = settings.Get <Type>(WellKnownConfigurationKeys.BrokeredMessageConventions.ToIncomingMessageConverter);

            container.Register(brokeredMessagesToIncomingMessagesConverterType);
            var batchedOperationsToBrokeredMessagesConverterType = settings.Get <Type>(WellKnownConfigurationKeys.BrokeredMessageConventions.FromOutgoingMessageConverter);

            container.Register(batchedOperationsToBrokeredMessagesConverterType);

            container.Register <TopologyCreator>();
            container.Register <Batcher>();

            var oversizedMessageHandler = (IHandleOversizedBrokeredMessages)settings.Get(WellKnownConfigurationKeys.Connectivity.MessageSenders.OversizedBrokeredMessageHandlerInstance);

            container.Register <IHandleOversizedBrokeredMessages>(() => oversizedMessageHandler);

            container.RegisterSingleton <DefaultOutgoingBatchRouter>();
            container.RegisterSingleton <TopologyOperator>();
            container.Register <MessageReceiverNotifier>();
            container.RegisterSingleton <SubscriptionManager>();
            container.RegisterSingleton <TransportResourcesCreator>();
            container.RegisterSingleton <Dispatcher>();
            container.Register <MessagePump>();

            container.Register <AddressingLogic>();

            var compositionStrategyType = (Type)settings.Get(WellKnownConfigurationKeys.Topology.Addressing.Composition.Strategy);

            container.Register(compositionStrategyType);

            var individualizationStrategyType = (Type)settings.Get(WellKnownConfigurationKeys.Topology.Addressing.Individualization.Strategy);

            container.Register(individualizationStrategyType);

            var partitioningStrategyType = (Type)settings.Get(WellKnownConfigurationKeys.Topology.Addressing.Partitioning.Strategy);

            container.Register(partitioningStrategyType);

            var sanitizationStrategyType = (Type)settings.Get(WellKnownConfigurationKeys.Topology.Addressing.Sanitization.Strategy);

            container.Register(sanitizationStrategyType);

            var conventions             = settings.Get <Conventions>();
            var publishersConfiguration = new PublishersConfiguration(conventions, settings);

            container.Register <PublishersConfiguration>(() => publishersConfiguration);
        }