This commit is contained in:
Redkale
2020-06-13 09:38:25 +08:00
parent 146b81ee5e
commit 13217a11c0

View File

@@ -49,7 +49,7 @@ public class HttpMessageResponse extends HttpResponse {
} }
public static void finishHttpResult(MessageRecord msg, Runnable callback, MessageProducer producer, String resptopic, HttpResult result) { public static void finishHttpResult(MessageRecord msg, Runnable callback, MessageProducer producer, String resptopic, HttpResult result) {
if(callback!=null) callback.run(); if (callback != null) callback.run();
if (resptopic == null || resptopic.isEmpty()) return; if (resptopic == null || resptopic.isEmpty()) return;
ConvertType format = result.convert() == null ? null : result.convert().getFactory().getConvertType(); ConvertType format = result.convert() == null ? null : result.convert().getFactory().getConvertType();
byte[] content = HttpResultCoder.getInstance().encode(result); byte[] content = HttpResultCoder.getInstance().encode(result);
@@ -58,13 +58,19 @@ public class HttpMessageResponse extends HttpResponse {
@Override @Override
public void finishJson(org.redkale.service.RetResult ret) { public void finishJson(org.redkale.service.RetResult ret) {
if (message.isEmptyResptopic()) return; if (message.isEmptyResptopic()) {
if (callback != null) callback.run();
return;
}
finishHttpResult(new HttpResult(ret.clearConvert(), ret)); finishHttpResult(new HttpResult(ret.clearConvert(), ret));
} }
@Override @Override
public void finish(String obj) { public void finish(String obj) {
if (message.isEmptyResptopic()) return; if (message.isEmptyResptopic()) {
if (callback != null) callback.run();
return;
}
finishHttpResult(new HttpResult(obj == null ? "" : obj)); finishHttpResult(new HttpResult(obj == null ? "" : obj));
} }
@@ -75,32 +81,47 @@ public class HttpMessageResponse extends HttpResponse {
@Override @Override
public void finish(int status, String message) { public void finish(int status, String message) {
if (this.message.isEmptyResptopic()) return; if (this.message.isEmptyResptopic()) {
if (callback != null) callback.run();
return;
}
finishHttpResult(new HttpResult(message == null ? "" : message).status(status)); finishHttpResult(new HttpResult(message == null ? "" : message).status(status));
} }
@Override @Override
public void finish(final Convert convert, HttpResult result) { public void finish(final Convert convert, HttpResult result) {
if (message.isEmptyResptopic()) return; if (message.isEmptyResptopic()) {
if (callback != null) callback.run();
return;
}
if (convert != null) result.convert(convert); if (convert != null) result.convert(convert);
finishHttpResult(result); finishHttpResult(result);
} }
@Override @Override
public void finish(final byte[] bs) { public void finish(final byte[] bs) {
if (message.isEmptyResptopic()) return; if (message.isEmptyResptopic()) {
if (callback != null) callback.run();
return;
}
finishHttpResult(new HttpResult(bs)); finishHttpResult(new HttpResult(bs));
} }
@Override @Override
public void finish(final String contentType, final byte[] bs) { public void finish(final String contentType, final byte[] bs) {
if (message.isEmptyResptopic()) return; if (message.isEmptyResptopic()) {
if (callback != null) callback.run();
return;
}
finishHttpResult(new HttpResult(bs).contentType(contentType)); finishHttpResult(new HttpResult(bs).contentType(contentType));
} }
@Override @Override
public void finish(boolean kill, ByteBuffer buffer) { public void finish(boolean kill, ByteBuffer buffer) {
if (message.isEmptyResptopic()) return; if (message.isEmptyResptopic()) {
if (callback != null) callback.run();
return;
}
byte[] bs = new byte[buffer.remaining()]; byte[] bs = new byte[buffer.remaining()];
buffer.get(bs); buffer.get(bs);
finishHttpResult(new HttpResult(bs)); finishHttpResult(new HttpResult(bs));
@@ -108,7 +129,10 @@ public class HttpMessageResponse extends HttpResponse {
@Override @Override
public void finish(boolean kill, ByteBuffer... buffers) { public void finish(boolean kill, ByteBuffer... buffers) {
if (message.isEmptyResptopic()) return; if (message.isEmptyResptopic()) {
if (callback != null) callback.run();
return;
}
int size = 0; int size = 0;
for (ByteBuffer buf : buffers) { for (ByteBuffer buf : buffers) {
size += buf.remaining(); size += buf.remaining();