Ejemplo n.º 1
0
        public KafkaTransportInfrastructure(SettingsHolder settings, string connectionString)
        {
            this.settings         = settings;
            this.connectionString = connectionString;
            serializer            = BuildSerializer(settings);
            this.queueCreator     = new QueueCreator(settings);

            messagePump         = new MessagePump(settings, connectionString);
            messageDispatcher   = new MessageDispatcher(new Transports.Kafka.Connection.ProducerFactory(connectionString));
            subscriptionManager = new SubscriptionManager(messagePump, queueCreator);
        }
Ejemplo n.º 2
0
        public void Should_throw_exception_when_no_serializer_was_set()
        {
            var exception = Assert.Throws <Exception>(() =>
            {
                var settings      = new SettingsHolder();
                var messageMapper = MessageWrapperSerializer.GetMapper();

                AzureStorageQueueTransport.GetMainSerializerHack(messageMapper, settings);
            });

            Assert.IsTrue(exception.Message.StartsWith("No serializer defined. If the transport is used in combination with NServiceBus, use 'endpointConfiguration.UseSerialization<T>();' to select a serializer."), $"Incorrect exception message: {exception.Message}");
        }
Ejemplo n.º 3
0
        public void Should_not_throw_exception_when_serializer_was_set()
        {
            var settings             = new SettingsHolder();
            const BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance;

            var conventions = settings.GetOrCreate <Conventions>();
            var registry    = (MessageMetadataRegistry)Activator.CreateInstance(typeof(MessageMetadataRegistry), flags, null, new object[] { new Func <Type, bool>(t => conventions.IsMessageType(t)) }, CultureInfo.InvariantCulture);

            settings.Set(registry);

            settings.Set(AzureStorageQueueTransport.SerializerSettingsKey, Tuple.Create <SerializationDefinition, SettingsHolder>(new XmlSerializer(), settings));

            Assert.DoesNotThrow(() =>
            {
                var messageMapper = MessageWrapperSerializer.GetMapper();

                AzureStorageQueueTransport.GetMainSerializerHack(messageMapper, settings);
            });
        }
Ejemplo n.º 4
0
        static MessageWrapperSerializer BuildSerializer(ReadOnlySettings settings)
        {
            if (serializer == null)
            {
                lock (o)
                {
                    if (serializer == null)
                    {
                        SerializationDefinition wrapperSerializer;
                        if (settings != null && settings.TryGet(WellKnownConfigurationKeys.MessageWrapperSerializationDefinition, out wrapperSerializer))
                        {
                            serializer = new MessageWrapperSerializer(wrapperSerializer.Configure(settings)(MessageWrapperSerializer.GetMapper()));
                        }

                        serializer = new MessageWrapperSerializer(KafkaTransport.GetMainSerializer(MessageWrapperSerializer.GetMapper(), settings));
                    }
                }
            }


            return(serializer);
        }
 static MessageWrapperSerializer BuildSerializer(SerializationDefinition userWrapperSerializationDefinition, ReadOnlySettings settings)
 {
     return(userWrapperSerializationDefinition != null
         ? new MessageWrapperSerializer(userWrapperSerializationDefinition.Configure(settings).Invoke(MessageWrapperSerializer.GetMapper()))
         : new MessageWrapperSerializer(GetMainSerializerHack(MessageWrapperSerializer.GetMapper(), settings)));
 }