/// <summary>
 /// The default constructor
 /// </summary>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder</param>
 /// <param name="serviceProvider">
 /// The service provider for creating instances of conventions (usually a
 /// <see cref="IServiceProviderDictionary" />.
 /// </param>
 /// <param name="logger">A diagnostic logger</param>
 /// <param name="conventions">The additional conventions to start with</param>
 public AggregateConventionScanner(
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IServiceProvider serviceProvider,
     ILogger logger,
     params IConvention[] conventions
     )
     : base(assemblyCandidateFinder, serviceProvider, logger) => PrependConvention(conventions);
Beispiel #2
0
 public Scanner(
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IServiceProvider serviceProvider,
     ILogger logger
     ) : base(assemblyCandidateFinder, serviceProvider, logger)
 {
 }
Beispiel #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConventionListCommand" /> class.
 /// </summary>
 public ConventionListCommand(
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder
     )
 {
     _scanner = scanner;
     _assemblyCandidateFinder = assemblyCandidateFinder;
 }
 /// <summary>
 /// Withes the specified assembly candidate finder.
 /// </summary>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <returns>RocketHostBuilder.</returns>
 internal RocketHostBuilder With(IAssemblyCandidateFinder assemblyCandidateFinder) => new RocketHostBuilder(
     Builder,
     Scanner,
     assemblyCandidateFinder,
     AssemblyProvider,
     DiagnosticSource,
     ServiceProperties
     );
 public CCBuilder(
     IConventionScanner scanner,
     IAssemblyProvider assemblyProvider,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IServiceProviderDictionary properties
     ) : base(scanner, assemblyProvider, assemblyCandidateFinder, properties)
 {
 }
