Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsminto2009-06-01 15:38:50 +0000
committersminto2009-06-01 15:38:50 +0000
commit31df9c71515d59ac290fc8423375bff65e24d77f (patch)
tree8c49e0299efd443f10f2644447c3a4477a73d0cb
parent84a69909b102093a4e6a5d4c9bb03f19924e4279 (diff)
downloadorg.eclipse.mylyn.tasks-31df9c71515d59ac290fc8423375bff65e24d77f.tar.gz
org.eclipse.mylyn.tasks-31df9c71515d59ac290fc8423375bff65e24d77f.tar.xz
org.eclipse.mylyn.tasks-31df9c71515d59ac290fc8423375bff65e24d77f.zip
port tasks core changes to 3.3
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java7
-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/SubmitTaskAttachmentJob.java12
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java4
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java23
5 files changed, 40 insertions, 15 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java
index 7ce1f1284..112fee63c 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java
@@ -136,4 +136,11 @@ public interface ITasksCoreConstants {
public static final String PROPERTY_LINK_PROVIDER_TIMEOUT = "org.eclipse.mylyn.linkProviderTimeout"; //$NON-NLS-1$
+ /**
+ * Boolean value that indicates that queries participate in automatic synchronizations.
+ */
+ public static final String ATTRIBUTE_AUTO_UPDATE = "org.eclipse.mylyn.tasks.core.synchronization.auto"; //$NON-NLS-1$
+
+ public static final Object JOB_FAMILY_SYNCHRONIZATION = new Object();
+
}
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/SubmitTaskAttachmentJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskAttachmentJob.java
index f9f08a021..1248fbef0 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskAttachmentJob.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskAttachmentJob.java
@@ -41,7 +41,7 @@ public class SubmitTaskAttachmentJob extends SubmitJob {
private final AbstractRepositoryConnector connector;
- private IStatus error;
+ private IStatus errorStatus;
private final AbstractTaskAttachmentSource source;
@@ -72,7 +72,7 @@ public class SubmitTaskAttachmentJob extends SubmitJob {
@Override
public IStatus getStatus() {
- return error;
+ return errorStatus;
}
@Override
@@ -84,7 +84,7 @@ public class SubmitTaskAttachmentJob extends SubmitJob {
public IStatus run(IProgressMonitor monitor) {
final AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
if (attachmentHandler == null) {
- error = new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN,
+ errorStatus = new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN,
"The task repository does not support attachments."); //$NON-NLS-1$
return Status.OK_STATUS;
}
@@ -101,14 +101,14 @@ public class SubmitTaskAttachmentJob extends SubmitJob {
taskDataManager.putUpdatedTaskData(task, taskData, true);
fireTaskSynchronized(monitor);
} catch (CoreException e) {
- error = e.getStatus();
+ errorStatus = e.getStatus();
} catch (OperationCanceledException e) {
- return Status.CANCEL_STATUS;
+ errorStatus = Status.CANCEL_STATUS;
} finally {
monitor.done();
}
fireDone();
- return Status.OK_STATUS;
+ return (errorStatus == Status.CANCEL_STATUS) ? Status.CANCEL_STATUS : Status.OK_STATUS;
}
}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java
index d41887104..1ae57cd61 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java
@@ -95,7 +95,7 @@ public class SubmitTaskJob extends SubmitJob {
} catch (CoreException e) {
errorStatus = e.getStatus();
} catch (OperationCanceledException e) {
- return Status.CANCEL_STATUS;
+ errorStatus = Status.CANCEL_STATUS;
} catch (Exception e) {
StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN,
"Unexpected error during task submission", e)); //$NON-NLS-1$
@@ -105,7 +105,7 @@ public class SubmitTaskJob extends SubmitJob {
monitor.done();
}
fireDone();
- return Status.OK_STATUS;
+ return (errorStatus == Status.CANCEL_STATUS) ? Status.CANCEL_STATUS : Status.OK_STATUS;
}
private ITask createTask(IProgressMonitor monitor, TaskData updatedTaskData) throws CoreException {
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