diff options
author | spingel | 2009-06-01 08:45:19 +0000 |
---|---|---|
committer | spingel | 2009-06-01 08:45:19 +0000 |
commit | d6bf9862331480e4c039749bbf2f71112f263d83 (patch) | |
tree | 8bf70132ff618f10ac39e6b93e67e115dabc614e /org.eclipse.mylyn.tasks.core | |
parent | 95bc980a9c10d8e261f7f8f5787cdccc69758abd (diff) | |
download | org.eclipse.mylyn.tasks-d6bf9862331480e4c039749bbf2f71112f263d83.tar.gz org.eclipse.mylyn.tasks-d6bf9862331480e4c039749bbf2f71112f263d83.tar.xz org.eclipse.mylyn.tasks-d6bf9862331480e4c039749bbf2f71112f263d83.zip |
NEW - bug 211441: [performance] Allow to disable automatic queries synchronization on some specific queries
https://bugs.eclipse.org/bugs/show_bug.cgi?id=211441
Diffstat (limited to 'org.eclipse.mylyn.tasks.core')
2 files changed, 25 insertions, 7 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java index 436e64aa2..84c1ade39 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java @@ -132,4 +132,13 @@ public class RepositoryQuery extends AbstractTaskContainer implements IRepositor attributeMap.setAttribute(key, value); } + public boolean getAutoUpdate() { + String value = getAttribute(ITasksCoreConstants.ATTRIBUTE_AUTO_UPDATE); + return value == null || Boolean.valueOf(value); + } + + public void setAutoUpdate(boolean autoUpdate) { + setAttribute(ITasksCoreConstants.ATTRIBUTE_AUTO_UPDATE, Boolean.toString(autoUpdate)); + } + } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java index 8d7f8fe7d..bc0adfff8 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java @@ -16,6 +16,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; import org.eclipse.core.runtime.CoreException; @@ -50,8 +51,6 @@ public class SynchronizeRepositoriesJob extends SynchronizationJob { private Set<TaskRepository> repositories; - private final Object family = new Object(); - private final IRepositoryModel tasksModel; public SynchronizeRepositoriesJob(TaskList taskList, TaskDataManager taskDataManager, IRepositoryModel tasksModel, @@ -99,12 +98,21 @@ public class SynchronizeRepositoriesJob extends SynchronizationJob { repository.getRepositoryLabel())); final AbstractRepositoryConnector connector = repositoryManager.getRepositoryConnector(repository.getConnectorKind()); - Set<RepositoryQuery> queries = taskList.getRepositoryQueries(repository.getRepositoryUrl()); + Set<RepositoryQuery> queries = new HashSet<RepositoryQuery>( + taskList.getRepositoryQueries(repository.getRepositoryUrl())); + // remove queries that are not configured for auto update + if (!isUser()) { + for (Iterator<RepositoryQuery> it = queries.iterator(); it.hasNext();) { + if (!it.next().getAutoUpdate()) { + it.remove(); + } + } + } if (isUser() || queries.isEmpty()) { monitor.worked(20); } else { - // occasionally request update of repository configuration attributes + // occasionally request update of repository configuration attributes as part of background synchronizations updateRepositoryConfiguration(repository, connector, new SubProgressMonitor(monitor, 20)); } @@ -136,7 +144,7 @@ public class SynchronizeRepositoriesJob extends SynchronizationJob { repository, queries) { @Override public boolean belongsTo(Object family) { - return SynchronizeRepositoriesJob.this.family == family; + return ITasksCoreConstants.JOB_FAMILY_SYNCHRONIZATION == family; } }; job.setUser(isUser()); @@ -149,8 +157,9 @@ public class SynchronizeRepositoriesJob extends SynchronizationJob { } } - public Object getFamily() { - return family; + @Override + public boolean belongsTo(Object family) { + return ITasksCoreConstants.JOB_FAMILY_SYNCHRONIZATION == family; } private void updateRepositoryConfiguration(TaskRepository repository, AbstractRepositoryConnector connector, |