Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2009-06-01 08:45:19 +0000
committerspingel2009-06-01 08:45:19 +0000
commitd6bf9862331480e4c039749bbf2f71112f263d83 (patch)
tree8bf70132ff618f10ac39e6b93e67e115dabc614e /org.eclipse.mylyn.tasks.core
parent95bc980a9c10d8e261f7f8f5787cdccc69758abd (diff)
downloadorg.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')
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java9
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java23
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,

Back to the top