Exemple #1
0
        public MessagingSerializationGraph(ObjectPoolProvider pooling, JasperOptions jasperOptions,
                                           HandlerGraph handlers, Forwarders forwarders, IEnumerable <ISerializerFactory> serializers,
                                           IEnumerable <IMessageDeserializer> readers, IEnumerable <IMessageSerializer> writers)
            : base(pooling, jasperOptions.JsonSerialization, serializers, readers, writers)
        {
            _handlers = handlers;

            // Work around here to seed this type in the serialization
            RegisterType(typeof(Acknowledgement));
        }
Exemple #2
0
        private static void RunWithReplacementDecorator(string arg)
        {
            var currentType       = MethodBase.GetCurrentMethod().DeclaringType;
            var thingsThatHaveRun = (Dictionary <string, object[]>)currentType
                                    .GetProperty("ThingsThatHaveRun", BindingFlags.Public | BindingFlags.Static)
                                    .GetValue(null);

            thingsThatHaveRun.Add("Decorated RunWithReplacement", new object[] { arg });

            Forwarders.ForwardToOriginalAction(arg);
        }
Exemple #3
0
 void Trivial()
 {
     Debug.Assert(false);
     Debug.Assert(true);
     Assert.IsTrue(false);
     Assert.IsTrue(true);
     Assert.IsFalse(true);
     Assert.IsFalse(false);
     Forwarders.MyAssert(false);
     Forwarders.MyAssert(true);
     Forwarders.MyAssert2(false);
     Forwarders.MyAssert2(true);
 }
Exemple #4
0
    void M()
    {
        string s = null;

        Debug.Assert(s != null);
        Assert.IsNull(s);
        Assert.IsNotNull(s);
        Assert.IsTrue(s == null);
        Assert.IsTrue(s != null);
        Assert.IsFalse(s != null);
        Assert.IsFalse(s == null);
        Forwarders.MyAssert(s == null);
        Forwarders.MyAssert2(s == null);
    }
        private void conneg(JasperRegistry parent)
        {
            this.AddOptions();

            var forwarding = new Forwarders();

            For <Forwarders>().Use(forwarding);

            Scan(_ =>
            {
                _.Assembly(parent.ApplicationAssembly);
                _.AddAllTypesOf <IMessageSerializer>();
                _.AddAllTypesOf <IMessageDeserializer>();
                _.With(new ForwardingRegistration(forwarding));
            });
        }
Exemple #6
0
        public void AddForwarders(Forwarders forwarders)
        {
            foreach (var pair in forwarders.Relationships)
            {
                var source      = pair.Key;
                var destination = pair.Value;

                if (_chains.TryFind(destination, out var inner))
                {
                    var handler =
                        TypeExtensions.CloseAndBuildAs <MessageHandler>(typeof(ForwardingHandler <,>), this, new Type[] { source, destination });

                    _chains   = _chains.AddOrUpdate(source, handler.Chain);
                    _handlers = _handlers.AddOrUpdate(source, handler);
                }
            }
        }
Exemple #7
0
        public MessagingRoot(ObjectPoolProvider pooling,
                             MessagingSettings settings,
                             HandlerGraph handlers,
                             Forwarders forwarders,
                             IDurableMessagingFactory factory,
                             IChannelGraph channels,
                             ISubscriptionsRepository subscriptions,
                             IMessageLogger messageLogger,
                             IEnumerable <ISerializerFactory> serializers,
                             IEnumerable <IMessageDeserializer> readers,
                             IEnumerable <IMessageSerializer> writers,
                             ITransport[] transports,
                             IEnumerable <IMissingHandler> missingHandlers,
                             IEnumerable <IUriLookup> lookups, ITransportLogger transportLogger)
        {
            Settings         = settings;
            _handlers        = handlers;
            _transportLogger = transportLogger;
            Replies          = new ReplyWatcher();
            Factory          = factory;
            Channels         = channels;
            Transports       = transports;



            Lookup = new UriAliasLookup(lookups);


            Serialization = new MessagingSerializationGraph(pooling, settings, handlers, forwarders, serializers,
                                                            readers, writers);

            Logger = messageLogger;

            Pipeline = new HandlerPipeline(Serialization, handlers, Replies, Logger, missingHandlers,
                                           this);

            Workers = new WorkerQueue(Logger, Pipeline, settings);

            Router = new MessageRouter(Serialization, channels, subscriptions, handlers, Logger, Lookup, settings);

            // TODO -- ZOMG this is horrible, and I admit it.
            if (Factory is NulloDurableMessagingFactory)
            {
                Factory.As <NulloDurableMessagingFactory>().ScheduledJobs = ScheduledJobs;
            }
        }
