@SuppressWarnings("unchecked") private Registration subscribe(QueryBus queryBus, MessageHandlingMember<? super T> m) { Optional<QueryHandlingMember> unwrappedQueryMember = m.unwrap(QueryHandlingMember.class); if (unwrappedQueryMember.isPresent()) { QueryHandlingMember qhm = unwrappedQueryMember.get(); return queryBus.subscribe(qhm.getQueryName(), qhm.getResultType(), this); } return null; } }
@SuppressWarnings("unchecked") public <R> Registration subscribe(String queryName, Type responseType, String componentName, MessageHandler<? super QueryMessage<?, R>> handler) { subscribing = true; Set registrations = subscribedQueries.computeIfAbsent(new QueryDefinition(queryName, responseType.getTypeName(), componentName), k -> new CopyOnWriteArraySet<>()); registrations.add(handler); try { getSubscriberObserver().onNext(QueryProviderOutbound.newBuilder() .setSubscribe(QuerySubscription.newBuilder() .setMessageId(UUID.randomUUID().toString()) .setClientId(configuration.getClientId()) .setComponentName(componentName) .setQuery(queryName) .setResultName(responseType.getTypeName()) .setNrOfHandlers(registrations.size()) .build()) .build()); } catch (Exception ex) { logger.warn("Subscribe failed - {}", ex.getMessage()); } finally { subscribing = false; } return localSegment.subscribe(queryName, responseType, handler); }
@SuppressWarnings("unchecked") private Registration subscribe(QueryBus queryBus, MessageHandlingMember<? super T> m) { Optional<QueryHandlingMember> unwrappedQueryMember = m.unwrap(QueryHandlingMember.class); if (unwrappedQueryMember.isPresent()) { QueryHandlingMember qhm = unwrappedQueryMember.get(); return queryBus.subscribe(qhm.getQueryName(), qhm.getResultType(), this); } return null; } }
@SuppressWarnings("unchecked") private Registration subscribe(QueryBus queryBus, MessageHandlingMember<? super T> m) { Optional<QueryHandlingMember> unwrappedQueryMember = m.unwrap(QueryHandlingMember.class); if (unwrappedQueryMember.isPresent()) { QueryHandlingMember qhm = unwrappedQueryMember.get(); return queryBus.subscribe(qhm.getQueryName(), qhm.getResultType(), this); } return null; } }
@SuppressWarnings("unchecked") public <R> Registration subscribe(String queryName, Type responseType, String componentName, MessageHandler<? super QueryMessage<?, R>> handler) { subscribing = true; Set registrations = subscribedQueries.computeIfAbsent(new QueryDefinition(queryName, responseType.getTypeName(), componentName), k -> new CopyOnWriteArraySet<>()); registrations.add(handler); try { getSubscriberObserver().onNext(QueryProviderOutbound.newBuilder() .setSubscribe(QuerySubscription.newBuilder() .setMessageId(UUID.randomUUID().toString()) .setClientId(configuration.getClientId()) .setComponentName(componentName) .setQuery(queryName) .setResultName(responseType.getTypeName()) .setNrOfHandlers(registrations.size()) .build()) .build()); } catch (Exception ex) { logger.warn("Subscribe failed - {}", ex.getMessage()); } finally { subscribing = false; } return localSegment.subscribe(queryName, responseType, handler); }