Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/util/RepositoryConnectorExtensionReader.java')
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/util/RepositoryConnectorExtensionReader.java34
1 files changed, 17 insertions, 17 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/util/RepositoryConnectorExtensionReader.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/util/RepositoryConnectorExtensionReader.java
index 3523a502a..8f6c78c79 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/util/RepositoryConnectorExtensionReader.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/util/RepositoryConnectorExtensionReader.java
@@ -13,11 +13,9 @@ package org.eclipse.mylyn.internal.tasks.core.util;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
@@ -56,6 +54,8 @@ public class RepositoryConnectorExtensionReader {
private static final String EXTENSION_CONTRIBUTORS = ITasksCoreConstants.ID_PLUGIN
+ ".repositoryConnectorContributor"; //$NON-NLS-1$
+ private static final String EXTENSION_REPOSITORIES = ITasksCoreConstants.ID_PLUGIN + ".repositories"; //$NON-NLS-1$
+
private static class ConnectorFactory {
private AbstractRepositoryConnector connector;
@@ -197,10 +197,7 @@ public class RepositoryConnectorExtensionReader {
}
- /**
- * Plug-in ids of connector extensions that failed to load.
- */
- private final Set<String> disabledContributors = new HashSet<String>();
+ private final ContributorBlackList blackList = new ContributorBlackList();
private final TaskListExternalizer taskListExternalizer;
@@ -210,26 +207,29 @@ public class RepositoryConnectorExtensionReader {
private final List<RepositoryConnectorDescriptor> descriptors = new ArrayList<RepositoryConnectorDescriptor>();
- private MultiStatus result;
+ private final MultiStatus result;
public RepositoryConnectorExtensionReader(TaskListExternalizer taskListExternalizer,
TaskRepositoryManager repositoryManager) {
this.taskListExternalizer = taskListExternalizer;
this.repositoryManager = repositoryManager;
+ this.result = new MultiStatus(ITasksCoreConstants.ID_PLUGIN, 0, "Repository connectors failed to load.", null); //$NON-NLS-1$
}
- public void registerConnectors(IExtensionPoint repositoriesExtensionPoint) {
- if (result != null) {
- throw new IllegalStateException("registerConnectors may only be invoked once"); //$NON-NLS-1$
- }
-
- result = new MultiStatus(ITasksCoreConstants.ID_PLUGIN, 0, "Repository connectors failed to load.", null); //$NON-NLS-1$
-
+ public void loadConnectors(IExtensionPoint repositoriesExtensionPoint) {
Map<String, List<ConnectorFactory>> factoryById = readFromRepositoriesExtensionPoint(repositoriesExtensionPoint);
checkForConflicts(factoryById);
+ }
+
+ public void loadConnectorsFromRepositoriesExtension() {
+ loadConnectors(Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_REPOSITORIES));
+ }
+ public void loadConnectorsFromContributors() {
readFromContributorsExtensionPoint();
+ }
+ public void registerConnectors() {
Map<String, List<ConnectorFactory>> factoryByConnectorKind = createConnectorInstances();
checkForConflicts(factoryByConnectorKind);
@@ -366,7 +366,7 @@ public class RepositoryConnectorExtensionReader {
for (ConnectorFactory factory : entry.getValue()) {
status.add(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, NLS.bind(
"All extensions contributed by ''{0}'' have been disabled.", factory.getPluginId()), null)); //$NON-NLS-1$
- disabledContributors.add(factory.getPluginId());
+ blackList.disableContributor(factory.getPluginId());
factories.remove(factory);
}
result.add(status);
@@ -387,8 +387,8 @@ public class RepositoryConnectorExtensionReader {
return new ArrayList<RepositoryConnectorDescriptor>(descriptors);
}
- public Set<String> getDisabledContributors() {
- return new HashSet<String>(disabledContributors);
+ public ContributorBlackList getBlackList() {
+ return blackList;
}
public IStatus getResult() {

Back to the top