throws IOException
{
final Constraints.Distilled distilled =
Constraints.distill(constraints, false);
final OutboundRequest request = nextRequest(distilled);
// must wrap to provide getUnfulfilledConstraints implementation
return new OutboundRequest() {
public void populateContext(Collection context) {
request.populateContext(context);
}
public InvocationConstraints getUnfulfilledConstraints() {
return distilled.getUnfulfilledConstraints();
}
public OutputStream getRequestOutputStream() {
return request.getRequestOutputStream();
}
public InputStream getResponseInputStream() {
return request.getResponseInputStream();
}
public boolean getDeliveryStatus() {
return request.getDeliveryStatus();
}
public void abort() { request.abort(); }
};
}