Package org.apache.tomcat.lite.service

Source Code of org.apache.tomcat.lite.service.IOStatus

/*
*/
package org.apache.tomcat.lite.service;

import java.io.IOException;
import java.util.List;

import org.apache.tomcat.lite.http.HttpConnectionPool;
import org.apache.tomcat.lite.http.HttpRequest;
import org.apache.tomcat.lite.http.HttpResponse;
import org.apache.tomcat.lite.http.HttpWriter;
import org.apache.tomcat.lite.http.HttpChannel.HttpService;
import org.apache.tomcat.lite.http.HttpConnectionPool.RemoteServer;
import org.apache.tomcat.lite.http.HttpConnector.HttpConnection;
import org.apache.tomcat.lite.io.IOChannel;

/**
* Dump status of a connection pool.
*/
public class IOStatus implements HttpService {

    private HttpConnectionPool pool;

    public IOStatus(HttpConnectionPool pool) {
        this.pool = pool;
    }

    @Override
    public void service(HttpRequest httpReq, HttpResponse httpRes)
            throws IOException {
        HttpConnectionPool sc = pool;
        HttpWriter out = httpRes.getBodyWriter();

        httpRes.setContentType("text/plain");
        // TODO: use JMX/DynamicObject to get all public info
        out.println("hosts=" + sc.getTargetCount());
        out.println("waiting=" + sc.getSocketCount());
        out.println("closed=" + sc.getClosedSockets());
        out.println();

        for (RemoteServer remote: sc.getServers()) {
            out.append(remote.target);
            out.append("=");
            List<HttpConnection> connections = remote.getConnections();
            out.println(Integer.toString(connections.size()));

            for (IOChannel ch: connections) {
                out.println(ch.getId() +
                        " " + ch.toString());
            }
            out.println();
        }

    }

}
TOP

Related Classes of org.apache.tomcat.lite.service.IOStatus

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.