private IProvidedCapability getBundleCapability(IInstallableUnit unit) { for (IProvidedCapability capability : unit.getProvidedCapabilities()) { if (BundlesAction.CAPABILITY_NS_OSGI_BUNDLE.equals(capability.getNamespace())) { return capability; } } return null; }
private static boolean isTranslation(IInstallableUnitFragment fragment) { for (IProvidedCapability capability : fragment.getProvidedCapabilities()) { // TODO make the constant in the TranslationSupport class public and use it if ("org.eclipse.equinox.p2.localization".equals(capability.getNamespace())) //$NON-NLS-1$ return true; } return false; } }
private List<IProvidedCapability> getPackageCapabilities(IInstallableUnit unit) { Collection<IProvidedCapability> allCapabilities = unit.getProvidedCapabilities(); List<IProvidedCapability> packageCapabilities = new ArrayList<>(allCapabilities.size()); for (IProvidedCapability capability : allCapabilities) { if (PublisherHelper.CAPABILITY_NS_JAVA_PACKAGE.equals(capability.getNamespace())) { packageCapabilities.add(capability); } } return packageCapabilities; }
private boolean providesJavaPackages(IInstallableUnit iu) { for (IProvidedCapability capability : iu.getProvidedCapabilities()) { if ("java.package".equals(capability.getNamespace())) { return true; } } return false; }
private String getCapability(IInstallableUnit iu, String namespace) { for (Iterator<?> i = iu.getProvidedCapabilities().iterator(); i.hasNext();) { IProvidedCapability capability = (IProvidedCapability) i.next(); if (capability.getNamespace().equals(namespace)) return capability.getName(); } return null; }
private String getFeatureId(IInstallableUnit iu) { for (IProvidedCapability provided : iu.getProvidedCapabilities()) { if (PublisherHelper.CAPABILITY_NS_UPDATE_FEATURE.equals(provided.getNamespace())) { return provided.getName(); } } return null; }
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 boolean isBundleOrFragmentWithId(IInstallableUnit iu, String id) { for (IProvidedCapability provided : iu.getProvidedCapabilities()) { if (BundlesAction.CAPABILITY_NS_OSGI_BUNDLE.equals(provided.getNamespace())) { return id.equals(provided.getName()); } } return false; }
private Type getType(IInstallableUnit iu) { Optional<IProvidedCapability> cap = iu.getProvidedCapabilities().stream() .filter(p -> p.getNamespace().equals(PublisherHelper.NAMESPACE_ECLIPSE_TYPE)).findAny(); if (!cap.isPresent()) return Type.other; switch (cap.get().getName()) { case "source": return Type.source_bundle; case "bundle": return Type.bundle; case "feature": return Type.feature; default: System.err.println("[WARNING] UNHANDLED " + cap.get()); return Type.other; } }
@Override public boolean match( IInstallableUnit unit ) { for ( IProvidedCapability cap : unit.getProvidedCapabilities() ) { if ( CAPABILITY_NS_JAVA_PACKAGE.equals( cap.getNamespace() ) && match( cap.getName() ) ) { return true; } } return false; }
private static IInstallableUnit removeExportedPackages(IInstallableUnit initialUnit) { InstallableUnitDescription iud = new InstallableUnitDescription(); iud.setId(initialUnit.getId()); iud.setVersion(initialUnit.getVersion()); initialUnit.getProvidedCapabilities().stream() .filter(cap -> !PublisherHelper.CAPABILITY_NS_JAVA_PACKAGE.equals(cap.getNamespace())) .map(Collections::singleton).forEach(iud::addProvidedCapabilities); return MetadataFactory.createInstallableUnit(iud); }
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); } }
boolean featureOrBundle = false; for (IProvidedCapability cap : capabilities) { if ("org.eclipse.equinox.p2.eclipse.type".equals(cap.getNamespace())) { //$NON-NLS-1$ if ("bundle".equals(cap.getName()) //$NON-NLS-1$ || "source".equals(cap.getName()) //$NON-NLS-1$
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; }