From 19aded7a150728d118783d493c63511f7feb4258 Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Sun, 24 Jul 2016 00:48:04 +0200 Subject: [PATCH] Order the pipeline registration process. --- src/NzbDrone.Api/Authentication/EnableAuthInNancy.cs | 2 ++ src/NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs | 2 ++ src/NzbDrone.Api/Extensions/Pipelines/CorsPipeline.cs | 2 ++ src/NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs | 2 ++ .../Extensions/Pipelines/IRegisterNancyPipeline.cs | 2 ++ src/NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs | 2 ++ .../Extensions/Pipelines/NzbDroneVersionPipeline.cs | 2 ++ .../Extensions/Pipelines/RequestLoggingPipeline.cs | 2 ++ src/NzbDrone.Api/NancyBootstrapper.cs | 5 +++-- 9 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/NzbDrone.Api/Authentication/EnableAuthInNancy.cs b/src/NzbDrone.Api/Authentication/EnableAuthInNancy.cs index 66e74f173..9d826d3d7 100644 --- a/src/NzbDrone.Api/Authentication/EnableAuthInNancy.cs +++ b/src/NzbDrone.Api/Authentication/EnableAuthInNancy.cs @@ -27,6 +27,8 @@ namespace NzbDrone.Api.Authentication _configFileProvider = configFileProvider; } + public int Order { get { return 10; } } + public void Register(IPipelines pipelines) { if (_configFileProvider.AuthenticationMethod == AuthenticationType.Forms) diff --git a/src/NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs index ec1ee08b5..1ff6854d0 100644 --- a/src/NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs +++ b/src/NzbDrone.Api/Extensions/Pipelines/CacheHeaderPipeline.cs @@ -14,6 +14,8 @@ namespace NzbDrone.Api.Extensions.Pipelines _cacheableSpecification = cacheableSpecification; } + public int Order { get { return 0; } } + public void Register(IPipelines pipelines) { pipelines.AfterRequest.AddItemToStartOfPipeline((Action) Handle); diff --git a/src/NzbDrone.Api/Extensions/Pipelines/CorsPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/CorsPipeline.cs index f0a808a34..5536388e0 100644 --- a/src/NzbDrone.Api/Extensions/Pipelines/CorsPipeline.cs +++ b/src/NzbDrone.Api/Extensions/Pipelines/CorsPipeline.cs @@ -7,6 +7,8 @@ namespace NzbDrone.Api.Extensions.Pipelines { public class CorsPipeline : IRegisterNancyPipeline { + public int Order { get { return 0; } } + public void Register(IPipelines pipelines) { pipelines.AfterRequest.AddItemToEndOfPipeline((Action) Handle); diff --git a/src/NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs index 1b9013686..cece59a03 100644 --- a/src/NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs +++ b/src/NzbDrone.Api/Extensions/Pipelines/GZipPipeline.cs @@ -12,6 +12,8 @@ namespace NzbDrone.Api.Extensions.Pipelines { private readonly Logger _logger; + public int Order { get { return 0; } } + public GzipCompressionPipeline(Logger logger) { _logger = logger; diff --git a/src/NzbDrone.Api/Extensions/Pipelines/IRegisterNancyPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/IRegisterNancyPipeline.cs index a738cbe5c..0376ccc70 100644 --- a/src/NzbDrone.Api/Extensions/Pipelines/IRegisterNancyPipeline.cs +++ b/src/NzbDrone.Api/Extensions/Pipelines/IRegisterNancyPipeline.cs @@ -4,6 +4,8 @@ namespace NzbDrone.Api.Extensions.Pipelines { public interface IRegisterNancyPipeline { + int Order { get; } + void Register(IPipelines pipelines); } } \ No newline at end of file diff --git a/src/NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs index 984e5fa42..5a816ef37 100644 --- a/src/NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs +++ b/src/NzbDrone.Api/Extensions/Pipelines/IfModifiedPipeline.cs @@ -14,6 +14,8 @@ namespace NzbDrone.Api.Extensions.Pipelines _cacheableSpecification = cacheableSpecification; } + public int Order { get { return 0; } } + public void Register(IPipelines pipelines) { pipelines.BeforeRequest.AddItemToStartOfPipeline((Func) Handle); diff --git a/src/NzbDrone.Api/Extensions/Pipelines/NzbDroneVersionPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/NzbDroneVersionPipeline.cs index ab1c42b69..c7ef8fd0c 100644 --- a/src/NzbDrone.Api/Extensions/Pipelines/NzbDroneVersionPipeline.cs +++ b/src/NzbDrone.Api/Extensions/Pipelines/NzbDroneVersionPipeline.cs @@ -7,6 +7,8 @@ namespace NzbDrone.Api.Extensions.Pipelines { public class NzbDroneVersionPipeline : IRegisterNancyPipeline { + public int Order { get { return 0; } } + public void Register(IPipelines pipelines) { pipelines.AfterRequest.AddItemToStartOfPipeline((Action) Handle); diff --git a/src/NzbDrone.Api/Extensions/Pipelines/RequestLoggingPipeline.cs b/src/NzbDrone.Api/Extensions/Pipelines/RequestLoggingPipeline.cs index 381d4e1cb..fbff775ba 100644 --- a/src/NzbDrone.Api/Extensions/Pipelines/RequestLoggingPipeline.cs +++ b/src/NzbDrone.Api/Extensions/Pipelines/RequestLoggingPipeline.cs @@ -14,6 +14,8 @@ namespace NzbDrone.Api.Extensions.Pipelines private static int _requestSequenceID; + public int Order { get { return 100; } } + public void Register(IPipelines pipelines) { pipelines.BeforeRequest.AddItemToStartOfPipeline(LogStart); diff --git a/src/NzbDrone.Api/NancyBootstrapper.cs b/src/NzbDrone.Api/NancyBootstrapper.cs index 4b472f7dc..2b8ca3369 100644 --- a/src/NzbDrone.Api/NancyBootstrapper.cs +++ b/src/NzbDrone.Api/NancyBootstrapper.cs @@ -1,8 +1,9 @@ using System; -using NLog; +using System.Linq; using Nancy; using Nancy.Bootstrapper; using Nancy.Diagnostics; +using NLog; using NzbDrone.Api.ErrorManagement; using NzbDrone.Api.Extensions.Pipelines; using NzbDrone.Common.EnvironmentInfo; @@ -43,7 +44,7 @@ namespace NzbDrone.Api private void RegisterPipelines(IPipelines pipelines) { - var pipelineRegistrars = _tinyIoCContainer.ResolveAll(); + var pipelineRegistrars = _tinyIoCContainer.ResolveAll().OrderBy(v => v.Order).ToList(); foreach (var registerNancyPipeline in pipelineRegistrars) {