Search in sources :

Example 1 with WorkspaceConfiguratorParticipant

use of org.springsource.ide.eclipse.commons.configurator.WorkspaceConfiguratorParticipant in project eclipse-integration-commons by spring-projects.

the class ConfiguratorImporter method getInstalledBundles.

public Set<String> getInstalledBundles() {
    final Set<String> installedBundles = new HashSet<String>();
    Set<WorkspaceConfiguratorParticipant> participants = ParticipantExtensionPointReader.getParticipants();
    for (final WorkspaceConfiguratorParticipant configurator : participants) {
        SafeRunner.run(new ISafeRunnable() {

            public void handleException(Throwable exception) {
            // logged by super class
            }

            public void run() throws Exception {
                List<ConfigurableExtension> extensions = configurator.detectExtensions(ConfiguratorImporter.this, new NullProgressMonitor());
                for (ConfigurableExtension extension : extensions) {
                    if (extension.getBundleId() != null) {
                        installedBundles.add(extension.getBundleId() + ".feature.group");
                    }
                }
            }
        });
    }
    return installedBundles;
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) WorkspaceConfiguratorParticipant(org.springsource.ide.eclipse.commons.configurator.WorkspaceConfiguratorParticipant) ISafeRunnable(org.eclipse.core.runtime.ISafeRunnable) ArrayList(java.util.ArrayList) List(java.util.List) ConfigurableExtension(org.springsource.ide.eclipse.commons.configurator.ConfigurableExtension) CoreException(org.eclipse.core.runtime.CoreException) HashSet(java.util.HashSet)

Example 2 with WorkspaceConfiguratorParticipant

use of org.springsource.ide.eclipse.commons.configurator.WorkspaceConfiguratorParticipant in project eclipse-integration-commons by spring-projects.

the class ConfiguratorImporter method detectExtensions.

public List<ConfigurableExtension> detectExtensions(final IProgressMonitor monitor) {
    final List<ConfigurableExtension> result = new ArrayList<ConfigurableExtension>();
    Set<WorkspaceConfiguratorParticipant> participants = ParticipantExtensionPointReader.getParticipants();
    for (final WorkspaceConfiguratorParticipant participant : participants) {
        SafeRunner.run(new ISafeRunnable() {

            public void handleException(Throwable exception) {
            // logged by super class
            }

            public void run() throws Exception {
                List<ConfigurableExtension> extensions = participant.detectExtensions(ConfiguratorImporter.this, monitor);
                result.addAll(extensions);
            }
        });
    }
    Set<InstallableItem> installableItems = ParticipantExtensionPointReader.getInstallableItems();
    for (final InstallableItem item : installableItems) {
        boolean found = false;
        for (ConfigurableExtension extension : result) {
            if (extension.getId().equals(item.getId())) {
                extension.setInstallableItem(item);
                found = true;
            }
        }
        if (!found) {
            for (final WorkspaceConfiguratorParticipant participant : participants) {
                if (participant.getId().equals(item.getConfiguratorId())) {
                    final AtomicBoolean added = new AtomicBoolean(false);
                    SafeRunner.run(new ISafeRunnable() {

                        public void handleException(Throwable exception) {
                        // logged by super class
                        }

                        public void run() throws Exception {
                            ConfigurableExtension extension = participant.createExtension(item, monitor);
                            if (extension != null) {
                                result.add(extension);
                                added.set(true);
                            }
                        }
                    });
                    if (added.get()) {
                        break;
                    }
                }
            }
        }
    }
    return result;
}
Also used : WorkspaceConfiguratorParticipant(org.springsource.ide.eclipse.commons.configurator.WorkspaceConfiguratorParticipant) ArrayList(java.util.ArrayList) CoreException(org.eclipse.core.runtime.CoreException) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ISafeRunnable(org.eclipse.core.runtime.ISafeRunnable) ArrayList(java.util.ArrayList) List(java.util.List) ConfigurableExtension(org.springsource.ide.eclipse.commons.configurator.ConfigurableExtension)

Example 3 with WorkspaceConfiguratorParticipant

use of org.springsource.ide.eclipse.commons.configurator.WorkspaceConfiguratorParticipant in project eclipse-integration-commons by spring-projects.

the class ParticipantDescriptor method createConfigurator.

public WorkspaceConfiguratorParticipant createConfigurator() {
    if (element != null) {
        try {
            Object object = WorkbenchPlugin.createExtension(element, ATTR_CLASS);
            if (object instanceof WorkspaceConfiguratorParticipant) {
                WorkspaceConfiguratorParticipant participant = (WorkspaceConfiguratorParticipant) object;
                participant.setId(getId());
                return participant;
            }
        } catch (CoreException e) {
        // ignore extension
        }
    }
    return null;
}
Also used : WorkspaceConfiguratorParticipant(org.springsource.ide.eclipse.commons.configurator.WorkspaceConfiguratorParticipant) CoreException(org.eclipse.core.runtime.CoreException)

Aggregations

CoreException (org.eclipse.core.runtime.CoreException)3 WorkspaceConfiguratorParticipant (org.springsource.ide.eclipse.commons.configurator.WorkspaceConfiguratorParticipant)3 ArrayList (java.util.ArrayList)2 List (java.util.List)2 ISafeRunnable (org.eclipse.core.runtime.ISafeRunnable)2 ConfigurableExtension (org.springsource.ide.eclipse.commons.configurator.ConfigurableExtension)2 HashSet (java.util.HashSet)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)1