/** * Dump the whole extension registry up to the specified nesting depth. * * @param extensionPointPrefix considering only extension points that have this prefix or null for * all * @param depth nesting depth */ public static void dumpRegistry(final String extensionPointPrefix, final int depth) { final IExtensionRegistry extensionRegistry = RegistryFactory.getRegistry(); if (extensionRegistry == null) { System.out.println("No extension registry available."); // $NON-NLS-1$ return; } final Object strategy = ReflectionUtils.getHidden(extensionRegistry, "strategy"); // $NON-NLS-1$ final StringBuilder bob = new StringBuilder("<< Registry"); // $NON-NLS-1$ if (extensionPointPrefix != null) { bob.append(" for prefix ").append(extensionPointPrefix); // $NON-NLS-1$ } bob.append(" with strategy ") .append(strategy.getClass().getSimpleName()) .append(":"); // $NON-NLS-1$ //$NON-NLS-2$ System.out.println(bob); final IExtensionPoint[] extensionPoints = extensionRegistry.getExtensionPoints(); Arrays.sort( extensionPoints, new Comparator<IExtensionPoint>() { public int compare(final IExtensionPoint ep1, final IExtensionPoint ep2) { return ep1.getUniqueIdentifier().compareTo(ep2.getUniqueIdentifier()); } }); for (final IExtensionPoint extensionPoint : extensionPoints) { if (extensionPointPrefix != null && !extensionPoint.getUniqueIdentifier().startsWith(extensionPointPrefix)) { continue; } System.out.println(extensionPoint.getUniqueIdentifier() + ":"); // $NON-NLS-1$ dumpExtensions(extensionPoint.getExtensions(), depth); } System.out.println(">>"); // $NON-NLS-1$ }
public ProcessingStep create( IProvisioningAgent agent, IProcessingStepDescriptor descriptor, IArtifactDescriptor context) { IExtensionRegistry registry = RegistryFactory.getRegistry(); IExtension extension = registry.getExtension(PROCESSING_STEPS_EXTENSION_ID, descriptor.getProcessorId()); Exception error; if (extension != null) { IConfigurationElement[] config = extension.getConfigurationElements(); try { Object object = config[0].createExecutableExtension("class"); // $NON-NLS-1$ ProcessingStep step = (ProcessingStep) object; step.initialize(agent, descriptor, context); return step; } catch (Exception e) { error = e; } } else error = new ProcessingStepHandlerException( NLS.bind( Messages.cannot_get_extension, PROCESSING_STEPS_EXTENSION_ID, descriptor.getProcessorId())); int severity = descriptor.isRequired() ? IStatus.ERROR : IStatus.INFO; ProcessingStep result = new EmptyProcessingStep(); result.setStatus( new Status( severity, Activator.ID, Messages.cannot_instantiate_step + descriptor.getProcessorId(), error)); return result; }
/* * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ public void start(BundleContext context) throws Exception { super.start(context); plugin = this; IExtensionRegistry reg = RegistryFactory.getRegistry(); loadNavigatorItems(reg); loadInitialPerspective(reg); loadBootJobs(reg); runBootJobs(); }
/** * Check to see that we have processors for all the steps in the given descriptor * * @param descriptor the descriptor to check * @return whether or not processors for all the descriptor's steps are installed */ public static boolean canProcess(IArtifactDescriptor descriptor) { IExtensionRegistry registry = RegistryFactory.getRegistry(); IExtensionPoint point = registry.getExtensionPoint(PROCESSING_STEPS_EXTENSION_ID); if (point == null) return false; IProcessingStepDescriptor[] steps = descriptor.getProcessingSteps(); for (int i = 0; i < steps.length; i++) { if (point.getExtension(steps[i].getProcessorId()) == null) return false; } return true; }
/** Populates the language catalog from the extension registry. */ private void initLanguages() { IExtensionPoint point = RegistryFactory.getRegistry().getExtensionPoint(FrontEnd.PLUGIN_ID, "frontEndLanguage"); IConfigurationElement[] elements = point.getConfigurationElements(); languages = new HashMap<String, FrontEndLanguage>(); for (int i = 0; i < elements.length; i++) { FrontEndLanguage current = FrontEndLanguage.build(elements[i]); languages.put(current.fileExtension, current); } }
/* (non-Javadoc) * Method declared on IWorkbenchPart. */ public void dispose() { // run super. super.dispose(); // remove ourselves as a selection and registry listener getSite().getPage().removePostSelectionListener(this); RegistryFactory.getRegistry().removeListener(this); currentPart = null; currentSelection = null; pinPropertySheetAction = null; }
private Dispatcher() { IConfigurationElement[] config = RegistryFactory.getRegistry().getConfigurationElementsFor(DISPATCH_FILTER_ID); for (IConfigurationElement element : config) { try { boolean isFilter = "filter".equals(element.getName()); // $NON-NLS-1$ if (isFilter) { DispatchFilter filter = new DispatchFilter(element); filters.putSingle(filter.getPriority(), filter); } } catch (Exception e) { logger.error("Error processing dispatch filter", e); // $NON-NLS-1$ } } }
/** * Get the whole extension registry as a set of paths. * * @param extensionPointPrefix considering only extension points that have this prefix or null for * all * @return */ public static Set<String> getRegistryPaths(final String extensionPointPrefix) { final Set<String> result = new HashSet<String>(); final IExtensionRegistry extensionRegistry = RegistryFactory.getRegistry(); if (extensionRegistry != null) { // is null when running without the workbench (plain junit test) final IExtensionPoint[] extensionPoints = extensionRegistry.getExtensionPoints(); for (final IExtensionPoint extensionPoint : extensionPoints) { if (extensionPointPrefix != null && !extensionPoint.getUniqueIdentifier().startsWith(extensionPointPrefix)) { continue; } final String path = extensionPoint.getUniqueIdentifier() + ": "; // $NON-NLS-1$ getExtensionsPaths(result, path, extensionPoint.getExtensions()); } } return result; }
public void startup(final PlatformConfig config) throws FrameworkException { platform = new ServicePlatform(config); try { Enumeration<URL> plugins = ServiceLauncher.class.getClassLoader().getResources(MANIFEST_ENTRY); while (plugins.hasMoreElements()) { // the wsjar:// URL in websphere doesn't support .. to get the // parent folder, so we construct the root from the file path URL root = null; URL url = plugins.nextElement(); String path = url.toExternalForm(); if (path.endsWith(MANIFEST_ENTRY)) { String rootPath = path.substring(0, path.length() - MANIFEST_ENTRY.length()); root = new URL(url, rootPath); } else { root = new URL(url, ".."); } try { platform.installBundle(root); } catch (Exception ex) { logger.log(Level.WARNING, "Failed to install plugin from " + root, ex); } } platform.startup(); Platform.setPlatform(platform); RegistryFactory.setDefaultRegistryProvider( new IRegistryProvider() { public IExtensionRegistry getRegistry() { return platform.extensionRegistry; } }); } catch (IOException ex) { throw new FrameworkException("Can't find any bundle from the classpath", ex); } catch (CoreException ex) { throw new FrameworkException("Can't register the ExtensionRegistry classpath", ex); } }
private HashSet getIgnoredViews() { if (ignoredViews == null) { ignoredViews = new HashSet(); IExtensionRegistry registry = RegistryFactory.getRegistry(); IExtensionPoint ep = registry.getExtensionPoint(EXT_POINT); if (ep != null) { IExtension[] extensions = ep.getExtensions(); for (int i = 0; i < extensions.length; i++) { IConfigurationElement[] elements = extensions[i].getConfigurationElements(); for (int j = 0; j < elements.length; j++) { if ("excludeSources".equalsIgnoreCase(elements[j].getName())) { // $NON-NLS-1$ String id = elements[j].getAttribute("id"); // $NON-NLS-1$ if (id != null) ignoredViews.add(id); } } } } } return ignoredViews; }
/** @return an instance of (any random) implementation of {@link JavaScriptFormatter} or null */ public static JavaScriptFormatter getInstance() { IExtensionPoint extensionPoint = RegistryFactory.getRegistry().getExtensionPoint(EXTENSION_POINT_ID); IExtension[] extensions = extensionPoint.getExtensions(); for (IExtension extension : extensions) { for (IConfigurationElement element : extension.getConfigurationElements()) { if (!ELEMENT_NAME.equals(element.getName())) { continue; } Object obj; try { obj = element.createExecutableExtension(CLASS_PROPERTY); } catch (CoreException e) { throw new RuntimeException(e); } return (JavaScriptFormatter) obj; } } return null; }
// TODO This should go into a different bundle public static IEclipseContext createDefaultHeadlessContext() { IEclipseContext serviceContext = E4Workbench.getServiceContext(); IExtensionRegistry registry = RegistryFactory.getRegistry(); ExceptionHandler exceptionHandler = new ExceptionHandler(); ReflectionContributionFactory contributionFactory = new ReflectionContributionFactory(registry); serviceContext.set(IContributionFactory.class, contributionFactory); serviceContext.set(IExceptionHandler.class, exceptionHandler); serviceContext.set(IExtensionRegistry.class, registry); serviceContext.set( Adapter.class, ContextInjectionFactory.make(EclipseAdapter.class, serviceContext)); // No default log provider available if (serviceContext.get(ILoggerProvider.class) == null) { serviceContext.set( ILoggerProvider.class, ContextInjectionFactory.make(DefaultLoggerProvider.class, serviceContext)); } return serviceContext; }
public void initialize() { // if (_isInitalized) { return; } // set initialized _isInitalized = true; // _extensionInstances = new LinkedList<T>(); _extensionBundleNamespaces = new LinkedList<String>(); // get the extension registry IExtensionRegistry registry = RegistryFactory.getRegistry(); // get the extension points IExtensionPoint extensionPoint = registry.getExtensionPoint(_extensionPointId); // get the extension tracker _tracker = new ExtensionTracker(registry); // for (IExtension extension : extensionPoint.getExtensions()) { // _extensionBundleNamespaces.add(extension.getContributor().getName()); // addExtension(_tracker, extension); } // register IExtensionChangeHandler _tracker.registerHandler(this, ExtensionTracker.createExtensionPointFilter(extensionPoint)); }
/** Creates a property sheet view. */ public PropertySheet() { super(); pinPropertySheetAction = new PinPropertySheetAction(); RegistryFactory.getRegistry().addListener(this, EXT_POINT); }