code: private ExtensionRepositoryDescriptor parseRepository(String repositoryString)
          throws URISyntaxException, ExtensionManagerConfigurationException
      {
          Matcher matcher = REPOSITORYIDPATTERN.matcher(repositoryString);
  
          if (matcher.matches()) {
              return this.extensionFactory.getExtensionRepositoryDescriptor(matcher.group(1), matcher.group(2),
                  new URI(matcher.group(3)));
          }
  
          throw new ExtensionManagerConfigurationException(
              String.format("Invalid repository configuration format for [%s]. Should have been matching [%s].",
                  repositoryString, REPOSITORYIDPATTERN.toString()));
      }
docs: Create a {@link DefaultExtensionRepositoryDescriptor} from a string entry.
  
  @param repositoryString the repository configuration entry
  @return the {@link DefaultExtensionRepositoryDescriptor}
  @throws URISyntaxException Failed to create an {@link URI} object from the configuration entry
  @throws ExtensionManagerConfigurationException Failed to parse configuration