/** * @param descriptor the identifier to clone */ public DefaultExtensionRepositoryDescriptor(ExtensionRepositoryDescriptor descriptor) { this(descriptor.getId(), descriptor.getType(), descriptor.getURI()); setProperties(descriptor.getProperties()); }
repositoryDescriptor.getId(), "default", repositoryDescriptor.getURI().toString()); String checksumPolicy = repositoryDescriptor.getProperty("checksumPolicy"); if (StringUtils.isEmpty(checksumPolicy)) { checksumPolicy = RepositoryPolicy.CHECKSUM_POLICY_WARN; String username = repositoryDescriptor.getProperty("auth.user"); if (username != null) { AuthenticationBuilder authenticationBuilder = new AuthenticationBuilder(); authenticationBuilder.addUsername(username); authenticationBuilder.addPassword(repositoryDescriptor.getProperty("auth.password")); aetherRepositoryBuilder.setAuthentication(authenticationBuilder.build());
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; }
@Override public void initialize() throws InitializationException { this.standardRepositories.put(this.coreExtensionRepository.getDescriptor().getId(), this.coreExtensionRepository); this.standardRepositories.put(this.localExtensionRepository.getDescriptor().getId(), this.localExtensionRepository); this.standardRepositories.put(this.installedExtensionRepository.getDescriptor().getId(), this.installedExtensionRepository); }
@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; }
protected XWikiRepositorySystemSession createRepositorySystemSession() throws ResolveException { XWikiRepositorySystemSession session; try { session = this.repositoryFactory.createRepositorySystemSession(); } catch (IOException e) { throw new ResolveException("Failed to create the repository system session", e); } session.addConfigurationProperties(getDescriptor().getProperties()); return session; }
@Override public void initialize() throws InitializationException { setDescriptor(new DefaultExtensionRepositoryDescriptor("installed", "installed", this.localRepository.getDescriptor().getURI())); // Wait for all installed extension to be registered // before calculating backward dependencies this.updateBackwardDependencies = false; // Get installed extensions from local repository this.localInstalledExtensionsCache = new HashMap<>(); for (LocalExtension localExtension : this.localRepository.getLocalExtensions()) { if (DefaultInstalledExtension.isInstalled(localExtension)) { getInstalledLocalExtension(localExtension); } } // Validate installed extensions validate(); // Update backward dependencies updateMissingBackwardDependencies(); // Put back backdependencies update for each extension add this.updateBackwardDependencies = true; // Reset temporary cache this.localInstalledExtensionsCache = null; }
try { ExtensionRepositoryDescriptor extensionRepositoryId = parseRepository(repositoryString); if (repositoriesMap.containsKey(extensionRepositoryId.getId())) { this.logger.warn( "Duplicated repository id in [{}] first found in [{}]. The last one will be used.", extensionRepositoryId, repositoriesMap.get(extensionRepositoryId.getId())); repositoriesMap.put(extensionRepositoryId.getId(), extensionRepositoryId); } catch (Exception e) { this.logger.warn("Ignoring invalid repository configuration [{}]. " + "Root cause [{}]",
@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 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 void addRepository(ExtensionRepository repository, int priority) { // Update the map this.repositoryMap.put(repository.getDescriptor().getId(), new ExtensionRepositoryEntry(repository, priority)); // Update the list updateRepositories(); }
@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); } }