@Override public int compare(IInstallableUnit iu1, IInstallableUnit iu2) { int IdCompare = iu1.getId().compareTo(iu2.getId()); if (IdCompare != 0) return IdCompare; return iu1.getVersion().compareTo(iu2.getVersion()); } });
static String getIUName(IInstallableUnit iu) { StringBuffer buf = new StringBuffer(); String name = iu.getProperty(IInstallableUnit.PROP_NAME, null); if (name != null) buf.append(name); else buf.append(iu.getId()); buf.append(" "); //$NON-NLS-1$ buf.append(iu.getVersion().toString()); return buf.toString(); }
protected IStatus initializeOperand(IProfile profile, InstallableUnitOperand operand, Map<String, Object> parameters, IProgressMonitor monitor) { IInstallableUnit iu = operand.second(); monitor.subTask(NLS.bind(Messages.Phase_Configure_Task, iu.getId())); parameters.put(PARM_IU, iu); Collection<IArtifactKey> artifacts = iu.getArtifacts(); if (artifacts != null && artifacts.size() > 0) parameters.put(PARM_ARTIFACT, artifacts.iterator().next()); return Status.OK_STATUS; } }
private String getIUString(IInstallableUnit iu) { if (iu == null) return Messages.PlanAnalyzer_Items; // Get the iu name in the default locale String name = iu.getProperty(IInstallableUnit.PROP_NAME, null); if (name != null) return name; return iu.getId(); }
private static IRequirement createStrictRequirementTo(IInstallableUnit unit) { VersionRange strictRange = new VersionRange(unit.getVersion(), true, unit.getVersion(), true); int min = 1; int max = Integer.MAX_VALUE; boolean greedy = true; IRequirement requirement = MetadataFactory.createRequirement(IInstallableUnit.NAMESPACE_IU_ID, unit.getId(), strictRange, unit.getFilter(), min, max, greedy); return requirement; } }
protected void writeInstallableUnit(IInstallableUnit resolvedIU) { IInstallableUnit iu = resolvedIU.unresolved(); start(INSTALLABLE_UNIT_ELEMENT); attribute(ID_ATTRIBUTE, iu.getId()); attribute(VERSION_ATTRIBUTE, iu.getVersion()); attribute(SINGLETON_ATTRIBUTE, iu.isSingleton(), true); writeUpdateDescriptor(resolvedIU, resolvedIU.getUpdateDescriptor()); writeProperties(iu.getProperties()); writeMetaRequirements(iu.getMetaRequirements()); writeProvidedCapabilities(iu.getProvidedCapabilities()); if (simpleRequirements && iu instanceof IInstallableUnitFragment) { Collection<IRequirement> mergedRequirementsAndFragmentHostForPre36Compatibility = new LinkedHashSet<IRequirement>(iu.getRequirements()); mergedRequirementsAndFragmentHostForPre36Compatibility.addAll(((IInstallableUnitFragment) iu).getHost()); writeRequirements(mergedRequirementsAndFragmentHostForPre36Compatibility); } else { writeRequirements(iu.getRequirements()); writeTrimmedCdata(IU_FILTER_ELEMENT, iu.getFilter() == null ? null : iu.getFilter().getParameters()[0].toString()); writeArtifactKeys(iu.getArtifacts()); writeTouchpointType(iu.getTouchpointType()); writeTouchpointData(iu.getTouchpointData()); writeLicenses(iu.getLicenses()); writeCopyright(iu.getCopyright());
private IInstallableUnit createEntryPointIU( Collection<IInstallableUnit> rootIUs ) { InstallableUnitDescription iud = new MetadataFactory.InstallableUnitDescription(); String time = Long.toString( System.currentTimeMillis() ); iud.setId( time ); iud.setVersion( Version.createOSGi( 0, 0, 0, time ) ); ArrayList<IRequirement> requirements = new ArrayList<IRequirement>(); for ( IInstallableUnit iu : rootIUs ) { VersionRange range = new VersionRange( iu.getVersion(), true, iu.getVersion(), true ); requirements.add( MetadataFactory.createRequirement( IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), range, iu.getFilter(), 1 /* min */, iu.isSingleton() ? 1 : Integer.MAX_VALUE /* max */, true /* greedy */) ); } iud.setRequirements( (IRequirement[]) requirements.toArray( new IRequirement[requirements.size()] ) ); return MetadataFactory.createInstallableUnit( iud ); }
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); }
/** * p2 repositories are polluted with useless a.jre/config.a.jre IUs. These IUs do not represent * current/desired JRE and can expose resolver to packages that are not actually available. */ @Override public boolean isNonApplicableEEUnit(IInstallableUnit iu) { // See JREAction return iu.getId().startsWith("a.jre") || iu.getId().startsWith("config.a.jre"); }
IMatchExpression<IInstallableUnit> f = iu.getFilter(); if (f!=null) { for (Object p : f.getParameters()) { for (Entry<String, String> pe : iu.getProperties().entrySet()) { Activator.println(" "+pe.getKey()+"="+pe.getValue()); for (ITouchpointData tp : iu.getTouchpointData()) { Activator.println("IU Touchpoints:"); for (Entry<String, ITouchpointInstruction> tpe : tp.getInstructions().entrySet()) { String text = iu.getProperty(IInstallableUnit.PROP_DESCRIPTION, "df_LT"); String url = iu.getProperty(IInstallableUnit.PROP_DESCRIPTION_URL); if (text != null && !text.isEmpty()) { browser.setText(text); + iu.getProperty(IInstallableUnit.PROP_NAME) + "</b></body></html>");
public Collection<IArtifactKey> getArtifacts() { return original.getArtifacts(); }
public IMatchExpression<IInstallableUnit> getFilter() { return original.getFilter(); }
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 hasHigherFidelity(IInstallableUnit iu, IInstallableUnit currentIU) { if (Boolean.parseBoolean(currentIU.getProperty(IInstallableUnit.PROP_PARTIAL_IU)) && !Boolean.parseBoolean(iu.getProperty(IInstallableUnit.PROP_PARTIAL_IU))) return true; return false; }
private void createNotAddedRemedyDetail(IInstallableUnit iu, Remedy remedy) { RemedyIUDetail iuDetail = new RemedyIUDetail(iu); iuDetail.setStatus(RemedyIUDetail.STATUS_NOT_ADDED); iuDetail.setRequestedVersion(iu.getVersion()); remedy.addRemedyIUDetail(iuDetail); }
/** * Creates a new query that will return any IU that meets any * one of the requirements of the specified IU. * * @param iu The IU whose requirements are to be checked */ public RequiredIUsQuery(IInstallableUnit iu) { super(IInstallableUnit.class, expression, iu.getRequirements()); } }
private Collection<IRequirement> getRequiredCapabilities(IInstallableUnit iu) { boolean isFragment = iu instanceof IInstallableUnitFragment; //Short-circuit for the case of an IInstallableUnit if ((!isFragment) && iu.getMetaRequirements().size() == 0) return iu.getRequirements(); ArrayList<IRequirement> aggregatedRequirements = new ArrayList<>(iu.getRequirements().size() + iu.getMetaRequirements().size() + (isFragment ? ((IInstallableUnitFragment) iu).getHost().size() : 0)); aggregatedRequirements.addAll(iu.getRequirements()); if (iu instanceof IInstallableUnitFragment) { aggregatedRequirements.addAll(((IInstallableUnitFragment) iu).getHost()); } if (considerMetaRequirements) aggregatedRequirements.addAll(iu.getMetaRequirements()); return aggregatedRequirements; }
public Collection<ITouchpointData> getTouchpointData() { Collection<ITouchpointData> originalTouchpointData = original.getTouchpointData(); if (fragments.length == 0) return originalTouchpointData; ArrayList<ITouchpointData> result = new ArrayList<ITouchpointData>(originalTouchpointData); for (int i = 0; i < fragments.length; i++) result.addAll(fragments[i].getTouchpointData()); return result; }
protected void writeInstallableUnit(IInstallableUnit resolvedIU) { IInstallableUnit iu = resolvedIU.unresolved(); start(INSTALLABLE_UNIT_ELEMENT); attribute(ID_ATTRIBUTE, iu.getId()); attribute(VERSION_ATTRIBUTE, iu.getVersion()); attribute(SINGLETON_ATTRIBUTE, iu.isSingleton(), true); writeUpdateDescriptor(resolvedIU, resolvedIU.getUpdateDescriptor()); writeProperties(iu.getProperties()); writeMetaRequirements(iu.getMetaRequirements()); writeProvidedCapabilities(iu.getProvidedCapabilities()); if (simpleRequirements && iu instanceof IInstallableUnitFragment) { Collection<IRequirement> mergedRequirementsAndFragmentHostForPre36Compatibility = new LinkedHashSet<IRequirement>(iu.getRequirements()); mergedRequirementsAndFragmentHostForPre36Compatibility.addAll(((IInstallableUnitFragment) iu).getHost()); writeRequirements(mergedRequirementsAndFragmentHostForPre36Compatibility); } else { writeRequirements(iu.getRequirements()); writeTrimmedCdata(IU_FILTER_ELEMENT, iu.getFilter() == null ? null : iu.getFilter().getParameters()[0].toString()); writeArtifactKeys(iu.getArtifacts()); writeTouchpointType(iu.getTouchpointType()); writeTouchpointData(iu.getTouchpointData()); writeLicenses(iu.getLicenses()); writeCopyright(iu.getCopyright());
/** * Creates and returns a collection of RequiredCapabilities for the IUs represented * by the given collection. The collection may include a mixture of IInstallableUnits * or VersionedNames. * @param children descriptions of the IUs on which requirements are to be made * @return a collection of RequiredCapabilities representing the given IUs */ protected Collection<IRequirement> createIURequirements(Collection<? extends IVersionedId> children) { ArrayList<IRequirement> result = new ArrayList<>(children.size()); for (IVersionedId next : children) { if (next instanceof IInstallableUnit) { IInstallableUnit iu = (IInstallableUnit) next; VersionRange range = new VersionRange(iu.getVersion(), true, iu.getVersion(), true); result.add(MetadataFactory.createRequirement(IInstallableUnit.NAMESPACE_IU_ID, iu.getId(), range, iu.getFilter() == null ? null : iu.getFilter(), false, false)); } else { Version version = next.getVersion(); VersionRange range = (version == null || Version.emptyVersion.equals(version)) ? VersionRange.emptyRange : new VersionRange(version, true, version, true); IMatchExpression<IInstallableUnit> filter = getFilterAdvice(next); result.add(MetadataFactory.createRequirement(IInstallableUnit.NAMESPACE_IU_ID, next.getId(), range, filter, false, false)); } } return result; }