parent
3854861a8a
commit
c9aba1eaad
|
@ -37,12 +37,11 @@ dependencies {
|
||||||
optional("org.eclipse.jetty:jetty-servlet") {
|
optional("org.eclipse.jetty:jetty-servlet") {
|
||||||
exclude group: "jakarta.servlet", module: "jakarta.servlet-api"
|
exclude group: "jakarta.servlet", module: "jakarta.servlet-api"
|
||||||
}
|
}
|
||||||
/* Jetty 12: see org.springframework.http.server.reactive.JettyHttpHandlerAdapter
|
optional("org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.0.beta0") {
|
||||||
optional("org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.0.alpha2") {
|
|
||||||
exclude group: "jakarta.servlet", module: "jakarta.servlet-api"
|
exclude group: "jakarta.servlet", module: "jakarta.servlet-api"
|
||||||
exclude group: "org.eclipse.jetty", module: "jetty-session"
|
exclude group: "org.eclipse.jetty", module: "jetty-server"
|
||||||
|
exclude group: "org.eclipse.jetty", module: "jetty-servlet"
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
optional("org.eclipse.jetty:jetty-reactive-httpclient")
|
optional("org.eclipse.jetty:jetty-reactive-httpclient")
|
||||||
optional('org.apache.httpcomponents.client5:httpclient5')
|
optional('org.apache.httpcomponents.client5:httpclient5')
|
||||||
optional('org.apache.httpcomponents.core5:httpcore5-reactive')
|
optional('org.apache.httpcomponents.core5:httpcore5-reactive')
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
package org.springframework.http.server.reactive;
|
package org.springframework.http.server.reactive;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
|
@ -52,10 +53,8 @@ public class JettyHttpHandlerAdapter extends ServletHttpHandlerAdapter {
|
||||||
private static final boolean jetty11Present = ClassUtils.isPresent(
|
private static final boolean jetty11Present = ClassUtils.isPresent(
|
||||||
"org.eclipse.jetty.server.HttpOutput", JettyHttpHandlerAdapter.class.getClassLoader());
|
"org.eclipse.jetty.server.HttpOutput", JettyHttpHandlerAdapter.class.getClassLoader());
|
||||||
|
|
||||||
/* Jetty 12: see spring-web.gradle
|
|
||||||
private static final boolean jetty12Present = ClassUtils.isPresent(
|
private static final boolean jetty12Present = ClassUtils.isPresent(
|
||||||
"org.eclipse.jetty.ee10.servlet.HttpOutput", JettyHttpHandlerAdapter.class.getClassLoader());
|
"org.eclipse.jetty.ee10.servlet.HttpOutput", JettyHttpHandlerAdapter.class.getClassLoader());
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
public JettyHttpHandlerAdapter(HttpHandler httpHandler) {
|
public JettyHttpHandlerAdapter(HttpHandler httpHandler) {
|
||||||
|
@ -85,12 +84,10 @@ public class JettyHttpHandlerAdapter extends ServletHttpHandlerAdapter {
|
||||||
return new Jetty11ServerHttpResponse(
|
return new Jetty11ServerHttpResponse(
|
||||||
response, context, getDataBufferFactory(), getBufferSize(), request);
|
response, context, getDataBufferFactory(), getBufferSize(), request);
|
||||||
}
|
}
|
||||||
/* Jetty 12: see spring-web.gradle
|
|
||||||
else if (jetty12Present) {
|
else if (jetty12Present) {
|
||||||
return new Jetty12ServerHttpResponse(
|
return new Jetty12ServerHttpResponse(
|
||||||
response, context, getDataBufferFactory(), getBufferSize(), request);
|
response, context, getDataBufferFactory(), getBufferSize(), request);
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
else {
|
else {
|
||||||
return super.createResponse(response, context, request);
|
return super.createResponse(response, context, request);
|
||||||
}
|
}
|
||||||
|
@ -178,7 +175,6 @@ public class JettyHttpHandlerAdapter extends ServletHttpHandlerAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Jetty 12: see spring-web.gradle
|
|
||||||
private static final class Jetty12ServerHttpResponse extends ServletServerHttpResponse {
|
private static final class Jetty12ServerHttpResponse extends ServletServerHttpResponse {
|
||||||
|
|
||||||
Jetty12ServerHttpResponse(HttpServletResponse response, AsyncContext asyncContext,
|
Jetty12ServerHttpResponse(HttpServletResponse response, AsyncContext asyncContext,
|
||||||
|
@ -192,14 +188,18 @@ public class JettyHttpHandlerAdapter extends ServletHttpHandlerAdapter {
|
||||||
protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException {
|
protected int writeToOutputStream(DataBuffer dataBuffer) throws IOException {
|
||||||
OutputStream output = getOutputStream();
|
OutputStream output = getOutputStream();
|
||||||
if (output instanceof org.eclipse.jetty.ee10.servlet.HttpOutput httpOutput) {
|
if (output instanceof org.eclipse.jetty.ee10.servlet.HttpOutput httpOutput) {
|
||||||
ByteBuffer input = dataBuffer.toByteBuffer();
|
int len = 0;
|
||||||
int len = input.remaining();
|
try (DataBuffer.ByteBufferIterator iterator = dataBuffer.readableByteBuffers()) {
|
||||||
httpOutput.write(input);
|
while (iterator.hasNext() && httpOutput.isReady()) {
|
||||||
|
ByteBuffer byteBuffer = iterator.next();
|
||||||
|
len += byteBuffer.remaining();
|
||||||
|
httpOutput.write(byteBuffer);
|
||||||
|
}
|
||||||
|
}
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
return super.writeToOutputStream(dataBuffer);
|
return super.writeToOutputStream(dataBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue