Search in sources :

Example 16 with WebScriptRequest

use of org.springframework.extensions.webscripts.WebScriptRequest in project alfresco-remote-api by Alfresco.

the class PrepareTransferCommandProcessor method process.

/*
     * (non-Javadoc)
     * 
     * @see org.alfresco.repo.web.scripts.transfer.CommandProcessor#process(org.alfresco .web.scripts.WebScriptRequest,
     * org.alfresco.web.scripts.WebScriptResponse)
     */
public int process(WebScriptRequest req, WebScriptResponse resp) {
    String transferRecordId = null;
    // Read the transfer id from the request
    // Unwrap to a WebScriptServletRequest if we have one
    WebScriptServletRequest webScriptServletRequest = null;
    WebScriptRequest current = req;
    do {
        if (current instanceof WebScriptServletRequest) {
            webScriptServletRequest = (WebScriptServletRequest) current;
            current = null;
        } else if (current instanceof WrappingWebScriptRequest) {
            current = ((WrappingWebScriptRequest) req).getNext();
        } else {
            current = null;
        }
    } while (current != null);
    HttpServletRequest servletRequest = webScriptServletRequest.getHttpServletRequest();
    String transferId = servletRequest.getParameter("transferId");
    if (transferId == null) {
        logger.debug("transferId is missing");
        resp.setStatus(Status.STATUS_BAD_REQUEST);
        return Status.STATUS_BAD_REQUEST;
    }
    try {
        logger.debug("prepare transferId: " + transferId);
        receiver.prepare(transferId);
        // return the unique transfer id (the lock id)
        StringWriter stringWriter = new StringWriter(300);
        JSONWriter jsonWriter = new JSONWriter(stringWriter);
        jsonWriter.startObject();
        jsonWriter.writeValue("transferId", transferRecordId);
        jsonWriter.endObject();
        String response = stringWriter.toString();
        resp.setContentType("application/json");
        resp.setContentEncoding("UTF-8");
        int length = response.getBytes("UTF-8").length;
        resp.addHeader("Content-Length", "" + length);
        resp.setStatus(Status.STATUS_OK);
        resp.getWriter().write(response);
        logger.debug("prepared transferId: " + transferId);
        return Status.STATUS_OK;
    } catch (Exception ex) {
        logger.debug("in exception handler", ex);
        receiver.end(transferRecordId);
        if (ex instanceof TransferException) {
            throw (TransferException) ex;
        }
        throw new TransferException(MSG_CAUGHT_UNEXPECTED_EXCEPTION, ex);
    }
}
Also used : WrappingWebScriptRequest(org.springframework.extensions.webscripts.WrappingWebScriptRequest) WebScriptRequest(org.springframework.extensions.webscripts.WebScriptRequest) WrappingWebScriptRequest(org.springframework.extensions.webscripts.WrappingWebScriptRequest) HttpServletRequest(javax.servlet.http.HttpServletRequest) JSONWriter(org.springframework.extensions.webscripts.json.JSONWriter) TransferException(org.alfresco.service.cmr.transfer.TransferException) StringWriter(java.io.StringWriter) WebScriptServletRequest(org.springframework.extensions.webscripts.servlet.WebScriptServletRequest) TransferException(org.alfresco.service.cmr.transfer.TransferException)

Example 17 with WebScriptRequest

use of org.springframework.extensions.webscripts.WebScriptRequest in project alfresco-remote-api by Alfresco.

the class ReportCommandProcessor method process.

/*
     * (non-Javadoc)
     * 
     * @see org.alfresco.repo.web.scripts.transfer.CommandProcessor#process(org.alfresco .web.scripts.WebScriptRequest,
     * org.alfresco.web.scripts.WebScriptResponse)
     */
