public QueueTriggerAttributeBindingProvider(INameResolver nameResolver, QueueServiceClientProvider queueServiceClientProvider, IOptions <QueuesOptions> queueOptions, IWebJobsExceptionHandler exceptionHandler, SharedQueueWatcher messageEnqueuedWatcherSetter, ILoggerFactory loggerFactory, IQueueProcessorFactory queueProcessorFactory, QueueCausalityManager queueCausalityManager) { _queueServiceClientProvider = queueServiceClientProvider ?? throw new ArgumentNullException(nameof(queueServiceClientProvider)); _queueOptions = (queueOptions ?? throw new ArgumentNullException(nameof(queueOptions))).Value; _exceptionHandler = exceptionHandler ?? throw new ArgumentNullException(nameof(exceptionHandler)); _messageEnqueuedWatcherSetter = messageEnqueuedWatcherSetter ?? throw new ArgumentNullException(nameof(messageEnqueuedWatcherSetter)); _queueCausalityManager = queueCausalityManager ?? throw new ArgumentNullException(nameof(queueCausalityManager)); _nameResolver = nameResolver; _loggerFactory = loggerFactory; _queueProcessorFactory = queueProcessorFactory; _innerProvider = new CompositeArgumentBindingProvider( new ConverterArgumentBindingProvider <QueueMessage>(new CloudQueueMessageDirectConverter(), loggerFactory), // $$$: Is this the best way to handle a direct CloudQueueMessage? TODO (kasobol-msft) is this needed? new ConverterArgumentBindingProvider <string>(new StorageQueueMessageToStringConverter(), loggerFactory), new ConverterArgumentBindingProvider <byte[]>(new StorageQueueMessageToByteArrayConverter(), loggerFactory), new ConverterArgumentBindingProvider <BinaryData>(new StorageQueueMessageToBinaryDataConverter(), loggerFactory), new UserTypeArgumentBindingProvider(loggerFactory)); // Must come last, because it will attempt to bind all types. }
public BlobTriggerAttributeBindingProvider( INameResolver nameResolver, BlobServiceClientProvider blobServiceClientProvider, QueueServiceClientProvider queueServiceClientProvider, IHostIdProvider hostIdProvider, IOptions <BlobsOptions> blobsOptions, IWebJobsExceptionHandler exceptionHandler, IContextSetter <IBlobWrittenWatcher> blobWrittenWatcherSetter, BlobTriggerQueueWriterFactory blobTriggerQueueWriterFactory, ISharedContextProvider sharedContextProvider, IHostSingletonManager singletonManager, ILoggerFactory loggerFactory) { _blobServiceClientProvider = blobServiceClientProvider ?? throw new ArgumentNullException(nameof(blobServiceClientProvider)); _queueServiceClientProvider = queueServiceClientProvider ?? throw new ArgumentNullException(nameof(queueServiceClientProvider)); _hostIdProvider = hostIdProvider ?? throw new ArgumentNullException(nameof(hostIdProvider)); _blobsOptions = (blobsOptions ?? throw new ArgumentNullException(nameof(blobsOptions))).Value; _exceptionHandler = exceptionHandler ?? throw new ArgumentNullException(nameof(exceptionHandler)); _blobWrittenWatcherSetter = blobWrittenWatcherSetter ?? throw new ArgumentNullException(nameof(blobWrittenWatcherSetter)); _blobTriggerQueueWriterFactory = blobTriggerQueueWriterFactory ?? throw new ArgumentNullException(nameof(blobTriggerQueueWriterFactory)); _sharedContextProvider = sharedContextProvider ?? throw new ArgumentNullException(nameof(sharedContextProvider)); _singletonManager = singletonManager ?? throw new ArgumentNullException(nameof(singletonManager)); _nameResolver = nameResolver; _loggerFactory = loggerFactory; _logger = loggerFactory.CreateLogger <BlobTriggerAttributeBindingProvider>(); }
public void Initialize(ExtensionConfigContext context, QueueServiceClientProvider queueServiceClientProvider, IContextGetter <IMessageEnqueuedWatcher> contextGetter) { _queueServiceClientProvider = queueServiceClientProvider; _messageEnqueuedWatcherGetter = contextGetter; // TODO: FACAVAL replace this with queue options. This should no longer be needed. //context.ApplyConfig(context.Config.Queues, "queues"); // IStorageQueueMessage is the core testing interface var binding = context.AddBindingRule <QueueAttribute>(); binding .AddConverter <byte[], QueueMessage>(ConvertByteArrayToCloudQueueMessage) .AddConverter <string, QueueMessage>(ConvertStringToCloudQueueMessage) .AddOpenConverter <OpenType.Poco, QueueMessage>(ConvertPocoToCloudQueueMessage); context // global converters, apply to multiple attributes. .AddConverter <QueueMessage, byte[]>(ConvertCloudQueueMessageToByteArray) .AddConverter <QueueMessage, string>(ConvertCloudQueueMessageToString); var builder = new QueueBuilder(this); binding.AddValidator(ValidateQueueAttribute); binding.BindToCollector <QueueMessage>(this); binding.BindToInput <QueueClient>(builder); binding.BindToInput <QueueClient>(builder); }
public QueuesExtensionConfigProvider(QueueServiceClientProvider queueServiceClientProvider, IContextGetter <IMessageEnqueuedWatcher> contextGetter, QueueTriggerAttributeBindingProvider triggerProvider) { _contextGetter = contextGetter; _queueServiceClientProvider = queueServiceClientProvider; _triggerProvider = triggerProvider; }
public void Initialize( ExtensionConfigContext context, QueueServiceClientProvider queueServiceClientProvider, IContextGetter <IMessageEnqueuedWatcher> contextGetter, QueueCausalityManager queueCausalityManager) { _queueServiceClientProvider = queueServiceClientProvider; _messageEnqueuedWatcherGetter = contextGetter; _queueCausalityManager = queueCausalityManager; // IStorageQueueMessage is the core testing interface var binding = context.AddBindingRule <QueueAttribute>(); binding .AddConverter <byte[], QueueMessage>(ConvertByteArrayToCloudQueueMessage) .AddConverter <string, QueueMessage>(ConvertStringToCloudQueueMessage) .AddConverter <BinaryData, QueueMessage>(ConvertBinaryDataToCloudQueueMessage) .AddOpenConverter <OpenType.Poco, QueueMessage>(ConvertPocoToCloudQueueMessage); context // global converters, apply to multiple attributes. .AddConverter <QueueMessage, byte[]>(ConvertCloudQueueMessageToByteArray) .AddConverter <QueueMessage, string>(ConvertCloudQueueMessageToString) .AddConverter <QueueMessage, BinaryData>(ConvertCloudQueueMessageToBinaryData); var builder = new QueueBuilder(this); binding.AddValidator(ValidateQueueAttribute); binding.BindToCollector <QueueMessage>(this); binding.BindToInput <QueueClient>(builder); binding.BindToInput <QueueClient>(builder); }
public QueueTriggerAttributeBindingProvider(INameResolver nameResolver, QueueServiceClientProvider queueServiceClientProvider, IOptions <QueuesOptions> queueOptions, IWebJobsExceptionHandler exceptionHandler, SharedQueueWatcher messageEnqueuedWatcherSetter, ILoggerFactory loggerFactory, IQueueProcessorFactory queueProcessorFactory) { _queueServiceClientProvider = queueServiceClientProvider ?? throw new ArgumentNullException(nameof(queueServiceClientProvider)); _queueOptions = (queueOptions ?? throw new ArgumentNullException(nameof(queueOptions))).Value; _exceptionHandler = exceptionHandler ?? throw new ArgumentNullException(nameof(exceptionHandler)); _messageEnqueuedWatcherSetter = messageEnqueuedWatcherSetter ?? throw new ArgumentNullException(nameof(messageEnqueuedWatcherSetter)); _nameResolver = nameResolver; _loggerFactory = loggerFactory; _queueProcessorFactory = queueProcessorFactory; }
public BlobTriggerQueueWriterFactory(IHostIdProvider hostIdProvider, QueueServiceClientProvider queueServiceClientProvider, SharedQueueWatcher sharedQueueWatcher) { _hostIdProvider = hostIdProvider ?? throw new ArgumentNullException(nameof(hostIdProvider)); _queueServiceClientProvider = queueServiceClientProvider ?? throw new ArgumentNullException(nameof(queueServiceClientProvider)); _sharedQueueWatcher = sharedQueueWatcher ?? throw new ArgumentNullException(nameof(sharedQueueWatcher)); }