class ZookeeperServiceRegistryDecorator extends ZookeeperServiceRegistry {
    // private static final Logger LOG = LoggerFactory.getLogger(ZookeeperServiceRegistryDecorator.class);

    private ZookeeperServiceRegistry serviceRegistry;
    private ConfigurableApplicationContext applicationContext;

    public ZookeeperServiceRegistryDecorator(ZookeeperServiceRegistry serviceRegistry, ConfigurableApplicationContext applicationContext) {
        super(null);

        this.serviceRegistry = serviceRegistry;
        this.applicationContext = applicationContext;
    }

    @Override
    public void register(ZookeeperRegistration registration) {
        try {
            RegisterListenerExecutor registerListenerExecutor = applicationContext.getBean(RegisterListenerExecutor.class);
            registerListenerExecutor.onRegister(registration);
        } catch (BeansException e) {
            // LOG.warn("Get bean for RegisterListenerExecutor failed, ignore to executor listener");
        }

        serviceRegistry.register(registration);
    }

    @Override
    public void deregister(ZookeeperRegistration registration) {<FILL_FUNCTION_BODY>}

    @Override
    public void setStatus(ZookeeperRegistration registration, String status) {
        try {
            RegisterListenerExecutor registerListenerExecutor = applicationContext.getBean(RegisterListenerExecutor.class);
            registerListenerExecutor.onSetStatus(registration, status);
        } catch (BeansException e) {
            // LOG.warn("Get bean for RegisterListenerExecutor failed, ignore to executor listener");
        }

        serviceRegistry.setStatus(registration, status);
    }

    @Override
    public Object getStatus(ZookeeperRegistration registration) {
        return serviceRegistry.getStatus(registration);
    }

    @Override
    public void close() {
        try {
            RegisterListenerExecutor registerListenerExecutor = applicationContext.getBean(RegisterListenerExecutor.class);
            registerListenerExecutor.onClose();
        } catch (BeansException e) {
            // LOG.warn("Get bean for RegisterListenerExecutor failed, ignore to executor listener");
        }

        serviceRegistry.close();
    }

    @Override
    public void afterSingletonsInstantiated() {
        serviceRegistry.afterSingletonsInstantiated();
    }
}

        try {
            RegisterListenerExecutor registerListenerExecutor = applicationContext.getBean(RegisterListenerExecutor.class);
            registerListenerExecutor.onDeregister(registration);
        } catch (BeansException e) {
            // LOG.warn("Get bean for RegisterListenerExecutor failed, ignore to executor listener");
        }

        serviceRegistry.deregister(registration);
    
<no_super_class>