Example usage for org.apache.commons.io.output StringBuilderWriter write

List of usage examples for org.apache.commons.io.output StringBuilderWriter write

Introduction

In this page you can find the example usage for org.apache.commons.io.output StringBuilderWriter write.

Prototype

@Override
public void write(String value) 

Source Link

Document

Write a String to the StringBuilder .

Usage

From source file:com.addthis.hydra.query.web.LegacyHandler.java

public static Query handleQuery(Query query, KVPairs kv, HttpRequest request, ChannelHandlerContext ctx)
        throws IOException, QueryException {

    String async = kv.getValue("async");
    if (async == null) {
        return query;
    } else if (async.equals("new")) {
        StringBuilderWriter writer = new StringBuilderWriter(50);
        HttpResponse response = HttpUtils.startResponse(writer);
        String asyncUuid = genAsyncUuid();
        asyncCache.put(asyncUuid, query);
        Query.traceLog.info("async create {} from {}", asyncUuid, query);
        writer.write("{\"id\":\"" + asyncUuid + "\"}");
        ByteBuf textResponse = ByteBufUtil.encodeString(ctx.alloc(), CharBuffer.wrap(writer.getBuilder()),
                CharsetUtil.UTF_8);//from  w  ww . jav a2  s.c  om
        HttpContent content = new DefaultHttpContent(textResponse);
        response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, textResponse.readableBytes());
        if (HttpHeaders.isKeepAlive(request)) {
            response.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.KEEP_ALIVE);
        }
        ctx.write(response);
        ctx.write(content);
        ChannelFuture lastContentFuture = ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT);
        if (!HttpHeaders.isKeepAlive(request)) {
            lastContentFuture.addListener(ChannelFutureListener.CLOSE);
        }
        return null;
    } else {
        Query asyncQuery = asyncCache.getIfPresent(async);
        asyncCache.invalidate(async);
        Query.traceLog.info("async restore {} as {}", async, asyncQuery);
        if (asyncQuery != null) {
            return asyncQuery;
        } else {
            throw new QueryException("Missing Async Id");
        }
    }
}

From source file:com.addthis.hydra.query.web.HttpQueryHandler.java

