Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.vogella.extensionpoint.definition;
- import org.eclipse.core.runtime.CoreException;
- import org.eclipse.core.runtime.IConfigurationElement;
- import org.eclipse.core.runtime.IExtensionRegistry;
- import org.eclipse.core.runtime.ISafeRunnable;
- import org.eclipse.core.runtime.SafeRunner;
- import org.eclipse.e4.core.di.annotations.Execute;
- public class EvaluateContributionsHandler {
- private static final String IGREETER_ID =
- "com.vogella.extensionpoint.definition.greeter";
- @Execute
- public void execute(IExtensionRegistry registry) {
- IConfigurationElement[] config =
- registry.getConfigurationElementsFor(IGREETER_ID);
- try {
- for (IConfigurationElement e : config) {
- System.out.println("Evaluating extension");
- final Object o =
- e.createExecutableExtension("class");
- if (o instanceof IGreeter) {
- executeExtension(o);
- }
- }
- } catch (CoreException ex) {
- System.out.println(ex.getMessage());
- }
- }
- private void executeExtension(final Object o) {
- ISafeRunnable runnable = new ISafeRunnable() {
- @Override
- public void handleException(Throwable e) {
- System.out.println("Exception in client");
- }
- @Override
- public void run() throws Exception {
- ((IGreeter) o).greet();
- }
- };
- SafeRunner.run(runnable);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement