Search in sources :

Example 16 with JSONException

use of org.apache.sling.commons.json.JSONException in project acs-aem-commons by Adobe-Consulting-Services.

the class PackageHelperImpl method getErrorJSON.

/**
 * {@inheritDoc}
 */
public String getErrorJSON(final String msg) {
    final JSONObject json = new JSONObject();
    try {
        json.put(KEY_STATUS, "error");
        json.put(KEY_MSG, msg);
        return json.toString();
    } catch (JSONException e) {
        log.error("Error creating JSON Error response message: {}", e);
        return JSON_EXCEPTION_MSG;
    }
}
Also used : JSONObject(org.apache.sling.commons.json.JSONObject) JSONException(org.apache.sling.commons.json.JSONException)

Example 17 with JSONException

use of org.apache.sling.commons.json.JSONException in project acs-aem-commons by Adobe-Consulting-Services.

the class CustomPollingImporterListServlet method doGet.

@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
    XSSAPI xssApi = request.adaptTo(XSSAPI.class);
    try {
        JSONObject result = new JSONObject();
        JSONArray list = new JSONArray();
        result.put("list", list);
        ServiceReference[] services = tracker.getServiceReferences();
        if (services != null) {
            for (ServiceReference service : services) {
                String displayName = PropertiesUtil.toString(service.getProperty("displayName"), null);
                String[] schemes = PropertiesUtil.toStringArray(service.getProperty(Importer.SCHEME_PROPERTY));
                if (displayName != null && schemes != null) {
                    for (String scheme : schemes) {
                        JSONObject obj = new JSONObject();
                        obj.put("qtip", "");
                        obj.put("text", displayName);
                        obj.put("text_xss", xssApi.encodeForJSString(displayName));
                        obj.put("value", scheme);
                        list.put(obj);
                    }
                }
            }
        }
        response.setCharacterEncoding("UTF-8");
        response.setContentType("application/json");
        result.write(response.getWriter());
    } catch (JSONException e) {
        throw new ServletException("Unable to generate importer list", e);
    }
}
Also used : XSSAPI(org.apache.sling.xss.XSSAPI) ServletException(javax.servlet.ServletException) JSONObject(org.apache.sling.commons.json.JSONObject) JSONArray(org.apache.sling.commons.json.JSONArray) JSONException(org.apache.sling.commons.json.JSONException) ServiceReference(org.osgi.framework.ServiceReference)

Example 18 with JSONException

use of org.apache.sling.commons.json.JSONException in project acs-aem-commons by Adobe-Consulting-Services.

the class JSONErrorUtil method sendJSONError.

public static void sendJSONError(SlingHttpServletResponse response, int statusCode, String title, String message) throws IOException {
    response.setStatus(statusCode);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    JSONObject json = new JSONObject();
    try {
        json.put("title", title);
        json.put("message", message);
        response.getWriter().write(json.toString());
    } catch (JSONException e) {
        String jsonString = "{title: \"Error constructing error message\"}";
        response.getWriter().write(jsonString);
    }
}
Also used : JSONObject(org.apache.sling.commons.json.JSONObject) JSONException(org.apache.sling.commons.json.JSONException)

Example 19 with JSONException

use of org.apache.sling.commons.json.JSONException in project acs-aem-commons by Adobe-Consulting-Services.

the class StartServlet method doPost.

@Override
@SuppressWarnings("squid:S1192")
protected final void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    try {
        final JSONObject params = new JSONObject(request.getParameter("params"));
        final ModifiableValueMap properties = request.getResource().adaptTo(ModifiableValueMap.class);
        properties.put("runnerType", params.getString("runnerType"));
        properties.put("queryType", params.getString("queryType"));
        properties.put("queryStatement", params.getString("queryStatement"));
        properties.put("relativePath", StringUtils.removeStart(params.optString("relativePath", ""), "/"));
        properties.put("workflowModel", params.getString("workflowModelId"));
        properties.put("interval", params.optInt("interval", 10));
        properties.put("timeout", params.optInt("timeout", 30));
        properties.put("throttle", params.optInt("throttle", 10));
        properties.put("retryCount", params.optInt("retryCount", 0));
        properties.put("batchSize", params.optInt("batchSize", 10));
        String userEventData = params.optString("userEventData", null);
        if (userEventData != null && !userEventData.isEmpty()) {
            properties.put("userEventData", userEventData);
        }
        properties.put("purgeWorkflow", params.optBoolean("purgeWorkflow", false));
        properties.put("autoThrottle", params.optBoolean("autoThrottle", true));
        if (AEMWorkflowRunnerImpl.class.getName().equals(properties.get("runnerType", String.class)) && isTransient(request.getResourceResolver(), properties.get("workflowModel", String.class))) {
            properties.put("runnerType", AEMTransientWorkflowRunnerImpl.class.getName());
        }
        // If FAM retires are enabled, then force BatchSize to be 1
        if (FastActionManagerRunnerImpl.class.getName().equals(properties.get("runnerType", "")) && properties.get("retryCount", 0) > 0) {
            properties.put("batchSize", 1);
        }
        request.getResourceResolver().commit();
        Config config = request.getResource().adaptTo(Config.class);
        bulkWorkflowEngine.initialize(config);
        bulkWorkflowEngine.start(config);
        response.sendRedirect(request.getResourceResolver().map(request, request.getResource().getPath()) + ".status.json");
    } catch (JSONException e) {
        log.error("Could not parse HTTP Request params: {}", e);
        JSONErrorUtil.sendJSONError(response, SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not initialize Bulk Workflow due to invalid parameters." + " Please review the form and try again.", e.getMessage());
    } catch (RepositoryException e) {
        log.error("Could not initialize Bulk Workflow: {}", e);
        JSONErrorUtil.sendJSONError(response, SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not initialize Bulk Workflow.", e.getMessage());
    } catch (IllegalArgumentException e) {
        log.warn("Could not initialize Bulk Workflow due to invalid arguments: {}", e);
        JSONErrorUtil.sendJSONError(response, SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not initialize Bulk Workflow due to invalid arguments.", e.getMessage());
    } catch (Exception e) {
        log.error("Could not initialize Bulk Workflow due to unexpected error: {}", e);
        JSONErrorUtil.sendJSONError(response, SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not start Bulk Workflow.", e.getMessage());
    }
}
Also used : JSONObject(org.apache.sling.commons.json.JSONObject) Config(com.adobe.acs.commons.workflow.bulk.execution.model.Config) JSONException(org.apache.sling.commons.json.JSONException) RepositoryException(javax.jcr.RepositoryException) ModifiableValueMap(org.apache.sling.api.resource.ModifiableValueMap) ServletException(javax.servlet.ServletException) IOException(java.io.IOException) JSONException(org.apache.sling.commons.json.JSONException) RepositoryException(javax.jcr.RepositoryException) AEMTransientWorkflowRunnerImpl(com.adobe.acs.commons.workflow.bulk.execution.impl.runners.AEMTransientWorkflowRunnerImpl)

Example 20 with JSONException

use of org.apache.sling.commons.json.JSONException in project acs-aem-commons by Adobe-Consulting-Services.

the class ResumeServlet method doPost.

@Override
protected final void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    final JSONObject params;
    try {
        params = new JSONObject(request.getParameter("params"));
        final Config config = request.getResource().adaptTo(Config.class);
        int throttle = params.optInt("throttle", -1);
        int interval = params.optInt("interval", -1);
        if (throttle > -1) {
            config.setThrottle(throttle);
            config.commit();
        } else if (interval > -1) {
            config.setInterval(interval);
            config.commit();
        }
        bulkWorkflowEngine.resume(config);
        response.sendRedirect(request.getResourceResolver().map(request, request.getResource().getPath()) + ".status.json");
    } catch (JSONException e) {
        log.error("Could not resume Bulk Workflow due to: {}", e);
        JSONErrorUtil.sendJSONError(response, SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Could not resume Bulk Workflow.", e.getMessage());
    }
}
Also used : JSONObject(org.apache.sling.commons.json.JSONObject) Config(com.adobe.acs.commons.workflow.bulk.execution.model.Config) JSONException(org.apache.sling.commons.json.JSONException)

Aggregations

JSONException (org.apache.sling.commons.json.JSONException)25 JSONObject (org.apache.sling.commons.json.JSONObject)15 Resource (org.apache.sling.api.resource.Resource)10 ServletException (javax.servlet.ServletException)9 RepositoryException (javax.jcr.RepositoryException)6 ValueMap (org.apache.sling.api.resource.ValueMap)6 HashMap (java.util.HashMap)5 ResourceResolver (org.apache.sling.api.resource.ResourceResolver)5 IOException (java.io.IOException)4 ArrayList (java.util.ArrayList)4 Config (com.adobe.acs.commons.workflow.bulk.execution.model.Config)3 Map (java.util.Map)3 Page (com.day.cq.wcm.api.Page)2 PageManager (com.day.cq.wcm.api.PageManager)2 PathFilterSet (org.apache.jackrabbit.vault.fs.api.PathFilterSet)2 ModifiableValueMap (org.apache.sling.api.resource.ModifiableValueMap)2 JSONArray (org.apache.sling.commons.json.JSONArray)2 JSONWriter (org.apache.sling.commons.json.io.JSONWriter)2 ActionManager (com.adobe.acs.commons.fam.ActionManager)1 FormImpl (com.adobe.acs.commons.forms.impl.FormImpl)1