@Override public final ExecutorService onCreated(BeanCreatedEvent<ExecutorService> event) { ExecutorService executorService = event.getBean(); if (executorService instanceof ScheduledExecutorService) { return new InstrumentedScheduledExecutorService() {
@Override public ExecutableMethodProcessor onCreated(BeanCreatedEvent<ExecutableMethodProcessor> event) { ExecutableMethodProcessor processor = event.getBean(); BeanDefinition<ExecutableMethodProcessor> processorDefinition = event.getBeanDefinition(); BeanContext beanContext = event.getSource(); List<Argument<?>> typeArguments = processorDefinition.getTypeArguments(ExecutableMethodProcessor.class); if (!typeArguments.isEmpty()) {
@SuppressWarnings("unchecked") @Override public ScheduledExecutorService decorateExecutorService(String schedulerType, Supplier<? extends ScheduledExecutorService> actual) { ScheduledExecutorService scheduledExecutorService = actual.get(); for (BeanCreatedEventListener schedulerCreateListener : schedulerCreateListeners) { Object newBean = schedulerCreateListener.onCreated(new BeanCreatedEvent(beanContext, beanDefinition, BeanIdentifier.of("reactor-" + schedulerType), scheduledExecutorService)); if (!(newBean instanceof ScheduledExecutorService)) { throw new BeanContextException("Bean creation listener [" + schedulerCreateListener + "] should return ScheduledExecutorService, but returned " + newBean); } scheduledExecutorService = (ScheduledExecutorService) newBean; } return scheduledExecutorService; }
@Override public AnnotationProcessor onCreated(BeanCreatedEvent<AnnotationProcessor> event) { AnnotationProcessor processor = event.getBean(); BeanDefinition<AnnotationProcessor> processorDefinition = event.getBeanDefinition(); BeanContext beanContext = event.getSource(); if (processor instanceof ExecutableMethodProcessor) {
if (CollectionUtils.isEmpty(typeArguments) || typeArguments.get(0).getType().isAssignableFrom(beanDefinition.getBeanType())) { BeanCreatedEventListener listener = registration.getBean(); bean = (T) listener.onCreated(new BeanCreatedEvent(this, beanDefinition, beanKey, bean)); if (bean == null) { throw new BeanInstantiationException(resolutionContext, "Listener [" + listener + "] returned null from onCreated event");
@Override public ThreadFactory onCreated(BeanCreatedEvent<ThreadFactory> event) { final ThreadFactory original = event.getBean(); return r -> { final Optional<HttpRequest<Object>> httpRequest = ServerRequestContext.currentRequest(); return original.newThread( httpRequest.map(objectHttpRequest -> ServerRequestContext.instrument(objectHttpRequest, r)) .orElse(r) ); }; }
if (CollectionUtils.isEmpty(typeArguments) || typeArguments.get(0).getType().isAssignableFrom(beanDefinition.getBeanType())) { BeanCreatedEventListener listener = registration.getBean(); bean = (T) listener.onCreated(new BeanCreatedEvent(this, beanDefinition, beanKey, bean)); if (bean == null) { throw new BeanInstantiationException(resolutionContext, "Listener [" + listener + "] returned null from onCreated event");
@Override public final ExecutorService onCreated(BeanCreatedEvent<ExecutorService> event) { ExecutorService executorService = event.getBean(); if (executorService instanceof ScheduledExecutorService) { return new InstrumentedScheduledExecutorService() {
@Override public Object onCreated(BeanCreatedEvent<Object> event) { final Object bean = event.getBean(); return onBeanCreated(bean); }
@Override public DataSource onCreated(BeanCreatedEvent<DataSource> event) { DataSource dataSource = event.getBean(); if (dataSource instanceof TransactionAwareDataSourceProxy) { return dataSource; } else { return new TransactionAwareDataSourceProxy(dataSource); } } }
@Override public ThreadFactory onCreated(BeanCreatedEvent<ThreadFactory> event) { final ThreadFactory original = event.getBean(); return r -> { final Optional<HttpRequest<Object>> httpRequest = ServerRequestContext.currentRequest(); return original.newThread( httpRequest.map(objectHttpRequest -> ServerRequestContext.instrument(objectHttpRequest, r)) .orElse(r) ); }; }