Beispiel #6
0
 public HostBuilder(
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAssemblyProvider assemblyProvider,
     DiagnosticSource diagnosticSource,
     IServiceProviderDictionary serviceProperties
     ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties)
 {
 }
 /// <summary>
 /// Default constructor for the scanner
 /// </summary>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder</param>
 /// <param name="serviceProvider">
 /// The service provider for creating instances of conventions (usually a
 /// <see cref="IServiceProviderDictionary" />.
 /// </param>
 /// <param name="logger">A diagnostic logger</param>
 protected ConventionScannerBase(
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IServiceProvider serviceProvider,
     ILogger logger
     )
 {
     _assemblyCandidateFinder = assemblyCandidateFinder ??
                                throw new ArgumentNullException(nameof(assemblyCandidateFinder));
     _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
     _logger          = logger;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RocketHostBuilder" /> class.
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="serviceProperties">The service properties.</param>
 public RocketHostBuilder(
     IHostBuilder builder,
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAssemblyProvider assemblyProvider,
     DiagnosticSource diagnosticSource,
     IServiceProviderDictionary serviceProperties
     ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties)
 {
     Builder = builder;
     Logger  = new DiagnosticLogger(diagnosticSource);
 }
Beispiel #9
0
 /// <summary>
 /// Withes the specified assembly candidate finder.
 /// </summary>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <returns>RocketFunctionHostBuilder.</returns>
 internal RocketFunctionHostBuilder With(IAssemblyCandidateFinder assemblyCandidateFinder)
 => new RocketFunctionHostBuilder(
     Builder,
     FunctionsAssembly,
     _startupInstance,
     _environment,
     Scanner,
     assemblyCandidateFinder,
     AssemblyProvider,
     DiagnosticSource,
     ServiceProperties
     );
        public static IEnumerable <Assembly> GetCandidateAssemblies(
            [NotNull] this IAssemblyCandidateFinder finder,
            string candidate,
            params string[] candidates
            )
        {
            if (finder == null)
            {
                throw new ArgumentNullException(nameof(finder));
            }

            return(finder.GetCandidateAssemblies(new[] { candidate }.Concat(candidates).ToArray()));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="CommandLineBuilder" /> class.
 /// </summary>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="properties">The properties.</param>
 /// <exception cref="ArgumentNullException">diagnosticSource</exception>
 public CommandLineBuilder(
     IConventionScanner scanner,
     IAssemblyProvider assemblyProvider,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     ILogger diagnosticSource,
     IDictionary <object, object?> properties
     ) : base(scanner, assemblyProvider, assemblyCandidateFinder, properties)
 {
     _application = new CommandLineApplication <ApplicationState>
     {
         UnrecognizedArgumentHandling = UnrecognizedArgumentHandling.CollectAndContinue
     };
     Logger = diagnosticSource ?? throw new ArgumentNullException(nameof(diagnosticSource));
 }
Beispiel #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CommandLineBuilder" /> class.
 /// </summary>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="properties">The properties.</param>
 /// <exception cref="ArgumentNullException">diagnosticSource</exception>
 public CommandLineBuilder(
     IConventionScanner scanner,
     IAssemblyProvider assemblyProvider,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     ILogger diagnosticSource,
     IDictionary <object, object?> properties
     ) : base(scanner, assemblyProvider, assemblyCandidateFinder, properties)
 {
     _application = new CommandLineApplication <ApplicationState>
     {
         ThrowOnUnexpectedArgument = false
     };
     Logger = diagnosticSource ?? throw new ArgumentNullException(nameof(diagnosticSource));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConventionTestHost" /> class.
 /// </summary>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="serviceProperties">The service properties.</param>
 /// <param name="loggerFactory">The logger factory.</param>
 /// <param name="environment">The environment.</param>
 internal ConventionTestHost(
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAssemblyProvider assemblyProvider,
     DiagnosticSource diagnosticSource,
     IServiceProviderDictionary serviceProperties,
     ILoggerFactory loggerFactory,
     IRocketEnvironment environment
     ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties)
 {
     serviceProperties.Set(HostType.UnitTestHost);
     _loggerFactory = loggerFactory;
     _environment   = environment;
     _logger        = ServiceProperties.Get <ILogger>();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="MetricsBuilder" /> class.
 /// </summary>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="appMetricsBuilder">The metrics builder.</param>
 /// <param name="environment">The environment.</param>
 /// <param name="configuration">The configuration.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="properties">The properties.</param>
 /// <exception cref="ArgumentNullException">
 /// environment
 /// or
 /// metricsBuilder
 /// or
 /// configuration
 /// or
 /// diagnosticSource
 /// </exception>
 public MetricsBuilder(
     IConventionScanner scanner,
     IAssemblyProvider assemblyProvider,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAppMetricsBuilder appMetricsBuilder,
     IRocketEnvironment environment,
     IConfiguration configuration,
     ILogger diagnosticSource,
     IDictionary <object, object?> properties
     ) : base(scanner, assemblyProvider, assemblyCandidateFinder, properties)
 {
     Environment       = environment ?? throw new ArgumentNullException(nameof(environment));
     AppMetricsBuilder = appMetricsBuilder ?? throw new ArgumentNullException(nameof(appMetricsBuilder));
     Configuration     = configuration ?? throw new ArgumentNullException(nameof(configuration));
     Logger            = diagnosticSource ?? throw new ArgumentNullException(nameof(diagnosticSource));
 }
Beispiel #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LoggingBuilder" /> class.
 /// </summary>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="services">The services.</param>
 /// <param name="environment">The environment.</param>
 /// <param name="configuration">The configuration.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="properties">The properties.</param>
 /// <exception cref="ArgumentNullException">
 /// environment
 /// or
 /// services
 /// or
 /// configuration
 /// or
 /// diagnosticSource
 /// </exception>
 public LoggingBuilder(
     IConventionScanner scanner,
     IAssemblyProvider assemblyProvider,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IServiceCollection services,
     IRocketEnvironment environment,
     IConfiguration configuration,
     ILogger diagnosticSource,
     IDictionary <object, object?> properties
     ) : base(scanner, assemblyProvider, assemblyCandidateFinder, properties)
 {
     Environment   = environment ?? throw new ArgumentNullException(nameof(environment));
     Services      = services ?? throw new ArgumentNullException(nameof(services));
     Configuration = configuration ?? throw new ArgumentNullException(nameof(configuration));
     Logger        = diagnosticSource ?? throw new ArgumentNullException(nameof(diagnosticSource));
 }
        /// <summary>
        /// Uses the assembly candidate finder.
        /// </summary>
        /// <param name="builder">The builder.</param>
        /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
        /// <returns>IRocketHostBuilder.</returns>
        public static IRocketHostBuilder UseAssemblyCandidateFinder(
            [NotNull] this IRocketHostBuilder builder,
            [NotNull] IAssemblyCandidateFinder assemblyCandidateFinder
            )
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (assemblyCandidateFinder == null)
            {
                throw new ArgumentNullException(nameof(assemblyCandidateFinder));
            }

            return(Swap(builder, GetOrCreateBuilder(builder).With(assemblyCandidateFinder)));
        }
Beispiel #17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RocketFunctionHostBuilder"/> class.
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <param name="functionsAssembly">The functions assembly.</param>
 /// <param name="startupInstance">The startup instance.</param>
 /// <param name="environment">The environment.</param>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="serviceProviderDictionary">The service provider dictionary of values</param>
 public RocketFunctionHostBuilder(
     IWebJobsBuilder builder,
     Assembly functionsAssembly,
     object startupInstance,
     IRocketEnvironment environment,
     IConventionScanner scanner,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IAssemblyProvider assemblyProvider,
     DiagnosticSource diagnosticSource,
     IServiceProviderDictionary serviceProviderDictionary) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProviderDictionary)
 {
     _startupInstance  = startupInstance;
     _environment      = environment ?? CreateEnvironment();
     _logger           = new DiagnosticLogger(DiagnosticSource);
     Builder           = builder;
     FunctionsAssembly = functionsAssembly;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ConventionBuilder{TBuilder, TConvention, TDelegate}" /> class.
        /// </summary>
        /// <param name="scanner">The scanner.</param>
        /// <param name="assemblyProvider">The assembly provider.</param>
        /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
        /// <param name="properties">The properties.</param>
        /// <exception cref="ArgumentNullException">
        /// assemblyProvider
        /// or
        /// assemblyCandidateFinder
        /// </exception>
        protected ConventionBuilder(
            IConventionScanner scanner,
            IAssemblyProvider assemblyProvider,
            IAssemblyCandidateFinder assemblyCandidateFinder,
            IDictionary <object, object?> properties
            ) : base(scanner, properties)
        {
            AssemblyProvider        = assemblyProvider ?? throw new ArgumentNullException(nameof(assemblyProvider));
            AssemblyCandidateFinder = assemblyCandidateFinder ??
                                      throw new ArgumentNullException(nameof(assemblyCandidateFinder));

            if (!Properties.TryGetValue(typeof(IAssemblyProvider), out var _))
            {
                Properties[typeof(IAssemblyProvider)] = AssemblyProvider;
            }

            if (!Properties.TryGetValue(typeof(IAssemblyCandidateFinder), out var _))
            {
                Properties[typeof(IAssemblyCandidateFinder)] = AssemblyCandidateFinder;
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="AutofacBuilder" /> class.
        /// </summary>
        /// <param name="environment">The environment.</param>
        /// <param name="configuration">The configuration.</param>
        /// <param name="scanner">The scanner.</param>
        /// <param name="assemblyProvider">The assembly provider.</param>
        /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
        /// <param name="services">The services.</param>
        /// <param name="containerBuilder">The container builder.</param>
        /// <param name="diagnosticSource">The diagnostic source</param>
        /// <param name="properties">The properties</param>
        /// <exception cref="ArgumentNullException">
        /// environment
        /// or
        /// containerBuilder
        /// or
        /// configuration
        /// or
        /// services
        /// </exception>
        public AutofacBuilder(
            IRocketEnvironment environment,
            IConfiguration configuration,
            IConventionScanner scanner,
            IAssemblyProvider assemblyProvider,
            IAssemblyCandidateFinder assemblyCandidateFinder,
            IServiceCollection services,
            ContainerBuilder containerBuilder,
            ILogger diagnosticSource,
            IDictionary <object, object?> properties
            )
            : base(scanner, assemblyProvider, assemblyCandidateFinder, properties)
        {
            Environment       = environment ?? throw new ArgumentNullException(nameof(environment));
            _containerBuilder = containerBuilder ?? throw new ArgumentNullException(nameof(containerBuilder));
            Configuration     = configuration ?? throw new ArgumentNullException(nameof(configuration));
            Services          = services ?? throw new ArgumentNullException(nameof(services));
            Logger            = diagnosticSource ?? throw new ArgumentNullException(nameof(diagnosticSource));

            _containerObservable    = new GenericObservableObservable <IContainer>(Logger);
            _serviceProviderOnBuild = new GenericObservableObservable <IServiceProvider>(Logger);
        }
Beispiel #20
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ServicesBuilder" /> class.
 /// </summary>
 /// <param name="scanner">The scanner.</param>
 /// <param name="assemblyProvider">The assembly provider.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <param name="services">The services.</param>
 /// <param name="configuration">The configuration.</param>
 /// <param name="environment">The environment.</param>
 /// <param name="diagnosticSource">The diagnostic source.</param>
 /// <param name="properties">The properties.</param>
 /// <exception cref="ArgumentNullException">
 /// environment
 /// or
 /// diagnosticSource
 /// or
 /// configuration
 /// or
 /// services
 /// </exception>
 public ServicesBuilder(
     IConventionScanner scanner,
     IAssemblyProvider assemblyProvider,
     IAssemblyCandidateFinder assemblyCandidateFinder,
     IServiceCollection services,
     IConfiguration configuration,
     IRocketEnvironment environment,
     ILogger diagnosticSource,
     IDictionary <object, object?> properties
     )
     : base(scanner, assemblyProvider, assemblyCandidateFinder, properties)
 {
     Environment            = environment ?? throw new ArgumentNullException(nameof(environment));
     Configuration          = configuration ?? throw new ArgumentNullException(nameof(configuration));
     Services               = services ?? throw new ArgumentNullException(nameof(services));
     Logger                 = diagnosticSource ?? throw new ArgumentNullException(nameof(diagnosticSource));
     _onBuild               = new ServiceProviderObservable(Logger);
     ServiceProviderOptions = new ServiceProviderOptions
     {
         ValidateScopes = environment.IsDevelopment()
     };
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ConventionHostBuilder{TSelf}" /> class.
        /// </summary>
        /// <param name="scanner">The scanner.</param>
        /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
        /// <param name="assemblyProvider">The assembly provider.</param>
        /// <param name="diagnosticSource">The diagnostic source.</param>
        /// <param name="serviceProperties">The properties.</param>
        protected ConventionHostBuilder(
            IConventionScanner scanner,
            IAssemblyCandidateFinder assemblyCandidateFinder,
            IAssemblyProvider assemblyProvider,
            DiagnosticSource diagnosticSource,
            IServiceProviderDictionary serviceProperties
            )
        {
            Scanner = scanner;
            AssemblyCandidateFinder = assemblyCandidateFinder;
            AssemblyProvider        = assemblyProvider;
            DiagnosticSource        = diagnosticSource;
            ServiceProperties       = serviceProperties ?? new ServiceProviderDictionary();

            if (!Properties.TryGetValue(typeof(IConventionScanner), out var _))
            {
                Properties[typeof(IConventionScanner)] = scanner;
            }

            if (!Properties.TryGetValue(typeof(IAssemblyProvider), out var _))
            {
                Properties[typeof(IAssemblyProvider)] = assemblyProvider;
            }

            if (!Properties.TryGetValue(typeof(IAssemblyCandidateFinder), out var _))
            {
                Properties[typeof(IAssemblyCandidateFinder)] = assemblyCandidateFinder;
            }

            if (!Properties.TryGetValue(typeof(DiagnosticSource), out var _))
            {
                Properties[typeof(DiagnosticSource)] = diagnosticSource;
            }

            if (!Properties.TryGetValue(typeof(ILogger), out var _))
            {
                Properties[typeof(ILogger)] = new DiagnosticLogger(diagnosticSource);
            }
        }
Beispiel #22
0
 /// <summary>
 /// Uses the assembly candidate finder.
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <returns>IRocketFunctionHostBuilder.</returns>
 public static IRocketFunctionHostBuilder UseAssemblyCandidateFinder(this IRocketFunctionHostBuilder builder, IAssemblyCandidateFinder assemblyCandidateFinder)
 {
     return(Swap(builder, GetOrCreateBuilder(builder, builder.FunctionsAssembly, null).With(assemblyCandidateFinder)));
 }
Beispiel #23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProjectionDescriptorCollection" /> class.
 /// </summary>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 public ProjectionDescriptorCollection(IAssemblyCandidateFinder assemblyCandidateFinder)
 => _assemblyCandidateFinder = assemblyCandidateFinder;
 /// <summary>
 /// Uses the assembly candidate finder.
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param>
 /// <returns>IRocketHostBuilder.</returns>
 public static IRocketHostBuilder UseAssemblyCandidateFinder(this IRocketHostBuilder builder, IAssemblyCandidateFinder assemblyCandidateFinder)
 {
     return(Swap(builder, GetOrCreateBuilder(builder).With(assemblyCandidateFinder)));
 }