public synchronized T getConfig(String configId) {
        try (ConfigSubscriber subscriber = new ConfigSubscriber()) {
            ConfigHandle<T> handle = subscriber.subscribe(clazz, configId);
            subscriber.nextConfig(true);
            return handle.getConfig();
        }
    }
@Test
    public void testsStaticGetConfig() {
        int times = 11;
        String message = "testGetConfig";
        String a0 = "a0";
        String configId = "raw:times " + times + "\nmessage " + message + "\na[1]\na[0].name " + a0;

        AppConfig config = ConfigGetter.getConfig(AppConfig.class, configId);
        assertEquals(times, config.times());
        assertEquals(message, config.message());
        assertEquals(1, config.a().size());
        assertEquals(a0, config.a(0).name());

        AppService service = new AppService(configId, sourceSet);
        AppConfig serviceConfig = service.getConfig();
        assertTrue(service.isConfigured());
        assertEquals(config, serviceConfig);

        service.cancelSubscription();
    }