@Override public ExtensionId getId() { return getWrapped().getId(); }
public ExtensionId getId() { return getExtension().getId(); }
/** * Create new extension descriptor by copying provided one. * * @param repository the repository where this extension comes from * @param extension the extension to copy */ public AbstractExtension(ExtensionRepository repository, Extension extension) { this(repository, extension.getId(), extension.getType()); set(extension); }
@Override public boolean equals(Object obj) { return this == obj || (obj instanceof Extension && getId().equals(((Extension) obj).getId())); }
/** * @param extension the extension to store * @throws LocalExtensionRepositoryException failed to store extension */ private void storeExtension(Extension extension) throws LocalExtensionRepositoryException { if (!this.localExtensionRepository.exists(extension.getId())) { if (getRequest().isVerbose()) { this.logger.info(LOG_DOWNLOADING, "Downloading extension [{}]", extension.getId()); } this.localExtensionRepository.storeExtension(extension); } } }
@Override public boolean equals(Object obj) { return this == obj || (obj instanceof Extension && getId().equals(((Extension) obj).getId())); }
/** * Indicate in an extension a list of provided "functionalities". Then when resolving extensions dependencies they * can be matched in this list. * * @return the {@link ExtensionId}s also provided by this extension, an empty collection if there is none * @since 8.0M1 */ default Collection<ExtensionId> getExtensionFeatures() { Collection<String> features = getFeatures(); List<ExtensionId> extensionFeatures = new ArrayList<ExtensionId>(features.size()); for (String feature : features) { extensionFeatures.add(new ExtensionId(feature, getId().getVersion())); } return extensionFeatures; }
/** * Return the {@link ExtensionId} object that matches the passed feature id. * * @param featureId the id of the feature * @return the {@link ExtensionId} associated to the passed id * @since 8.0M1 */ default ExtensionId getExtensionFeature(String featureId) { return getFeatures().contains(featureId) ? new ExtensionId(featureId, getId().getVersion()) : null; }
/** * Remove extension from all caches. * * @param extension the extension */ protected void removeCachedExtension(E extension) { // Remove the extension from the memory. this.extensions.remove(extension.getId()); // versions removeCachedExtensionVersion(extension.getId().getId(), extension); if (!this.strictId) { for (String feature : extension.getFeatures()) { removeCachedExtensionVersion(feature, extension); } } }
@Override public IterableResult<Version> resolveVersions(String id, int offset, int nb) throws ResolveException { Extension extension = getCoreExtension(id); if (extension == null) { throw new ExtensionNotFoundException("Could not find extension with id [" + id + "]"); } Collection<Version> versions; if (nb == 0 || offset > 0) { versions = Collections.emptyList(); } else { versions = Arrays.asList(extension.getId().getVersion()); } return new CollectionIterableResult<Version>(1, offset, versions); }
private boolean checkExistingPlanNodeExtension(Extension extension, String namespace) throws InstallException { if (checkExistingPlanNodeExtension(extension.getId(), true, namespace)) { return true; } for (ExtensionId feature : extension.getExtensionFeatures()) { checkExistingPlanNodeExtension(feature, false, namespace); } return false; }
@Override public boolean isCompatible(Extension extension) { if (isCompatible(extension.getId())) { return true; } for (ExtensionId extensionId : extension.getExtensionFeatures()) { if (isCompatible(extensionId)) { return true; } } return false; }
@Override public boolean exists(ExtensionId extensionId) { Extension extension = getCoreExtension(extensionId.getId()); if (extension == null || (extensionId.getVersion() != null && !extension.getId().getVersion().equals(extensionId.getVersion()))) { return false; } return true; }
public boolean exists(ExtensionId extensionId) { Extension extension = getCoreExtension(extensionId.getId()); if (extension == null || (extensionId.getVersion() != null && !extension.getId().getVersion().equals(extensionId.getVersion()))) { return false; } return true; }
@Override public E resolve(ExtensionDependency extensionDependency) throws ResolveException { List<E> versions = this.extensionsVersions.get(extensionDependency.getId()); if (versions != null) { for (E extension : versions) { if (extensionDependency.getVersionConstraint().containsVersion(extension.getId().getVersion())) { // Return the higher version which satisfy the version constraint return extension; } } } throw new ExtensionNotFoundException("Can't find extension dependency [" + extensionDependency + "]"); }
public Extension resolve(ExtensionId extensionId) throws ResolveException { Extension extension = getCoreExtension(extensionId.getId()); if (extension == null || (extensionId.getVersion() != null && !extension.getId().getVersion().equals(extensionId.getVersion()))) { throw new ResolveException("Could not find extension [" + extensionId + "]"); } return extension; }
private boolean checkRootExtension(Extension extension) throws InstallException { boolean isRootExtension = checkRootExtension(extension.getId().getId()); for (ExtensionId feature : extension.getExtensionFeatures()) { isRootExtension |= checkRootExtension(feature.getId()); } return isRootExtension; }
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; } }
public AbstractExtension(ExtensionRepository repository, Extension extension) { this(repository, extension.getId(), extension.getType()); setDescription(extension.getDescription()); setAuthor(extension.getAuthor()); setWebsite(extension.getWebSite()); this.dependencies.addAll(extension.getDependencies()); }
private static Integer compareTo(Extension e1, Extension e2) { // Try to find e1 id in e2 ExtensionId feature = e2.getExtensionFeature(e1.getId().getId()); if (feature != null) { return ObjectUtils.compare(e1.getId().getVersion(), feature.getVersion()); } // Try to find e1 features in e2 for (ExtensionId feature1 : e1.getExtensionFeatures()) { feature = e2.getExtensionFeature(feature1.getId()); if (feature != null) { return ObjectUtils.compare(feature1.getVersion(), feature.getVersion()); } } return null; } }