/** * Get a list of cached extensions from the local extension repository. This doesn't include core extensions, only * custom extensions fetched or installed. * * @return a list of read-only handlers corresponding to the local extensions, an empty list if nothing is available * in the local repository */ public Collection<LocalExtension> getLocalExtensions() { return safe(this.localExtensionRepository.getLocalExtensions()); } }
@Override public Collection<LocalExtension> getLocalExtensions() { return safe(getWrapped().getLocalExtensions()); }
private void validate() { // Validate top level installed extensions for (LocalExtension localExtension : this.localRepository.getLocalExtensions()) { if (DefaultInstalledExtension.isInstalled(localExtension)) { validateExtension(localExtension, false); } } // Validate dependencies (just in case some dependencies don't have any backward dependencies) for (LocalExtension localExtension : this.localRepository.getLocalExtensions()) { if (DefaultInstalledExtension.isInstalled(localExtension)) { validateExtension(localExtension, true); } } }
@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; }