From Sitecore documentation:
Pipelines define a sequence of processors that implement a function, such as defining the Sitecore context for an HTTP request or generating a list of messages in the Content Editor. Pipelines assist with encapsulation, flexible configuration, separation of concerns, testability and other objectives.
Each processor in a pipeline ...
As has been pointed out in other answers, <processors> are used primarily for UI-related activities. They must be executed via Sitecore.Pipelines.PipelineFactory and Sitecore.Pipelines.Pipeline instead of Sitecore.Pipelines.CorePipeline.
Functionally, the main difference appears to be that these UI pipelines have the ability to suspend while waiting ...
Sitecore separates the pipelines into two groups:
1. Those defined within the /configuration/sitecore/pipelines- [These pipelines tend to define system processes.]
<initialize>:Initializes the Sitecore application.
<preprocessRequest>: This is invoked for each HTTP request managed by ASP.NET. It is more common to use the pipeline for ...
You've not shared the actual classes in question, so I have to extrapolate.
But if you have
public abstract ClassA
public ClassA(IDependency dependencyOne)
public ClassB : ClassA
public ClassB(IDependency dependencyOne, string connectionStringName) : base(dependencyone)
Then this would be ...
You can achieve this by adding a handler to "publish:itemProcessed" event instead:
public void YourItemProcessed(object sender, EventArgs args)
var itemProcessedEventArgs = args as ItemProcessedEventArgs;
var context = itemProcessedEventArgs != null ? itemProcessedEventArgs.Context : null;
Actually context.PublishHelper.GetSourceItem and context.PublishHelper.GetTargetItem are the right methods to use.
What they do in the background, they take Options.Language and Options.SourceDatabase (or Options.TargetDatabase for target item) and call GetItem using those parameter together with item id.
When you select an item in Content Editor and choose ...
Cristi answer pointed me to right direction, however at the end I extended GetPageRenderingProcessor.
public class CustomBrowserCaching : GetPageRenderingProcessor
public override void Process(GetPageRenderingArgs args)
In App_Config/Sitecore.config there is a processor defined for setting browsercaching <processor type="Sitecore.Pipelines.RenderLayout.BrowserCaching, Sitecore.Kernel" />
You can take a look at its implementation in sitecore.kernel.dll and you could add your own custom implementation by overriding it
public override void Process(...