Interface PostOperation
-
- All Known Implementing Classes:
AbstractPostOperation
,AbstractSlingPostOperation
,CommentingOperationHandler
public interface PostOperation
ThePostOperation
interface defines the service API to be implemented by service providers extending the Sling POST servlet. Service providers may register OSGi services of this type to be used by the Sling default POST servlet to handle specific operations.The
PostOperation
service must be registered with aPROP_OPERATION_NAME
registration property giving the name(s) of the operations supported by the service. The names will be used to find the actual operation from the:operation
request parameter.The Sling POST servlet itself provides various operations (see the
OPERATION_
constants in theSlingPostConstants
interface.These names should not be used bySlingPostOperation
service providers.This interface replaces the old
SlingPostOperation
service interface adding support for extensible responses by means of thePostResponse
interface as well as operation postprocessing.Implementors of this interface are advised to extend the
AbstractPostOperation
class to benefit from various processings implemented by that abstract class.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PROP_OPERATION_NAME
The name of the service registration property indicating the name(s) of the operation provided by the operation implementation.static java.lang.String
SERVICE_NAME
The name of the Sling POST operation service.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
run(SlingHttpServletRequest request, PostResponse response, SlingPostProcessor[] processors)
Executes the operation provided by this service implementation.
-
-
-
Field Detail
-
SERVICE_NAME
static final java.lang.String SERVICE_NAME
The name of the Sling POST operation service.- See Also:
- Constant Field Values
-
PROP_OPERATION_NAME
static final java.lang.String PROP_OPERATION_NAME
The name of the service registration property indicating the name(s) of the operation provided by the operation implementation. The value of this service property must be a single String or an array orjava.util.Collection
of Strings. If multiple strings are defined, the service is registered for all operation names.- See Also:
- Constant Field Values
-
-
Method Detail
-
run
void run(SlingHttpServletRequest request, PostResponse response, SlingPostProcessor[] processors) throws org.apache.sling.servlets.post.exceptions.PreconditionViolatedPersistenceException, org.apache.sling.servlets.post.exceptions.TemporaryPersistenceException, PersistenceException
Executes the operation provided by this service implementation. This method is called by the Sling POST servlet.- Parameters:
request
- TheSlingHttpServletRequest
object providing the request input for the operation.response
- TheHtmlResponse
into which the operation steps should be recorded.processors
- TheSlingPostProcessor
services to be called after applying the operation. This may benull
if there are none.- Throws:
PersistenceException
- when the commit failsResourceNotFoundException
- May be thrown if the operation requires an existing request resource. If this exception is thrown the Sling POST servlet sends back a404/NOT FOUND
response to the client.SlingException
- May be thrown if an error Occurs running the operation.org.apache.sling.servlets.post.exceptions.PreconditionViolatedPersistenceException
- when a necessary precondition failed, and a retry without further changes doesn't make sense.org.apache.sling.servlets.post.exceptions.TemporaryPersistenceException
- when a commit failed, but a retry could make the operation work successfully.
-
-