Community
Participate
Working Groups
The bundle providing the metadata (i.e. the bundle passed as an argument to MetaTypeService.getMetaTypeInformation()) must be resolved before the metatype impl will provide any metatype information based on metadata xml files contained within that bundle. This is because the impl now uses BundleWiring.findEntries(), and A BundleWiring only exists if the bundle is resolved. Previously, Bundle.findEntries() was used. We should consider changing this back, as there does not appear to be any reason not to provide this metadata even if the bundle is not resolved. Another issue with the current impl is that it will cache the MetaTypeInformation object created for the unresolved bundle. Consequently, even if another call is made once the bundle has resolved, the metadata will never show up.
I agree, we should change back to using Bundle.findEntries. If we did that then the issue of caching the object from unresolved bundles would not be and issue.
Pushed to master. http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=eeb130d28cd0fdaa277aee16b737d515c36ac742 http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=1d478e3bff188ccbed8408fa8d12985ea7e02e1a
I missed a couple of places that still use BundleWiring.
Pushed to master. http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=ef88d7cebbc412b73aeb83152f22b3f399b916fd http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?id=a15cf5afabb37e107d9ceaa8a18c3f10f4b44037