Example usage for org.apache.http.client.fluent Response saveContent

List of usage examples for org.apache.http.client.fluent Response saveContent

Introduction

In this page you can find the example usage for org.apache.http.client.fluent Response saveContent.

Prototype

public void saveContent(final File file) throws IOException 

Source Link

Usage

From source file:aiai.ai.station.actors.DownloadResourceActor.java

public void fixedDelay() {
    if (globals.isUnitTesting) {
        return;/*from   w  w w.  j ava2  s . c om*/
    }
    if (!globals.isStationEnabled) {
        return;
    }

    DownloadResourceTask task;
    while ((task = poll()) != null) {
        //            if (Boolean.TRUE.equals(preparedMap.get(task.getId()))) {
        //                continue;
        //            }
        AssetFile assetFile = StationResourceUtils.prepareResourceFile(task.targetDir, task.binaryDataType,
                task.id, null);
        if (assetFile.isError) {
            log.warn("Resource can't be downloaded. Asset file initialization was failed, {}", assetFile);
            continue;
        }
        if (assetFile.isContent) {
            log.info("Resource was already downloaded. Asset file: {}", assetFile.file.getPath());
            //                preparedMap.put(task.getId(), true);
            continue;
        }

        try {
            Request request = Request.Get(targetUrl + '/' + task.getBinaryDataType() + '/' + task.getId())
                    .connectTimeout(5000).socketTimeout(5000);

            Response response;
            if (globals.isSecureRestUrl) {
                response = executor.executor.execute(request);
            } else {
                response = request.execute();
            }
            response.saveContent(assetFile.file);

            //                preparedMap.put(task.getId(), true);
            log.info("Resource #{} was loaded", task.getId());
        } catch (HttpResponseException e) {
            if (e.getStatusCode() == HttpServletResponse.SC_GONE) {
                log.warn("Resource with id {} wasn't found", task.getId());
            } else if (e.getStatusCode() == HttpServletResponse.SC_CONFLICT) {
                log.warn("Resource with id {} is broken and need to be recreated", task.getId());
            } else {
                log.error("HttpResponseException.getStatusCode(): {}", e.getStatusCode());
                log.error("HttpResponseException", e);
            }
        } catch (SocketTimeoutException e) {
            log.error("SocketTimeoutException", e);
        } catch (IOException e) {
            log.error("IOException", e);
        }
    }
}

From source file:aiai.ai.station.actors.DownloadSnippetActor.java

public void fixedDelay() {
    if (globals.isUnitTesting) {
        return;/*  ww  w. j av  a 2s.  c  om*/
    }
    if (!globals.isStationEnabled) {
        return;
    }

    DownloadSnippetTask task;
    while ((task = poll()) != null) {
        if (Boolean.TRUE.equals(preparedMap.get(task.getSnippetCode()))) {
            continue;
        }
        final String snippetCode = task.snippetCode;

        AssetFile assetFile = StationResourceUtils.prepareResourceFile(globals.stationResourcesDir,
                Enums.BinaryDataType.SNIPPET, task.snippetCode, task.filename);
        if (assetFile.isError) {
            log.warn("Resource can't be downloaded. Asset file initialization was failed, {}", assetFile);
            continue;
        }
        if (assetFile.isContent) {
            log.info("Snippet was already downloaded. Snippet file: {}", assetFile.file.getPath());
            preparedMap.put(snippetCode, true);
            continue;
        }

        Checksum checksum = null;
        if (globals.isAcceptOnlySignedSnippets) {
            try {
                Request request = Request.Get(snippetChecksumUrl + '/' + snippetCode).connectTimeout(5000)
                        .socketTimeout(5000);

                Response response;
                if (globals.isSecureRestUrl) {
                    response = executor.executor.execute(request);
                } else {
                    response = request.execute();
                }
                String checksumStr = response.returnContent().asString(StandardCharsets.UTF_8);

                checksum = Checksum.fromJson(checksumStr);
            } catch (HttpResponseException e) {
                logError(snippetCode, e);
                break;
            } catch (SocketTimeoutException e) {
                log.error("SocketTimeoutException", e);
                break;
            } catch (IOException e) {
                log.error("IOException", e);
                break;
            } catch (Throwable th) {
                log.error("Throwable", th);
                return;
            }
        }

        try {
            File snippetTempFile = new File(assetFile.file.getAbsolutePath() + ".tmp");
            //  @GetMapping("/rest-anon/payload/resource/{type}/{code}")
            Request request = Request.Get(targetUrl + '/' + snippetCode).connectTimeout(5000)
                    .socketTimeout(5000);

            Response response;
            if (globals.isSecureRestUrl) {
                response = executor.executor.execute(request);
            } else {
                response = request.execute();
            }
            response.saveContent(snippetTempFile);

            boolean isOk = true;
            if (globals.isAcceptOnlySignedSnippets) {
                CheckSumAndSignatureStatus status;
                try (FileInputStream fis = new FileInputStream(snippetTempFile)) {
                    status = checksumWithSignatureService.verifyChecksumAndSignature(checksum, snippetCode, fis,
                            true);
                }
                if (status.isSignatureOk == null) {
                    log.warn(
                            "globals.isAcceptOnlySignedSnippets is {} but snippet with code {} doesn't have signature",
                            globals.isAcceptOnlySignedSnippets, snippetCode);
                    continue;
                }
                if (Boolean.FALSE.equals(status.isSignatureOk)) {
                    log.warn(
                            "globals.isAcceptOnlySignedSnippets is {} but snippet with code {} has the broken signature",
                            globals.isAcceptOnlySignedSnippets, snippetCode);
                    continue;
                }
                isOk = (status.isOk && !Boolean.FALSE.equals(status.isSignatureOk));
            }
            if (isOk) {
                //noinspection ResultOfMethodCallIgnored
                snippetTempFile.renameTo(assetFile.file);
                preparedMap.put(snippetCode, true);
            } else {
                //noinspection ResultOfMethodCallIgnored
                snippetTempFile.delete();
            }
        } catch (HttpResponseException e) {
            logError(snippetCode, e);
        } catch (SocketTimeoutException e) {
            log.error("SocketTimeoutException", e.toString());
        } catch (IOException e) {
            log.error("IOException", e);
        }
    }
}