Hi,

What is the exact use case ?

Could it be solved by your servlet handling part of the post, and for
example create a request wrapper which exposes modified parameters. That
servlet could then forward to the default POST servlet for final processing.

As such I am currently opposed to exporting the internal operations.

WDYT ?

Regards
Felix

On 26.08.2010 14:13, Alexander Klimetschek wrote:
> Hi all,
> 
> if you have a custom servlet that wants to run Sling's POST servlet
> handling _after_ it has done something, it theoretically could do so
> by getting the required SlingPostOperation and simply run it (just as
> the SlingPostServlet does it).
> 
> (The only other way to integrate the POST servlet functionality with
> custom things is to implement a SlingPostProcessor, but this is after
> the fact, and doesn't allow for cases, where your servlet is the
> authority of creating the content that e.g. the modify operation
> should work on.)
> 
> However, the standard operations, such as the default ModifyOperation,
> are unfortunately not exposed as services, and are hidden in the
> private export section of the bundle.
> 
> I see two solutions:
> 
> 1) all built-in SlingPostOperations should be registered as service
> - works fine for Copy, Move, Delete
> - ModifyOperation requires objects passed in its constructor
>   + NodeNameGenerator and DateParser:
>     their configuration should be moved from the SlingPostServlet component to
>     the new ModifyOperation component (only used there anyway)
>   + ServletContext:
>     required "only" for getting the mime types configured in the servlet 
> engine,
>     to be used for file uploads; not sure how to solve that (*)
> 
> 2) export all *Operation classes from the bundle
>    (ie. move them to a new public o.a.sling.servlets.post.operation package)
> 
> While 1) seems to be cleaner (not exposing internal implementation),
> 2) is much simpler to do and would also allow to build custom
> operations that extend the existing ones (however, we might not want
> to push that...).
> 
> WDYT?
> 
> Regards,
> Alex
> 
> 
> (*) Some ideas:
> - additional mime type config in the ModifyOperation
> - pass ServletContext in new SlingPostOperation.run() method
> - pass ServletContext as request attribute in request given via run() method
> 

Reply via email to