All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.stjs.testing.driver.NoBodyHttpExchange Maven / Gradle / Ivy

There is a newer version: 3.3.2.2
Show newest version
package org.stjs.testing.driver;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.URI;

import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpPrincipal;

public class NoBodyHttpExchange extends HttpExchange {

	private final HttpExchange delegate;

	public NoBodyHttpExchange(final HttpExchange delegate) {
		this.delegate = delegate;
	}

	@Override
	public Headers getRequestHeaders() {
		return delegate.getRequestHeaders();
	}

	@Override
	public Headers getResponseHeaders() {
		return delegate.getResponseHeaders();
	}

	@Override
	public URI getRequestURI() {
		return delegate.getRequestURI();
	}

	@Override
	public String getRequestMethod() {
		return delegate.getRequestMethod();
	}

	@Override
	public HttpContext getHttpContext() {
		return delegate.getHttpContext();
	}

	@Override
	public void close() {
		delegate.close();
	}

	@Override
	public InputStream getRequestBody() {
		return delegate.getRequestBody();
	}

	@Override
	public OutputStream getResponseBody() {
		// we call the superclass to make sure that the lifecycle of the real exchange is respected
		// but we don't actually do anything with the result.
		delegate.getResponseBody();
		return new NullOutputStream();
	}

	@Override
	public void sendResponseHeaders(final int i, final long l) throws IOException {
		delegate.sendResponseHeaders(i, l);
	}

	@Override
	public InetSocketAddress getRemoteAddress() {
		return delegate.getRemoteAddress();
	}

	@Override
	public int getResponseCode() {
		return delegate.getResponseCode();
	}

	@Override
	public InetSocketAddress getLocalAddress() {
		return delegate.getLocalAddress();
	}

	@Override
	public String getProtocol() {
		return delegate.getProtocol();
	}

	@Override
	public Object getAttribute(final String s) {
		return delegate.getAttribute(s);
	}

	@Override
	public void setAttribute(final String s, final Object o) {
		delegate.setAttribute(s, o);
	}

	@Override
	public void setStreams(final InputStream inputStream, final OutputStream outputStream) {
		delegate.setStreams(inputStream, outputStream);
	}

	@Override
	public HttpPrincipal getPrincipal() {
		return delegate.getPrincipal();
	}

	private static class NullOutputStream extends OutputStream {
		@Override public void write(final int b) throws IOException {
			// don't write anything...
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy