/** * Traverses this tree values in {@link Order#PRE_ORDER}. * Syntactic sugar for {@code traverse().map(Node::getValue)}. * * @return A sequence of the tree values. */ default Seq<T> values() { return traverse(PRE_ORDER).map(Node::getValue); }
/** * Traverses this tree values in a specific order. * Syntactic sugar for {@code traverse(order).map(Node::getValue)}. * * @param order the tree traversal order * @return A sequence of the tree values. * @throws java.lang.NullPointerException if order is null */ default Seq<T> values(Order order) { return traverse(order).map(Node::getValue); }
@RequestMapping(value = "events", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public CircuitBreakerEventsEndpointResponse getAllCircuitBreakerEvents() { return new CircuitBreakerEventsEndpointResponse(eventConsumerRegistry.getAllEventConsumer() .flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(CircuitBreakerEvent::getCreationTime)) .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); }
return split.map(CharSeq::of);
@RequestMapping(value = "events", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public RateLimiterEventsEndpointResponse getAllRateLimiterEvents() { List<RateLimiterEventDTO> eventsList = eventsConsumerRegistry.getAllEventConsumer() .flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(RateLimiterEvent::getCreationTime)) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); return new RateLimiterEventsEndpointResponse(eventsList); }
@Override public Object invoke() { List<String> names = rateLimiterRegistry.getAllRateLimiters() .map(RateLimiter::getName).sorted().toJavaList(); return ResponseEntity.ok(new RateLimiterEndpointResponse(names)); } }
@Override public ResponseEntity<CircuitBreakerEndpointResponse> invoke() { List<String> circuitBreakers = circuitBreakerRegistry.getAllCircuitBreakers() .map(CircuitBreaker::getName).sorted().toJavaList(); return ResponseEntity.ok(new CircuitBreakerEndpointResponse(circuitBreakers)); } }
@RequestMapping(value = "stream/events", produces = MEDIA_TYPE_TEXT_EVENT_STREAM) public SseEmitter getAllRateLimiterEventsStream() { Seq<Flux<RateLimiterEvent>> eventStreams = rateLimiterRegistry.getAllRateLimiters() .map(rateLimiter -> toFlux(rateLimiter.getEventPublisher())); return RateLimiterEventsEmitter.createSseEmitter(Flux.merge(eventStreams)); }
@RequestMapping(value = "stream/events", produces = MEDIA_TYPE_TEXT_EVENT_STREAM) public SseEmitter getAllCircuitBreakerEventsStream() { Seq<Flux<CircuitBreakerEvent>> eventStreams = circuitBreakerRegistry.getAllCircuitBreakers() .map(circuitBreaker -> toFlux(circuitBreaker.getEventPublisher())); return CircuitBreakerEventEmitter.createSseEmitter(Flux.merge(eventStreams)); }
@ReadOperation public RateLimiterEventsEndpointResponse getAllRateLimiterEvents() { List<RateLimiterEventDTO> eventsList = eventsConsumerRegistry.getAllEventConsumer() .flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(RateLimiterEvent::getCreationTime)) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); return new RateLimiterEventsEndpointResponse(eventsList); }
@ReadOperation public CircuitBreakerEventsEndpointResponse getAllCircuitBreakerEvents() { return new CircuitBreakerEventsEndpointResponse(eventConsumerRegistry.getAllEventConsumer() .flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(CircuitBreakerEvent::getCreationTime)) .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); }
@ReadOperation public RateLimiterEndpointResponse getAllRateLimiters() { List<String> names = rateLimiterRegistry.getAllRateLimiters() .map(RateLimiter::getName).sorted().toJavaList(); return new RateLimiterEndpointResponse(names); } }
@ReadOperation public CircuitBreakerEndpointResponse getAllCircuitBreakers() { List<String> circuitBreakers = circuitBreakerRegistry.getAllCircuitBreakers() .map(CircuitBreaker::getName).sorted().toJavaList(); return new CircuitBreakerEndpointResponse(circuitBreakers); } }
@Override public Map<String, ?> unapply(Map<String, ?> config, String keyPrefix) { Map<String, ?> tableTypeMap = config.filterKeys(key -> key.startsWith("table.type.")); java.util.List<String> tableTypes = tableTypeMap.values().map(Object::toString).toSet().toJavaList(); Map<String, Object> remappedConfig = ((Map<String, Object>) config).removeAll(tableTypeMap.keySet()).put("table.types", tableTypes); return remappedConfig; } }
@SuppressWarnings("unchecked") static <T, S extends Seq<T>> Iterator<S> crossProduct(S empty, S seq, int power) { if (power < 0) { return Iterator.empty(); } else { return Iterator.range(0, power) .foldLeft(Iterator.of(empty), (product, ignored) -> product.flatMap(el -> seq.map(t -> (S) el.append(t)))); } }
.flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(RetryEvent::getCreationTime)) .map(RetryEventDTO::createRetryEventDTO).toJavaList(); d.success(new RetryEventsEndpointResponse(eventsList)); }).then(r -> ctx.render(Jackson.json(r))) ); chain1.get("stream/events", ctx -> { Seq<Flux<RetryEvent>> eventStreams = retryRegistry.getAllRetries().map(retry -> ReactorAdapter.toFlux(retry.getEventPublisher())); Function<RetryEvent, String> data = r -> Jackson.getObjectWriter(chain1.getRegistry()).writeValueAsString(RetryEventDTO.createRetryEventDTO(r)); ServerSentEvents events = ServerSentEvents.serverSentEvents(Flux.merge(eventStreams), e -> e.id(RetryEvent::getName).event(c -> c.getEventType().name()).data(data));
.flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(RateLimiterEvent::getCreationTime)) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); d.success(new RateLimiterEventsEndpointResponse(eventsList)); }).then(r -> ctx.render(Jackson.json(r))) ); chain1.get("stream/events", ctx -> { Seq<Flux<RateLimiterEvent>> eventStreams = rateLimiterRegistry.getAllRateLimiters().map(rateLimiter -> ReactorAdapter.toFlux(rateLimiter.getEventPublisher())); Function<RateLimiterEvent, String> data = r -> Jackson.getObjectWriter(chain1.getRegistry()).writeValueAsString(RateLimiterEventDTO.createRateLimiterEventDTO(r)); ServerSentEvents events = ServerSentEvents.serverSentEvents(Flux.merge(eventStreams), e -> e.id(RateLimiterEvent::getRateLimiterName).event(c -> c.getEventType().name()).data(data));
.flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(BulkheadEvent::getCreationTime)) .map(BulkheadEventDTO::createEventDTO).toJavaList()); d.success(response); }).then(r -> ctx.render(Jackson.json(r))) ); chain1.get("stream/events", ctx -> { Seq<Flux<BulkheadEvent>> eventStreams = bulkheadRegistry.getAllBulkheads().map(bulkhead -> ReactorAdapter.toFlux(bulkhead.getEventPublisher())); Function<BulkheadEvent, String> data = b -> Jackson.getObjectWriter(chain1.getRegistry()).writeValueAsString(BulkheadEventDTO.createEventDTO(b)); ServerSentEvents events = ServerSentEvents.serverSentEvents(Flux.merge(eventStreams), e -> e.id(BulkheadEvent::getBulkheadName).event(c -> c.getEventType().name()).data(data));
.flatMap(CircularEventConsumer::getBufferedEvents) .sorted(Comparator.comparing(CircuitBreakerEvent::getCreationTime)) .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); d.success(response); }).then(r -> ctx.render(Jackson.json(r))) ); chain1.get("stream/events", ctx -> { Seq<Flux<CircuitBreakerEvent>> eventStreams = circuitBreakerRegistry.getAllCircuitBreakers().map(circuitBreaker -> ReactorAdapter.toFlux(circuitBreaker.getEventPublisher())); Function<CircuitBreakerEvent, String> data = c -> Jackson.getObjectWriter(chain1.getRegistry()).writeValueAsString(CircuitBreakerEventDTOFactory.createCircuitBreakerEventDTO(c)); ServerSentEvents events = ServerSentEvents.serverSentEvents(Flux.merge(eventStreams), e -> e.id(CircuitBreakerEvent::getCircuitBreakerName).event(c -> c.getEventType().name()).data(data));
/** * Traverses this tree values in a specific order. * Syntactic sugar for {@code traverse(order).map(Node::getValue)}. * * @param order the tree traversal order * @return A sequence of the tree values. * @throws java.lang.NullPointerException if order is null */ default Seq<T> values(Order order) { return traverse(order).map(Node::getValue); }