/** * Instantiates new message with the same data and headers as at given message. * * @param message the message to be copied * @return a new message, with the same data and headers */ public static Builder from(ServiceMessage message) { return ServiceMessage.builder().data(message.data()).headers(message.headers()); }
/** * Instantiates new message with error qualifier for given error type and specified error code and * message. * * @param errorType the error type to be used in message qualifier. * @param errorCode the error code. * @param errorMessage the error message. * @return builder. */ public static ServiceMessage error(int errorType, int errorCode, String errorMessage) { return ServiceMessage.builder() .qualifier(Qualifier.asError(errorType)) .data(new ErrorData(errorCode, errorMessage)) .build(); }
private ServiceMessage generateServiceMessage(Object data) { return ServiceMessage.builder() .dataFormat(dataCodec.contentType()) .qualifier("io.scalecube.services.benchmarks/SomeBenchmarkService/benchmark") .header("sid", String.valueOf(Integer.MAX_VALUE)) .header("sig", String.valueOf(9)) .header("inactivity", String.valueOf(Integer.MAX_VALUE)) .data(data) .build(); }
@Override public Throwable toError(ServiceMessage message) { ErrorData data = message.data(); if (data.getErrorCode() == 42) { // implement service mapping logic return new ServiceAException(data.getErrorMessage()); } else { // or delegate it to default mapper return DefaultErrorMapper.INSTANCE.toError(message); } } }
public Builder qualifier(String qualifier) { return header(HEADER_QUALIFIER, qualifier); }
/** * Returns message's qualifier. * * @return qualifier string */ public String qualifier() { return header(HEADER_QUALIFIER); }
/** * Instantiates new empty message builder. * * @return new builder */ public static Builder builder() { return new Builder(); }
public ServiceMessage build() { return new ServiceMessage(this); } }
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(); }
/** * Returns data format of the message data. * * @return data format of the data */ public String dataFormat() { return header(HEADER_DATA_FORMAT); }
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(); }