@Override
  public void init(ServiceInfo info) {
    super.init(info);
    smf = getApplicationContext().getBean(ServiceManagerFactory.class);
    emf = getApplicationContext().getBean(EntityManagerFactory.class);

    Properties props = (Properties) getApplicationContext().getBean("properties");
    metricsService =
        getApplicationContext().getBean(Injector.class).getInstance(MetricsFactory.class);
    postMeter = metricsService.getMeter(NotificationsService.class, "collection.post_requests");
    postTimer = metricsService.getTimer(this.getClass(), "collection.post_requests");
    JobScheduler jobScheduler = new JobScheduler(sm, em);
    String name = ApplicationQueueManagerImpl.getQueueNames(props);
    QueueScope queueScope = new QueueScopeImpl(name, QueueScope.RegionImplementation.LOCAL);
    queueManagerFactory =
        getApplicationContext().getBean(Injector.class).getInstance(QueueManagerFactory.class);
    QueueManager queueManager = queueManagerFactory.getQueueManager(queueScope);
    notificationQueueManager =
        new ApplicationQueueManagerImpl(jobScheduler, em, queueManager, metricsService, props);
    gracePeriod = JobScheduler.SCHEDULER_GRACE_PERIOD;
  }