private void fastHandle(ChannelHandlerContext ctx, FullHttpRequest request, String target, KVPairs kv)
        throws Exception {
    StringBuilderWriter writer = new StringBuilderWriter(50);
    HttpResponse response = HttpUtils.startResponse(writer);
    response.headers().add("Access-Control-Allow-Origin", "*");

    switch (target) {
    case "/metrics": {
        fakeMetricsServlet.writeMetrics(writer, kv);
        break;//from w  w w  . ja  va2s.c o m
    }
    case "/running":
    case "/query/list":
    case "/query/running":
    case "/v2/queries/running.list": {
        Jackson.defaultMapper().writerWithDefaultPrettyPrinter().writeValue(writer, tracker.getRunning());
        break;
    }
    case "/done":
    case "/complete":
    case "/query/done":
    case "/query/complete":
    case "/completed/list":
    case "/v2/queries/finished.list": {
        Jackson.defaultMapper().writerWithDefaultPrettyPrinter().writeValue(writer, tracker.getCompleted());
        break;
    }
    case "/query/all":
    case "/v2/queries/list": {
        Collection<QueryEntryInfo> aggregatingSnapshot = tracker.getRunning();
        aggregatingSnapshot.addAll(tracker.getCompleted());
        Jackson.defaultMapper().writerWithDefaultPrettyPrinter().writeValue(writer, aggregatingSnapshot);
        break;
    }
    case "/cancel":
    case "/query/cancel": {
        if (tracker.cancelRunning(kv.getValue("uuid"))) {
            writer.write("canceled " + kv.getValue("uuid"));
        } else {
            writer.write("canceled failed for " + kv.getValue("uuid"));
            response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR);
        }
        break;
    }
    case "/workers":
    case "/query/workers":
    case "/v2/queries/workers": {
        Map<String, Integer> workerSnapshot = meshQueryMaster.worky().values().stream()
                .collect(toMap(WorkerData::hostName, WorkerData::queryLeases));
        Jackson.defaultMapper().writerWithDefaultPrettyPrinter().writeValue(writer, workerSnapshot);
        break;
    }
    case "/host":
    case "/host/list":
    case "/v2/host/list":
        String queryStatusUuid = kv.getValue("uuid");
        QueryEntry queryEntry = tracker.getQueryEntry(queryStatusUuid);
        if (queryEntry != null) {
            DetailedStatusHandler hostDetailsHandler = new DetailedStatusHandler(writer, response, ctx, request,
                    queryEntry);
            hostDetailsHandler.handle();
            return;
        } else {
            QueryEntryInfo queryEntryInfo = tracker.getCompletedQueryInfo(queryStatusUuid);
            if (queryEntryInfo != null) {
                Jackson.defaultMapper().writerWithDefaultPrettyPrinter().writeValue(writer, queryEntryInfo);
            } else {
                log.trace("could not find query for status");
                if (ctx.channel().isActive()) {
                    sendError(ctx, new HttpResponseStatus(NOT_FOUND.code(), "could not find query"));
                }
                return;
            }
            break;
        }
    case "/git":
    case "/v2/settings/git.properties": {
        try {
            Jackson.defaultMapper().writeValue(writer,
                    ConfigFactory.parseResourcesAnySyntax("/hydra-git.properties").getConfig("git"));
        } catch (Exception ex) {
            String noGitWarning = "Error loading git.properties, possibly jar was not compiled with maven.";
            log.warn(noGitWarning);
            writer.write(noGitWarning);
        }
        break;
    }
    case "/query/encode": {
        Query q = new Query(null, new String[] { kv.getValue("query", kv.getValue("path", "")) }, null);
        JSONArray path = CodecJSON.encodeJSON(q).getJSONArray("path");
        writer.write(path.toString());
        break;
    }
    case "/query/decode": {
        String qo = "{path:" + kv.getValue("query", kv.getValue("path", "")) + "}";
        Query q = CodecJSON.decodeString(Query.class, qo);
        writer.write(q.getPaths()[0]);
        break;
    }
    default:
        // forward to static file server
        ctx.pipeline().addLast(staticFileHandler);
        request.retain();
        ctx.fireChannelRead(request);
        return; // don't do text response clean up
    }
    log.trace("response being sent {}", writer);
    ByteBuf textResponse = ByteBufUtil.encodeString(ctx.alloc(), CharBuffer.wrap(writer.getBuilder()), UTF_8);
    HttpContent content = new DefaultHttpContent(textResponse);
    response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, textResponse.readableBytes());
    if (HttpHeaders.isKeepAlive(request)) {
        response.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.KEEP_ALIVE);
    }
    ctx.write(response);
    ctx.write(content);
    ChannelFuture lastContentFuture = ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT);
    log.trace("response pending");
    if (!HttpHeaders.isKeepAlive(request)) {
        log.trace("Setting close listener");
        ((Future<Void>) lastContentFuture).addListener(ChannelFutureListener.CLOSE);
    }
}

From source file:us.ihmc.rtps.visualizer.HexStringMessage.java

@Override
public String toString() {
    try {//from   w w w  .jav  a2  s .c o m
        StringBuilderWriter writer = new StringBuilderWriter(data.length << 1 + 2);
        writer.write("Encapsulation: ");
        writer.write(endianness);
        writer.write(System.lineSeparator());
        WriterOutputStream os = new WriterOutputStream(writer);
        HexDump.dump(data, 0, os, 0);
        os.close();
        return writer.toString();
    } catch (ArrayIndexOutOfBoundsException | IllegalArgumentException | IOException e) {
        return e.getMessage();
    }

}