@@ -105,51 +105,14 @@ private Mono<Void> handleNormalResponse(ServerHttpResponse serverHttpResponse, E
105
105
106
106
}
107
107
108
- private Mono <Void > sendDeferResponse (ServerHttpResponse serverHttpResponse , ExecutionResult executionResult , Publisher <DeferredExecutionResult > deferredResults ) {
108
+ private Mono <Void > sendDeferResponse (ServerHttpResponse serverHttpResponse , ExecutionResult executionResult , Publisher <DeferredExecutionResult > deferredResults ) {
109
109
serverHttpResponse .setStatusCode (HttpStatus .OK );
110
110
HttpHeaders headers = serverHttpResponse .getHeaders ();
111
111
headers .set ("Content-Type" , "multipart/mixed; boundary=\" -\" " );
112
112
headers .set ("transfer-encoding" , "chunked" );
113
- // return message.headers().contains(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED, true);
114
113
headers .set ("Connection" , "keep-alive" );
115
114
116
115
117
- DataBufferFactory dataBufferFactory = serverHttpResponse .bufferFactory ();
118
-
119
-
120
- // serverHttpResponse.writeAndFlushWith(Mono.just(firstDataBuffer)).subscribe(aVoid -> {
121
- // System.out.println("done FIRST");
122
- // }, throwable -> {
123
- // throwable.printStackTrace();
124
- // }, () -> {
125
- // System.out.println("completed FIRST");
126
- // });
127
-
128
-
129
- // Flux<Mono<DataBuffer>> dataBufferFlux = Flux.from(deferredResults).map(deferredExecutionResult -> {
130
- // DeferPart deferPart = new DeferPart(executionResult.toSpecification());
131
- // StringBuilder builder = new StringBuilder();
132
- // String body = deferPart.write();
133
- // System.out.println("body:" + body);
134
- // builder.append(CRLF).append("---").append(CRLF);
135
- // builder.append(body);
136
- // Mono<DataBuffer> dataBuffer = strToDataBuffer(dataBufferFactory, builder.toString());
137
- // return dataBuffer;
138
- // });
139
-
140
- // Flux<Mono<DataBuffer>> resultFlux = Flux.mergeSequential(Flux.just(firstDataBuffer), dataBufferFlux);
141
- // serverHttpResponse.writeAndFlushWith(resultFlux).subscribe(aVoid -> {
142
- // StringBuilder end = new StringBuilder();
143
- // end.append(CRLF).append("-----").append(CRLF);
144
- // serverHttpResponse.writeWith(strToDataBuffer(dataBufferFactory, end.toString()));
145
- // serverHttpResponse.setComplete();
146
- //
147
- // });
148
-
149
- // serverHttpResponse.beforeCommit(() -> {
150
- // System.out.println("BEFORE COMMIT");
151
- // });
152
-
153
116
Flux <Mono <DataBuffer >> dataBufferFlux = Flux .create (monoFluxSink -> {
154
117
155
118
Mono <DataBuffer > firstDataBuffer = firstResult (executionResult );
@@ -168,52 +131,33 @@ public void onSubscribe(Subscription s) {
168
131
@ Override
169
132
public void onNext (DeferredExecutionResult executionResult ) {
170
133
try {
171
- // DeferPart deferPart = new DeferPart(executionResult.toSpecification());
172
- // String body = deferPart.write();
173
- // writer.append(CRLF).append("---").append(CRLF);
174
- // writer.write(body);
175
- System .out .println ("is comitted:" + serverHttpResponse .isCommitted ());
176
134
DeferPart deferPart = new DeferPart (executionResult .toSpecification ());
177
135
StringBuilder builder = new StringBuilder ();
178
136
String body = deferPart .write ();
179
- System .out .println ("body:" + body );
180
137
builder .append (CRLF ).append ("---" ).append (CRLF );
181
138
builder .append (body );
182
139
Mono <DataBuffer > dataBuffer = strToDataBuffer (builder .toString ());
183
140
monoFluxSink .next (dataBuffer );
184
141
} catch (Exception e ) {
185
- e . printStackTrace ( );
142
+ monoFluxSink . error ( e );
186
143
}
187
144
}
188
145
189
146
@ Override
190
147
public void onError (Throwable t ) {
191
- t . printStackTrace ( );
148
+ monoFluxSink . error ( t );
192
149
}
193
150
194
151
@ Override
195
152
public void onComplete () {
196
- // writer.append(CRLF).append("-----").append(CRLF);
197
- // writer.close();
198
- // asyncContext.complete();
199
- System .out .println ("END!!!" );
200
153
StringBuilder end = new StringBuilder ();
201
154
end .append (CRLF ).append ("-----" ).append (CRLF );
202
155
Mono <DataBuffer > dataBuffer = strToDataBuffer (end .toString ());
203
156
monoFluxSink .next (dataBuffer );
204
- // serverHttpResponse.writeAndFlushWith(Mono.just().subscribe(aVoid -> {
205
- // System.out.println("done END");
206
- // }, throwable -> {
207
- // throwable.printStackTrace();
208
- // }, () -> {
209
- // System.out.println("completed END");
210
- // serverHttpResponse.setComplete();
211
- // });
212
157
}
213
158
});
214
159
215
160
});
216
-
217
161
return serverHttpResponse .writeAndFlushWith (dataBufferFlux );
218
162
}
219
163
0 commit comments