public boolean equals(Object other) { if (other == null) return false; if (!(other instanceof IProvidedCapability)) return false; IProvidedCapability otherCapability = (IProvidedCapability) other; if (!(namespace.equals(otherCapability.getNamespace()))) return false; if (!(name.equals(otherCapability.getName()))) return false; return version.equals(otherCapability.getVersion()); }
private List<SystemCapability> readCapabilities(IInstallableUnit specificationUnit) { List<SystemCapability> result = new ArrayList<>(); for (IProvidedCapability capability : specificationUnit.getProvidedCapabilities()) { String namespace = capability.getNamespace(); String name = capability.getName(); String version = capability.getVersion().toString(); if (JREAction.NAMESPACE_OSGI_EE.equals(namespace)) { result.add(new SystemCapability(Type.OSGI_EE, name, version)); } else if (PublisherHelper.CAPABILITY_NS_JAVA_PACKAGE.equals(namespace)) { result.add(new SystemCapability(Type.JAVA_PACKAGE, name, version)); } else { // ignore } } return result; }
private void ensureSelfCapability(InstallableUnitDescription iu) { Collection<IProvidedCapability> capabilities = iu.getProvidedCapabilities(); for (IProvidedCapability capability : capabilities) { if (IInstallableUnit.NAMESPACE_IU_ID.equals(capability.getNamespace()) && iu.getId().equals(capability.getName()) && iu.getVersion().equals(capability.getVersion())) { return; } } IProvidedCapability[] newCapabilities = new IProvidedCapability[capabilities.size() + 1]; capabilities.toArray(newCapabilities); newCapabilities[newCapabilities.length - 1] = createSelfCapability(iu.getId(), iu.getVersion()); iu.setCapabilities(newCapabilities); } }
@Override protected void fillContentProvider(AbstractContentProvider contentProvider, ItemsFilter itemsFilter, IProgressMonitor progressMonitor) throws CoreException { // TODO clean up this code a bit... IMetadataRepositoryManager manager = P2TargetUtils.getRepoManager(); if (manager == null) throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, Messages.IUBundleContainer_2)); //URI[] knownRepositories = metadataManager.getKnownRepositories(IRepositoryManager.REPOSITORIES_ALL); IQuery<IInstallableUnit> pipedQuery; if (fShowLatestVersionOnly) pipedQuery = QueryUtil.createPipeQuery(query, QueryUtil.createLatestIUQuery()); else pipedQuery = query; Iterator<IInstallableUnit> iter = manager.query(pipedQuery, progressMonitor).iterator(); while (iter.hasNext()) { IInstallableUnit iu = iter.next(); Iterator<IProvidedCapability> pcIter = iu.getProvidedCapabilities().iterator(); while (pcIter.hasNext()) { IProvidedCapability pc = pcIter.next(); if (pc.getNamespace().equals("java.package")) { //$NON-NLS-1$ IUPackage pkg = new IUPackage(pc.getName(), pc.getVersion(), iu); contentProvider.add(pkg, itemsFilter); } } contentProvider.add(iu, itemsFilter); } }
protected void writeProvidedCapabilities(Collection<IProvidedCapability> capabilities) { if (capabilities != null && capabilities.size() > 0) { start(PROVIDED_CAPABILITIES_ELEMENT); attribute(COLLECTION_SIZE_ATTRIBUTE, capabilities.size()); for (IProvidedCapability capability : capabilities) { start(PROVIDED_CAPABILITY_ELEMENT); attribute(NAMESPACE_ATTRIBUTE, capability.getNamespace()); attribute(NAME_ATTRIBUTE, capability.getName()); attribute(VERSION_ATTRIBUTE, capability.getVersion()); end(PROVIDED_CAPABILITY_ELEMENT); } end(PROVIDED_CAPABILITIES_ELEMENT); } }
protected void writeProvidedCapabilities(Collection<IProvidedCapability> capabilities) { if (capabilities != null && capabilities.size() > 0) { start(PROVIDED_CAPABILITIES_ELEMENT); attribute(COLLECTION_SIZE_ATTRIBUTE, capabilities.size()); for (IProvidedCapability capability : capabilities) { start(PROVIDED_CAPABILITY_ELEMENT); attribute(NAMESPACE_ATTRIBUTE, capability.getNamespace()); attribute(NAME_ATTRIBUTE, capability.getName()); attribute(VERSION_ATTRIBUTE, capability.getVersion()); end(PROVIDED_CAPABILITY_ELEMENT); } end(PROVIDED_CAPABILITIES_ELEMENT); } }
protected void writeProvidedCapabilities(Collection<IProvidedCapability> capabilities) { if (capabilities != null && capabilities.size() > 0) { start(PROVIDED_CAPABILITIES_ELEMENT); attribute(COLLECTION_SIZE_ATTRIBUTE, capabilities.size()); for (IProvidedCapability capability : capabilities) { start(PROVIDED_CAPABILITY_ELEMENT); attribute(NAMESPACE_ATTRIBUTE, capability.getNamespace()); attribute(NAME_ATTRIBUTE, capability.getName()); attribute(VERSION_ATTRIBUTE, capability.getVersion()); end(PROVIDED_CAPABILITY_ELEMENT); } end(PROVIDED_CAPABILITIES_ELEMENT); } }
public static BundleInfo createBundleInfo(File bundleFile, IInstallableUnit unit) { BundleInfo bundleInfo = new BundleInfo(); if (bundleFile != null) bundleInfo.setLocation(bundleFile.toURI()); Collection<IProvidedCapability> capabilities = unit.getProvidedCapabilities(); for (IProvidedCapability capability : capabilities) { String nameSpace = capability.getNamespace(); if (nameSpace.equals("osgi.bundle")) { //$NON-NLS-1$ bundleInfo.setSymbolicName(capability.getName()); bundleInfo.setVersion(capability.getVersion().toString()); } else if (nameSpace.equals("osgi.fragment")) { //$NON-NLS-1$ String fragmentName = capability.getName(); String fragmentHost = getFragmentHost(unit, fragmentName); // shouldn't happen as long as the metadata is well-formed if (fragmentHost == null) LogHelper.log(createError("Unable to find fragment host for IU: " + unit)); //$NON-NLS-1$ else bundleInfo.setFragmentHost(fragmentHost); bundleInfo.setVersion(capability.getVersion().toString()); } } return bundleInfo; }
public static BundleInfo createBundleInfo(File bundleFile, IInstallableUnit unit) { BundleInfo bundleInfo = new BundleInfo(); if (bundleFile != null) bundleInfo.setLocation(bundleFile.toURI()); Collection<IProvidedCapability> capabilities = unit.getProvidedCapabilities(); for (IProvidedCapability capability : capabilities) { String nameSpace = capability.getNamespace(); if (nameSpace.equals("osgi.bundle")) { //$NON-NLS-1$ bundleInfo.setSymbolicName(capability.getName()); bundleInfo.setVersion(capability.getVersion().toString()); } else if (nameSpace.equals("osgi.fragment")) { //$NON-NLS-1$ String fragmentName = capability.getName(); String fragmentHost = getFragmentHost(unit, fragmentName); // shouldn't happen as long as the metadata is well-formed if (fragmentHost == null) LogHelper.log(createError("Unable to find fragment host for IU: " + unit)); //$NON-NLS-1$ else bundleInfo.setFragmentHost(fragmentHost); bundleInfo.setVersion(capability.getVersion().toString()); } } return bundleInfo; }
private boolean matches(IInstallableUnit unit, ParsedCapabilityPattern pattern) { switch (pattern.getType()) { case P2_INSTALLABLE_UNIT: return pattern.matchesId(unit.getId()) && pattern.matchesVersion(unit.getVersion()); case OSGI_BUNDLE: IProvidedCapability bundle = getBundleCapability(unit); if (bundle == null) return false; return pattern.matchesId(bundle.getName()) && pattern.matchesVersion(bundle.getVersion()); case JAVA_PACKAGE: for (IProvidedCapability exportedPackage : getPackageCapabilities(unit)) { if (pattern.matchesId(exportedPackage.getName()) && pattern.matchesVersion(exportedPackage.getVersion())) { return true; } } return false; } return false; }