private List<ModuleCapability> createCapabilities(List<GenericInfo> capabilityInfos) { if (capabilityInfos == null || capabilityInfos.isEmpty()) return Collections.emptyList(); List<ModuleCapability> result = new ArrayList<>(capabilityInfos.size()); for (GenericInfo info : capabilityInfos) { result.add(new ModuleCapability(info.namespace, info.directives, info.attributes, this)); } return result; }
private boolean equivilant(ModuleCapability moduleCapability, GenericInfo genericInfo) { if (!moduleCapability.getNamespace().equals(genericInfo.getNamespace())) { return false; } if (!moduleCapability.getAttributes().equals(genericInfo.getAttributes())) { return false; } if (!moduleCapability.getDirectives().equals(genericInfo.getDirectives())) { return false; } return true; }
ModuleRevision getModuleRevision(Capability c) { // We assume all capabilities here either come from us and have ModuleRevision resources or // they are HostedCapabilities which have ModuleRevision resources as the host revision if (c instanceof HostedCapability) { c = ((HostedCapability) c).getDeclaredCapability(); } if (c instanceof ModuleCapability) { return ((ModuleCapability) c).getRevision(); } // TODO is there some bug in the resolver? return null; }
boolean isSubtituted(ModuleCapability capability) { if (!PackageNamespace.PACKAGE_NAMESPACE.equals(capability.getNamespace())) { return false; } return substitutedPkgNames.contains(capability.getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); }
private static void getStringsVersionsAndMaps(Module module, ModuleDatabase moduleDatabase, Set<String> allStrings, Set<Version> allVersions, Set<Map<String, ?>> allMaps) { ModuleRevision current = module.getCurrentRevision(); if (current == null) return; allStrings.add(module.getLocation()); allStrings.add(current.getSymbolicName()); allStrings.add(current.getVersion().getQualifier()); allVersions.add(current.getVersion()); EnumSet<Settings> settings = moduleDatabase.moduleSettings.get(module.getId()); if (settings != null) { for (Settings setting : settings) { allStrings.add(setting.toString()); } } List<ModuleCapability> capabilities = current.getModuleCapabilities(null); for (ModuleCapability capability : capabilities) { allStrings.add(capability.getNamespace()); addMap(capability.getPersistentAttributes(), allStrings, allVersions, allMaps); addMap(capability.getDirectives(), allStrings, allVersions, allMaps); } List<ModuleRequirement> requirements = current.getModuleRequirements(null); for (ModuleRequirement requirement : requirements) { allStrings.add(requirement.getNamespace()); addMap(requirement.getAttributes(), allStrings, allVersions, allMaps); addMap(requirement.getDirectives(), allStrings, allVersions, allMaps); } }
private void filterFailedToResolve(List<ModuleCapability> candidates) { for (Iterator<ModuleCapability> iCandidates = candidates.iterator(); iCandidates.hasNext();) { ModuleCapability capability = iCandidates.next(); if (failedToResolve.contains(capability.getRevision())) { iCandidates.remove(); if (DEBUG_PROVIDERS) { Debug.println(new StringBuilder("RESOLVER: Capability filtered because its resource was not resolved") //$NON-NLS-1$ .append(SEPARATOR).append(TAB) // .append(capability) // .append(SEPARATOR).append(TAB).append(TAB) // .append("of resource") //$NON-NLS-1$ .append(SEPARATOR).append(TAB).append(TAB).append(TAB) // .append(capability.getResource()) // .toString()); } } } }
public String toString() { return packageCapability.toString(); } }
public PackageSource createPackageSource(ModuleCapability packageCapability, boolean storeSource) { PackageSource pkgSource = null; String name = (String) packageCapability.getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE); String includes = packageCapability.getDirectives().get(PackageNamespace.CAPABILITY_INCLUDE_DIRECTIVE); String excludes = packageCapability.getDirectives().get(PackageNamespace.CAPABILITY_EXCLUDE_DIRECTIVE); if (includes != null || excludes != null) { pkgSource = new FilteredSourcePackage(name, loader, includes, excludes);
public Version getVersion() { Version version = (Version) packageCapability.getAttributes().get(PackageNamespace.CAPABILITY_VERSION_ATTRIBUTE); return version == null ? Version.emptyVersion : version; }
boolean forceSourceCreation(ModuleCapability packageCapability) { Map<String, String> directives = packageCapability.getDirectives(); return directives.get(PackageNamespace.CAPABILITY_EXCLUDE_DIRECTIVE) != null || directives.get(PackageNamespace.CAPABILITY_EXCLUDE_DIRECTIVE) != null; }
private List<ModuleCapability> getModuleCapabilities(String namespace, List<ModuleCapability> allCapabilities) { if (!isValid) return null; if (namespace == null) return new ArrayList<>(allCapabilities); List<ModuleCapability> result = new ArrayList<>(); for (ModuleCapability capability : allCapabilities) { if (namespace.equals(capability.getNamespace())) { result.add(capability); } } return result; }
/** * Only used by the system module for setting transient attributes associated * with the {@link NativeNamespace osgi.native} namespace. * @param transientAttrs */ public void setTransientAttrs(Map<String, ?> transientAttrs) { if (this.transientAttrs == null) { throw new UnsupportedOperationException(namespace + ": namespace does not support transient attributes."); //$NON-NLS-1$ } if (!(getResource().getRevisions().getModule() instanceof SystemModule)) { throw new UnsupportedOperationException("Only allowed to set transient attributes for the system module: " + getResource()); //$NON-NLS-1$ } this.transientAttrs.clear(); this.transientAttrs.putAll(transientAttrs); }
Map<String, Object> configMap = equinoxContainer.getConfiguration().getInitialConfig(); for (ModuleCapability nativeEnvironment : nativeEnvironments) { nativeEnvironment.setTransientAttrs(configMap);
private static void getStringsVersionsAndMaps(Module module, ModuleDatabase moduleDatabase, Set<String> allStrings, Set<Version> allVersions, Set<Map<String, ?>> allMaps) { ModuleRevision current = module.getCurrentRevision(); if (current == null) return; allStrings.add(module.getLocation()); allStrings.add(current.getSymbolicName()); allStrings.add(current.getVersion().getQualifier()); allVersions.add(current.getVersion()); EnumSet<Settings> settings = moduleDatabase.moduleSettings.get(module.getId()); if (settings != null) { for (Settings setting : settings) { allStrings.add(setting.toString()); } } List<ModuleCapability> capabilities = current.getModuleCapabilities(null); for (ModuleCapability capability : capabilities) { allStrings.add(capability.getNamespace()); addMap(capability.getPersistentAttributes(), allStrings, allVersions, allMaps); addMap(capability.getDirectives(), allStrings, allVersions, allMaps); } List<ModuleRequirement> requirements = current.getModuleRequirements(null); for (ModuleRequirement requirement : requirements) { allStrings.add(requirement.getNamespace()); addMap(requirement.getAttributes(), allStrings, allVersions, allMaps); addMap(requirement.getDirectives(), allStrings, allVersions, allMaps); } }
private void filterFailedToResolve(List<ModuleCapability> candidates) { for (Iterator<ModuleCapability> iCandidates = candidates.iterator(); iCandidates.hasNext();) { ModuleCapability capability = iCandidates.next(); if (failedToResolve.contains(capability.getRevision())) { iCandidates.remove(); if (DEBUG_PROVIDERS) { Debug.println(new StringBuilder("RESOLVER: Capability filtered because its resource was not resolved") //$NON-NLS-1$ .append(SEPARATOR).append(TAB) // .append(capability) // .append(SEPARATOR).append(TAB).append(TAB) // .append("of resource") //$NON-NLS-1$ .append(SEPARATOR).append(TAB).append(TAB).append(TAB) // .append(capability.getResource()) // .toString()); } } } }
boolean isSubtituted(ModuleCapability capability) { if (!PackageNamespace.PACKAGE_NAMESPACE.equals(capability.getNamespace())) { return false; } return substitutedPkgNames.contains(capability.getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); }
public String toString() { return packageCapability.toString(); } }
public PackageSource createPackageSource(ModuleCapability packageCapability, boolean storeSource) { PackageSource pkgSource = null; String name = (String) packageCapability.getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE); String includes = packageCapability.getDirectives().get(PackageNamespace.CAPABILITY_INCLUDE_DIRECTIVE); String excludes = packageCapability.getDirectives().get(PackageNamespace.CAPABILITY_EXCLUDE_DIRECTIVE); if (includes != null || excludes != null) { pkgSource = new FilteredSourcePackage(name, loader, includes, excludes);
private static String[] getClassPath(ModuleRevision revision) { List<ModuleCapability> moduleDatas = revision.getModuleCapabilities(EquinoxModuleDataNamespace.MODULE_DATA_NAMESPACE); @SuppressWarnings("unchecked") List<String> cp = moduleDatas.isEmpty() ? null : (List<String>) moduleDatas.get(0).getAttributes().get(EquinoxModuleDataNamespace.CAPABILITY_CLASSPATH); return cp == null ? DEFAULT_CLASSPATH : cp.toArray(new String[cp.size()]); }
boolean forceSourceCreation(ModuleCapability packageCapability) { Map<String, String> directives = packageCapability.getDirectives(); return directives.get(PackageNamespace.CAPABILITY_EXCLUDE_DIRECTIVE) != null || directives.get(PackageNamespace.CAPABILITY_EXCLUDE_DIRECTIVE) != null; }