@Override public boolean exists(String id) { return getWrapped().exists(id); }
private void checkCoreExtension(String feature) throws InstallException { if (this.coreExtensionRepository.exists(feature)) { throw new InstallException( String.format("There is already a core extension covering feature [%s]", feature)); } }
private void updateMissingBackwardDependencies(DefaultInstalledExtension installedExtension, String namespace) { // Add the extension as backward dependency for (ExtensionDependency dependency : installedExtension.getDependencies()) { if (!dependency.isOptional() && !this.coreExtensionRepository.exists(dependency.getId())) { // Get the extension for the dependency feature for the provided namespace DefaultInstalledExtension dependencyLocalExtension = (DefaultInstalledExtension) getInstalledExtension(dependency.getId(), namespace); if (dependencyLocalExtension != null) { ExtensionId feature = dependencyLocalExtension.getExtensionFeature(dependency.getId()); // Make sure to register backward dependency on the right namespace InstalledFeature dependencyInstalledExtension = addInstalledFeatureToCache(feature, namespace, dependencyLocalExtension, false); dependencyInstalledExtension.root.backwardDependencies.add(installedExtension); } } } }
if (!this.coreExtensionRepository.exists(dependency.getId())) { InstalledExtension dependencyExtension = this.installedExtensionRepository.getInstalledExtension(dependency.getId(), namespace);
if (this.coreExtensionRepository.exists(localExtension.getId().getId())) { throw new InvalidExtensionException( String.format("Extension [%s] already exists as a core extension", localExtension));
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); }