public ServerAuditHistoryProjectPlugin(IFarmService farmService, IVelocityViewGenerator viewGenerator, ISessionRetriever sessionRetriever, IUrlBuilder urlBuilder) { plugin = new ServerAuditHistoryServerPlugin(farmService, viewGenerator, sessionRetriever, urlBuilder); }
public ServerUserListProjectPlugin(IFarmService farmService, IVelocityViewGenerator viewGenerator, ISessionRetriever sessionRetriever, IUrlBuilder urlBuilder) { plugin = new ServerUserListServerPlugin(farmService, viewGenerator, sessionRetriever, urlBuilder); }
public QuerySessionActionDecorator(IAction decoratedAction, ISessionRetriever retriever, ISessionStorer storer) { this.decoratedAction = decoratedAction; this.retriever = retriever; this.storer = storer; }
public QuerySessionActionDecorator(IAction decoratedAction, ISessionRetriever retriever, ISessionStorer storer) { this.decoratedAction = decoratedAction; this.retriever = retriever; this.storer = storer; }
public XmlProjectParametersReportAction(IFarmService farmService, ICruiseUrlBuilder urlBuilder, ISessionRetriever retriever) { this.farmService = farmService; this.urlBuilder = urlBuilder; this.retriever = retriever; }
public RequestWrappingCruiseRequest(IRequest request, ICruiseUrlBuilder urlBuilder, ISessionRetriever sessionRetriever) { this.request = request; this.urlBuilder = urlBuilder; this.sessionRetriever = sessionRetriever; }
public XmlProjectParametersReportAction(IFarmService farmService, ICruiseUrlBuilder urlBuilder, ISessionRetriever retriever) { this.farmService = farmService; this.urlBuilder = urlBuilder; this.retriever = retriever; }
public ServerSecurityConfigurationServerPlugin(IFarmService farmService, IVelocityViewGenerator viewGenerator, ISessionRetriever sessionRetriever) { this.farmService = farmService; this.viewGenerator = viewGenerator; this.sessionRetriever = sessionRetriever; }
public RequestWrappingCruiseRequest(IRequest request, ICruiseUrlBuilder urlBuilder, ISessionRetriever sessionRetriever) { this.request = request; this.urlBuilder = urlBuilder; this.sessionRetriever = sessionRetriever; }
public ServerSecurityConfigurationServerPlugin(IFarmService farmService, IVelocityViewGenerator viewGenerator, ISessionRetriever sessionRetriever) { this.farmService = farmService; this.viewGenerator = viewGenerator; this.sessionRetriever = sessionRetriever; }
public VelocityProjectGridAction(IFarmService farmService, IVelocityViewGenerator viewGenerator, IProjectGrid projectGrid, ISessionRetriever sessionRetriever) { this.farmService = farmService; this.viewGenerator = viewGenerator; this.projectGrid = projectGrid; this.sessionRetriever = sessionRetriever; }
public VelocityProjectGridAction(IFarmService farmService, IVelocityViewGenerator viewGenerator, IProjectGrid projectGrid, ISessionRetriever sessionRetriever) { this.farmService = farmService; this.viewGenerator = viewGenerator; this.projectGrid = projectGrid; this.sessionRetriever = sessionRetriever; }
public CruiseActionProxyAction(ICruiseAction proxiedAction, ICruiseRequestFactory cruiseRequestFactory, ICruiseUrlBuilder urlBuilder, ISessionRetriever retriever) { this.proxiedAction = proxiedAction; this.cruiseRequestFactory = cruiseRequestFactory; this.urlBuilder = urlBuilder; this.retriever = retriever; }
public ServerAuditHistoryServerPlugin(IFarmService farmService, IVelocityViewGenerator viewGenerator, ISessionRetriever sessionRetriever, IUrlBuilder urlBuilder) { this.farmService = farmService; this.viewGenerator = viewGenerator; this.sessionRetriever = sessionRetriever; this.urlBuilder = urlBuilder; }
public LoginViewBuilder(ICruiseRequest request, ILinkFactory linkFactory, IVelocityViewGenerator velocityViewGenerator, IDashboardConfiguration configuration, ISessionRetriever retriever) { this.request = request; this.linkFactory = linkFactory; this.velocityViewGenerator = velocityViewGenerator; this.configuration = configuration; this.retriever = retriever; }
public TopControlsViewBuilder(ICruiseRequest request, ILinkFactory linkFactory, IVelocityViewGenerator velocityViewGenerator, IFarmService farmService, IFingerprintFactory fingerprintFactory, ISessionRetriever sessionRetriever) { this.request = request; this.linkFactory = linkFactory; this.velocityViewGenerator = velocityViewGenerator; this.farmService = farmService; this.fingerprintFactory = fingerprintFactory; this.sessionRetriever = sessionRetriever; }
public TopControlsViewBuilder(ICruiseRequest request, ILinkFactory linkFactory, IVelocityViewGenerator velocityViewGenerator, IFarmService farmService, IFingerprintFactory fingerprintFactory, ISessionRetriever sessionRetriever) { this.request = request; this.linkFactory = linkFactory; this.velocityViewGenerator = velocityViewGenerator; this.farmService = farmService; this.fingerprintFactory = fingerprintFactory; this.sessionRetriever = sessionRetriever; }
public LoginViewBuilder(ICruiseRequest request, ILinkFactory linkFactory, IVelocityViewGenerator velocityViewGenerator, IDashboardConfiguration configuration, ISessionRetriever retriever, ISessionStorer storer) { this.request = request; this.linkFactory = linkFactory; this.velocityViewGenerator = velocityViewGenerator; this.configuration = configuration; this.storer = storer; }
public CruiseActionProxyAction(ICruiseAction proxiedAction, ICruiseRequestFactory cruiseRequestFactory, ICruiseUrlBuilder urlBuilder, ISessionRetriever retriever) { this.proxiedAction = proxiedAction; this.cruiseRequestFactory = cruiseRequestFactory; this.urlBuilder = urlBuilder; this.retriever = retriever; }
public ServerAuditHistoryServerPlugin(IFarmService farmService, IVelocityViewGenerator viewGenerator, ISessionRetriever sessionRetriever, IUrlBuilder urlBuilder) { this.farmService = farmService; this.viewGenerator = viewGenerator; this.sessionRetriever = sessionRetriever; this.urlBuilder = urlBuilder; }
public HtmlBuildLogAction(IBuildRetriever buildRetriever, IVelocityViewGenerator viewGenerator, ICruiseUrlBuilder urlBuilder, IFingerprintFactory fingerprintFactory, ISessionRetriever retriever) { this.buildRetriever = buildRetriever; this.viewGenerator = viewGenerator; this.urlBuilder = urlBuilder; this.fingerprintFactory = fingerprintFactory; this.retriever = retriever; }
public HtmlBuildLogAction(IBuildRetriever buildRetriever, IVelocityViewGenerator viewGenerator, ICruiseUrlBuilder urlBuilder, IFingerprintFactory fingerprintFactory, ISessionRetriever retriever) { this.buildRetriever = buildRetriever; this.viewGenerator = viewGenerator; this.urlBuilder = urlBuilder; this.fingerprintFactory = fingerprintFactory; this.retriever = retriever; }
/// <summary> /// Attempt to retrieve a session token /// </summary> /// <returns></returns> public virtual string RetrieveSessionToken(ISessionRetriever sessionRetriever) { // Attempt to find a session token string sessionToken = request.GetText("sessionToken"); if (string.IsNullOrEmpty(sessionToken) && (sessionRetriever != null)) { sessionToken = sessionRetriever.RetrieveSessionToken(request); } return(sessionToken); }
public RecentBuildLister(IFarmService farmService, IVelocityTransformer velocityTransformer, IVelocityViewGenerator viewGenerator, ILinkFactory linkFactory, ILinkListFactory linkListFactory, IFingerprintFactory fingerprintFactory, ICruiseUrlBuilder urlBuilder, ISessionRetriever retriever) { this.farmService = farmService; this.velocityTransformer = velocityTransformer; this.velocityViewGenerator = viewGenerator; this.linkFactory = linkFactory; this.linkListFactory = linkListFactory; this.urlBuilder = urlBuilder; this.fingerprintFactory = fingerprintFactory; this.retriever = retriever; }
public LoginViewBuilder(ICruiseRequest request, ILinkFactory linkFactory, IVelocityViewGenerator velocityViewGenerator, IDashboardConfiguration configuration, ISessionRetriever retriever) { this.request = request; this.linkFactory = linkFactory; this.velocityViewGenerator = velocityViewGenerator; this.configuration = configuration; this.retriever = retriever; this.BuildServerName = request.ServerName; this.ProjectName = request.ProjectName; }
public RecentBuildLister(IFarmService farmService, IVelocityTransformer velocityTransformer, IVelocityViewGenerator viewGenerator, ILinkFactory linkFactory, ILinkListFactory linkListFactory, IFingerprintFactory fingerprintFactory, ICruiseUrlBuilder urlBuilder, ISessionRetriever retriever) { this.farmService = farmService; this.velocityTransformer = velocityTransformer; this.velocityViewGenerator = viewGenerator; this.linkFactory = linkFactory; this.linkListFactory = linkListFactory; this.urlBuilder = urlBuilder; this.fingerprintFactory = fingerprintFactory; this.retriever = retriever; }
public ICruiseRequest CreateCruiseRequest (IRequest request, ICruiseUrlBuilder urlBuilder, ISessionRetriever retriever) { return new RequestWrappingCruiseRequest(request, urlBuilder, retriever); }
/// <summary> /// Attempt to retrieve a session token /// </summary> /// <returns></returns> public virtual string RetrieveSessionToken(ISessionRetriever sessionRetriever) { // Attempt to find a session token string sessionToken = request.GetText("sessionToken"); if (string.IsNullOrEmpty(sessionToken) && (sessionRetriever != null)) { sessionToken = sessionRetriever.RetrieveSessionToken(request); } return sessionToken; }
/// <summary> /// Initializes a new instance of the <see cref="ProjectXmlReport"/> class. /// </summary> /// <param name="farmService">The farm service.</param> /// <param name="sessionRetriever">The session retriever.</param> public ProjectXmlReport(IFarmService farmService, ISessionRetriever sessionRetriever) { this.sessionRetriever = sessionRetriever; this.farmService = farmService; }
public ServerSecurityConfigurationProjectPlugin(IFarmService farmService, IVelocityViewGenerator viewGenerator, ISessionRetriever sessionRetriever) { plugin = new ServerSecurityConfigurationServerPlugin(farmService, viewGenerator, sessionRetriever); }
public void SetupObjectSourceForFirstRequest(HttpContext context) { _objectionManager.AddInstanceForType(typeof(ObjectSource), _objectionManager); ObjectSource objectSource = UpdateObjectSourceForRequest(context); DefaultUrlBuilder urlBuilder = new DefaultUrlBuilder(); _objectionManager.AddInstanceForType(typeof(IUrlBuilder), new AbsolutePathUrlBuilderDecorator( urlBuilder, context.Request.ApplicationPath)); _objectionManager.SetImplementationType(typeof(ICruiseRequest), typeof(RequestWrappingCruiseRequest)); _objectionManager.SetImplementationType(typeof(IMultiTransformer), typeof(PathMappingMultiTransformer)); _objectionManager.SetDependencyImplementationForType(typeof(PathMappingMultiTransformer), typeof(IMultiTransformer), typeof(HtmlAwareMultiTransformer)); IDashboardConfiguration config = GetDashboardConfiguration(objectSource, context); _objectionManager.AddInstanceForType(typeof(IDashboardConfiguration), config); IRemoteServicesConfiguration remoteServicesConfig = config.RemoteServices; _objectionManager.AddInstanceForType(typeof(IRemoteServicesConfiguration), remoteServicesConfig); IPluginConfiguration pluginConfig = config.PluginConfiguration; _objectionManager.AddInstanceForType(typeof(IPluginConfiguration), pluginConfig); ISessionRetriever sessionRetriever = pluginConfig.SessionStore.RetrieveRetriever(); _objectionManager.AddInstanceForType(typeof(ISessionRetriever), sessionRetriever); ISessionStorer sessionStorer = pluginConfig.SessionStore.RetrieveStorer(); _objectionManager.AddInstanceForType(typeof(ISessionStorer), sessionStorer); LoadFarmPlugins(pluginConfig); LoadServerPlugins(pluginConfig); LoadProjectPlugins(pluginConfig); // Even if the user hasn't specified to use this plugin, we still need it registered since there are links to it elsewhere try { objectSource.GetByName(LatestBuildReportProjectPlugin.ACTION_NAME.ToLowerInvariant()); } catch (ApplicationException) { IPlugin latestBuildPlugin = (IPlugin)objectSource.GetByType(typeof(LatestBuildReportProjectPlugin)); AddActionInstance(latestBuildPlugin.NamedActions[0]) .Decorate(typeof(ServerCheckingProxyAction)) .Decorate(typeof(ProjectCheckingProxyAction)) .Decorate(typeof(CruiseActionProxyAction)) .Decorate(typeof(ExceptionCatchingActionProxy)) .Decorate(typeof(SiteTemplateActionDecorator)); } LoadBuildPlugins(pluginConfig); LoadSecurityPlugins(pluginConfig, sessionStorer); AddRequiredSecurityAction(LogoutSecurityAction.ActionName.ToLowerInvariant(), typeof(LogoutSecurityAction)); AddRequiredSecurityAction(ChangePasswordSecurityAction.ActionName.ToLowerInvariant(), typeof(ChangePasswordSecurityAction)); // ToDo - make this kind of thing specifiable by Plugins (note that this action is not wrapped with a SiteTemplateActionDecorator // See BuildLogBuildPlugin for linked todo _objectionManager.AddTypeForName(XmlBuildLogAction.ACTION_NAME.ToLowerInvariant(), typeof(XmlBuildLogAction)) .Decorate(typeof(ServerCheckingProxyAction)) .Decorate(typeof(BuildCheckingProxyAction)) .Decorate(typeof(ProjectCheckingProxyAction)) .Decorate(typeof(CruiseActionProxyAction)); // TODO - Xml Exceptions? _objectionManager.AddTypeForName(ForceBuildXmlAction.ACTION_NAME.ToLowerInvariant(), typeof(ForceBuildXmlAction)) .Decorate(typeof(ServerCheckingProxyAction)) .Decorate(typeof(ProjectCheckingProxyAction)) .Decorate(typeof(CruiseActionProxyAction)); // Supporting xml project status queries from CCTray or clients earlier than version 1.3 // Also still used by the web dashboard for displaying farm/server reports _objectionManager.AddTypeForName(XmlReportAction.ACTION_NAME.ToLowerInvariant(), typeof(XmlReportAction)); _objectionManager.AddTypeForName(ProjectXmlReport.ActionName.ToLowerInvariant(), typeof(ProjectXmlReport)) .Decorate(typeof(CruiseActionProxyAction)); // Supporting cruise server project and queue status queries from CCTray or clients 1.3 or later _objectionManager.AddTypeForName(XmlServerReportAction.ACTION_NAME.ToLowerInvariant(), typeof(XmlServerReportAction)); // Security handler for CCTray or client 1.5 or later _objectionManager.AddTypeForName(XmlServerSecurityAction.ACTION_NAME.ToLowerInvariant(), typeof(XmlServerSecurityAction)); // RSS publisher _objectionManager.AddTypeForName(Plugins.RSS.RSSFeed.ACTION_NAME.ToLowerInvariant(), typeof(Plugins.RSS.RSSFeed)) .Decorate(typeof(CruiseActionProxyAction)); // Status data _objectionManager.AddTypeForName(ProjectStatusAction.ActionName.ToLowerInvariant(), typeof(ProjectStatusAction)) .Decorate(typeof(ServerCheckingProxyAction)) .Decorate(typeof(ProjectCheckingProxyAction)) .Decorate(typeof(CruiseActionProxyAction)); // File downloads _objectionManager.AddTypeForName(ProjectFileDownload.ActionName.ToLowerInvariant(), typeof(ProjectFileDownload)) .Decorate(typeof(CruiseActionProxyAction)); _objectionManager.AddTypeForName(BuildFileDownload.ActionName.ToLowerInvariant(), typeof(BuildFileDownload)) .Decorate(typeof(CruiseActionProxyAction)); // Parameters handler for CCTray or client 1.5 or later _objectionManager.AddInstanceForName(XmlProjectParametersReportAction.ACTION_NAME.ToLowerInvariant(), objectSource.GetByType(typeof(XmlProjectParametersReportAction))); // Raw XML request handler _objectionManager.AddTypeForName(MessageHandlerPlugin.ActionName.ToLowerInvariant(), typeof(MessageHandlerPlugin)) .Decorate(typeof(CruiseActionProxyAction)); }
public ServerSecurityConfigurationProjectPlugin(IFarmService farmService, IVelocityViewGenerator viewGenerator, ISessionRetriever sessionRetriever) { plugin = new ServerSecurityConfigurationServerPlugin(farmService, viewGenerator, sessionRetriever); }
public ICruiseRequest CreateCruiseRequest(IRequest request, ICruiseUrlBuilder urlBuilder, ISessionRetriever retriever) { return(new RequestWrappingCruiseRequest(request, urlBuilder, retriever)); }
/// <summary> /// Initializes a new instance of the <see cref="ProjectXmlReport"/> class. /// </summary> /// <param name="farmService">The farm service.</param> /// <param name="sessionRetriever">The session retriever.</param> public ProjectXmlReport(IFarmService farmService, ISessionRetriever sessionRetriever) { this.sessionRetriever = sessionRetriever; this.farmService = farmService; }
// This all needs breaking up a bit (to make it testable, apart from anything else) public ObjectSource SetupObjectSourceForRequest(HttpContext context) { ObjectSource objectSource = (ObjectSource)objectionManager; // Yuch - put this in Object Wizard somewhere objectionManager.AddInstanceForType(typeof(ObjectSource), objectionManager); objectionManager.AddInstanceForType(typeof(HttpContext), context); HttpRequest request = context.Request; objectionManager.AddInstanceForType(typeof(HttpRequest), request); NameValueCollection parametersCollection = new NameValueCollection(); parametersCollection.Add(request.QueryString); parametersCollection.Add(request.Form); objectionManager.AddInstanceForType(typeof(IRequest), new NameValueCollectionRequest(parametersCollection, request.Headers, request.Path, request.RawUrl, request.ApplicationPath)); DefaultUrlBuilder urlBuilder = new DefaultUrlBuilder(); objectionManager.AddInstanceForType(typeof(IUrlBuilder), new AbsolutePathUrlBuilderDecorator( urlBuilder, request.ApplicationPath)); objectionManager.SetImplementationType(typeof(ICruiseRequest), typeof(RequestWrappingCruiseRequest)); objectionManager.SetImplementationType(typeof(IMultiTransformer), typeof(PathMappingMultiTransformer)); objectionManager.SetDependencyImplementationForType(typeof(PathMappingMultiTransformer), typeof(IMultiTransformer), typeof(HtmlAwareMultiTransformer)); IDashboardConfiguration config = GetDashboardConfiguration(objectSource, context); objectionManager.AddInstanceForType(typeof(IDashboardConfiguration), config); IRemoteServicesConfiguration remoteServicesConfig = config.RemoteServices; objectionManager.AddInstanceForType(typeof(IRemoteServicesConfiguration), remoteServicesConfig); IPluginConfiguration pluginConfig = config.PluginConfiguration; objectionManager.AddInstanceForType(typeof(IPluginConfiguration), pluginConfig); ISessionRetriever sessionRetriever = pluginConfig.SessionStore.RetrieveRetriever(); objectionManager.AddInstanceForType(typeof(ISessionRetriever), sessionRetriever); ISessionStorer sessionStorer = pluginConfig.SessionStore.RetrieveStorer(); objectionManager.AddInstanceForType(typeof(ISessionStorer), sessionStorer); urlBuilder.SessionStorer = sessionStorer; System.Collections.Generic.List <string> LoadedPlugins = new System.Collections.Generic.List <string>(); bool UnknownPluginDetected = false; foreach (IPlugin plugin in pluginConfig.FarmPlugins) { if (plugin == null) { UnknownPluginDetected = true; } else { LoadedPlugins.Add(plugin.LinkDescription); foreach (INamedAction action in plugin.NamedActions) { if ((action as INoSiteTemplateAction) == null) { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(CruiseActionProxyAction)).Decorate(typeof(ExceptionCatchingActionProxy)).Decorate(typeof(SiteTemplateActionDecorator)).Decorate(typeof(QuerySessionActionDecorator)).Decorate(typeof(NoCacheabilityActionProxy)); } else { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(CruiseActionProxyAction)).Decorate(typeof(ExceptionCatchingActionProxy)).Decorate(typeof(QuerySessionActionDecorator)).Decorate(typeof(NoCacheabilityActionProxy)); } } } } if (UnknownPluginDetected) { ThrowExceptionShouwingLoadedPlugins(LoadedPlugins, "FarmPlugins"); } LoadedPlugins = new System.Collections.Generic.List <string>(); foreach (IPlugin plugin in pluginConfig.ServerPlugins) { if (plugin == null) { UnknownPluginDetected = true; } else { LoadedPlugins.Add(plugin.LinkDescription); foreach (INamedAction action in plugin.NamedActions) { if ((action as INoSiteTemplateAction) == null) { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)).Decorate(typeof(ExceptionCatchingActionProxy)).Decorate(typeof(SiteTemplateActionDecorator)).Decorate(typeof(QuerySessionActionDecorator)).Decorate(typeof(NoCacheabilityActionProxy)); } else { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)).Decorate(typeof(ExceptionCatchingActionProxy)).Decorate(typeof(QuerySessionActionDecorator)).Decorate(typeof(NoCacheabilityActionProxy)); } } } } if (UnknownPluginDetected) { ThrowExceptionShouwingLoadedPlugins(LoadedPlugins, "ServerPlugins"); } LoadedPlugins = new System.Collections.Generic.List <string>(); foreach (IPlugin plugin in pluginConfig.ProjectPlugins) { if (plugin == null) { UnknownPluginDetected = true; } else { LoadedPlugins.Add(plugin.LinkDescription); foreach (INamedAction action in plugin.NamedActions) { if ((action as INoSiteTemplateAction) == null) { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(ProjectCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)).Decorate(typeof(ExceptionCatchingActionProxy)).Decorate(typeof(SiteTemplateActionDecorator)).Decorate(typeof(QuerySessionActionDecorator)); } else { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(ProjectCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)).Decorate(typeof(ExceptionCatchingActionProxy)).Decorate(typeof(QuerySessionActionDecorator)); } } } } if (UnknownPluginDetected) { ThrowExceptionShouwingLoadedPlugins(LoadedPlugins, "ProjectPlugins"); } // Even if the user hasn't specified to use this plugin, we still need it registered since there are links to it elsewhere try { objectSource.GetByName(LatestBuildReportProjectPlugin.ACTION_NAME.ToLowerInvariant()); } catch (ApplicationException) { IPlugin latestBuildPlugin = (IPlugin)objectSource.GetByType(typeof(LatestBuildReportProjectPlugin)); objectionManager.AddInstanceForName(latestBuildPlugin.NamedActions[0].ActionName.ToLowerInvariant(), latestBuildPlugin.NamedActions[0].Action) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(ProjectCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)).Decorate(typeof(ExceptionCatchingActionProxy)).Decorate(typeof(SiteTemplateActionDecorator)).Decorate(typeof(QuerySessionActionDecorator)); } LoadedPlugins = new System.Collections.Generic.List <string>(); foreach (IBuildPlugin plugin in pluginConfig.BuildPlugins) { if (plugin == null) { UnknownPluginDetected = true; } else { LoadedPlugins.Add(plugin.LinkDescription); foreach (INamedAction action in plugin.NamedActions) { if ((action as INoSiteTemplateAction) == null) { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant() + "_CONDITIONAL_GET_FINGERPRINT_CHAIN", action.Action) .Decorate(typeof(CruiseActionProxyAction)).Decorate(typeof(SiteTemplateActionDecorator)) .Decorate(typeof(QuerySessionActionDecorator)); objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(BuildCheckingProxyAction)).Decorate(typeof(ProjectCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)) .Decorate(typeof(CachingActionProxy)).Decorate(typeof(ExceptionCatchingActionProxy)).Decorate(typeof(SiteTemplateActionDecorator)) .Decorate(typeof(QuerySessionActionDecorator)); } else { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant() + "_CONDITIONAL_GET_FINGERPRINT_CHAIN", action.Action) .Decorate(typeof(CruiseActionProxyAction)) .Decorate(typeof(QuerySessionActionDecorator)); objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(BuildCheckingProxyAction)).Decorate(typeof(ProjectCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)) .Decorate(typeof(CachingActionProxy)).Decorate(typeof(ExceptionCatchingActionProxy)) .Decorate(typeof(QuerySessionActionDecorator)); } } } } if (UnknownPluginDetected) { ThrowExceptionShouwingLoadedPlugins(LoadedPlugins, "BuildPlugins"); } LoadedPlugins = new System.Collections.Generic.List <string>(); // Security plugins (for handling authentication) foreach (ISecurityPlugin plugin in pluginConfig.SecurityPlugins) { plugin.SessionStorer = sessionStorer; foreach (INamedAction action in plugin.NamedActions) { if ((action as INoSiteTemplateAction) == null) { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(ServerCheckingProxyAction)) .Decorate(typeof(CruiseActionProxyAction)) .Decorate(typeof(ExceptionCatchingActionProxy)) .Decorate(typeof(SiteTemplateActionDecorator)) .Decorate(typeof(QuerySessionActionDecorator)) .Decorate(typeof(NoCacheabilityActionProxy)); } else { objectionManager.AddInstanceForName(action.ActionName.ToLowerInvariant(), action.Action) .Decorate(typeof(ServerCheckingProxyAction)) .Decorate(typeof(CruiseActionProxyAction)) .Decorate(typeof(ExceptionCatchingActionProxy)) .Decorate(typeof(QuerySessionActionDecorator)) .Decorate(typeof(NoCacheabilityActionProxy)); } } } if (UnknownPluginDetected) { ThrowExceptionShouwingLoadedPlugins(LoadedPlugins, "SecurityPlugins"); } AddRequiredSecurityAction(LogoutSecurityAction.ActionName.ToLowerInvariant(), typeof(LogoutSecurityAction)); AddRequiredSecurityAction(ChangePasswordSecurityAction.ActionName.ToLowerInvariant(), typeof(ChangePasswordSecurityAction)); // ToDo - make this kind of thing specifiable by Plugins (note that this action is not wrapped with a SiteTemplateActionDecorator // See BuildLogBuildPlugin for linked todo objectionManager.AddTypeForName(XmlBuildLogAction.ACTION_NAME.ToLowerInvariant(), typeof(XmlBuildLogAction)) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(BuildCheckingProxyAction)).Decorate(typeof(ProjectCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)); // TODO - Xml Exceptions? objectionManager.AddTypeForName(ForceBuildXmlAction.ACTION_NAME.ToLowerInvariant(), typeof(ForceBuildXmlAction)) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(ProjectCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)); // Supporting xml project status queries from CCTray or clients earlier than version 1.3 // Also still used by the web dashboard for displaying farm/server reports objectionManager.AddTypeForName(XmlReportAction.ACTION_NAME.ToLowerInvariant(), typeof(XmlReportAction)); objectionManager.AddTypeForName(ProjectXmlReport.ActionName.ToLowerInvariant(), typeof(ProjectXmlReport)).Decorate(typeof(CruiseActionProxyAction)); // Supporting cruise server project and queue status queries from CCTray or clients 1.3 or later objectionManager.AddTypeForName(XmlServerReportAction.ACTION_NAME.ToLowerInvariant(), typeof(XmlServerReportAction)); // Security handler for CCTray or client 1.5 or later objectionManager.AddTypeForName(XmlServerSecurityAction.ACTION_NAME.ToLowerInvariant(), typeof(XmlServerSecurityAction)); // RSS publisher objectionManager.AddTypeForName(Plugins.RSS.RSSFeed.ACTION_NAME.ToLowerInvariant(), typeof(Plugins.RSS.RSSFeed)).Decorate(typeof(CruiseActionProxyAction)); // Status data objectionManager.AddTypeForName(ProjectStatusAction.ActionName.ToLowerInvariant(), typeof(ProjectStatusAction)) .Decorate(typeof(ServerCheckingProxyAction)).Decorate(typeof(ProjectCheckingProxyAction)).Decorate(typeof(CruiseActionProxyAction)); // File downloads objectionManager.AddTypeForName(ProjectFileDownload.ActionName.ToLowerInvariant(), typeof(ProjectFileDownload)).Decorate(typeof(CruiseActionProxyAction)); objectionManager.AddTypeForName(BuildFileDownload.ActionName.ToLowerInvariant(), typeof(BuildFileDownload)).Decorate(typeof(CruiseActionProxyAction)); // Parameters handler for CCTray or client 1.5 or later objectionManager.AddInstanceForName(XmlProjectParametersReportAction.ACTION_NAME.ToLowerInvariant(), objectSource.GetByType(typeof(XmlProjectParametersReportAction))); // Raw XML request handler objectionManager.AddTypeForName(MessageHandlerPlugin.ActionName.ToLowerInvariant(), typeof(MessageHandlerPlugin)).Decorate(typeof(CruiseActionProxyAction)); return(objectSource); }