Author: justin
Date: Tue Dec 13 16:52:21 2016
New Revision: 1774054
URL: http://svn.apache.org/viewvc?rev=1774054&view=rev
Log:
Revert "SLING-6187 - implement requiredPostProcessors parameter"
This reverts commit e5fa0f742dbbcb93cec5a30b58b9e9f5bbddb0f6.
Modified:
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java
sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/SlingPostServletTest.java
sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/helper/MockSlingHttpServlet3Response.java
Modified:
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java?rev=1774054&r1=1774053&r2=1774054&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java
(original)
+++
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java
Tue Dec 13 16:52:21 2016
@@ -20,7 +20,6 @@ import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
@@ -139,10 +138,6 @@ public class SlingPostServlet extends Sl
private static final String PARAM_AUTO_CHECKIN = ":autoCheckin";
- private static final String PARAM_REQUIRED_POST_PROCESSORS =
":requiredPostProcessors";
-
- private static final String PROP_POST_PROCESSOR_NAME =
"postProcessor.name";
-
private static final String DEFAULT_IGNORED_PARAMETER_NAME_PATTERN =
"j_.*";
@Property(value = DEFAULT_IGNORED_PARAMETER_NAME_PATTERN)
@@ -163,9 +158,6 @@ public class SlingPostServlet extends Sl
/** Cached list of post processors, used during request processing. */
private SlingPostProcessor[] cachedPostProcessors = new
SlingPostProcessor[0];
- /** Cached list of post processor names, used during request processing. */
- private String[] cachedPostProcessorNames = new String[0];
-
/** Sorted list of node name generator holders. */
private final List<NodeNameGeneratorHolder> nodeNameGenerators = new
ArrayList<NodeNameGeneratorHolder>();
@@ -206,25 +198,19 @@ public class SlingPostServlet extends Sl
"Invalid operation specified for POST request");
} else {
+ request.getRequestProgressTracker().log(
+ "Calling PostOperation: {0}",
operation.getClass().getName());
final SlingPostProcessor[] processors = this.cachedPostProcessors;
- final String[] processorNames = this.cachedPostProcessorNames;
- if (checkPostProcessors(request, processorNames)) {
- request.getRequestProgressTracker().log(
- "Calling PostOperation: {0}",
operation.getClass().getName());
- try {
- operation.run(request, htmlResponse, processors);
- } catch (ResourceNotFoundException rnfe) {
- htmlResponse.setStatus(HttpServletResponse.SC_NOT_FOUND,
- rnfe.getMessage());
- } catch (final Exception exception) {
- log.warn("Exception while handling POST "
- + request.getResource().getPath() + " with "
- + operation.getClass().getName(), exception);
- htmlResponse.setError(exception);
- }
- } else {
- htmlResponse.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED,
- "At least one of the expected PostProcessors was not
available.");
+ try {
+ operation.run(request, htmlResponse, processors);
+ } catch (ResourceNotFoundException rnfe) {
+ htmlResponse.setStatus(HttpServletResponse.SC_NOT_FOUND,
+ rnfe.getMessage());
+ } catch (final Exception exception) {
+ log.warn("Exception while handling POST "
+ + request.getResource().getPath() + " with "
+ + operation.getClass().getName(), exception);
+ htmlResponse.setError(exception);
}
}
@@ -274,13 +260,13 @@ public class SlingPostServlet extends Sl
/**
* Creates an instance of a PostResponse.
* @param req The request being serviced
- * @return a {@link org.apache.sling.servlets.post.JSONResponse} if any of
these conditions are true:
+ * @return a {@link
org.apache.sling.servlets.post.impl.helper.JSONResponse} if any of these
conditions are true:
* <ul>
* <li> the request has an <code>Accept</code> header of
<code>application/json</code></li>
* <li>the request is a JSON POST request (see SLING-1172)</li>
* <li>the request has a request parameter
<code>:accept=application/json</code></li>
* </ul>
- * or a {@link org.apache.sling.servlets.post.PostResponse} otherwise
+ * or a {@link org.apache.sling.api.servlets.PostResponse} otherwise
*/
PostResponse createPostResponse(final SlingHttpServletRequest req) {
for (final PostResponseCreator creator : cachedPostResponseCreators) {
@@ -545,7 +531,6 @@ public class SlingPostServlet extends Sl
final PostProcessorHolder pph = new PostProcessorHolder();
pph.processor = processor;
pph.ranking =
OsgiUtil.toInteger(properties.get(Constants.SERVICE_RANKING), 0);
- pph.name = OsgiUtil.toString(properties.get(PROP_POST_PROCESSOR_NAME),
null);
synchronized ( this.postProcessors ) {
int index = 0;
@@ -584,15 +569,12 @@ public class SlingPostServlet extends Sl
*/
private void updatePostProcessorCache() {
final SlingPostProcessor[] localCache = new
SlingPostProcessor[this.postProcessors.size()];
- final String[] localNameCache = new String[this.postProcessors.size()];
int index = 0;
for(final PostProcessorHolder current : this.postProcessors) {
localCache[index] = current.processor;
- localNameCache[index] = current.name != null ? current.name :
current.processor.getClass().getSimpleName();
index++;
}
this.cachedPostProcessors = localCache;
- this.cachedPostProcessorNames = localNameCache;
}
/**
@@ -744,34 +726,8 @@ public class SlingPostServlet extends Sl
return cfg;
}
- private boolean checkPostProcessors(SlingHttpServletRequest request,
String[] processorNames) {
- String param = request.getParameter(PARAM_REQUIRED_POST_PROCESSORS);
- if (param == null) {
- return true;
- } else {
- List<String> requiredPostProcessors = new
ArrayList<String>(Arrays.asList(param.split(",")));
- Iterator<String> iterator = requiredPostProcessors.iterator();
- while (iterator.hasNext()) {
- String requiredPostProcessor = iterator.next();
- for (String name : processorNames) {
- if (name.equals(requiredPostProcessor)) {
- iterator.remove();
- break;
- }
- }
- }
- if (!requiredPostProcessors.isEmpty()) {
- log.warn("Some required post processors were not available:
{}", requiredPostProcessors);
- return false;
- } else {
- return true;
- }
- }
- }
-
private static final class PostProcessorHolder {
public SlingPostProcessor processor;
- public String name;
public int ranking;
}
Modified:
sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/SlingPostServletTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/SlingPostServletTest.java?rev=1774054&r1=1774053&r2=1774054&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/SlingPostServletTest.java
(original)
+++
sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/SlingPostServletTest.java
Tue Dec 13 16:52:21 2016
@@ -20,35 +20,20 @@ package org.apache.sling.servlets.post.i
import java.io.IOException;
import java.io.UnsupportedEncodingException;
-import java.net.URL;
import java.net.URLEncoder;
-import java.util.Collections;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
import java.util.StringTokenizer;
import junit.framework.TestCase;
import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.commons.testing.osgi.MockBundle;
-import org.apache.sling.commons.testing.osgi.MockComponentContext;
import org.apache.sling.commons.testing.sling.MockSlingHttpServletRequest;
import org.apache.sling.servlets.post.HtmlResponse;
import org.apache.sling.servlets.post.JSONResponse;
-import org.apache.sling.servlets.post.Modification;
-import org.apache.sling.servlets.post.PostOperation;
import org.apache.sling.servlets.post.PostResponse;
import org.apache.sling.servlets.post.SlingPostConstants;
-import org.apache.sling.servlets.post.SlingPostOperation;
-import org.apache.sling.servlets.post.SlingPostProcessor;
import org.apache.sling.servlets.post.impl.helper.MediaRangeList;
import org.apache.sling.servlets.post.impl.helper.MockSlingHttpServlet3Request;
import
org.apache.sling.servlets.post.impl.helper.MockSlingHttpServlet3Response;
-import org.osgi.framework.Constants;
public class SlingPostServletTest extends TestCase {
@@ -58,38 +43,6 @@ public class SlingPostServletTest extend
protected void setUp() throws Exception {
super.setUp();
servlet = new SlingPostServlet();
- MockBundle bundle = new MockBundle(1) {
- @Override
- public Dictionary<String, String> getHeaders() {
- Hashtable<String, String> headers = new Hashtable<String,
String>();
- headers.put(Constants.BUNDLE_VENDOR, "test");
- return headers;
- }
-
- @Override
- public Dictionary<String, String> getHeaders(String locale) {
- return getHeaders();
- }
-
- @Override
- public Enumeration<URL> findEntries(String path, String
filePattern, boolean recurse) {
- return null;
- }
-
- @Override
- public Enumeration<String> getEntryPaths(String path) {
- return null;
- }
-
- @Override
- public Enumeration<URL> getResources(String name) {
- return null;
- }
- };
- MockComponentContext componentContext = new
MockComponentContext(bundle);
- Map<String, Object> props = new HashMap<String, Object>();
- props.put("servlet.post.dateFormats", new String[] { "EEE MMM dd yyyy
HH:mm:ss 'GMT'Z" });
- servlet.activate(componentContext, props);
}
public void testIsSetStatus() {
@@ -149,109 +102,6 @@ public class SlingPostServletTest extend
testRedirection("/", "/fred/abc",
"file://c:\\Users\\workspace\\test.java", null);
}
- public void testNonExistingOperation() throws Exception {
- MockSlingHttpServletRequest request = new
MockSlingHttpServlet3Request(null, null, null, null, null) {
- @Override
- public String getParameter(String name) {
- if (name.equals(SlingPostConstants.RP_OPERATION)) {
- return "doesntexist";
- }
- return null;
- }
- };
- MockSlingHttpServlet3Response response = new
MockSlingHttpServlet3Response();
- servlet.doPost(request, response);
- assertEquals(500, response.getStatus());
- }
-
- public void testNonExistingPostProcessor() throws Exception {
- servlet.bindPostOperation(new PostOperation() {
- @Override
- public void run(SlingHttpServletRequest request, PostResponse
response, SlingPostProcessor[] processors) {
- // noop
- }
- }, Collections.<String,
Object>singletonMap(SlingPostOperation.PROP_OPERATION_NAME, "noop"));
-
- MockSlingHttpServletRequest request = new
MockSlingHttpServlet3Request(null, null, null, null, null) {
- @Override
- public String getParameter(String name) {
- if (name.equals(SlingPostConstants.RP_OPERATION)) {
- return "noop";
- } else if (name.equals(":requiredPostProcessors")) {
- return "doesntexist";
- }
- return null;
- }
- };
- MockSlingHttpServlet3Response response = new
MockSlingHttpServlet3Response();
- servlet.doPost(request, response);
- assertEquals(501, response.getStatus());
- }
-
-
-
- public void testNonExistingPostProcessorWithMultipleRequired() throws
Exception {
- servlet.bindPostOperation(new PostOperation() {
- @Override
- public void run(SlingHttpServletRequest request, PostResponse
response, SlingPostProcessor[] processors) {
- // noop
- }
- }, Collections.<String,
Object>singletonMap(SlingPostOperation.PROP_OPERATION_NAME, "noop"));
-
- servlet.bindPostProcessor(new SlingPostProcessor() {
- @Override
- public void process(SlingHttpServletRequest request,
List<Modification> changes) throws Exception {
- // noop
- }
- }, Collections.<String, Object>singletonMap("postProcessor.name",
"noop"));
-
- MockSlingHttpServletRequest request = new
MockSlingHttpServlet3Request(null, null, null, null, null) {
- @Override
- public String getParameter(String name) {
- if (name.equals(SlingPostConstants.RP_OPERATION)) {
- return "noop";
- } else if (name.equals(":requiredPostProcessors")) {
- return "noop,doesntexist";
- }
- return null;
- }
- };
- MockSlingHttpServlet3Response response = new
MockSlingHttpServlet3Response();
- servlet.doPost(request, response);
- assertEquals(501, response.getStatus());
- }
-
- public void testRequiredPostProcessor() throws Exception {
- servlet.bindPostOperation(new PostOperation() {
- @Override
- public void run(SlingHttpServletRequest request, PostResponse
response, SlingPostProcessor[] processors) {
- // noop
- }
- }, Collections.<String,
Object>singletonMap(SlingPostOperation.PROP_OPERATION_NAME, "noop"));
-
- servlet.bindPostProcessor(new SlingPostProcessor() {
- @Override
- public void process(SlingHttpServletRequest request,
List<Modification> changes) throws Exception {
- // noop
- }
- }, Collections.<String, Object>singletonMap("postProcessor.name",
"noop"));
-
- MockSlingHttpServletRequest request = new
MockSlingHttpServlet3Request(null, null, null, null, null) {
- @Override
- public String getParameter(String name) {
- if (name.equals(SlingPostConstants.RP_OPERATION)) {
- return "noop";
- } else if (name.equals(":requiredPostProcessors")) {
- return "noop";
- }
- return null;
- }
- };
- MockSlingHttpServlet3Response response = new
MockSlingHttpServlet3Response();
- servlet.doPost(request, response);
- assertEquals(200, response.getStatus());
- }
-
private void testRedirection(String requestPath, String resourcePath,
String redirect, String expected)
throws Exception {
RedirectServletResponse resp = new RedirectServletResponse();
Modified:
sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/helper/MockSlingHttpServlet3Response.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/helper/MockSlingHttpServlet3Response.java?rev=1774054&r1=1774053&r2=1774054&view=diff
==============================================================================
---
sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/helper/MockSlingHttpServlet3Response.java
(original)
+++
sling/trunk/bundles/servlets/post/src/test/java/org/apache/sling/servlets/post/impl/helper/MockSlingHttpServlet3Response.java
Tue Dec 13 16:52:21 2016
@@ -24,22 +24,9 @@ import java.util.Collection;
* When MockSlingHttpServletResponse supports Servlet 3 correctly, delete this
class.
*/
public class MockSlingHttpServlet3Response extends
MockSlingHttpServletResponse {
-
- private int status = 200;
-
- @Override
- public void setStatus(int status) {
- this.status = status;
- }
-
- @Override
- public void setStatus(int i, String s) {
- setStatus(i);
- }
-
@Override
public int getStatus() {
- return status;
+ return 0;
}
@Override