Bug 86362 [PropertiesView] Can not access AdapterFactory, when plugin is not loaded
I added propertysheet support to my application. When I had it working more or less ok, I refactored this support to a separate plugin and suddenly my property sheet stopped working. No error messages or log - my view just did not manage to get the IPropertySheetPage for my view. Closer inspection and debugging lead me to conclude that the problem lies in the overzealously lazy loading of the AdapterFactory, which avoids loading of the plugin bundle at any cost when retrieving adapters. The lazy loading in AdapterFactoryProxy should either force the plugin to be loaded, or if this behavior is intentional, there should be a (preferably declarative) way of forcing the plugin to be loaded.
bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
* <p>
 * Note that property <it>sheets</it> and property sheet pages are not the
 * same thing as property <it>dialogs</it> and their property pages (the property
 * pages extension point is for contributing property pages to property dialogs).
 * Within the property sheet view, all pages are <code>IPropertySheetPage</code>s.
 * </p>
 * <p>
 * Property sheet pages are discovered by the property sheet view automatically
 * when a part is first activated. The property sheet view asks the active part
 * for its property sheet page; this is done by invoking 
 * <code>getAdapter(IPropertySheetPage.class)</code> on the part. If the part 
 * returns a page, the property sheet view then creates the controls for that
 * property sheet page (using <code>createControl</code>), and adds the page to 
 * the property sheet view. Whenever this part becomes active, its corresponding
 * property sheet page is shown in the property sheet view (which may or may not
 * be visible at the time). A part's property sheet page is discarded when the
 * part closes. The property sheet view has a default page (an instance of 
 * <code>PropertySheetPage</code>) which services all parts without a property
 * sheet page of their own.
 * </p>
 * <p>
 * The workbench will automatically instantiates this class when a Property
 * Sheet view is needed for a workbench window. This class is not intended
 * to be instantiated or subclassed by clients.
 * </p>
 *
 * @see IPropertySheetPage
 * @see PropertySheetPage
 */
public class PropertySheet extends PageBookView implements ISelectionListener {