public int process(WebScriptRequest req, WebScriptResponse resp) {
    // Read the transfer id from the request
    // Unwrap to a WebScriptServletRequest if we have one
    WebScriptServletRequest webScriptServletRequest = null;
    WebScriptRequest current = req;
    do {
        if (current instanceof WebScriptServletRequest) {
            webScriptServletRequest = (WebScriptServletRequest) current;
            current = null;
        } else if (current instanceof WrappingWebScriptRequest) {
            current = ((WrappingWebScriptRequest) req).getNext();
        } else {
            current = null;
        }
    } while (current != null);
    HttpServletRequest servletRequest = webScriptServletRequest.getHttpServletRequest();
    String transferId = servletRequest.getParameter("transferId");
    if (transferId == null) {
        logger.debug("transferId is missing");
        resp.setStatus(Status.STATUS_BAD_REQUEST);
        return Status.STATUS_BAD_REQUEST;
    }
    try {
        OutputStream out = resp.getOutputStream();
        try {
            resp.setContentType("text/xml");
            resp.setContentEncoding("utf-8");
            BufferedInputStream br = new BufferedInputStream(receiver.getProgressMonitor().getLogInputStream(transferId));
            try {
                byte[] buffer = new byte[1000];
                int i = br.read(buffer);
                while (i > 0) {
                    out.write(buffer, 0, i);
                    i = br.read(buffer);
                }
            } finally {
                br.close();
            }
        } finally {
            out.flush();
            out.close();
        }
        return Status.STATUS_OK;
    } catch (TransferException ex) {
        throw ex;
    } catch (Exception ex) {
        throw new TransferException(MSG_CAUGHT_UNEXPECTED_EXCEPTION, ex);
    }
}
Also used : WrappingWebScriptRequest(org.springframework.extensions.webscripts.WrappingWebScriptRequest) WebScriptRequest(org.springframework.extensions.webscripts.WebScriptRequest) WrappingWebScriptRequest(org.springframework.extensions.webscripts.WrappingWebScriptRequest) HttpServletRequest(javax.servlet.http.HttpServletRequest) TransferException(org.alfresco.service.cmr.transfer.TransferException) BufferedInputStream(java.io.BufferedInputStream) OutputStream(java.io.OutputStream) WebScriptServletRequest(org.springframework.extensions.webscripts.servlet.WebScriptServletRequest) TransferException(org.alfresco.service.cmr.transfer.TransferException)

Example 18 with WebScriptRequest

use of org.springframework.extensions.webscripts.WebScriptRequest in project alfresco-remote-api by Alfresco.

the class StatusCommandProcessor method process.

/*
     * (non-Javadoc)
     * 
     * @see org.alfresco.repo.web.scripts.transfer.CommandProcessor#process(org.alfresco .web.scripts.WebScriptRequest,
     * org.alfresco.web.scripts.WebScriptResponse)
     */
public int process(WebScriptRequest req, WebScriptResponse resp) {
    // Read the transfer id from the request
    // Unwrap to a WebScriptServletRequest if we have one
    WebScriptServletRequest webScriptServletRequest = null;
    WebScriptRequest current = req;
    do {
        if (current instanceof WebScriptServletRequest) {
            webScriptServletRequest = (WebScriptServletRequest) current;
            current = null;
        } else if (current instanceof WrappingWebScriptRequest) {
            current = ((WrappingWebScriptRequest) req).getNext();
        } else {
            current = null;
        }
    } while (current != null);
    HttpServletRequest servletRequest = webScriptServletRequest.getHttpServletRequest();
    String transferId = servletRequest.getParameter("transferId");
    if (transferId == null) {
        logger.debug("transferId is missing");
        resp.setStatus(Status.STATUS_BAD_REQUEST);
        return Status.STATUS_BAD_REQUEST;
    }
    try {
        TransferProgress progress = receiver.getProgressMonitor().getProgress(transferId);
        if (logger.isDebugEnabled()) {
            logger.debug(progress);
        }
        JSONObject progressObject = new JSONObject();
        progressObject.put("transferId", transferId);
        progressObject.put("status", progress.getStatus().toString());
        progressObject.put("currentPosition", progress.getCurrentPosition());
        progressObject.put("endPosition", progress.getEndPosition());
        if (progress.getError() != null) {
            JSONObject errorObject = errorSerializer.serialize(progress.getError());
            progressObject.put("error", errorObject);
        }
        String response = progressObject.toString();
        resp.setContentType("application/json");
        resp.setContentEncoding("UTF-8");
        int length = response.getBytes("UTF-8").length;
        resp.addHeader("Content-Length", "" + length);
        resp.setStatus(Status.STATUS_OK);
        resp.getWriter().write(response);
        return Status.STATUS_OK;
    } catch (TransferException ex) {
        throw ex;
    } catch (Exception ex) {
        throw new TransferException(MSG_CAUGHT_UNEXPECTED_EXCEPTION, ex);
    }
}
Also used : WrappingWebScriptRequest(org.springframework.extensions.webscripts.WrappingWebScriptRequest) WebScriptRequest(org.springframework.extensions.webscripts.WebScriptRequest) WrappingWebScriptRequest(org.springframework.extensions.webscripts.WrappingWebScriptRequest) HttpServletRequest(javax.servlet.http.HttpServletRequest) TransferException(org.alfresco.service.cmr.transfer.TransferException) JSONObject(org.json.JSONObject) WebScriptServletRequest(org.springframework.extensions.webscripts.servlet.WebScriptServletRequest) TransferException(org.alfresco.service.cmr.transfer.TransferException) TransferProgress(org.alfresco.service.cmr.transfer.TransferProgress)

