public LocalExtension getInstalledExtension(String id, String namespace) { return this.localExtensionRepository.getInstalledExtension(id, namespace); }
public void uninstallExtension(String name, String namespace) throws UninstallException { LocalExtension localExtension = this.localExtensionRepository.getInstalledExtension(name, namespace); if (localExtension == null) { throw new UninstallException("[" + name + "]: extension is not installed"); } try { uninstallExtension(localExtension, namespace); } catch (Exception e) { throw new UninstallException("Failed to uninstall extension", e); } }
public Extension resolveExtension(ExtensionId extensionId, String namespace) throws ResolveException { Extension extension = null; extension = this.coreExtensionRepository.getCoreExtension(extensionId.getId()); if (extension == null) { extension = this.localExtensionRepository.getInstalledExtension(extensionId.getId(), namespace); if (extension == null || !extension.getId().getVersion().equals(extensionId.getVersion())) { extension = this.repositoryManager.resolve(extensionId); } } return extension; } }
private LocalExtension installExtensionDependency(ExtensionDependency extensionDependency, String namespace) throws InstallException { if (this.coreExtensionRepository.exists(extensionDependency.getId())) { return null; } LocalExtension previousExtension = null; LocalExtension localExtension = this.localExtensionRepository.getInstalledExtension(extensionDependency.getId(), namespace); if (localExtension != null) { int diff = this.versionManager.compareVersions(extensionDependency.getVersion(), localExtension.getId() .getVersion()); if (diff > 0) { // upgrade previousExtension = localExtension; } else { return null; } } return installExtension(previousExtension, new ExtensionId(extensionDependency.getId(), extensionDependency.getVersion()), true, namespace); }
private LocalExtension installExtension(ExtensionId extensionId, boolean dependency, String namespace) throws InstallException { if (this.coreExtensionRepository.exists(extensionId.getId())) { throw new InstallException("[" + extensionId.getId() + "]: core extension"); } LocalExtension previousExtension = null; LocalExtension localExtension = this.localExtensionRepository.getInstalledExtension(extensionId.getId(), namespace); if (localExtension != null) { int diff = this.versionManager.compareVersions(extensionId.getVersion(), localExtension.getId().getVersion()); if (diff == 0) { throw new InstallException("[" + extensionId.getId() + "]: already installed"); } else if (diff < 0) { throw new InstallException("[" + extensionId.getId() + "]: a more recent version is already installed"); } else { // upgrade previousExtension = localExtension; } } return installExtension(previousExtension, extensionId, dependency, namespace); }