class NacosOperation implements DisposableBean {
    private static final Logger LOG = LoggerFactory.getLogger(NacosOperation.class);

    @Autowired
    private ConfigService nacosConfigService;

    @Autowired
    private Environment environment;

    public String getConfig(String group, String serviceId) throws NacosException {<FILL_FUNCTION_BODY>}

    public boolean removeConfig(String group, String serviceId) throws NacosException {
        return nacosConfigService.removeConfig(serviceId, group);
    }

    public boolean publishConfig(String group, String serviceId, String config) throws NacosException {
        return nacosConfigService.publishConfig(serviceId, group, config);
    }

    public boolean publishConfig(String group, String serviceId, String config, FormatType formatType) throws NacosException {
        return nacosConfigService.publishConfig(serviceId, group, config, formatType.toString());
    }

    public Listener subscribeConfig(String group, String serviceId, Executor executor, NacosSubscribeCallback nacosSubscribeCallback) throws NacosException {
        Listener listener = new Listener() {
            @Override
            public void receiveConfigInfo(String config) {
                nacosSubscribeCallback.callback(config);
            }

            @Override
            public Executor getExecutor() {
                return executor;
            }
        };

        nacosConfigService.addListener(serviceId, group, listener);

        return listener;
    }

    public void unsubscribeConfig(String group, String serviceId, Listener listener) {
        nacosConfigService.removeListener(serviceId, group, listener);
    }

    @Override
    public void destroy() throws Exception {
        nacosConfigService.shutDown();

        LOG.info("Shutting down Nacos config service...");
    }
}

        String timeout = environment.getProperty(NacosConstant.NACOS_TIMEOUT);
        if (StringUtils.isEmpty(timeout)) {
            timeout = environment.getProperty(NacosConstant.SPRING_CLOUD_NACOS_CONFIG_TIMEOUT);
        }

        return nacosConfigService.getConfig(serviceId, group, StringUtils.isNotEmpty(timeout) ? Long.valueOf(timeout) : NacosConstant.NACOS_DEFAULT_TIMEOUT);
    
<no_super_class>