private boolean checkBundle(String bundleName, String version) { VersionRange vr = VersionRange.parseVersionRange(version); Bundle[] bundles = bundleContext.getBundles(); for (int i = 0; (bundles != null) && (i < bundles.length); i++) { String sym = bundles[i].getSymbolicName(); if ((sym != null) && sym.equals(bundleName)) { if (vr.contains(bundles[i].getVersion())) { return true; } } } return false; }
int minCompare = floor.compareTo(r.getFloor()); if (minCompare > 0) newFloor = r.getFloor(); newOpenFloor = r.isOpenFloor(); newOpenFloor = (openFloor || r.isOpenFloor()); final boolean newOpenCeiling; int maxCompare = ceiling.compareTo(r.getCeiling()); if (maxCompare < 0) newCeiling = r.getCeiling(); newOpenCeiling = r.isOpenCeiling(); newOpenCeiling = (openCeiling || r.isOpenCeiling()); if (isRangeValid(newOpenFloor, newFloor, newCeiling, newOpenCeiling)) result = new VersionRange(newOpenFloor, newFloor, newCeiling, newOpenCeiling);
if (f == null) { VersionRange versionRange = new VersionRange(version); for (String key : featuresMap.keySet()) { String[] nameVersion = key.split("/"); String verStr = featuresMap.get(key).getVersion(); Version ver = VersionTable.getVersion(verStr); if (versionRange.contains(ver)) { if (f == null || VersionTable.getVersion(f.getVersion()).compareTo(VersionTable.getVersion(featuresMap.get(key).getVersion())) < 0) { f = featuresMap.get(key);
private static VersionRange exactVersion(String versionRange) { return new VersionRange(versionRange, true, true); }
/** * @param resource resource to be overriden * @param explicitRange range set on the override clause * @return if the resource should be overriden by the given override */ private static <T extends Resource> boolean shouldOverride(Resource resource, T override, String explicitRange) { if (!getSymbolicName(resource).equals(getSymbolicName(override))) { return false; } VersionRange range; if (explicitRange == null) { // default to micro version compatibility Version v1 = getVersion(resource); Version v2 = new Version(v1.getMajor(), v1.getMinor() + 1, 0); range = new VersionRange(false, v1, v2, true); } else { range = VersionRange.parseVersionRange(explicitRange); } return range.contains(getVersion(override)) && getVersion(resource).compareTo(getVersion(override)) < 0; }
range = new VersionRange(false, Version.emptyVersion, newVersion, true); } else { range = new VersionRange(false, Version.emptyVersion, range.getCeiling(), true); key = String.format("%s|%s", sn, range.getFloor().toString()); if (range.contains(oldVersion)) { String oldLocation = history.getLocation(bundle); if ("org.ops4j.pax.url.mvn".equals(sn)) {
VersionRange vr = new VersionRange(range, true); if (vr.isOpenCeiling() && vr.getCeiling() == VersionRange.INFINITE_VERSION) { vr.isOpenFloor() ? "(" : "[", vr.getFloor())); } else { parser.setVersion(vr.toString()); parser.setVersion(new VersionRange(false, vfloor, v, v.compareTo(vfloor) > 0).toString());
private static Feature getLatestFeature(Map<String, Feature> versions, VersionRange versionRange) { Feature feature = null; if (versions != null && !versions.isEmpty()) { Version latest = Version.emptyVersion; for (String available : versions.keySet()) { Version availableVersion = VersionTable.getVersion(available); if (availableVersion.compareTo(latest) >= 0 && versionRange.contains(availableVersion)) { Feature possiblyBlacklisted = versions.get(available); // return only if there are no more non-blaclisted features if (feature == null || !possiblyBlacklisted.isBlacklisted()) { feature = possiblyBlacklisted; } latest = availableVersion; } } } return feature; }
private static List<ParsedHeaderClause> normalizeRequireClauses(List<ParsedHeaderClause> clauses) { // Convert bundle version attribute to VersionRange type. for (ParsedHeaderClause clause : clauses) { Object value = clause.attrs.get(Constants.BUNDLE_VERSION_ATTRIBUTE); if (value != null) { clause.attrs.put(Constants.BUNDLE_VERSION_ATTRIBUTE, VersionRange.parseVersionRange(value.toString())); } } return clauses; }
if (entry.getValue() instanceof VersionRange) { VersionRange vr = (VersionRange) entry.getValue(); if (!vr.isOpenFloor()) { filters.add( new SimpleFilter( entry.getKey(), vr.getFloor().toString(), SimpleFilter.GTE) ); SimpleFilter val = new SimpleFilter( entry.getKey(), vr.getFloor().toString(), SimpleFilter.LTE); SimpleFilter not = if (vr.getCeiling() != null) { if (!vr.isOpenCeiling()) { filters.add( new SimpleFilter( entry.getKey(), vr.getCeiling().toString(), SimpleFilter.LTE) ); } else if (!vr.getCeiling().equals(VersionRange.INFINITE_VERSION)) { SimpleFilter val = new SimpleFilter( entry.getKey(), vr.getCeiling().toString(), SimpleFilter.GTE);
if (f == null) { VersionRange versionRange = new VersionRange(version); for (String key : featuresMap.keySet()) { String[] nameVersion = key.split("/"); String verStr = featuresMap.get(key).getVersion(); Version ver = VersionTable.getVersion(verStr); if (versionRange.contains(ver)) { if (f == null || VersionTable.getVersion(f.getVersion()).compareTo(VersionTable.getVersion(featuresMap.get(key).getVersion())) < 0) { f = featuresMap.get(key);
public static VersionRange parseVersionRange( String val ) throws IllegalArgumentException, NumberFormatException { if ( val == null || val.trim().length() == 0 ) { return ANY_VERSION; } return new VersionRange( val ); }
if (vr != null && !vr.isEmpty()) { override = bundle + OVERRIDE_RANGE + vr; range = VersionRange.parseVersionRange(vr); } else { override = bundle; Version v1 = new Version(oVer.getMajor(), oVer.getMinor(), 0); Version v2 = new Version(oVer.getMajor(), oVer.getMinor() + 1, 0); range = new VersionRange(false, v1, v2, true); if (overrideArtifact != null) { Version ver = VersionTable.getVersion(overrideArtifact.getVersion()); if (isSameButVersion(artifact, overrideArtifact) && range.contains(ver)) { matching = true; if (ver.compareTo(oVer) < 0) { if (startupArtifact != null) { Version ver = VersionTable.getVersion(startupArtifact.getVersion()); if (isSameButVersion(artifact, startupArtifact) && range.contains(ver)) { matching = true;
private Set<Feature> getMatching(String nameAndVersion) { FeatureReq req = new FeatureReq(nameAndVersion); Set<Feature> versionToFeatures = featuresCache.get(req.getName()); if (versionToFeatures == null) { return Collections.emptySet(); } return versionToFeatures.stream() .filter(f -> f.getName().equals(req.getName()) && req.getVersionRange().contains(VersionTable.getVersion(f.getVersion()))) .collect(Collectors.toSet()); } }
private static List<ParsedHeaderClause> normalizeRequireClauses(List<ParsedHeaderClause> clauses) { // Convert bundle version attribute to VersionRange type. for (ParsedHeaderClause clause : clauses) { Object value = clause.attrs.get(Constants.BUNDLE_VERSION_ATTRIBUTE); if (value != null) { clause.attrs.put(Constants.BUNDLE_VERSION_ATTRIBUTE, VersionRange.parseVersionRange(value.toString())); } } return clauses; }
if (entry.getValue() instanceof VersionRange) { VersionRange vr = (VersionRange) entry.getValue(); if (!vr.isOpenFloor()) { filters.add( new SimpleFilter( entry.getKey(), vr.getFloor().toString(), SimpleFilter.GTE) ); SimpleFilter val = new SimpleFilter( entry.getKey(), vr.getFloor().toString(), SimpleFilter.LTE); SimpleFilter not = if (vr.getCeiling() != null) { if (!vr.isOpenCeiling()) { filters.add( new SimpleFilter( entry.getKey(), vr.getCeiling().toString(), SimpleFilter.LTE) ); } else if (!vr.getCeiling().equals(VersionRange.INFINITE_VERSION)) { SimpleFilter val = new SimpleFilter( entry.getKey(), vr.getCeiling().toString(), SimpleFilter.GTE);
private boolean checkBundle(String bundleName, String version) { VersionRange vr = VersionRange.parseVersionRange(version); Bundle[] bundles = bundleContext.getBundles(); for (int i = 0; (bundles != null) && (i < bundles.length); i++) { String sym = bundles[i].getSymbolicName(); if ((sym != null) && sym.equals(bundleName)) { if (vr.contains(bundles[i].getVersion())) { return true; } } } return false; }
public static Feature search(String name, String version, Collection<Repository> repositories) { VersionRange range = new VersionRange(version, false, true); Feature bestFeature = null; Version bestVersion = null; for (Repository repo : repositories) { Feature[] features; try { features = repo.getFeatures(); } catch (Exception e) { // This should not happen as the repository has been loaded already throw new IllegalStateException(e); } for (Feature feature : features) { if (name.equals(feature.getName())) { Version v = new Version(VersionCleaner.clean(feature.getVersion())); if (range.contains(v)) { if (bestVersion == null || bestVersion.compareTo(v) < 0) { bestFeature = feature; bestVersion = v; } } } } } return bestFeature; } }
int minCompare = floor.compareTo(r.getFloor()); if (minCompare > 0) newFloor = r.getFloor(); newOpenFloor = r.isOpenFloor(); newOpenFloor = (openFloor || r.isOpenFloor()); final boolean newOpenCeiling; int maxCompare = ceiling.compareTo(r.getCeiling()); if (maxCompare < 0) newCeiling = r.getCeiling(); newOpenCeiling = r.isOpenCeiling(); newOpenCeiling = (openCeiling || r.isOpenCeiling()); if (isRangeValid(newOpenFloor, newFloor, newCeiling, newOpenCeiling)) result = new VersionRange(newOpenFloor, newFloor, newCeiling, newOpenCeiling);
public static VersionRange parseVersionRange( String val ) throws IllegalArgumentException, NumberFormatException { if ( val == null || val.trim().length() == 0 ) { return ANY_VERSION; } return new VersionRange( val ); }