Interface PostOperation
- All Known Implementing Classes:
AbstractPostOperation,AbstractPostOperation,AbstractSlingPostOperation,CheckinOperation,CheckoutOperation,CopyOperation,DeleteOperation,ImportOperation,ModifyOperation,MoveOperation,NopOperation,RestoreOperation,StreamedUploadOperation
PostOperation 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 a
PROP_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 the SlingPostConstants
interface.These names should not be used by SlingPostOperation
service providers.
This interface replaces the old SlingPostOperation service interface
adding support for extensible responses by means of the PostResponse
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 -
Method Summary
Modifier and TypeMethodDescriptionvoidrun(SlingHttpServletRequest request, PostResponse response, SlingPostProcessor[] processors) Executes the operation provided by this service implementation.
-
Field Details
-
SERVICE_NAME
The name of the Sling POST operation service.- See Also:
-
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.Collectionof Strings. If multiple strings are defined, the service is registered for all operation names.- See Also:
-
-
Method Details
-
run
void run(SlingHttpServletRequest request, PostResponse response, SlingPostProcessor[] processors) throws PreconditionViolatedPersistenceException, TemporaryPersistenceException, PersistenceException Executes the operation provided by this service implementation. This method is called by the Sling POST servlet.- Parameters:
request- TheSlingHttpServletRequestobject providing the request input for the operation.response- TheHtmlResponseinto which the operation steps should be recorded.processors- TheSlingPostProcessorservices to be called after applying the operation. This may benullif 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 FOUNDresponse to the client.SlingException- May be thrown if an error Occurs running the operation.PreconditionViolatedPersistenceException- when a necessary precondition failed, and a retry without further changes doesn't make sense.TemporaryPersistenceException- when a commit failed, but a retry could make the operation work successfully.
-