/** * @param descriptor the descriptor to copy * @since 4.3M1 */ public ExtensionRepositoryId(ExtensionRepositoryDescriptor descriptor) { this(descriptor.getId(), descriptor.getType(), descriptor.getURI()); } }
@Override public boolean equals(Object obj) { if (obj instanceof ExtensionRepositoryDescriptor) { ExtensionRepositoryDescriptor repository = (ExtensionRepositoryDescriptor) obj; return Objects.equal(getId(), repository.getId()) && Objects.equal(getType(), repository.getType()) && Objects.equal(getURI(), repository.getURI()) && Objects.equal(getProperties(), repository.getProperties()); } return false; }
@Override public ExtensionRepository addRepository(ExtensionRepositoryDescriptor repositoryDescriptor, int priority) throws ExtensionRepositoryException { ExtensionRepository repository; try { ExtensionRepositoryFactory repositoryFactory = this.componentManager.getInstance(ExtensionRepositoryFactory.class, repositoryDescriptor.getType()); repository = repositoryFactory.createRepository(repositoryDescriptor); addRepository(repository, priority); } catch (ComponentLookupException e) { throw new ExtensionRepositoryException( "Unsupported repository type [" + repositoryDescriptor.getType() + "]", e); } return repository; }
@Override public Extension resolve(ExtensionDependency extensionDependency) throws ResolveException { try { if (getDescriptor().getType().equals("maven") && this.mavenDescriptorReader != null) { return resolveMaven(extensionDependency); } else { // FIXME: impossible to resolve extension type as well as most of the information with pure Aether API throw new ResolveException("Unsupported"); } } catch (InvalidExtensionIdException e) { // In case the id is invalid behave as if the extension simply did not exist (which is true anyway) throw new ExtensionNotFoundException("Invalid extension id", e); } }
@Override public Extension resolve(ExtensionId extensionId) throws ResolveException { try { if (getDescriptor().getType().equals("maven") && this.mavenDescriptorReader != null) { return resolveMaven(extensionId); } else { // FIXME: impossible to resolve extension type as well as most of the information with pure Aether API throw new ResolveException("Unsupported"); } } catch (InvalidExtensionIdException e) { // In case the id is invalid behave as if the extension simply did not exist (which is true anyway) throw new ExtensionNotFoundException("Invalid extension id", e); } }
/** * @param descriptor the identifier to clone */ public DefaultExtensionRepositoryDescriptor(ExtensionRepositoryDescriptor descriptor) { this(descriptor.getId(), descriptor.getType(), descriptor.getURI()); setProperties(descriptor.getProperties()); }
private ExtensionRepository getRepository(ExtensionRepositoryDescriptor repositoryDescriptor) throws ExtensionRepositoryException { // Try in the cache ExtensionRepository repository = this.repositoriesCache.get(repositoryDescriptor); if (repository == null) { // Try in the registered repositories if (repositoryDescriptor.getId() != null) { repository = getRepository(repositoryDescriptor.getId()); } if (repository == null || !repository.getDescriptor().equals(repositoryDescriptor)) { // Create one ExtensionRepositoryFactory repositoryFactory; try { repositoryFactory = this.componentManager.getInstance(ExtensionRepositoryFactory.class, repositoryDescriptor.getType()); } catch (ComponentLookupException e) { throw new ExtensionRepositoryException( "Unsupported extension repository type [{" + repositoryDescriptor.getType() + "}]", e); } repository = repositoryFactory.createRepository(repositoryDescriptor); } this.repositoriesCache.put(repositoryDescriptor, repository); } return repository; }