Newer
Older
simple-jdbc-stats / src / nl / astraeus / jdbc / web / NanoHttpdSimpleWeb.java
package nl.astraeus.jdbc.web;

import fi.iki.elonen.NanoHTTPD;

public class NanoHttpdSimpleWeb extends NanoHTTPD {
    private JdbcStatsMappingProvider mappingProvider;

    public NanoHttpdSimpleWeb(int port, JdbcStatsMappingProvider mappingProvider) {
        super(port);

        this.mappingProvider = mappingProvider;
    }

    @Override
    public Response serve(IHTTPSession session) {
        String uri = session.getUri();

/*        try {
            PageFinder finder = new PageFinder(uri, mappingProvider);

            Map<String, String> files = new HashMap<String, String>();
            session.parseBody(files);

            NanoHttpdRequestWrapper wrapper = new NanoHttpdRequestWrapper(getListeningPort(), session);

            RequestWrapperHolder.set(wrapper);

            Page page = finder.findPage();

            ByteArrayOutputStream out = new ByteArrayOutputStream();

            page.execute(session.getMethod(), out, mappingProvider.getLoginPage().getUri());

            out.close();

            byte[] buffer = out.toByteArray();

            ByteArrayInputStream in = new ByteArrayInputStream(buffer);
            // todo: mimetypes
            Response response = new Response(wrapper.getStatus(), wrapper.getContentType(), in, -1);
            for (Map.Entry<String, String> entry : wrapper.getResponseHeaders().entrySet()) {
                response.addHeader(entry.getKey(), entry.getValue());
            }
            return response;
        } catch (Exception e) {
            logger.warn(e.getMessage(), e);

            throw new IllegalStateException(e);
        } finally {
            RequestWrapperHolder.remove();
        }*/

        return newFixedLengthResponse("Ok");
    }

}