class NotificationServiceImpl implements NotificationService {

    @Override
    public Notifier register(String notifierName, NotificationContext ctx) {

        LOG.info("Registering notifier name {}, NotificationContext {}", notifierName, ctx);
        Notifier notifier = loadNotifier(ctx.getConfig().getJarPath(), ctx.getConfig().getClassName());
        Notifier registeredNotifier = notifiers.putIfAbsent(notifierName, notifier);
        if (registeredNotifier == null) {
            LOG.info("Initializing notifier");
            notifier.open(new NotificationServiceContext(ctx, queueHandler, this));
            registeredNotifier = notifier;
        }
        LOG.info("Notifier {} registered", notifierName);
        return registeredNotifier;
    }

    public  NotificationServiceImpl();
    public  NotificationServiceImpl(NotificationStore store);
    public  NotificationServiceImpl(Map<String, Object> config);
    public  NotificationServiceImpl(Map<String, Object> config, NotificationStore store);

}