private static ServiceMessage enichResponse(ServiceMessage msg) { return ServiceMessage.from(msg).header(CLIENT_RECV_TIME, System.currentTimeMillis()).build(); } }
private static ServiceMessage enrichResponse(ServiceMessage msg) { return ServiceMessage.from(msg).header(CLIENT_RECV_TIME, System.currentTimeMillis()).build(); }
public ServiceMessage messageWithByteBuf() { return ServiceMessage.from(serviceMessage).data(payloadMessage.sliceData()).build(); }
@Override public Mono<ServiceMessage> one(ServiceMessage message) { Callable<ServiceMessage> callable = () -> { long value = System.currentTimeMillis(); return ServiceMessage.from(message) .header(SERVICE_RECV_TIME, value) .header(SERVICE_SEND_TIME, value) .data("hello") .build(); }; return Mono.fromCallable(callable); }
@Override public Mono<ServiceMessage> one(ServiceMessage message) { Callable<ServiceMessage> callable = () -> { long value = System.currentTimeMillis(); return ServiceMessage.from(message) .header(SERVICE_RECV_TIME, value) .header(SERVICE_SEND_TIME, value) .data("hello") .build(); }; return Mono.fromCallable(callable); }
@Override public Flux<ServiceMessage> infiniteStream(ServiceMessage message) { Callable<ServiceMessage> callable = () -> ServiceMessage.from(message) .header(SERVICE_SEND_TIME, System.currentTimeMillis()) .build(); return Mono.fromCallable(callable).subscribeOn(Schedulers.parallel()).repeat(); } }
@Override public Flux<ServiceMessage> infiniteStream(ServiceMessage message) { Callable<ServiceMessage> callable = () -> ServiceMessage.from(message) .header(SERVICE_SEND_TIME, System.currentTimeMillis()) .build(); return Mono.fromCallable(callable).subscribeOn(Schedulers.parallel()).repeat(); } }
private ServiceMessage toServiceMessage(MethodInfo methodInfo, Object... params) { if (methodInfo.parameterCount() != 0 && params[0] instanceof ServiceMessage) { return ServiceMessage.from((ServiceMessage) params[0]) .qualifier(methodInfo.serviceName(), methodInfo.methodName()) .build(); } return ServiceMessage.builder() .qualifier(methodInfo.serviceName(), methodInfo.methodName()) .data(methodInfo.parameterCount() != 0 ? params[0] : null) .build(); }
private ServiceMessage toServiceMessage(MethodInfo methodInfo, Object... params) { if (methodInfo.parameterCount() != 0 && params[0] instanceof ServiceMessage) { return ServiceMessage.from((ServiceMessage) params[0]) .qualifier(methodInfo.serviceName(), methodInfo.methodName()) .build(); } return ServiceMessage.builder() .qualifier(methodInfo.serviceName(), methodInfo.methodName()) .data(methodInfo.parameterCount() != 0 ? params[0] : null) .build(); }
/** * Decode message. * * @param message the original message (with {@link ByteBuf} data) * @param dataType the type of the data. * @return a new Service message that upon {@link ServiceMessage#data()} returns the actual data * (of type data type) * @throws MessageCodecException when decode fails */ public static ServiceMessage decodeData(ServiceMessage message, Class<?> dataType) throws MessageCodecException { if (!message.hasData(ByteBuf.class) || dataType == null) { return message; } Object data; Class<?> targetType = message.isError() ? ErrorData.class : dataType; ByteBuf dataBuffer = message.data(); try (ByteBufInputStream inputStream = new ByteBufInputStream(dataBuffer, true)) { DataCodec dataCodec = DataCodec.getInstance(message.dataFormatOrDefault()); data = dataCodec.decode(inputStream, targetType); } catch (Throwable ex) { throw new MessageCodecException( "Failed to decode data on message q=" + message.qualifier(), ex); } return ServiceMessage.from(message).data(data).build(); } }