Exemple #8
0
        public MessagingRoot(
            ObjectPoolProvider pooling,
            BusSettings settings,
            HandlerGraph handlers,
            Forwarders forwarders,
            IPersistence persistence,
            IChannelGraph channels,
            ISubscriptionsRepository subscriptions,
            IEnumerable <ISerializerFactory> serializers,
            IEnumerable <IMessageDeserializer> readers,
            IEnumerable <IMessageSerializer> writers,
            IMessageLogger[] loggers,
            ITransport[] transports,
            IEnumerable <IMissingHandler> missingHandlers,
            IEnumerable <IUriLookup> lookups)
        {
            _settings    = settings;
            _handlers    = handlers;
            _replies     = new ReplyWatcher();
            _persistence = persistence;
            _channels    = channels;
            _transports  = transports;



            Lookup = new UriAliasLookup(lookups);


            Serialization = new BusMessageSerializationGraph(pooling, settings, handlers, forwarders, serializers,
                                                             readers, writers);

            Logger = new CompositeMessageLogger(loggers);

            Pipeline = new HandlerPipeline(Serialization, handlers, _replies, Logger, missingHandlers,
                                           new Lazy <IServiceBus>(Build));

            Workers = new WorkerQueue(Logger, Pipeline, settings);

            Router = new MessageRouter(Serialization, channels, subscriptions, handlers, Logger, Lookup, settings);

            ScheduledJobs = new InMemoryScheduledJobProcessor();
        }
Exemple #9
0
        public JasperServiceRegistry(JasperOptions parent)
        {
            For <IMetrics>().Use <NulloMetrics>();
            //For<IHostedService>().Use<MetricsCollector>();

            this.AddSingleton <IServiceProviderFactory <IServiceCollection> >(new DefaultServiceProviderFactory());

            this.AddLogging();

            For <IMessageLogger>().Use <MessageLogger>().Singleton();
            For <ITransportLogger>().Use <TransportLogger>().Singleton();

            For <IMessageSerializer>().Use <EnvelopeReaderWriter>();
            For <IMessageDeserializer>().Use <EnvelopeReaderWriter>();

            For <ISerializerFactory <IMessageDeserializer, IMessageSerializer> >().Use <NewtonsoftSerializerFactory>();

            this.AddSingleton(parent.Advanced);

            this.AddOptions();

            var forwarding = new Forwarders();

            For <Forwarders>().Use(forwarding);

            Scan(_ =>
            {
                _.Assembly(parent.ApplicationAssembly);
                _.AddAllTypesOf <IMessageSerializer>();
                _.AddAllTypesOf <IMessageDeserializer>();
                _.With(new ForwardingRegistration(forwarding));
            });

            Policies.Add(new HandlerScopingPolicy(parent.HandlerGraph));

            ForSingletonOf <MessagingSerializationGraph>().Use <MessagingSerializationGraph>();


            For <IEnvelopePersistence>().Use <NulloEnvelopePersistence>();
            this.AddSingleton <InMemorySagaPersistor>();

            this.AddSingleton(parent.HandlerGraph);

            Scan(x =>
            {
                x.AssemblyContainingType <JasperServiceRegistry>();
                x.ConnectImplementationsToTypesClosing(typeof(ISerializerFactory <,>));
            });


            ForSingletonOf <IMessagingRoot>().Use <MessagingRoot>();

            ForSingletonOf <ObjectPoolProvider>().Use(new DefaultObjectPoolProvider());

            MessagingRootService(x => x.Pipeline);

            MessagingRootService(x => x.Router);
            MessagingRootService(x => x.ScheduledJobs);
            MessagingRootService(x => x.Runtime);



            For <IMessageContext>().Use(c => c.GetInstance <IMessagingRoot>().NewContext());
            For <ICommandBus>().Use(c => c.GetInstance <IMessagingRoot>().NewContext());
            For <IMessagePublisher>().Use(c => c.GetInstance <IMessagingRoot>().NewContext());


            // I'm not proud of this code, but you need a non-null
            // Container property to use the codegen
            For <IGeneratesCode>().Use(c =>
            {
                var handlers       = c.GetInstance <HandlerGraph>();
                handlers.Container = (IContainer)c;

                return(handlers);
            });
        }
        public BusMessageSerializationGraph(ObjectPoolProvider pooling, BusSettings busSettings, HandlerGraph handlers, Forwarders forwarders, IEnumerable <ISerializerFactory> serializers, IEnumerable <IMessageDeserializer> readers, IEnumerable <IMessageSerializer> writers)
            : base(pooling, busSettings.MediaSelectionMode, busSettings.JsonSerialization, forwarders, serializers, readers, writers)
        {
            _handlers = handlers;

            // Work around here to seed this type in the serialization
            RegisterType(typeof(Acknowledgement));
        }
Exemple #11
0
 public HttpSerializationGraph(HttpSettings settings, ObjectPoolProvider pooling, Forwarders forwarders, IEnumerable <ISerializerFactory> serializers, IEnumerable <IMessageDeserializer> readers, IEnumerable <IMessageSerializer> writers)
     : base(pooling, settings.MediaSelectionMode, settings.JsonSerialization, forwarders, serializers, readers, writers)
 {
 }
Exemple #12
0
 public BusMessageSerializationGraph(ObjectPoolProvider pooling, BusSettings busSettings, HandlerGraph handlers, Forwarders forwarders, IEnumerable <ISerializerFactory> serializers, IEnumerable <IMessageDeserializer> readers, IEnumerable <IMessageSerializer> writers)
     : base(pooling, busSettings.MediaSelectionMode, busSettings.JsonSerialization, forwarders, serializers, readers, writers)
 {
     _handlers = handlers;
 }