GeekCoder
GeekCoder

Reputation: 41

NotifierConfiguration example in 2.1.4 SBA documentation

I am trying to implement RemindingNotifier in my Spring Boot Admin application but code snippet given in documentation uses a "repository" variable which is not declared anywhere. How to get this variable?

Code Snippet

@Configuration
public class NotifierConfiguration {
    @Autowired
    private Notifier notifier;

    @Primary
    @Bean(initMethod = "start", destroyMethod = "stop")
    public RemindingNotifier remindingNotifier() {
        RemindingNotifier notifier = new RemindingNotifier(notifier, repository);
        notifier.setReminderPeriod(Duration.ofMinutes(10)); 
        notifier.setCheckReminderInverval(Duration.ofSeconds(10)); 
        return notifier;
    }
}

Upvotes: 1

Views: 205

Answers (1)

GeekCoder
GeekCoder

Reputation: 41

So i was able to solve this by using this from SBA documentation.

    @Configuration
    public static class NotifierConfig {
        private final InstanceRepository repository;
        private final ObjectProvider<List<Notifier>> otherNotifiers;

        public NotifierConfig(InstanceRepository repository, ObjectProvider<List<Notifier>> otherNotifiers) {
            this.repository = repository;
            this.otherNotifiers = otherNotifiers;
        }

        @Bean
        public FilteringNotifier filteringNotifier() { 
            CompositeNotifier delegate = new CompositeNotifier(otherNotifiers.getIfAvailable(Collections::emptyList));
            return new FilteringNotifier(delegate, repository);
        }

        @Primary
        @Bean(initMethod = "start", destroyMethod = "stop")
        public RemindingNotifier remindingNotifier() { 
            RemindingNotifier notifier = new RemindingNotifier(filteringNotifier(), repository);
            notifier.setReminderPeriod(Duration.ofMinutes(10));
            notifier.setCheckReminderInverval(Duration.ofSeconds(10));
            return notifier;
        }
    }

Upvotes: 2

Related Questions