payloadTypeReference);
/**
- * @return instance of converter to convert any objects
- * using object mapper from {@link MsbContext}
+ * Convenience method that specifies incoming payload type as {@link JsonNode}
+ *
+ * See {@link #createResponderServer(String, ResponderOptions, ResponderServer.RequestHandler, ResponderServer.ErrorHandler, TypeReference)}
*/
- PayloadConverter getPayloadConverter();
+ default ResponderServer createResponderServer(String namespace, ResponderOptions responderOptions,
+ ResponderServer.RequestHandler requestHandler, ResponderServer.ErrorHandler errorHandler) {
+ return createResponderServer(namespace, responderOptions, requestHandler, errorHandler, new TypeReference() {
+ @Override
+ public Type getType() {
+ return JsonNode.class;
+ }
+ });
+ }
/**
- * @param aggregatorStatsHandler this handler is invoked whenever statistics is updated via announcement channel or heartbeats.
- * THE HANDLER SHOULD BE THREAD SAFE because it may be invoked from parallel threads.
- * @return new instance of {@link ChannelMonitorAggregator}
+ * See {@link #createResponderServer(String, ResponderOptions, ResponderServer.RequestHandler, ResponderServer.ErrorHandler, TypeReference)}
*/
- ChannelMonitorAggregator createChannelMonitorAggregator(Callback aggregatorStatsHandler);
+ default ResponderServer createResponderServer(String namespace, ResponderOptions responderOptions,
+ ResponderServer.RequestHandler requestHandler, TypeReference payloadTypeReference) {
+ return createResponderServer(namespace, responderOptions, requestHandler, null, payloadTypeReference);
+ }
/**
- * Shuts down the factory and all the objects that were created by it.
+ * See {@link #createResponderServer(String, ResponderOptions, ResponderServer.RequestHandler, ResponderServer.ErrorHandler, TypeReference)}
*/
- void shutdown();
+ default ResponderServer createResponderServer(String namespace, ResponderOptions responderOptions,
+ ResponderServer.RequestHandler requestHandler, Class payloadClass) {
+ return createResponderServer(namespace, responderOptions, requestHandler, new TypeReference() {
+ @Override
+ public Type getType() {
+ return payloadClass;
+
+ }
+ });
+ }
+
+ default ResponderServer createResponderServer(String namespace, ResponderOptions responderOptions,
+ ResponderServer.RequestHandler requestHandler, ResponderServer.ErrorHandler errorHandler, Class payloadClass) {
+ return createResponderServer(namespace, responderOptions, requestHandler, errorHandler, new TypeReference() {
+ @Override
+ public Type getType() {
+ return payloadClass;
+
+ }
+ });
+ }
+
+ /**
+ * @deprecated use {@link #createResponderServer(String, ResponderOptions, ResponderServer.RequestHandler, ResponderServer.ErrorHandler, TypeReference)}
+ */
+ @Deprecated
+ default ResponderServer createResponderServer(String namespace, MessageTemplate messageTemplate,
+ ResponderServer.RequestHandler requestHandler, ResponderServer.ErrorHandler errorHandler, TypeReference payloadTypeReference) {
+ ResponderOptions responderOptions = new ResponderOptions.Builder().withMessageTemplate(messageTemplate).build();
+ return createResponderServer(namespace, responderOptions, requestHandler, errorHandler, payloadTypeReference);
+ }
+
+ /**
+ * @deprecated use {@link #createResponderServer(String, ResponderOptions, ResponderServer.RequestHandler, ResponderServer.ErrorHandler, TypeReference)}
+ */
+ @Deprecated
+ default ResponderServer createResponderServer(String namespace, MessageTemplate messageTemplate,
+ ResponderServer.RequestHandler requestHandler, ResponderServer.ErrorHandler errorHandler, Class payloadClass) {
+ ResponderOptions responderOptions = new ResponderOptions.Builder().withMessageTemplate(messageTemplate).build();
+ return createResponderServer(namespace, responderOptions, requestHandler, errorHandler, new TypeReference() {
+ @Override
+ public Type getType() {
+ return payloadClass;
+ }
+ });
+ }
+
+ /**
+ * See {@link #createRequesterForFireAndForget(java.lang.String, io.github.tcdl.msb.api.RequestOptions)}
+ */
+ default Requester createRequesterForFireAndForget(String namespace){
+ return createRequesterForFireAndForget(namespace, RequestOptions.DEFAULTS);
+ }
+
+ /**
+ * Creates requester that doesn't wait for any responses or acknowledgments
+ *
+ * @return new instance of a {@link Requester} with original message
+ */
+ Requester createRequesterForFireAndForget(String namespace, RequestOptions requestOptions);
+
+ /**
+ * @deprecated use {@link ObjectFactory#createResponderServer(java.lang.String, io.github.tcdl.msb.api.ResponderOptions, io.github.tcdl.msb.api.ResponderServer.RequestHandler, io.github.tcdl.msb.api.ResponderServer.ErrorHandler, com.fasterxml.jackson.core.type.TypeReference)}
+ */
+ @Deprecated
+ default ResponderServer createResponderServer(String namespace, MessageTemplate messageTemplate,
+ ResponderServer.RequestHandler requestHandler, TypeReference