@Override
    public <T extends ComponentRoot> T get(Class<T> providerId) {
        try {
            return providerId.getConstructor().newInstance();
        } catch (ReflectiveOperationException e) {
            throw new IllegalArgumentException(e);
        }
    }
@Test
    void get() {
        String fileName = "fileName";
        String name = "name";
        LocalUri retrieved = appRoot.get(ComponentRootA.class)
                .get(fileName, name)
                .toLocalId()
                .asLocalUri();

        appRoot.get(ComponentRootA.class)
                .get(fileName, name)
                .toLocalId();

        assertThat(retrieved).isNotNull();
        String expected = String.format("/%1$s/%2$s/%3$s", LocalComponentIdA.PREFIX, fileName, name);
        assertThat(retrieved.path()).isEqualTo(expected);
    }