in src/main/java/org/apache/sling/pipes/internal/PlumberServlet.java [120:147]
void execute(SlingHttpServletRequest request, SlingHttpServletResponse response, boolean writeAllowed) throws ServletException {
String path = request.getResource().getResourceType().equals(RESOURCE_TYPE) ? request.getParameter(PARAM_PATH) : request.getResource().getPath();
try {
if (StringUtils.isBlank(path)) {
throw new IllegalArgumentException("path should be provided");
}
Map<String, Object> bindings = plumber.getBindingsFromRequest(request, writeAllowed);
String asyncParam = request.getParameter(PARAM_ASYNC);
if (StringUtils.isNotBlank(asyncParam) && asyncParam.equals(Boolean.TRUE.toString())){
Job job = plumber.executeAsync(request.getResourceResolver(), path, bindings);
if (job != null){
response.getWriter().append("pipe execution registered as " + job.getId());
response.setStatus(HttpServletResponse.SC_CREATED);
} else {
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Some issue with your request, or server not being ready for async execution");
}
} else {
OutputWriter writer = getWriter(request, response);
plumber.execute(request.getResourceResolver(), path, bindings, writer, true);
}
}
catch (AccessControlException e) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
}
catch (Exception e) {
throw new ServletException(e);
}
}