[
https://issues.apache.org/jira/browse/SLING-6187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15826738#comment-15826738
]
Justin Edelson commented on SLING-6187:
---------------------------------------
[~alexander.klimetschek] the way the patch works is that:
1. Look for all the modifications which have an @ in them. Consider the part
before the @ to be the "base path".
2. For each of those, identify if there is a item in the modification list with
that "base path"
3. If there is one, fail.
So if the modification list contains
* {{foo}} + {{foo@Suffix}} - fail
* {{foo}} - ok
* {{foo@Suffix}} - ok
I realized I forgot to include the test for the last case in the diff. Here it
is:
{code}
public void testRemainingPostfixWithoutUnPostfixedIsSuccessful() {
TestingResourceResolver resourceResolver = new
TestingResourceResolver();
MockSlingHttpServlet3Request request = new
MockSlingHttpServlet3Request("/test", null, null, null, null);
request.setResourceResolver(resourceResolver);
final PostOperation operation = new AbstractPostOperation() {
@Override
protected void doRun(SlingHttpServletRequest request, PostResponse
response, List<Modification> changes) throws RepositoryException {
changes.add(Modification.onChange(ModificationType.CREATE,
"/content/test@Postfix"));
}
};
HtmlResponse response = new HtmlResponse();
operation.run(request, response, new SlingPostProcessor[0]);
assertTrue(response.isSuccessful());
assertTrue(resourceResolver.commitCalled);
assertFalse(resourceResolver.revertCalled);
}
{code}
> Provide a way for a POST request to assert a set of required
> SlingPostProcessors
> --------------------------------------------------------------------------------
>
> Key: SLING-6187
> URL: https://issues.apache.org/jira/browse/SLING-6187
> Project: Sling
> Issue Type: Improvement
> Components: Servlets
> Reporter: Justin Edelson
> Assignee: Justin Edelson
> Fix For: Servlets Post 2.3.16
>
> Attachments: SLING-6187c.diff, SLING-6187.patch,
> SLING-6187-profile.diff, SLING-6187-profile.diff, SLING-6187-validating.diff
>
>
> I would like to add support for a new "special" request parameter understood
> by the Sling Post Servlet named {{:requiredPostProcessors}}. This parameter
> may contain a comma-delimited list of names (see below) which *must* be
> available *at the time the request is processed* in order for the request to
> be handled. Whether or not those processors _do_ anything or whether the
> request succeeds or not is a separate question; this is just a preflight
> check if you will.
> If any of the required SlingPostProcessors are not available, the request
> will fail with a 501 error.
> The name of a SlingPostProcessor will be defined by a newly defined service
> registration property {{postProcessor.name}} and default to the simple name
> of the SlingPostProcessor's implementation class if that property is not
> defined.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)