Missing pipeline classes?!

Was writing an article for you guys about pipelines in Sitecore 5.3… And found out that I’m missing some classes in the .CHM.
For example, take those 3:

<getMediaStream>
<processor type=”Sitecore.Resources.Media.ThumbnailProcessor, Sitecore.Kernel”>
</processor>
<processor type=”Sitecore.Resources.Media.ResizeProcessor, Sitecore.Kernel”>
</processor>
<processor type=”Sitecore.Resources.Media.GrayscaleProcessor, Sitecore.Kernel”>
</processor>
</getMediaStream>

Only the ResizeProcessor is available in the .CHM. The Reflector provides me the reason: the ThumbnailProcessor and GrayScaleProcessor seem to be internal. But why? And as they are used as processors and configured in the Web.config, why would you make ‘m internal?

And in the same namespace, the HttpHandler ‘MediaRequestHandler’  is also internal. I can imagine 3 possible scenarios:

  1. There are some damn ugly hacks inside those classes, specific for Sitecore.Kernel/Sitecore.Client functionality. You don’t want to make the classes available as people might go and use them for their own solutions and will introduce unexpected bugs.
  2. There’s some bought or very time intensive logic inside these classes. Sitecore dóesn’t allow implementation partners to use them. But, when you are familiar with the System.Reflection-namespace, you will be able to resolve the class, I’m sure…
  3. When converting from .NET 1.1 to .NET 2.0 or at creation time, Ole has forgotten to add ‘public’ before the class-definition. And as the Sitecore.Kernel is the executing class of the pipelines, errror will not occer(Are the pipelines unit tested? When Unit Test are preformed in a right way, the visibility of the classes will crash the tests.)

That’s it for tonight. Will finish the ‘pipeline’ article later this week.