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

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

Introduction

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

Prototype

public StringBuilder getBuilder() 

Source Link

Document

Return the underlying builder.

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);/*  w  w w  .j a  v a  2s.com*/
        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.GoogleDriveAuthentication.java

/**
 * Send an HTML formatted error message.
 *///  w  ww . j av  a2  s .c  om
private static void sendErrorMessage(ChannelHandlerContext ctx, String message) throws IOException {
    HttpResponse response = new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK);
    response.headers().set(CONTENT_TYPE, "text/html; charset=utf-8");
    StringBuilderWriter writer = new StringBuilderWriter(50);
    writer.append("<html><head><title>Hydra Query Master</title></head><body>");
    writer.append("<h3>");
    writer.append(message);
    writer.append("</h3></body></html>");
    ByteBuf textResponse = ByteBufUtil.encodeString(ctx.alloc(), CharBuffer.wrap(writer.getBuilder()),
            CharsetUtil.UTF_8);
    HttpContent content = new DefaultHttpContent(textResponse);
    response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, textResponse.readableBytes());
    ctx.write(response);
    ctx.write(content);
    ChannelFuture lastContentFuture = ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT);
    lastContentFuture.addListener(ChannelFutureListener.CLOSE);
}

From source file:io.apiman.manager.api.rest.impl.mappers.RestExceptionMapper.java

/**
 * Gets the full stack trace for the given exception and returns it as a
 * string./*from   w  w  w .j  a  v a 2  s .  c om*/
 * @param data
 */
private String getStackTrace(AbstractRestException data) {
    StringBuilderWriter writer = new StringBuilderWriter();
    data.printStackTrace(new PrintWriter(writer));
    return writer.getBuilder().toString();
}

From source file:io.apiman.gateway.api.rest.impl.mappers.RestExceptionMapper.java

/**
 * Gets the full stack trace for the given exception and returns it as a
 * string.//from  w  ww  . j  av a 2s .c  o m
 * @param data
 */
private String getStackTrace(AbstractEngineException data) {
    StringBuilderWriter writer = new StringBuilderWriter();
    try {
        data.printStackTrace(new PrintWriter(writer));
        return writer.getBuilder().toString();
    } finally {
        writer.close();
    }
}

From source file:io.apiman.gateway.platforms.servlet.components.HttpClientResponseImpl.java

/**
 * @see io.apiman.gateway.engine.components.http.IHttpClientResponse#getBody()
 *///from  w  ww  .  j  av  a2 s  .c  om
@Override
public String getBody() {
    InputStream body = null;
    try {
        body = connection.getInputStream();
        if (body != null) {
            StringBuilderWriter writer = new StringBuilderWriter();
            try {
                IOUtils.copy(body, writer);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            return writer.getBuilder().toString();
        } else {
            return null;
        }
    } catch (IOException e) {
        throw new RuntimeException(e);
    } finally {
        IOUtils.closeQuietly(body);
    }
}

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;//ww w.j  a v  a  2s.com
    }
    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:org.apache.hive.beeline.SeparatedValuesOutputFormat.java

private String getLine(StringBuilderWriter buf) {
    String line = buf.toString();
    buf.getBuilder().setLength(0);
    return line;
}

From source file:org.apereo.portal.portlet.container.cache.LimitingTeeWriterTest.java

@Test
public void testContentExceedsClearBuffer() throws IOException {
    final String content = "<p>Simple content</p>";
    final StringBuilderWriter stringWriter = new StringBuilderWriter();
    LimitingTeeWriter writer = new LimitingTeeWriter(content.length() - 1, NullWriter.NULL_WRITER, stringWriter,
            new Function<LimitingTeeWriter, Object>() {
                @Override// w w w  .j  a  v  a 2 s .  c o  m
                public Object apply(LimitingTeeWriter input) {
                    final StringBuilder builder = stringWriter.getBuilder();
                    builder.delete(0, builder.length());
                    return null;
                }
            });
    // write the first few chars
    writer.write(content.substring(0, 5));
    // verify content successfully buffered
    Assert.assertFalse(writer.isLimitReached());
    Assert.assertEquals(content.substring(0, 5), stringWriter.toString());

    // now write the remainder 
    writer.write(content.substring(5, content.length()));

    Assert.assertTrue(writer.isLimitReached());
    Assert.assertEquals("", stringWriter.toString());
    // try to write more and see no results
    writer.write("a");
    Assert.assertEquals("", stringWriter.toString());
}

From source file:org.geoserver.wfs.notification.GMLNotificationSerializer.java

String getInsertUpdateRawMessage(Feature feature) {
    final StringBuilderWriter sw = new StringBuilderWriter();
    long start = System.nanoTime();
    boolean success = true;
    try {/*w ww .  jav  a2s  .c om*/
        long modCount = catalogModCount.get();
        if (modCount != catalogModCountLocal.get().longValue()) {
            catalogModCountLocal.set(modCount);
            encoder.remove();
        }

        final Encoder encoder = this.encoder.get();

        TransformerHandler handler = STF.newTransformerHandler();
        handler.setResult(new StreamResult(sw));

        encoder.setInline(true);
        loadNamespaceBindings(encoder.getNamespaces(), feature, xmlConfig.getXSD().getSchema());

        encoder.encode(feature, GML._Feature, handler);

        return sw.toString();
    } catch (Exception e) {
        success = false;
        throw new WFSException(e);
    } finally {
        if (success) {
            double millis = ((double) System.nanoTime() - start) / 1000000;
            Name name = WFSNotify.getTypeName(feature);
            serializationMillis.add(millis);
            serializationChars.add(sw.getBuilder().length());
            Statistics statsByType = serializationMillisByType.get(name);
            if (statsByType == null) {
                Statistics newStats = new Statistics();
                statsByType = serializationMillisByType.put(name, newStats);
                if (statsByType == null) {
                    statsByType = newStats;
                }
            }
            statsByType.add(millis);
        }
    }
}

From source file:org.xmlsh.sh.shell.Shell.java

public void logExec(ICommandExpr c, boolean bExec, SourceLocation loc) {

    StringBuilderWriter sw = new StringBuilderWriter();
    PrintWriter w = new PrintWriter(sw);

    c.print(w, bExec);//w w w.j a va2 s  . c  o  m
    w.flush();

    StringBuilder sb = sw.getBuilder();

    if (sb.length() > 0) {
        String scmd = sb.toString();
        if (mOpts.mTrace && getLogger().isEnabled(mOpts.mTraceLevel)) {
            traceExec(loc, scmd);
        }
        if (mOpts.mExec) {
            if (loc != null) {
                printErr("+ " + loc.format(mOpts.mLocationFormat));
                printErr(scmd);
            } else
                printErr("+ " + scmd);
        }
    }
}