@@ -105,51 +105,14 @@ private Mono<Void> handleNormalResponse(ServerHttpResponse serverHttpResponse, E
105105
106106 }
107107
108- private Mono <Void > sendDeferResponse (ServerHttpResponse serverHttpResponse , ExecutionResult executionResult , Publisher <DeferredExecutionResult > deferredResults ) {
108+ private Mono <Void > sendDeferResponse (ServerHttpResponse serverHttpResponse , ExecutionResult executionResult , Publisher <DeferredExecutionResult > deferredResults ) {
109109 serverHttpResponse .setStatusCode (HttpStatus .OK );
110110 HttpHeaders headers = serverHttpResponse .getHeaders ();
111111 headers .set ("Content-Type" , "multipart/mixed; boundary=\" -\" " );
112112 headers .set ("transfer-encoding" , "chunked" );
113- // return message.headers().contains(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED, true);
114113 headers .set ("Connection" , "keep-alive" );
115114
116115
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-
153116 Flux <Mono <DataBuffer >> dataBufferFlux = Flux .create (monoFluxSink -> {
154117
155118 Mono <DataBuffer > firstDataBuffer = firstResult (executionResult );
@@ -168,52 +131,33 @@ public void onSubscribe(Subscription s) {
168131 @ Override
169132 public void onNext (DeferredExecutionResult executionResult ) {
170133 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 ());
176134 DeferPart deferPart = new DeferPart (executionResult .toSpecification ());
177135 StringBuilder builder = new StringBuilder ();
178136 String body = deferPart .write ();
179- System .out .println ("body:" + body );
180137 builder .append (CRLF ).append ("---" ).append (CRLF );
181138 builder .append (body );
182139 Mono <DataBuffer > dataBuffer = strToDataBuffer (builder .toString ());
183140 monoFluxSink .next (dataBuffer );
184141 } catch (Exception e ) {
185- e . printStackTrace ( );
142+ monoFluxSink . error ( e );
186143 }
187144 }
188145
189146 @ Override
190147 public void onError (Throwable t ) {
191- t . printStackTrace ( );
148+ monoFluxSink . error ( t );
192149 }
193150
194151 @ Override
195152 public void onComplete () {
196- // writer.append(CRLF).append("-----").append(CRLF);
197- // writer.close();
198- // asyncContext.complete();
199- System .out .println ("END!!!" );
200153 StringBuilder end = new StringBuilder ();
201154 end .append (CRLF ).append ("-----" ).append (CRLF );
202155 Mono <DataBuffer > dataBuffer = strToDataBuffer (end .toString ());
203156 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- // });
212157 }
213158 });
214159
215160 });
216-
217161 return serverHttpResponse .writeAndFlushWith (dataBufferFlux );
218162 }
219163
0 commit comments