Example 19 with WebScriptRequest

use of org.springframework.extensions.webscripts.WebScriptRequest in project alfresco-remote-api by Alfresco.

the class SerializerTestHelper method searchSQLQueryFromJson.

public Object searchSQLQueryFromJson(String query, Class<?> classz) throws IOException {
    Content content = mock(Content.class);
    when(content.getReader()).thenReturn(new StringReader(query));
    WebScriptRequest request = mock(WebScriptRequest.class);
    when(request.getContent()).thenReturn(content);
    return extractJsonContent(request, jsonHelper, classz);
}
Also used : WebScriptRequest(org.springframework.extensions.webscripts.WebScriptRequest) Content(org.springframework.extensions.surf.util.Content) StringReader(java.io.StringReader)

Example 20 with WebScriptRequest

use of org.springframework.extensions.webscripts.WebScriptRequest in project alfresco-remote-api by Alfresco.

the class SerializerTestHelper method extractFromJson.

public SearchQuery extractFromJson(String json) throws IOException {
    Content content = mock(Content.class);
    when(content.getReader()).thenReturn(new StringReader(json));
    WebScriptRequest request = mock(WebScriptRequest.class);
    when(request.getContent()).thenReturn(content);
    return extractJsonContent(request, jsonHelper, SearchQuery.class);
}
Also used : WebScriptRequest(org.springframework.extensions.webscripts.WebScriptRequest) Content(org.springframework.extensions.surf.util.Content) StringReader(java.io.StringReader)

Aggregations

WebScriptRequest (org.springframework.extensions.webscripts.WebScriptRequest)23 WrappingWebScriptRequest (org.springframework.extensions.webscripts.WrappingWebScriptRequest)10 WebScriptServletRequest (org.springframework.extensions.webscripts.servlet.WebScriptServletRequest)9 HashMap (java.util.HashMap)8 HttpServletRequest (javax.servlet.http.HttpServletRequest)8 Test (org.junit.Test)8 Match (org.springframework.extensions.webscripts.Match)8 Params (org.alfresco.rest.framework.resource.parameters.Params)7 TransferException (org.alfresco.service.cmr.transfer.TransferException)7 Content (org.springframework.extensions.surf.util.Content)6 StringReader (java.io.StringReader)5 Matchers.anyString (org.mockito.Matchers.anyString)4 StringWriter (java.io.StringWriter)3 List (java.util.List)3 UnsupportedResourceOperationException (org.alfresco.rest.framework.core.exceptions.UnsupportedResourceOperationException)3 Farmer (org.alfresco.rest.framework.tests.api.mocks.Farmer)3 ResourceWebScriptPost (org.alfresco.rest.framework.webscripts.ResourceWebScriptPost)3 InvocationOnMock (org.mockito.invocation.InvocationOnMock)3 JSONWriter (org.springframework.extensions.webscripts.json.JSONWriter)3 File (java.io.File)2