private void addReference(BundleDescription description, BundleDescription reference, List<Object[]> references) { // build the reference from the description if (description == reference || reference == null) return; BundleDescription[] fragments = reference.getFragments(); for (int i = 0; i < fragments.length; i++) { if (fragments[i].isResolved()) { ExportPackageDescription[] exports = fragments[i].getExportPackages(); if (exports.length > 0) references.add(new Object[] {description, fragments[i]}); } } references.add(new Object[] {description, reference}); }
private void addReference(BundleDescription description, BundleDescription reference, List<Object[]> references) { // build the reference from the description if (description == reference || reference == null) return; BundleDescription[] fragments = reference.getFragments(); for (int i = 0; i < fragments.length; i++) { if (fragments[i].isResolved()) { ExportPackageDescription[] exports = fragments[i].getExportPackages(); if (exports.length > 0) references.add(new Object[] {description, fragments[i]}); } } references.add(new Object[] {description, reference}); }
private void addReference(BundleDescription description, BundleDescription reference, List<Object[]> references) { // build the reference from the description if (description == reference || reference == null) return; BundleDescription[] fragments = reference.getFragments(); for (int i = 0; i < fragments.length; i++) { if (fragments[i].isResolved()) { ExportPackageDescription[] exports = fragments[i].getExportPackages(); if (exports.length > 0) references.add(new Object[] {description, fragments[i]}); } } references.add(new Object[] {description, reference}); }
private void addReference(BundleDescription description, BundleDescription reference, List<Object[]> references) { // build the reference from the description if (description == reference || reference == null) return; BundleDescription[] fragments = reference.getFragments(); for (int i = 0; i < fragments.length; i++) { if (fragments[i].isResolved()) { ExportPackageDescription[] exports = fragments[i].getExportPackages(); if (exports.length > 0) references.add(new Object[] {description, fragments[i]}); } } references.add(new Object[] {description, reference}); }
private Map<String, List<ExportPackageDescription>> getExportedPackageMap(State state) { Map<String, List<ExportPackageDescription>> result = new HashMap<String, List<ExportPackageDescription>>(); BundleDescription[] bundles = state.getBundles(); for (int i = 0; i < bundles.length; i++) { ExportPackageDescription[] packages = bundles[i].getExportPackages(); for (int j = 0; j < packages.length; j++) { ExportPackageDescription description = packages[j]; List<ExportPackageDescription> exports = result.get(description.getName()); if (exports == null) { exports = new ArrayList<ExportPackageDescription>(); result.put(description.getName(), exports); } exports.add(description); } } return result; }
private Map<String, List<ExportPackageDescription>> getExportedPackageMap(State state) { Map<String, List<ExportPackageDescription>> result = new HashMap<String, List<ExportPackageDescription>>(); BundleDescription[] bundles = state.getBundles(); for (int i = 0; i < bundles.length; i++) { ExportPackageDescription[] packages = bundles[i].getExportPackages(); for (int j = 0; j < packages.length; j++) { ExportPackageDescription description = packages[j]; List<ExportPackageDescription> exports = result.get(description.getName()); if (exports == null) { exports = new ArrayList<ExportPackageDescription>(); result.put(description.getName(), exports); } exports.add(description); } } return result; }
private Map<String, List<ExportPackageDescription>> getExportedPackageMap(State state) { Map<String, List<ExportPackageDescription>> result = new HashMap<String, List<ExportPackageDescription>>(); BundleDescription[] bundles = state.getBundles(); for (int i = 0; i < bundles.length; i++) { ExportPackageDescription[] packages = bundles[i].getExportPackages(); for (int j = 0; j < packages.length; j++) { ExportPackageDescription description = packages[j]; List<ExportPackageDescription> exports = result.get(description.getName()); if (exports == null) { exports = new ArrayList<ExportPackageDescription>(); result.put(description.getName(), exports); } exports.add(description); } } return result; }
private Map<String, List<ExportPackageDescription>> getExportedPackageMap(State state) { Map<String, List<ExportPackageDescription>> result = new HashMap<>(); BundleDescription[] bundles = state.getBundles(); for (int i = 0; i < bundles.length; i++) { ExportPackageDescription[] packages = bundles[i].getExportPackages(); for (int j = 0; j < packages.length; j++) { ExportPackageDescription description = packages[j]; List<ExportPackageDescription> exports = result.get(description.getName()); if (exports == null) { exports = new ArrayList<>(); result.put(description.getName(), exports); } exports.add(description); } } return result; }
private void setFrameworkVersion(BundleDescription systemBundle) { ExportPackageDescription[] packages = systemBundle.getExportPackages(); for (int i = 0; i < packages.length; i++) if (packages[i].getName().equals(Constants.OSGI_FRAMEWORK_PACKAGE)) { FrameworkProperties.setProperty(Constants.FRAMEWORK_VERSION, packages[i].getVersion().toString()); break; } FrameworkProperties.setProperty(Constants.OSGI_IMPL_VERSION_KEY, systemBundle.getVersion().toString()); }
private void setFrameworkVersion(BundleDescription systemBundle) { ExportPackageDescription[] packages = systemBundle.getExportPackages(); for (int i = 0; i < packages.length; i++) if (packages[i].getName().equals(Constants.OSGI_FRAMEWORK_PACKAGE)) { FrameworkProperties.setProperty(Constants.FRAMEWORK_VERSION, packages[i].getVersion().toString()); break; } FrameworkProperties.setProperty(Constants.OSGI_IMPL_VERSION_KEY, systemBundle.getVersion().toString()); }
private HashMap getAvailableExportedPackages(State state) { BundleDescription[] bundles = state.getBundles(); HashMap exported = new HashMap(); for (int i = 0; i < bundles.length; i++) { ExportPackageDescription[] exports = bundles[i].getExportPackages(); for (int j = 0; j < exports.length; j++) { String name = exports[j].getName(); if (exported.containsKey(name)) { if (exports[j].getSupplier().isResolved()) { exported.put(name, exports[j]); } } else { exported.put(name, exports[j]); } } } return exported; }
private HashMap<String, ExportPackageDescription> getAvailableExportedPackages(State state) { BundleDescription[] bundles = state.getBundles(); HashMap<String, ExportPackageDescription> exported = new HashMap<>(); for (int i = 0; i < bundles.length; i++) { ExportPackageDescription[] exports = bundles[i].getExportPackages(); for (int j = 0; j < exports.length; j++) { String name = exports[j].getName(); if (exported.containsKey(name)) { if (exports[j].getSupplier().isResolved()) { exported.put(name, exports[j]); } } else { exported.put(name, exports[j]); } } } return exported; }
private void addExtPackages(BundleFragment fragment) { if ((fragment.getBundleData().getType() & BundleData.TYPE_EXTCLASSPATH_EXTENSION) == 0) return; ExportPackageDescription[] extExports = fragment.getBundleDescription().getExportPackages(); for (int j = 0; j < extExports.length; j++) extPackages.add(extExports[j].getName()); }
private void addExtPackages(BundleFragment fragment) { if ((fragment.getBundleData().getType() & BundleData.TYPE_EXTCLASSPATH_EXTENSION) == 0) return; ExportPackageDescription[] extExports = fragment.getBundleDescription().getExportPackages(); for (int j = 0; j < extExports.length; j++) extPackages.add(extExports[j].getName()); }
public String[] getContentFilters() { IPluginModelBase model = (IPluginModelBase)getModel(); if (ClasspathUtilCore.hasBundleStructure(model)) { BundleDescription desc = model.getBundleDescription(); if (desc != null) { ArrayList list = new ArrayList(); ExportPackageDescription[] exports = desc.getExportPackages(); for (int i = 0; i < exports.length; i++) { list.add(exports[i].getName()); } return (String[])list.toArray(new String[list.size()]); } } if (!isExported()) return new String[0]; return isFullyExported() ? new String[] {"**"} : fContentFilters; //$NON-NLS-1$ }
@Override public String[] getContentFilters() { IPluginModelBase model = (IPluginModelBase) getModel(); if (ClasspathUtilCore.hasBundleStructure(model)) { BundleDescription desc = model.getBundleDescription(); if (desc != null) { ArrayList<String> list = new ArrayList<>(); ExportPackageDescription[] exports = desc.getExportPackages(); for (int i = 0; i < exports.length; i++) { list.add(exports[i].getName()); } return list.toArray(new String[list.size()]); } } if (!isExported()) return new String[0]; return isFullyExported() ? new String[] {"**"} : fContentFilters; //$NON-NLS-1$ }
private boolean validExports(ExportPackageDescription[] matchingExports) { // make sure each matching exports matches the export signature of the composite CompositeModule composite = (CompositeModule) getCompanionBundle(); BundleDescription childDesc = composite.getCompositeDescription(); ExportPackageDescription[] childExports = childDesc.getExportPackages(); for (int i = 0; i < matchingExports.length; i++) { for (int j = 0; j < childExports.length; j++) { if (matchingExports[i].getName().equals(childExports[j].getName())) { if (!validateExport(matchingExports[i], childExports[j])) return false; continue; } } } return true; }
private boolean validExports(ExportPackageDescription[] matchingExports) { // make sure each matching exports matches the export signature of the composite CompositeModule composite = (CompositeModule) getCompanionBundle(); BundleDescription childDesc = composite.getCompositeDescription(); ExportPackageDescription[] childExports = childDesc.getExportPackages(); for (int i = 0; i < matchingExports.length; i++) { for (int j = 0; j < childExports.length; j++) { if (matchingExports[i].getName().equals(childExports[j].getName())) { if (!validateExport(matchingExports[i], childExports[j])) return false; continue; } } } return true; }
@Override protected boolean shouldAddPlugin(BundleDescription bundle, Dictionary<String, String> environment) { // if there is an environment conflict boolean conflict = !super.shouldAddPlugin(bundle, environment); if (conflict) { // make a copy of the state if we haven't already if (fStateCopy == null) copyState(TargetPlatformHelper.getState()); // replace the current BundleDescription with a copy who does not have the platform filter. This will allow the plug-in to be resolved BundleDescription desc = fStateCopy.removeBundle(bundle.getBundleId()); BundleDescription newDesc = fStateCopy.getFactory().createBundleDescription(desc.getBundleId(), desc.getSymbolicName(), desc.getVersion(), desc.getLocation(), desc.getRequiredBundles(), desc.getHost(), desc.getImportPackages(), desc.getExportPackages(), desc.isSingleton(), desc.attachFragments(), desc.dynamicFragments(), null, desc.getExecutionEnvironments(), desc.getGenericRequires(), desc.getGenericCapabilities()); fStateCopy.addBundle(newDesc); } // always include plug-ins, even ones with environment conflicts return true; }
protected boolean shouldAddPlugin(BundleDescription bundle, Dictionary environment) { // if there is an environment conflict boolean conflict = !super.shouldAddPlugin(bundle, environment); if (conflict) { // make a copy of the state if we haven't already if (fStateCopy == null) copyState(TargetPlatformHelper.getState()); // replace the current BundleDescription with a copy who does not have the platform filter. This will allow the plug-in to be resolved BundleDescription desc = fStateCopy.removeBundle(bundle.getBundleId()); BundleDescription newDesc = fStateCopy.getFactory().createBundleDescription(desc.getBundleId(), desc.getSymbolicName(), desc.getVersion(), desc.getLocation(), desc.getRequiredBundles(), desc.getHost(), desc.getImportPackages(), desc.getExportPackages(), desc.isSingleton(), desc.attachFragments(), desc.dynamicFragments(), null, desc.getExecutionEnvironments(), desc.getGenericRequires(), desc.getGenericCapabilities()); fStateCopy.addBundle(newDesc); } // always include plug-ins, even ones with environment conflicts return true; }